El 2016 como lo dije por Twitter es el año del Dino y no lo dije por jugar ni nada si no es porque este año que esta a la vuelta de la esquina lo tomaré por la cabeza para comenzar y seguir en el camino que elegi y gracias a cosas de la vida tengo el apoyo de RizelTane que no para de lanzarme las porras para luchar por lo que quiero, y como va el título al año para Abril a mas tardar estaré rindiendo el OSCP, asi que a partir de mañana 2 de Noviembre inicia el camino se que con las base de las entradas de @BalderramaEric tengo algo por donde empezar ademas del Syllabus que nos brindan los de Offensive y con algo de "busqueda" nos irá bien, por otra parte aun ando a la espera de que llegue el certificado del OSWP que hasta la fecha no hay novedad alguna toca esperar y ser paciente,  ademas de tener un listado de las tareas a realizar para ir mejorando muy aparte que ahora con OviWAM el tiempo se hizo mas corto, por cierto una vez que llegue el OSWP armaré el post comentando que pasos y como afrontar la certificación en base a mi experiencia. 

Regards, 
Snifer
Leer Mas


Esta utilidad que a mi parecer es bastante interesante y a la vez algo compleja debido a que necesita contar con algunos requisitos para su ejecución pero no esta demás brindarle esos requisitos para ejecutarlo, pero bueno Que es KeeFarce? es una herramienta que permite la extracción de los datos de Keepass Password 2.x desde la memoria, realizando un volcado completo  en un fichero CSV en %AppData% de toda la información que se tiene almacenada. 

Keepass es bastante usada actualmente  ya que permite recordar una contraseña y almacenar teniendo en cuenta que basta con tener la primera contraseña  y asunto solucionado pero con KeeFarce permite a un atacante volcar la información, veamos que tal facil es:

Primero descargamos del repositorio de GITHUB, cabe resaltar que post explotación de un equipo esto viene al pelo bastaría con subir los ficheros y ejecutarlo para obtener las contraseñas así que el ejemplo de uso lo veremos de manera local.

Como ven en la siguiente captura contamos con 3 ficheros DLL los cuales usa la herramienta para realizar el volcado en mi caso estoy usando la de 64 bits consideren que tienen el compilado para 32 bits tambien.


Una vez que lo tenemos nos dirigimos al directorio y basta con ejecutarlo para que la herramienta haga su magia. 



Como veran genera el fichero keepass_export.csv si lo ven tendran el volcado respectivo. 


La vi en la lista de la RootedCon excelente herramienta :D

Regards, 
Snifer
Leer Mas
Como en la entrada anterior vimos el proceso para poder explotar un stack buffer overflow a partir de un fuzzing sobre una pequeña aplicación desarrollada para el ejemplo, en ésta entrada realizaremos la explotación de un software real llamado SLMail v5.5.0.


Para este módulo necesitaremos descargar el SLMail sobre la máquina con Windows 7 que venimos utilizando, además el ollydbg (que ya lo vimos en la entrada anterior) y copiar el siguiente script en el Kali:

   

Por si lo quieres descargar, se tiene el repositorio de la serie en el GITHUB del blog, que estará todos los scripts de la serie que se desarrollen ;). GITHUB SNIFERL4BS

1- El mismo pueden crearlo ejecutando nano, vi, o su editor favorito con la extensión .py.
    (ej) nano pop3-fuzz.py


2- Una vez creado le damos permisos de ejecución.
    chmod 755 pop3-fuzz.py


3- Instalemos ahora en el windows 7 el SLMail por defecto dándole todo aceptar y siguiente, una vez que termine nos va a pedir reiniciar, reiniciamos.
Cuando volvió a levantar el windows, vamos a inicio->todos los programas->SL Productos->SLmail Configuration y lo ejecutamos como administrador. Vamos a la pestaña Control  para verificar que esté corriendo el servicio


4- Para corroborar que tenemos el servicio del POP3 corriendo podemos realizar dos cosas.
    A - Desde el cmd de windows ejecutar netstat
    B - Desde el kali correr un nc a la ip y puerto (como hemos visto anteriormente)

5- Si ya estamos seguros que tenemos el SLMail corriendo y el puerto 110 abierto, levantamos el Ollydbg como administrador en el windows y nos attacheamos al proceso SLMail  file->attach


