UTILIZE A PESQUISA!

Netcat



O Netcat é uma ferramenta usada para ler e escrever dados em conexões de rede usando o protocolo TCP/IP. Dada sua grande versatilidade, o Netcat é considerado pelos hackers o canivete suíço do TCP/IP, podendo ser usado para fazer desde portscans até brute force.

O nome netcat vem do comando "cat" do Linux. O cat concatena arquivos e envia para a saída padrão (stdout). O netcat faz praticamente o mesmo, porém ao invés de concatenar arquivos, o netcat concatena sockets TCP e UDP.

Como o Netcat funciona

A princípio o Netcat foi lançado para ser um telnet aprimorado. Até então a única utilidade que ele teria seria se conectar a um host.

Porém, como o netcat pega os dados da entrada padrão (stdin) e envia pra outra ponta da conexão, que as escreve na saída padrão (stdout), é possível utilizar ele em conjunto com o shell pra fazer inúmeras coisas.

Por exemplo: na imagem do início do post, o que está sendo feito é um "telnet reverso", no qual, na máquina onde os comandos serão executados, cria-se um servidor com nc ouvindo na porta 1234 e tudo o que chegar no netcat é enviado para o bash, que processa o que chegar e envia para outro servidor netcat ouvindo na porta 5678. Qual a utilidade disso? Aparentemente nenhuma, pois o telnet e o ssh cumprem muito melhor essa função.
Mas o Netcat tem suas utilidades sim, e alguma serão citadas abaixo:

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 localhost -z 1-3000

Aqui serão escaneadas desde a porta 1 até a 10000.

Bruteforce com Netcat

O brute-force é o método de tentativa de obtenção de senhas utilizado quando um cliente se conecta a um host e tenta se logar, utilizando uma sequência de senhas que estão em um arquivo. Ou seja, se eu pegar o Netcat eu posso me CONECTAR ao host e com uma linha de comando, posso completar o comando com a comparação para obtenção das senhas.

$ nc -vv 79 < ~/wordlist.txt > nc_log.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 nc_log.log para que você possa analizar posteriormente.

Sniffer com Netcat

O Netcat pode capturar todo o tráfego de uma rede.

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 localhost 80 > ~/sniffer.log

Transferência de arquivos com Netcat

A vantagem de transferir arquivos usando o Netcat em relação à outros métodos é a velocidade. No entanto, desde que você queira somente transferir um único arquivo, ou uns poucos, o Netcat pode ser uma excelente solução para isso:

Primeiro vamos montar nosso servidor, que ficará esperando uma conexão e direcionaremos sua saída para um arquivo, que chamaremos de arquivo.zip

nc -l 1234 > arquivo.zip

Em seguida, vamos abrir uma conexão com nosso servidor, e direcionaremos um arquivo, por exemplo original.zip, para a entrada padrão desse cliente, da seguinte forma:

nc localhost 1234 < original.zip

Chat simples usando o Netcat

Para isso crie um servidor do netcat e abra uma conexão cliente para essa porta. O que você digitar de um lado, aparecerá do outro.

nc -l 1234

nc localhost 1234

Fazendo Spoof em servidores HTTP

Você pode usar o Netcat para se conectar a um servidor web usando cabeçalhos totalmente personalizados. Você pode adicionar quaisquer USER-AGENT, referer, ou qualquer outra informação de cabeçalho HTTP.

$ nc google.com 80
GET / HTTP/1.1
Host: google.com
User-Agent: Vindex
Referrer: http://tocadoelfo.blogspot.com
Aqui o exemplo do cabeçalho (não em sua totalidade):
HTTP/1.0 200 OK
Content-Type: text/html; charset=UTF-8
Last-Modified: Fri, 02 Jul 2010 21:02:58 GMT
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Expires: Fri, 02 Jul 2010 22:07:19 GMT
Date: Fri, 02 Jul 2010 22:07:19 GMT
Cache-Control: public, max-age=0, proxy-revalidate, must-revalidate
ETag: "73202059-b4d7-4150-bdb0-e42c3bbe0c0b"
Server: GSE
X-Cache: HIT from gw.ifto.edu.br
Via: 1.0 gw.ifto.edu.br (squid/3.0.STABLE16)
Proxy-Connection: close

