Netcat e Telnet

Sempre se ouve falar que o Netcat é o canivete suíço do TCP/IP, vou mostrar algumas técnicas para fazer conexão reversa (e bind também) usando o NetCat e o Telnet também, o cenário é um Windows Server 2012 e o Kali Linux, as duas máquinas precisam ter o Netcat.

O Kali já tem um diretório com diversas softwares para Windows, entre eles podemos encontrar o Netcat e o Wget também.
Esse diretório fica em:

cd /usr/share/windows-binaries

Vamos transferir o Netcat para o Windows Server subindo um simples webserver com Python, para isso use o comando abaixo, o webserver vai exibir no browser os arquivos do atual diretório que ele foi chamado.

Obs: Podemos mudar a porta, de 80 para qualquer outra, basta prestar atenção nisso quando for fazer o acesso da máquina Windows.

Abaixo, estou fazendo o acesso do Windows Server para o Kali, acessando pelo browser no IP do Kali.

Agora basta fazer download do nc.exe.

Agora, pelo Prompt de comando é preciso navegador até o local onde está o Netcat, que no meu caso é a pasta Download e rodar o comando para deixar o Netcat em modo de escuta, exatamente como é habitualmente feito no Linux.

O que esse comando está fazendo é, deixar o Netcat em modo de escuta na porta 666 e quando alguém bater nessa porta ele vai entregar o cmd.exe para esse cliente, ou seja, vai entregar o Prompt de comando.

Conforme imagem acima, estou agora na máquina Linux me conectando pelo Netcat no servidor Windows que está escutando na porta 666, assim que a conexão for estabelecida uma Shell será liberado para mim. No exemplo acima estou aplicando os comandos “hostname” e “ipconfig” para comprovação de que estou de fato agora dentro do Windows Server.

O contrário também pode ser feito, ou seja, posso entregar uma Shell do Linux para a máquina Windows, o processo é praticamente o mesmo, a única diferenta é que vou usar agora o “-e /bin/bash” no Linux, então quando a conexão for estabelecidade a máquina Windows vai ter uma Shell do Linux.

Novamente vou deixar o Netcat do Windows Server em modo de escuta e fazer a conexão até ele pelo Netcat do Linux.

Repare que estou enviando junto o “/bin/bash” também, para que seja possível que o Windows Server tenha a Shell do Linux.
O único problema aqui é que não teremos uma Shell interativa no Windows, dessa forma é preciso digitar os comandos exatos para ter uma saída, conforme imagens acima em que digitei os comandos “whoami” e “ifconfig eth0”.

Também é possível transferir arquivos usando o Netcat, vamos transferir o arquivo klogger.exe que está no mesmo diretório no Kali.

Vamos preparar o Netcat no Windows Server e deixa-lo em modo de escuta, porém, vamos apontar uma saída para tudo que ele receber enviar para o arquivo “keylogger.exe”.

E agora, na máquina Linux vamos fazer a conexão com o Netcat no Windows Server e passar como entrada o software klogger.exe com o operador ” < “.

Depois de feita a conexão, basta mata-la com “Control C” e verificar se o arquivo foi transferido.

Também podemos fazer uma conexão usando Telnet e o Netcat, isso é útil em situações em que não exista a possibilidade de instalar o Netcat no computador alvo.

Vamos deixar o Windows Server escutando e vamos nos conectar a ele pelo Kali. Para isso, vamos deixar duas portas em modo de escuta no Windows, vamos rodar o Netcat ouvindo nas portas 666 e outro Netcat ouvindo na porta 777.

Agora vamos para a máquina Linux e fazer a conexão no Windows Server.

O comando parece confuso, mas o que ele está fazendo é, se conectando ao Windows Server na porta 666, o resultado dessa conexão vai entregar a Shell do Linux com o /bin/bash e o resultado da saída de algum comando executado no /bin/bash será enviando novamente via Telnet para o Windows Server na porta 777, por isso é preciso que exista duas escutas no Windows Server.

Acima podemos verificar que os comandos que são digitados no primeiro Prompt (porta 666) tem sua saída exibida no Prompt inferior (porta 777).