6- Una vez realizado en attach el Ollydbg mantendrá pausado el SLMail, por eso damos click en el botón superior de play y veremos como cambia el mensaje en el extremo inferior derecho de ‘Paused’ a ‘Running’.


7- Vamos al kali y ejecutamos el script anteponiendo python + nombre del archivo


8- Vamos rápidamente al windows para ver como nuestro exploit comienza a llenar de peticiones con el string ‘A’ sobre el campo PASS el SLMail hasta que desborda el buffer y termina crasheando la aplicación mostrando un ‘Access violation when executing 41414141’ sobre el EIP (extended instruction pointed)


9- Nos paramos sobre el ESP, damos click secundario y elegimos ‘Follow in Dump’ veremos la dirección de memoria donde ha desbordado el buffer.   


Como siempre, cualquier duda o consulta, estamos por aquí.

Regards, @balderramaeric
Leer Mas

Soñando! se llega ;)
Hola a todos debieron notar un poco que la semana pasada y parte de esta estuve y ando aun algo perdido tanto en las redes sociales como en el blog la razón de ello, es que ando algo ajetreado con el trabajo y por las noches me puse a realizar algunas investigaciones y ordenar ideas para armar alguna charla, desarrollar alguna herramienta y lograr presentar en algun evento fuera de Bolivia, ya que recientemente por razones del destino no mande un paper que tenia listo sobre Burp Suite a la 8.8 Bolivia ni Chile, que le tengo ganas, ese documento que arme se quedará ahí fue por alguna razón de salud que no llego a salir sucede todo por algo.

Pero como les comentaba hasta el día de ayer andaba con varias ideas en mente hasta que salio una, que va tomando algo de forma con el objetivo de brindar una herramienta nueva, que permita seguir una metodología y realizar el análisis de manera correcta, de que ya lo verán solo espero y estimo que salga lo mas antes posible la idea completa la iré subiendo en un repositorio de GITHUB lo cual quisiera y desearía que colaboren los que gusten ya que la primera versión sera totalmente una base para continuar con la implementación tratare de no hacer un frankeinstein siguiendo y rigiendome en buenas prácticas, ya cuando tenga algo con forma y vida ire mostrando espero les agrade.

Andare estos dias retomando el ritmo del blog nuevamente ademas de iniciar o continuar alguna serie de entradas que deje a medias, espero que les agrade las nuevas ideas que vienen en el blog como el Ebook que anda en un 10% de Burp Suite este fin de semana lo termino para tenerlo la próxima semana!!

Aprendar a valorar el trabajo que hacen!!!!

Regards,
Snifer
Leer Mas
Hoy me pase trabajando como todos los días y en ese trajín al finalizar el dia me puse a buscar algun video en youtube donde di con una ponencia de Andres Tarasco miembro de Tarlogic si el mismo que presento el 2013 OWISAM que por cierto le tengo cuenta pendiente leer a mas detalle la metodologia, como comentaba en este video nos muestra como realizar un APT por medio de los puntos Wireless, honestamente me encanto ver lo que se puede hacer con una simple idea bastante interesante aun mas cuando es del año pasado y como ando empapandome mas con las redes inalámbricas vino al pelo escuchar la charla, les dejo con ella.



Regards,
Snifer
Leer Mas
En el siguiente módulo aprenderemos los conceptos básicos sobre el desbordamiento de buffer sobre el stack. Analizaremos en un principio un pequeño programa desarrollado en el lenguaje de programación C con el debugger ollydbg.



Acá esta el exe para que se descarguen, el código es el siguiente.


La idea de éste ejercicio es lograr que el pequeño programa nos muestre el string ‘you win!’, para eso, debemos lograr desbordar el buffer y escribir sobre la cookie. Como es un ejercicio de ejemplo, ya tenemos hardcodeado el valor de cookie (41424344) como así también los valores que tendremos que buscar en el debugguer cuando ejecutemos la aplicación.

Para el siguiente ejercicio es necesario que tengan instalado ollydbg. También nos será necesario un exploit para automatizar la explotación.
El siguiente ejemplo de exploit está hecho en python 2.6