Clonar partições via rede com o Netcat

Somenta faça isso se realmente souber o que esta fazendo e o que isso significa.

Primeiro, crie um servidor com o Netcat e redirecione a saída dele para o comando dd:

$ nc -l 1234 | dd of=/dev/sda

Em seguida, rode o dd, que vai fazer uma varredura no disco e enviar tudo para a entrada padrão (stdin) do netcat, que se conectará ao servidor previamente configurado:

$ dd if=/dev/sdb | nc localhost 1234

É claro, você precisará estar com os discos desmontados para que o comando funcione. Ha sugestão é usar um LiveCD nas máquina. Nesse nosso caso foi conectado à mesma máquina, mas nada impede que essa conexão se dê via rede ou mesmo via internet.

Criando um servidor web simples com o netcat

Essa técnica é interessante e mostra um pouco mais da interação do shell com o netcat:

$ while true; do nc -l 80 -q 1 < pagina.html; done

Esse comando roda o netcat infinitamente e a cada vez que ele roda, o arquivo pagina.html é enviado para o cliente, no nosso caso o browser, que você pode acessar com o endereço http://localhost

Fonte: Viva o Linux

Como criar uma rede Ad Hoc no Ubuntu

Ja estudamos sobre rede AD Hoc e como criar e configurá-la no Window 7.
Agora veremos como criar no Ubuntu. Retirado e adaptado de http://smash-se.blogspot.com/2009/01/necessidade-faz-o-nerd.html, se alguém se sentir prejudicado por direitos autorais, favor entrar em contato.
Obrigado.
___________________________________________
1) No terminal do Ubuntu digite: sudo apt-get install dnsmasq
___________________________________________
2) Edite o arquivo com de configuração com: "pico /etc/dnsmasq.conf" para que fique como abaixo:

no-resolv
server=200.169.118.22
server=200.169.117.22
interface=wlan0
interface=lo
listen-address=192.168.254.1
listen-address=127.0.0.1
domain=example.com
dhcp-range=192.168.254.50,192.168.254.150,12h
log-queries
log-dhcp
___________________________________________
OBS: Execute "sudo invoke-rc.d dnsmasq restart" após a edição
___________________________________________
3) Crie um script para estabelecer uma rede como no exemplo abaixo:

sudo ifconfig wlan0 down
sudo iwconfig wlan0 mode ad-hoc
sudo iwconfig wlan0 channel 6
sudo iwconfig wlan0 essid "home"
sudo iwconfig wlan0 key 1234567890
sudo ifconfig wlan0 up
sudo ifconfig wlan0 up 192.168.254.1
___________________________________________
OBS: no meu caso (autor deste tutorial) o chamei de "ad-hoc.sh", dei um "chmod 777 ad-hoc.sh" e executei com "sh ad-hoc.sh", como só usarei ele quando precisar, não vou colocar nenhuma configuração para execução automatica ou no arquivo "/etc/network/interfaces"
___________________________________________
4) vamos habilitar o packet forwarding editando com "sudo nano /etc/sysctl.conf" para substituir o valor da linha "net.ipv4.ip_forward=0" para "net.ipv4.ip_forward=1"
___________________________________________
5) crie um script para execução das regras de firewall para o compartilhamento como abaixo:

echo "ativando modulos"
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE
sleep 5
echo "ativacao dos modulos ok"
#
echo "limpando regras"
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -F -t nat
/sbin/iptables -X -t nat
/sbin/iptables -F -t mangle
/sbin/iptables -X -t mangle
sleep 5
echo "limpeza das regras ok"
#
echo "regra do dhcp"
/sbin/iptables -A INPUT -i wlan0 -p udp --sport 67:68 --dport 67:68 -j ACCEPT
sleep 5
echo "regra do dhcp ok"
#
echo "regra de mascara da rede"
/sbin/iptables -t nat -A POSTROUTING -s 192.168.254.0/24 -j MASQUERADE
sleep 5
echo "regra de mascara da rede ok"
#
echo "salvando as regras"
/sbin/iptables-save > /etc/network/iptables.rules
sleep 5
echo "salvando as regras ok"
___________________________________________