Esta parte será prática, mas sempre utilizando os conceitos
já aprendidos anteriormente.
O Netcat é chamado com o comando "nc", você pode tanto
dar as sintaxes depois do nc, quanto na linha "CMD LINE" que
aparece após o comando "nc" simples.
Para listar as sintaxes disponíveis no Netcat, digite:
$ nc -h
A tela ficará mais ou menos assim:
Agora vamos traduzir as sintaxes para o português para o
melhor compreendimento de todos:
- -l = coloca uma porta em estado de listenning (escuta);
- -p = define uma porta;
- -v = ativa o recebimento de eco;
- -vv = ativa o recebimento de eco. Mostra mais detalhes que -v;
- -u = utiliza o protocolo UDP ao invés de TCP;
- -t = para se conectar a TELNET;
- -o = gera um log em formato hexadecimal;
- -w = determina um tempo máximo para aguardar uma reposta;
- -e = redireciona arquivos;
- -n = recebe e faz conexões apenas em formato numérico (IP);
É mais do que óbvio que comandos e sintaxes do
Linux podem ser misturadas, assim como a utilização de pipes( | ), <, > e >>.
Veremos agora, a versatilidade e utilização dos comandos em ação:
1) Conectando-se a um host
É feita da mesma maneira que o
telnet. É especificado apenas um host e a porta a se conectar. Exemplos:
$ nc mail.yahoo.com.br 110
$ nc www.terra.com.br 80
Lembrando que a porta 110 é dos servidores de POP3 e a 80 é para web.
2) Abrindo uma porta (listenning)
É utilizada a sintaxe -l para colocar em listenning e -vv para retornar eco com detalhes. A seguir é estipulada a porta:
$ nc -l -p 53 -vv
Será retornada uma mensagem:
"listenning on [any] 53 ... "
3) Escaneando portas com o Netcat
Será feita uma tentativa de conexão à um IP ou host e será
estipulada as portas da tentativa de conexão:
$ nc -vv www.vivaolinux.com.br 110 80 139
$ nc -vv www.vivaolinux.com.br 1-10000
No primeiro exemplo serão escaneadas apenas as portas 110 (POP3), 80 (web) e 139 (compartilhamento do Windows).
Já no segundo exemplo serão escaneadas desde a porta 1 até a 10000.
4) Abrindo a porta, dando entrada para um "shell" (=Trojan)
Será colocada a porta X em listenning, redirecionaremos a
saída de dados para um shell (/bin/bash). Assim quando alguém
se conectar a essa porta terá domínio total sobre o computador.
Funciona de forma semelhante a um trojan.
$ nc -l -e /bin/bash -p 1033
5) Realizando um brute-force
Na página anterior eu já disponibilizei a sintaxe, ou seja, como se faz. Veja a sintaxe novamente:
$ nc -vv 79 < ~/wordlists.txt > bruteforce.log
Perceba, que conectaremos a porta do FINGER(79) e redirecionaremos
o conteúdo do arquivo wordlists.txt para essa porta. Quando algum
resultado for válido ele será salvo em bruteforce.log para uma
análise posterior dos resultados.
6) Fazendo um sniffer
Além de tudo isto demonstrado acima, o 'amazing' Netcat ainda
pode capturar todo o tráfego de uma rede. Eu acho que você já
sabe como fazer isso se observar os redirecionamentos
utilizados no exemplo anterior. Mas vamos lá.
Iremos nos conectar a uma porta e mandar o netcat "dar eco"
nela, ou seja, exibir TUDO o que passa por ela. Após isso, é só
redirecionar tudo o que o Netcat gravou para um arquivo. Veja
a sintaxe, para melhor compreensão:
$ nc -vv -L 127.0.0.1 -p 80 > ~/sniffer.log