Veamos entonces cómo terminar de armar nuestro exploit para lograr desbordar el buffer y obtener el string deseado.

1- Ejecutamos el .py y luego levantamos el olly atacheandonos al proceso del stack1.
Para attachear un proceso en el olly vamos a file -> attach  se abre una ventana y elegimos el programa.


Una vez attacheados, click en la letra E del panel superior y elegimos nuevamente el stack1.

Hacemos click derecho sobre el panel principal sSearch for -> All referenced text string  y buscamos el texto que tenemos como referencia que en éste caso es ‘you win!. ’Presionamos en play, vamos al programa hacemos click y volvemos al ollydbg para mirar los valores.


Como podemos visualizar en el panel derecho, el valor de EBX es 0022FEE0  y en el panel inferior derecho vemos que la posición posterior al return en kernel32 es 0022FF3C.
Entonces, debemos levantar restar al valor más grande el valor más chico en hexadecimal y así obtendremos el valor que debemos pasarle al buffer.


Vayamos a nuestro exploit y modifiquemos un poco el payload, necesitaremos importar la librería struct para poder pasar el valor que necesita cookie para mostrarnos el string.



Las 92 A son las necesarias para desbordar el tamaño del buffer (es el resultado de la cuenta que realizamos con los dos valores identificados en el ollydbg, nos queda 5C y si lo pasamos a decimal nos queda ese número). Luego llamamos el struct.pack, le indicamos que trabajaremos con little endian y el segundo parámetro es el valor de cookie.

Probemos entonces, cerremos todo, corremos nuevamente el .py, nos attacheamos con olly, click en E para elegir el módulo con el cual trabajaremos, presionamos play, vamos a la ventana donde se está ejecutando nuestro exploit, hacemos click, volvemos al ollydbg y damos F8 hasta que explote el payload y nos muestre el string la consola.


Ejercicios propuestos:

  •  Intentar reproducir el ejercicio sin la guia.

    Intenten realizar los ejercicios y brindarnos un feedback, es la única forma que tenemos de darnos cuenta si se entiende lo que vamos explicando, si pueden hacer los ejercicios o si tenemos que modificar algunas cosas.

Como siempre, cualquier duda o consulta, estamos por aquí.

Regards, @balderramaeric
Leer Mas
Llegamos a la fase de scanning de vulnerabilidades, en ésta lograremos descubrirlas e identificarlas mediante procesos automatizados. Existen herramientas presentes en kali para llevar a cabo esta etapa, algunas ejecutan un simple script para identificar una sola vulnerabilidad y otras corren miles de scripts para identificarlas.


Veremos dos opciones nmap y openvas, aunque existen muchas otras opciones como nessus o nexpose que tienen versiones community los cuales les recomiendo que se los bajen y los prueben ya que son muy interesantes, personalmente recomiendo nexpose de rapid7 y su integración con metasploit es alucinante.


Esquema:
    5- Escaneo de vulnerabilidades
        5.1 Nmap & nse
        5.2 Openvas

5.1 Nmap & nse.
Como ya hemos visto en el módulo anterior, nmap nos puede ser de gran utilidad para identificar el estado de los puertos y servicios asociados a ellos, pero además, gracias a los nse (Nmap Scripting Engine) podemos identificacar vulnerabilidades específicas.
Para conocer todas las posibilidades que nos brindan los nse podemos ir al directorio /usr/share/nmap/scripts. Si sólo queremos ver los que nos pueden servir para identificar la existencia de una vulnerabilidad específica podemos listar con el string *vuln*


Ejecutemos uno para corroborar si existen vulnerabilidades asociadas a smb sobre la virtual con windows.
    nmap -p 139, 445 --script=smb-check-vulns --script-args=unsafe=1 DirecciónIP    

-p: parámetro que recibe los puertos para que nmap analice.
--script: parámetro al cual se le pasa el script que se utilizará.
smb-check-vulns: nse para comprobar la existencia de vulnerabilidades en smb.
--script-args: espera que se le seten los argumentos.
unsafe=1: muestra en pantalla el resultado del argumento.

En este caso, la máquina sobre la que tiramos el análisis no posee ésta vulnerabilidad.
Probemos con otro nse para asimilar la estructura.

5.2 Openvas

Open  Vulnerability Assessment System es una herramienta de código libre para realizar análisis de vulnerabilidades sobre infraestructuras.
Para utilizar ésta herramienta primeros debemos configurarla. Tenemos dos maneras de realizarlo:

1-  Desde applications -> Kali Linux -> Vulnerability Analysis -> OpenVAS -> openvas initial setup


2- Pedirá que ingresemos la password del administrador.
3- Una vez que finaliza, abrimos el navegador y en ponemos https://127.0.0.1:9392/login

Otra manera, es desde una terminal ejecutar openevas-setup nos va a pedir que ingresemos un password para el administrador.

Tendremos que generar un nuevo usuario, openvas-adduser donde elegimos un nuevo usuario y password diferentes a los de administrador previamente configuradas. Volvemos a la terminal y ejecutamos gsd, logueamos y ya estamos dentro.

Ejercicios propuestos:

5.1 Nmap
  • De acuerdo a los servicios descubierto en la máquina virtual que estemos utilizando de víctima,  intentar identificar una vulnerabilidad utilizando los nse de nmap.
5.2 OpenVAS
  • Correr openvas sobre la misma máquina utilizada de víctima. ¿Cantidad de vulnerabilidades identificadas?
  • Probar la cantidad de vulnerabilidades detectadas comparando con otras herramientas (que no están en kali) como nessus o nexpose (al comienzo del post están las urls de ambos). ¿Diferencias? ¿Con cual se han sentido más cómodos?.

Como siempre, cualquier duda o consulta, estamos por aquí.

Regards, @balderramaeric
Leer Mas
Esta guía, libro, ebook, recopilación como gusten llamarla, fue realizada con el fin de tener una referencia y guía para el trabajo con la herramienta OWASP ZAP, la cual estuvimos viendo en el blog, por un tiempo quisimos tanto mi persona Snifer, como Eric el autor de las entradas brindar todo el material en uno solo, para tenerlo a mano y hacer uso del mismo. 


Esperamos que les agrade y sea de su gusto no se olviden si existe algún error o falla puedan notificarnos para mejorar, conforme vayamos mejorando, iremos actualizando el contenido hasta la presentación, ya en los próximos días saldra el de BurpSuite, y posterior a ello el de Pentesting con Kali, dar las gracias por todo a @BalderramaEric por animarse a escribir en este blog, que no es mas que un pedacito de internet, y bueno gracias a todos les dejo el link! pueden tenerlo en PDF, EPUB, MOBI y verlo ONLINE! así que no hay escusas para no tenerlo ;).


Regards,
Snifer


Leer Mas
Una vez realizada la fase de information gathering pasiva, podemos pasar a la fase activa para identificar servicios más específicos. En el siguiente módulo veremos técnicas de recolección de información disponibles en en kali linux y algunos scripts personalizados para tal fin.



A lo largo de este módulo, veremos algunos ejemplo prácticos para los cuales es recomendable contar con una máquina virtual windows xp o 7 nateada al igual que el kali como lo hicimos en la entrada de tools super esenciales

Permítanme realizar una aclaración, ésta fase, está contemplada en las jurisprudencias de algunos países como un delito, por lo tanto, cabe dejar claro que los ejemplos que aquí veremos serán llevados a cabo sobre plataformas preparadas y disponibles para la aplicación de éstas técnicas y todo lo que veremos en con fines puramente educativos.


Esquema:
    4- Active Information gathering:
        4.1 Enumeración de DNS
        4.2 Port scanning
        4.3 Enumeración de SMB
        4.4 Enumeración de SMTP y SNMP


4.1 Enumeración de DNS.
La enumeración de DNS nos puede proveer de mucha información valiosa, alguna pública, otra no tanto, servidores con su SO, direcciones IP, funcionalidades de los servidores, etc.

Identifiquemos entonces los name servers (ns) y los servidores de mail (mx) del target que venimos trabajando desde la entrada anterior.

1- Identificamos los ns.
    host -t -ns NombreDeDominio


Analicemos los comando y parámetros ejecutados.


host: ya lo vimos en la primer entrada
-t: tipo de identificación que debe hacer host
ns: parámetro que lee -t, en éste caso es para que host identifique los name servers.

2- Identificamos los mx:
    host -t mx NombreDeDominio


Analicemos el nuevo parámetro.

mx: parámetro que lee -t, en éste caso es para que host identifique los mail servers.

3- Si queremos identificar los dos al mismo tiempo juntamos las ejecuciones con &&
    host -t ns NombreDeDominio && host -t mx NombreDeDominio


4- Para identificar si existe un web server anteponemos www al nombre de dominio.
    host www.NombreDeDominio


5- Si deseamos identificar la presencia de un a ftp server.
    host ftp.NombreDeDominio




En el caso de que queramos buscar si hay un web server, ftp, owa, proxy, router tenemos la opción de utilizar && entre cada servicio a identificar o realizar un script que nos automatice la tarea.

Generemos un txt con los nombres de los servicios, para ésto podemos usar nano, vi o lo que deseen.
En éste ejemplo incluimos en el txt la siguiente lista: www, ftp, mail, owa, proxy, router

    for ip in $(cat list.txt); do host $ip.megacorpone.com; done


Ya que tenemos esta información, intentemos realizar una transferencia de zona, este proceso incluye la copia del archivo de zona desde un servidor DNS principal a un esclavo, esto se produce por una mala configuración de los servidores, exponiendo nombres direcciones y funciones de los servidores internos. Si podemos llevar a cabo una transferencia de zona, lograremos entender el diseño de la red. Veamos la forma de llevarlo a cabo.

1- Transferimos el dominio a un name server.
    host -l NombreDeDominio ns.NombreDeDominio

Intentemos la transferencia de zona con el ns1.

 

Falló, les quedará como tarea corroborar si con alguno de los otros ns logran realizarla.
Comenten que otros ns identificaron y con cual de ellos fue exitosa la transferencia.

En kali, tenemos herramientas para automatizar este proceso que hemos visto de forma manual.
   
DNSrecon


DNSenum


Sería interesante que puedan probar las dos herramientas contra este mismo dominio para que encuentren cuál de las dos les brinda mayor o mejor información y se ajusta más a sus gustos.
Podrían compartir su preferencia fundamentandola, sería enriquecedor para todos. Personalmente prefiero dnsenum, considero que recolecta mayor información y la muestra mejor parseada.


4.2 Port Scanning.

Mediante ésta técnica realizaremos el reconocimiento de los puertos TCP y UDP que están abiertos junto a sus servicios asociados sobre un host remoto.
A grandes rasgos, existen tres tipos de identificación de puertos abiertos:


    1- TCP: se realizan los tres pasos del handshake.
    2- SYN: igual al tcp pero sin emitir el último ACK.
    3- UDP: si no llega respuesta está abierto.


Ya hemos hablado algo sobre conexiones y handshakes en un post anterior.



NMAP:
Antes de iniciar con con ésta increíble herramienta, me gustaría que primero veamos el ruido y el tamaño del tráfico de red que genera. Con esto apunto a que es imprescindible saber qué vamos a buscar en un servidor antes de tirar un nmap url o zenmap con configuración por defecto. Levantamos la virtual con windows nateada.


1- Configuramos iptables en el kali para que acumule el tráfico de red hacia un host específico.
    iptables -I INPUT 1 -s DirecciónIP -j ACCEPT
iptables -I OUTPUT 1 -d DirecciónIP -j ACCEPT
iptables -Z


2- Lanzamos nmap
    nmap -sT DirecciónIP
3- Visualizamos el tráfico de red transmitido.
iptables -vn -L




¿Lo notan? Más de 0.5mb con un simple -sT a una sola IP analizando los mil puertos por defecto. Saquen sus propias conclusiones si se analizan los 65535 puertos de un rango 0/24.


Más adelante veremos sobre iptables, no lo detallaré en este momento, si les interesa interiorizarse en el tema, les dejo éste libro.


Veamo ahora la forma de hacer un ping sweep con nmap para cuando tenemos que analizar grandes segmentos de red con numerosos host, de ésta manera logramos eliminar los host que no están vivos y enfocarnos en los que sí lo están.


Sería ideal si pueden levantar más de una virtual para éste ejercicio, no importa el so, importa aumentar el número de hosts.Para el siguiente ejemplo he levantado algunas máquinas virtuales Hagamos entonces un ping sweeping para identificar host vivos en nuestra red 192.168.206.x (en sus virtuales probablemente sea diferente).


1- Analizamos el segmento para identificar host vivos y guardemos el resultado en un txt.
    nmap -sn DirecciónIP/Rango -oG NombreDeArcivo


2- Parseamos el output y lo guardamos en un nuevo  archivo.




3- Armamos un script que nos identifique los servicios y SO de cada uno de los host vivos.




Para conocer lo comandos ejecutados con nmap les recomiendo que corran un nmap -h  y que visiten este sitio.

4.3 Enumeración SMB.


El server message block (smb) es un protocolo que por defecto es abierto y sin autenticación que ha sido mejorado y perfeccionado a lo largo de los años.
Enumeremos rápidamente las versiones de smb y sus so windows asociados:
    smb1: Win 2000, xp y 2003.
    smb2: Win vista sp1 y 2008.
    smb2.1: Win 7 y 2008 R2
    smb3: Win 8 y 2012.


Podemos identificar este servicio que por defecto corre sobre los puertos 139 y 445.
Con nmap por ejemplo podes ejecutar los siguientes parámetros
    nmap -v -p 139, 445 DirecciónIP


Lo ejecutamos sobre la lista de host vivos identificados con el mismo script, al cual solo le modificamos los parámetros del nmap




Particularmente me interesa mi host 192.168.206.132 que es un win xp q en entradas posteriores explotaremos con el ms08-067




Dentro de kali, tenemos algunas herramientas para realizar esta tareas como por ejemplo ntbscan




Analicemos el segmento de red con esta herramienta.
    nbtscan -r DirecciónIP 0/24

















Otra de las herramientas disponibles en kali es enum4linux, veamos cómo funciona.




El parámetro -a noa sirve para realizar una enumeración de todo, ejecutemos esta tool contra nuestra virtual con windows.





Nmap posee gran cantidad de scripts para identificar vulnerabilidades en los cuales profundizaremos más adelante en la fase de descubrimiento de vulnerabilidades.
Algunos de los scripts que posee son para identificar smb, veamos entonces la manera de utilizarlo.
   
1- Identificamos los scripts disponibles para smb.
    ls /user/share/nmap/scripts/smb*




2- Probemos alguno de los scripts, por ejemplo el de smb-check-vulns.nse
    nmap -p 139, 445 --script=smb-os-discovery DirecciónIP




Veamos que son los parámetros que hemos pasado a nmap.


-p: para establecer los puertos que deseamos analizar, en éste caso son los 139 y 445 ya que ahí es donde corre smb generalmente.


--script: es el que define al nmap que se utilizará un script


smb-os-discovery: es el script que hemos elegido para que corra contra el host, en éste caso es para que realice un descubrimiento del sistema operativo, netbios y grupo.




4.4 Enumeración SMTP y SNMP.


Para realizar enumeraciones de smtp y snmp también podemos utilizar scripts de nmap, sólo es cuestión de buscarlos en el directorio /usr/share/nmap/scripts




Otra de las herramientas que ya hemos visto que nos puede ser de utilidad es netcat
    nc -nv DirecciónIP Puerto




En kali, tenemos snmpwalk para apoyarnos. Veamos cómo funciona




Ejercicios propuestos:


4.1 Enumeración de DNS
  • Buscar un sitio web que permita automatizar la enumeración de dns.
  • Buscar un sitio web que permita comprobar transferencias de zona.
Compartan ambos recursos en los comentarios.
    ¿Los resultados han sido mejores, iguales o peores que con las tools que hemos visto? ¿Diferencias?


4.2 Port scanning
  • Utilicen nmap para realizar un ping sweeping sobre megacorpone. ¿Qué host identificaron?
  • Identificar el puerto sobre el que corre el webserver, identificar qué es y el so sobre el que está corriendo.


4.3 Enumeración de SMB
  • Enumerar smb y comprobar con nmap si tiene vulnerabilidades (smb-check-vulns)


4.4 Enumeración de SMTP y SNMP
  • Enumerar ambos protocolos e identificar los puertos sobre los que corre.
  • Comprobar si el smtp es vulnerable al cve-2010-4344.
Leer Mas