CYBERLAB

    asn-search, herramienta de reconocimiento

    Recon

    Uno de los pasos en la fase de reconocimiento o colección de datos sobre un objetivo, es averiguar que IPs están asociadas con el mismo. Para ello, una forma muy usada es buscar los ASN asociados a éste, y a partir de ahí usar alguna herramienta a la que le podamos pasar dicha información y nos de las IPs asociadas.

    Una web que ofrece datos bastante precisos es Electric Hurricane . De ahí podemos sacar la lista de ASNs, volcarla a un fichero y luego mandar dicho fichero a alguna herramienta como nmap , amass , etc.

    Feb 26, 2020
    hackingseguridadcyberlab

    Controlando las puertas de un garaje con un ESP32 - Parte 3

    ESP32 - Relay - Sensor wiring

    *ESP32 - Relay - Sensor wiring*

    Ahora que ya tenemos nuestro ESP32 listo para el combate, es hora de instalarlo. Lo primero que debemos hacer es usar un servidor MQTT con algún tipo de autentificación. Hasta ahora todas las pruebas que hemos hecho han sido usando el servidor de pruebas de io.eclipse.org sin ningún tipo de autentificación. Esto significa, que si alguien averigua los canales que usas, podría abrir y cerrar las puertas de tu garaje. No bueno!

    Oct 6, 2018
    CyberlabESP32

    Controlando las puertas de un garaje con un ESP32 - Parte 2

    ESP32 - Relay - Sensor wiring

    *ESP32 - Relay - Sensor wiring*

    En esta segunda entrada de esta serie, veremos como conectar un par de interruptores magnéticos, uno para cada puerta, los cuales nos permitirán saber si las puertas están cerradas o no.

    En este caso, estoy usando este interruptor: https://www.adafruit.com/product/375 .

    El interruptor tiene dos cables, uno va a tierra (GND) y el otro a uno de los GPIO de nuestro micro controlador. En este caso uso los GPIOs 25 y 26 para las puertas izquierda y derecha respectivamente.

    Sep 21, 2018
    CyberlabESP32

    Controlando las puertas de un garaje con un ESP32 - Parte 1

    Garage

    *Garage*

    Hace cuatro años que cableé un Raspberry Pi con un relé de dos canales y un par de sensores, y lo conecté a las puertas de mi garaje. Aquí tenéis la entrada donde expliqué entonces este proyecto: https://www.cyberhades.com/2014/02/04/controlando-las-puertas-del-garaje-con-un-raspberry-pi/ .

    Este montaje con el tiempo sufrió algunos cambios, como: el uso de un servidor MQTT ( mosquitto ), una aplicación Android nativa, e incluso una aplicación para mi viejo relog Pebble. Nunca escribí sobre ello, pero aquí podéis ver un vídeo dónde uso el reloj para abrir la puerta del garaje (como podéis ver la casa es también distinta, he sufrido varias mudanzas desde entonces):

    Sep 20, 2018
    CyberlabESP32IoT

    Proyectos IoT con Raspeberry Pi en contenedores Docker

    DockerARM.png

    Con anterioridad hemos publicado varias entradas dedicadas a proyectos con Raspberry Pi. Dependiendo del proyecto en si y la tecnología que uses, normalmente tienes que instalar ciertas dependencias y/o servicios. Y si por el motivo que sea necesitas tener diferentes versiones de dichas tecnologías, por ejemplo distintas versiones de ruby, python, etc aquello se puede convertir en un pequeño infierno. Para evitar este posible lío y poder fácilmente instalar tus proyectos de forma automática y sencilla, Docker es un perfecto candidato.

    May 23, 2016
    ProgramaciónHardwareHackingGadgets

    Mi show de luces y música de Navidad con Raspberry Pi

    20151212_141833.jpg

    En otro de mis proyectos “juguete” con Raspberry Pi, le di un poco de vida a las luces de esta pasada Navidad y añadí música y sincronización entre estas.

    Había querido publicar esta entrada por la época navideña, pero el tiempo no me lo permitió.

    Este proyecto es realmente sencillo, ya que vamos a usar lightshow, un proyecto que nos va  a proporcionar la sincronización entre las luces y la música, así que todo el trabajo realmente está en el cableado de nuestros componentes.

    Jan 18, 2016
    GadgetsHardwareCyberlabLinux

    Termómetro para barbacoa, ahumador, horno... con Raspberry Pi

    20150420_215837.jpg

    Hace un par de fin de semanas que quedé con un amigo para ahumar unas costillas y solomillos. El proceso de ahumar, para mi sorpresa es más laborioso y delicado de lo que pensaba. Una de las claves de dicho proceso es la temperatura.

    El ahumador de este amigo mío, por supuesto tenía un termómetro, pero dejó de funcionar aquel día, así que tuvimos que estimar la potencia del mismo, y así salíó la carne :p

    Apr 21, 2015
    CyberlabHackingLinux

    Asignando IP estática al adaptador inalámbrico de tu Raspberry Pi

    rpi_static_ip.png

    Cada vez que juego con un Raspberry Pi, el resultado final suele ser conectar algún sensor y exponer los datos del mismo a través de algún servicio REST. Esto implica que el RPi es instalado en mi red en modo servidor, al cual le mando peticiones y recibo respuestas.

    Por defecto, cuando instalas el sistema operativo (Raspbian en mi caso), la configuración del adaptador inalámbrico es trivial, pero se configura en modo DHCP, es decir, el router asigna la IP de forma dinámica. Normalmente, te asigna la misma IP siempre, pero no se garantiza.

    Apr 20, 2015
    LinuxCyberlab

    Controlando las puertas del garaje con un Raspberry Pi

    2014-02-02_13-48-45_462.jpg

    En esta entrada os voy a detallar un pequeño proyecto en el que trabajé la semana pasada aprovechando la helada que tuvimos.

    El proyecto consiste en poder abrir y cerrar las puertas del garaje de forma remota, así como saber el estado (abierta o cerrada) de cada una de las puertas. En mi caso, hablo de puertas en plural porque como podéis ver en la foto que encabeza esta entrada mi garaje tiene dos puertas. El proyecto es perfectamente válido para garajes de una o más de dos puertas.

    Feb 4, 2014
    HackingCyberlab

    No cON Name CTF Pre Quals: Access Level 3

    Selection_003.png

    En este tercer y último reto nos enfrentamos a un fichero ELF. Este nivel fue el más fácil de los tres. Como veremos es súper sencillo.

    Una vez bajamos el binario, lo primero es ejecutar file:

    tuxotron@tuxotron-T530 ~/ctf/noconname2013quals $ file level.elf level.elf: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xb589d432799bf15343387fea63d4bdc00faa177c, not stripped

    Está compilado con símbolos y demás. Esto nos facilitará mucho la vida. Lo siguiente fue pasarle el comando strings, pero éste no arrojaba nada interesante.

    Oct 2, 2013
    HackingCyberlab

    No cON Name CTF Pre Quals: Access Level 2

    Selection_004.png

    En el segundo nivel nos enfrentamos a una aplicación Android. Lo primero que hacemos aquí es expandir el .apk con la herramienta apktool.

    Primero miramos el contenido del fichero AndroidManifest.xml, donde podemos ver la clase inicial de la aplicacion:

    También nos encontramos en el directorio res con un subdirectorio llamado raw, el cual contiene 17 imágenes, 16 de las mismas parecen ser trozos de un QR-Code. Parece que nuestro objetivo es leer dicho código. El problema es que no sabemos el orden de los trozos.

    Oct 2, 2013
    AndroidCyberlabHacking

    No cON Name CTF Pre Quals: Access Level 1

    level1.png

    En el primer nivel o el primer reto de la Pre Qual del CTF de la NoConName , nos encontramos con una página en la que se nos pide un clave (Key). Cuando introducimos algún texto, inmediatamente nos muestra un mensaje: Invalid Password! (a menos que hayas introducido una clave válida en el primer intento, lo cual me sorprendería :)).

    Lo primero que podemos apreciar es que el mensaje viene de la típica ventana que muestra el navegador cuando se ejecuta un alert en javascript. Esto nos dice que la comprobación de la contraseña se hace (al menos parte de la misma) en el lado del cliente, es decir en nuestro navegador.

    Oct 1, 2013
    HackingCyberlab

    Análisis rápido de los ficheros maliciosos encontrados en Cyberhades

    index.jpeg

    Como prometía ayer en la entrada donde os contaba la incidencia en el blog, os comento en esta entrada el pequeño y rápido análisis de unos de los ficheros: bergpfh.php. El otro fichero es básicamente igual que éste, pero con un par de pequeños cambios, así que sólo hablaremos del primero.

    Como os comentaba, los ficheros están ofuscados, aquí podéis ver el código original:

    Para de-ofuscar (o llámalo como quieras) el fichero eché de mano de un poco de Ruby. Para los curiosos, aquí tenéis el código del script tal y como lo dejé, o sea, hecho una porquería:

    Jul 28, 2013
    CyberlabCyberHadesSeguridadHacking

    Incidente en Cyberhades

    cyberhades.jpeg

    El pasado día 22 por la noche, hora costa este norteamericana, recibimos un correo de uno de los lectores (gracias Diego) del advirtiéndonos que el blog (cyberhades) aparecía, según Google, clasificado como un sitio web potencialmente peligroso porque podría contener software malicioso, también conocido como malware. Efectivamente cuando accedí al blog esto es lo que me aparecía:

    firefox_malware.png

    Captura de pantalla con Firefox

    Si accedía con Google Chrome encontraba con la siguiente pantalla: chrome_malware.png

    Lo intenté desde IE7 desde un Windows XP SP3 que tengo virtualizado, pero este no me daba ningún tipo de aviso.

    Jul 27, 2013
    CyberHadesSeguridadHackingCyberlab

    Voltron + tmux == GDB Sexy

    paneles3.png

    Cuando hablamos de desensamblar un binario en sistemas Linux, BSD o Macs, el depurador de facto es GDB o GNU Debugger. Sí, tenemos otras opciones como IDA Pro o Hopper, pero ambas son comerciales, la primera te cuesta un riñón y a menos que te ganes la vida con ello no la veo muy rentable y la segunda, aunque apunta alto y es barata, todavía está un poco inmadura.

    Si usas GDB de vez en cuando, ya conocerás el famoso fichero de configuración (.gdbinit) de reverse.put.as, que hace la interfaz del depurador mucha más amena, pero se echa de menos una interfaz un poco más completa, algo así como Ollygdb o ImmunityDebugger, algo que nos permita ver el código que estamos ejecutando, la pila, los registros, memoria, etc. Todo en a la vez en la misma pantalla.

    Jul 12, 2013
    CyberlabLinuxProgramación

    Exponiendo nuestro sensor de temperatura y humedad

    2013-04-08_21-26-18_738.jpg

    En el último artículo dónde hablamos como construir un monitor de temperatura y humedad con tu Raspberry Pi, os dimos algunas ideas de que hacer con él y al final de dicha entrada os comentamos que habría una segunda entrada en la que veríamos como exponer los datos del sensor en nuestra red.

    Si todas tus necesidades de monitorizar la temperatura y/o humedad están cubiertas con un simple trabajo cron, perfecto, tu Raspberry Pi posiblemente te será suficiente, pero si tus necesidades van más aĺlá, quizás necesites un sistema un poco más potente.

    Apr 14, 2013
    CyberlabProgramaciónHackingGadgets

    Monitor de temperatura y humedad con Raspberry Pi

    2013-04-08_21-26-18_738.jpg

    Otro de los proyectitos con los que estuve jugando hace algún tiempo, pero que nunca tuve la oportunidad de compartir en el blog, fue un monitor de temperatura y humedad con Raspberry Pi.

    La idea es muy sencilla. Es el poder saber la temperatura y humedad que hace en una habitación (o donde se encuentre nuestro Raspberry Pi) en todo momento.

    Para este proyecto, además de un Raspberry Pi con su conector de corriente y tu tarjeta con Raspbian, usé este sensor. Este sensor tiene una precisión bastante buena:

    Apr 9, 2013
    HardwareCyberlabGadgets

    Nueva sección CyberHades: Cyberlab

    cyberlab

    Hemos creado una nueva sección llamada Cyberlab donde iremos agrupando nuestras experiencias con varios de los aparatitos/hardware/hacking que tenemos entre tuxotron y yo (Raspberry Pi, LEGO Mindstorm y el lenguaje leJOS, retos hacking, etc), en formato de prácticas de laboratorio. De momento ya tenemos las primeras prueba de tuxotron con el Raspberry Pi.

    No os prometemos una regularidad en la publicación pero os aseguramos que todo lo que hagamos con nuestro hardware actual y futuro así como otros proyectos prácticos  los iremos catalogando en esta sección.

    Feb 24, 2013
    HackingGadgetsRecursos InformáticaRedes

    Raspberry Pi, interactuando con GPIO desde la línea de comandos

    2013-01-12_23-14-50_804.jpg

    En esta nueva entrada vamos a hablar un poco del GPIO y como podemos interactuar con el hardware de nuestro dispositivo a través del sistema.

    Como ya hemos comentado anteriormente, el sistema elegido por los ingenieros que crearon Raspberry Pi fue Linux. Inicialmente la “distribución por defecto” era simple y llanamente Debian Wheezy. Digo por defecto porque era la recomendada por la fundación Raspberry Pi, no porque viniera con el dispositivo. De hecho el dispositivo, a menos que compres algún tipo de “pack”, viene pelado, es decir, no viene con ningún tipo de cable, carcasa o tarjeta de memoria.

    Jan 18, 2013
    CyberlabLinuxHardware

    CTF #nullcon 2012: Análisis Forense 2

    nullcon1.jpg

    En este reto nos dan un documento word (Passport_Number.doc) y nos piden que encontremos un número de pasaporte que anda oculto dentro de dicho documento.

    tuxotron@tuxotron-laptop:~/temp/nullcon$ file Passport_Number.doc 
    Passport_Number.doc: CDF V2 Document, Little Endian, Os: Windows, Version 6.1, Code page: 1252, Author: Me, Template: Normal.dotm, Last Saved By: Me, Revision Number: 2, Name of Creating Application: Microsoft Office Word, Create Time/Date: Sat Dec 31 18:38:00 2011, Last Saved Time/Date: Sat Dec 31 18:38:00 2011, Number of Pages: 1, Number of Words: 4, Number of Characters: 27, Security: 0

    El comando file nos dice que es un fichero Microsoft Word. Cuando lo abrimos nos encontramos con esto:

    Feb 6, 2012
    HackingCyberlabSeguridad

    CTF #nullcon 2012: Análisis Forense 1

    nullcon1.jpg

    En el primer nivel de esta categoría lo que nos dan es un archivo RAR y nos piden encontrar el código oculto.

    Cuando descomprimimos el archivo, nos encontramos con un fichero .wav. Lo abrimos con un reproductor de audio y escuchamos música, pero de vez en cuando por uno de los canales se escucha un pequeño corte.

    Echemos mano de Audacity y abramos dicho fichero. Nos encontramos con:

    Feb 5, 2012
    HackingSeguridadCyberlab

    CTF #nullcon 2012: Crypto 2

    nullcon1.jpg

    En esta prueba nos daban un enlace ( http://www.nullcon.net//challenge/data/shhhkoinahihai) . Cuando abrías dicho enlace no se veía nada, todo blanco y lo mismo si miramos el código fuente de la página.

    Nos bajamos el fichero, lo abrimos con un editor de textos y nada, todo blanco, pero sí que te podías mover por el contenido del fichero. Pero si lo abrimos con un editor hexadecimal:

    Selection_001.png

    Vemos que lo que contiene son el carácter 20h (espacio) y el 09h (tabulador). Mi primera idea fue convertir los tabuladores en guiones y los espacios en puntos, para así tener algún tipo de código morse, pero no me llevó a ningún sitio.

    Feb 3, 2012
    CyberlabHackingSeguridad

    CTF #nullcon 2012: Crypto 1

    nullcon1.jpg

    En la primera prueba sobre criptografía nos dan una cadena de texto cifrada, cuyo texto en claro en nuestro flag.

    El texto era el siguiente:

    Oexjwok -333 lauiljt bwxylexk hilyruik krbf lk yfi frzlx jekbeqaexi bwzqwxixy. ofiui yfi QB blx kixj lx iaibyueb kfwbs yfuwrgf yfi sitcwluj eh yfi frzlx jwik kwziyfexg yfly jwik xwy qailki Oexjwok, 2 Ceaa Glyik

    Para esta prueba, al menos cuando yo empecé a hacerla, teníamos una pista: poiuy y además si miramos el código de la página, vemos:

    Feb 3, 2012
    HackingSeguridadCyberlab

    CTF #nullcon 2012: Ingeniería inversa 1

    nullcon1.jpg

    Esta prueba consistía pues en lo típico, nos dan un binario y busca el flag. :/

    Voy a intentar explicar lo que hice, pero como no estoy seguro si se va a entender muy bien, ya verás porque lo digo, también he grabado un pequeño vídeo de demostración.

    El binario que nos dan después de ejecutar el prólogo (file y strings :) ), vemos que es un binario de Windows. Cuando lo ejecutamos, vemos que abre al menú de inicio, run (ejecutar) y escribe: wmplayer.exe y lo ejecuta, es decir, que también manda la tecla intro (enter).

    Feb 2, 2012
    CyberlabVarios

    CTF #nullcon 2012: Web 5

    nullcon1.jpg

    En la quinta y última prueba de esta categoría nos encontramos con:

    Do You Have What IT Takes to Break into the World’s Most Secure Login System?

    El sistema más seguro del Login del mundo. Cuando vamos a la página de Login nos encontramos con:

    Selection_004.png

    Y aunque en esta prueba no nos dan ninguna pista en el código de la página, si que nos la dan en el nombre de la “empresa” que creó esta pantalla de Login: MERASEQUEL. Automáticamente asumí de que se trataba de una inyección de SQL.

    Feb 1, 2012
    CyberlabSeguridadHacking

    CTF #nullcon 2012: Web 4

    nullcon1.jpg

    En esta prueba hice el primo por un buen rato. La pregunta que nos hacían:

    Can You Get Me all the Data?

    Y nos daban un par de enlaces 2007 ( http://www.nullcon.net//challenge/wlevel-4-data.asp?input=2007 ) y 2002 ( http://www.nullcon.net//challenge/wlevel-4-data.asp?input=2002) .

    Si pulsamos sobre el 2007 nos aparece:

    DR. A.P.J. Abdul Kalam 25 July 2002 TO 25 July 2007

    Volvemos atrás y pulsamos sobre 2002

    Shri K. R. Narayanan 25 July 1997 TO 25 July 2002

    Feb 1, 2012
    SeguridadHackingCyberlab

    CTF #nullcon 2012: Web 3

    nullcon1.jpg

    En este nivel, además de una página para introducir el flag, se nos presentan otras dos páginas más: un para hacer login y la otra para registrarte.

    En la página de login, se nos pide lo típico un nombre de usuario y una contraseña. Como no tenemos ninguna cuenta, vayamos a crearnos una.

    Selection_001.png

    Una vez introducimos la información y nos registramos, como de costumbre (esto lo hacía cada vez que ejecutaba alguna acción) miramos el código de la página web y nos encontramos con esto:

    Jan 31, 2012
    HackingCyberlabSeguridad

    CTF #nullcon 2012: Web 1

    nullcon1.jpg

    Bueno empecemos con las pruebas Web. La primera prueba con la que nos encontramos nos pregunta:

    Can you view the bytes in password.asp from Me?

    Donde, Me es un enalace a http://www.nullcon.net//challenge/wlevel-1-proc.asp?input=test.txt .

    Después de jugar un rato con el parámetro input, por el irc dieron una pista a la que hacía referencia al nombre que organizaba el evento: nullcon. Así que el resto de mis pruebas las basé en la inyección del carácter nulo (%00) en el url. Y después de poner dicho carácter en varios lugares, dí con esta url que nos pasaba de nivel:

    Jan 30, 2012
    HackingSeguridadCyberlab

    CTF #nullcon 2012: Programación 5

    nullcon1.jpg

    Bueno llegamos a la quinta prueba de la categoría y que como veremos no tiene nada de programación, a menos que te quieras crear tu propio crackeador de MD5.

    La prueba consistía en lo siguiente: tenemos una página dónde introducimos cualquier texto y nos devolvía un hash. Si miramos el código fuente de dicha página una vez nos ha dado el hash, encontramos una pista:

    Es decir, password en este case es el texto que nosotros introducimos, a éste se le añade un texto que no conocemos (salt) y se calcula el MD5. Nuestro objetivo es averiguar dicha salt.

    Jan 30, 2012
    CyberlabProgramaciónHacking

    CTF #nullcon 2012: Programación 4

    nullcon1.jpg

    En este reto nos encontramos con un problema de sustitución.

    Estos son los datos que se nos dan:

    Ciphertext:
    06 15 21 20 05 05 14 00 14 09 14 05 00 06 15 21 20 05 05 14 00 06 09 22 05 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 19 09 24 00 14 09 14 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 26 05 18 15 00 19 09 24 00 06 09 06 20 05 05 14 00 20 23 05 14 20 25 15 14 05 00 05 09 07 20 05 05 14 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 20 23 05 14 20 25 00 20 23 05 14 20 25 06 09 22 05 00 06 09 06 20 05 05 14 00 06 15 21 20 05 05 14 00 06 09 22 05 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 20 23 05 12 22 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 26 05 18 15 00 19 09 24 00 14 09 14 05 00 19 09 24 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 20 23 05 14 20 25 00 20 23 05 14 20 25 06 09 22 05 00 06 09 06 20 05 05 14 00 06 15 21 20 05 05 14 00 06 09 22 05 00 26 05 18 15 00 06 15 21 20 05 05 14 00 14 09 14 05 00 06 15 21 20 05 05 14 00 06 09 22 05 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 20 23 05 12 22 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 20 23 05 14 20 25 00 20 23 05 14 20 25 06 09 22 05 00 19 09 24 00 14 09 14 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 26 05 18 15 00 20 23 05 14 20 25 19 09 24 00 06 09 22 05 00 05 09 07 20 05 05 14 00 06 09 06 20 05 05 14 00 26 05 18 15 00 19 09 24 00 14 09 14 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 26 05 18 15 00 06 15 21 20 05 05 14 00 14 09 14 05 00 06 15 21 20 05 05 14 00 06 09 22 05 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 20 23 05 14 20 25 00 05 09 07 08 20 00 05 09 07 20 05 05 14 00 06 09 22 05 00 06 09 22 05 00 26 05 18 15 00 06 09 22 05 00 14 09 14 05 00 19 05 22 05 14 00 05 09 07 08 20 00 20 23 05 14 20 25 00 26 05 18 15 00 19 09 24 00 14 09 14 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 20 23 05 14 20 25 00 20 23 05 14 20 25 06 09 22 05 00 20 23 05 14 20 25 00 05 09 07 08 20 00 05 09 07 20 05 05 14 00 06 09 22 05 00 06 09 22 05 00 26 05 18 15 00 20 23 05 14 20 25 19 09 24 00 06 09 22 05 00 05 09 07 20 05 05 14 00 06 09 06 20 05 05 14 00 26 05 18 15 00 19 09 24 00 14 09 14 05 00 19 09 24 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 06 20 05 05 14 00 26 05 18 15 00 14 09 14 05 20 05 05 14 00 14 09 14 05 00 20 23 05 14 20 25 06 15 21 18 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 20 23 05 14 20 25 00 20 23 05 14 20 25 06 09 22 05 00 06 09 06 20 05 05 14 00 06 15 21 20 05 05 14 00 06 09 22 05 00 26 05 18 15 00 06 15 21 20 05 05 14 00 14 09 14 05 00 06 15 21 20 05 05 14 00 06 09 22 05 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 20 23 05 14 20 25 00 05 09 07 08 20 00 05 09 07 20 05 05 14 00 06 09 22 05 00 06 09 22 05 00 26 05 18 15 00 06 09 06 20 05 05 14 00 06 15 21 20 05 05 14 00 06 09 22 05 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 20 23 05 14 20 25 00 20 23 05 14 20 25 06 09 22 05 00 26 05 18 15 00 19 09 24 00 14 09 14 05 00 19 09 24 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 06 09 22 05 00 14 09 14 05 00 19 05 22 05 14 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 20 23 05 14 20 25 00 20 23 05 14 20 25 06 09 22 05 00 19 09 24 00 14 09 14 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 26 05 18 15 00 20 23 05 14 20 25 19 09 24 00 06 09 22 05 00 05 09 07 20 05 05 14 00 06 09 06 20 05 05 14 00 26 05 18 15 00 06 09 22 05 00 14 09 14 05 00 19 05 22 05 14 00 05 09 07 08 20 00 20 23 05 14 20 25 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 20 23 05 14 20 25 00 20 23 05 14 20 25 06 09 22 05 00 19 09 24 00 14 09 14 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 26 05 18 15 00 14 09 14 05 20 05 05 14 00 14 09 14 05 00 20 23 05 14 20 25 06 15 21 18 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 19 09 24 00 14 09 14 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 26 05 18 15 00 06 09 22 05 00 14 09 14 05 00 19 05 22 05 14 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 20 23 05 14 20 25 00 20 23 05 14 20 25 06 09 22 05 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 06 20 05 05 14 00 26 05 18 15 00 19 09 24 00 14 09 14 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 26 05 18 15 00 06 09 22 05 00 14 09 14 05 00 19 05 22 05 14 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 06 20 05 05 14 00 26 05 18 15 00 19 09 24 00 14 09 14 05 00 19 09 24 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 06 15 21 20 05 05 14 00 14 09 14 05 00 06 15 21 20 05 05 14 00 06 09 22 05 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 06 15 21 20 05 05 14 00 14 09 14 05 00 06 15 21 20 05 05 14 00 06 09 22 05 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 20 23 05 14 20 25 00 20 23 05 14 20 25 06 09 22 05 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 20 23 05 14 20 25 00 20 23 05 14 20 25 06 09 22 05 00 19 09 24 00 14 09 14 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 26 05 18 15 00 20 23 05 14 20 25 19 09 24 00 06 09 22 05 00 05 09 07 20 05 05 14 00 06 09 06 20 05 05 14 00 26 05 18 15 00 06 09 06 20 05 05 14 00 06 15 21 20 05 05 14 00 06 09 22 05 00 26 05 18 15 00 19 09 24 00 06 09 06 20 05 05 14 00 20 23 05 14 20 25 15 14 05 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 19 09 24 00 06 09 06 20 05 05 14 00 20 23 05 14 20 25 15 14 05 00 05 09 07 20 05 05 14 00 26 05 18 15 00 20 23 05 14 20 25 19 09 24 00 06 09 22 05 00 05 09 07 20 05 05 14 00 06 09 06 20 05 05 14 00 26 05 18 15 00 14 09 14 05 20 05 05 14 00 14 09 14 05 00 20 23 05 14 20 25 06 15 21 18 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 06 09 22 05 00 14 09 14 05 00 19 05 22 05 14 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 19 09 24 00 14 09 14 05 00 19 09 24 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 20 23 05 12 22 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 26 05 18 15 00 06 15 21 20 05 05 14 00 14 09 14 05 00 06 15 21 20 05 05 14 00 06 09 22 05 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 20 23 05 14 20 25 00 20 23 05 14 20 25 06 09 22 05 00 19 09 24 00 06 09 06 20 05 05 14 00 20 23 05 14 20 25 15 14 05 00 05 09 07 20 05 05 14 00 26 05 18 15 00 06 15 21 20 05 05 14 00 14 09 14 05 00 06 15 21 20 05 05 14 00 06 09 22 05 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 20 23 05 14 20 25 00 20 23 05 14 20 25 06 09 22 05 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 20 23 05 14 20 25 00 20 23 05 14 20 25 06 09 22 05 00 19 09 24 00 14 09 14 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 26 05 18 15 00 20 23 05 14 20 25 19 09 24 00 06 09 22 05 00 05 09 07 20 05 05 14 00 06 09 06 20 05 05 14 00 26 05 18 15 00 20 23 05 14 20 25 00 05 09 07 08 20 00 14 09 14 05 00 05 09 07 20 05 05 14 00 20 23 05 14 20 25 00 20 23 05 14 20 25 06 09 22 05 00 06 09 22 05 00 14 09 14 05 00 19 05 22 05 14 00 05 09 07 08 20 00 20 23 05 14 20 25 00 26 05 18 15 00 20 23 05 14 20 25 00 05 09 07 08 20 00 14 09 14 05 00 05 09 07 20 05 05 14 00 20 23 05 14 20 25 00 20 23 05 14 20 25 06 09 22 05 00 19 09 24 00 06 09 06 20 05 05 14 00 20 23 05 14 20 25 15 14 05 00 05 09 07 20 05 05 14 00 26 05 18 15 00 20 23 05 14 20 25 19 09 24 00 06 09 22 05 00 05 09 07 20 05 05 14 00 06 09 06 20 05 05 14 00 26 05 18 15 00 06 09 22 05 00 14 09 14 05 00 19 05 22 05 14 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 19 09 24 00 14 09 14 05 00 19 09 24 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 19 09 24 00 14 09 14 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 26 05 18 15 00 19 09 24 00 06 09 06 20 05 05 14 00 20 23 05 14 20 25 15 14 05 00 05 09 07 20 05 05 14 00 26 05 18 15 00 20 23 05 14 20 25 00 20 23 05 14 20 25 20 08 18 05 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 20 23 05 14 20 25 00 20 23 05 14 20 25 06 09 22 05 00 19 09 24 00 14 09 14 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 26 05 18 15 00 20 23 05 14 20 25 19 09 24 00 06 09 22 05 00 05 09 07 20 05 05 14 00 06 09 06 20 05 05 14 00 26 05 18 15 00 14 09 14 05 20 05 05 14 00 06 09 22 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 06 09 22 05 00 14 09 14 05 00 19 05 22 05 14 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14 00 26 05 18 15 00 19 09 24 00 14 09 14 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 26 05 18 15 00 19 09 24 00 14 09 14 05 00 20 23 05 14 20 25 20 23 15 00 06 09 22 05 00 26 05 18 15 00 19 09 24 00 06 09 06 20 05 05 14 00 20 23 05 14 20 25 15 14 05 00 20 23 05 14 20 25 00 06 09 22 05 00 06 09 22 05 00 06 15 21 20 05 05 14
    
    How we Obfuscated:
    
    Plain Text = nullcon
    After charset Substitution = 14 21 12 12 03 15 14
    Literal Substitution = fouteen twentyone twelve twelve three fifteen fouteen
    After charset Substitution = 06 15 21 20 05 05 14 00 20 23 05 14 20 25 15 14 05 00 20 23 05 12 22 05 00 20 23 05 12 22 05 00 20 08 18 05 05 00 06 09 06 20 05 05 14 00 06 15 21 20 05 05 14
    
    charset = 00 means " ",  01 = "a", 02="b".... 26="z", 30 = "0", 31="1" .... 39="9"
    
    Reiterate till you find meaning text
    

    Tenemos el texto a descifrar (primer bloque de datos), luego tenemos el método usado para cifrar dicho texto y por último tenemos la correspondencia de caractares. Y dice que iteremos hasta encontrar un texto con sentido.

    Jan 30, 2012
    ProgramaciónHackingCyberlab

    CTF #nullcon 2012: Programación 3

    nullcon1.jpg

    En el tercer nivel nos encontramos con un trozo de código escrito en Brainfuck, un lenguaje un tanto peculiar y que claramente hace honor a su nombre. Algún le dedicaré una entrada en el blog.

    El código con en el que tenemos que lidiar es este:

    >+++++++[<+++++++>-]<---
    .
    .
    >+++++[<+++++>-]<++
    >++++++[<++++++>-]<+
    >+++++++++[<--------->-]<+++
    >++++++++[<++++++++>-]<++++++
    >++[<-->-]<-
    ++
    >++++[<++++>-]<+
    >++++++++[<-------->-]<--------
    >+++[<--->-]<---
    >+++++++++[<+++++++++>-]<---
    >+++[<--->-]<
    >++++[<++++>-]<+
    >++++[<---->-]<-
    >++++[<++++>-]<---
    >+++++++++[<--------->-]<-
    >++++++++[<++++++++>-]<+++++
    >++++[<++++>-]<+
    >++++[<---->-]<-
    >++++[<++++>-]<---
    >+++++++++[<--------->-]<-
    >+++++++++[<+++++++++>-]<++++
    --
    >++++[<---->-]<++
    >++++++++[<-------->-]<-----
    >++++++++[<++++++++>-]<+++++++
    --
    >++++[<++++>-]<-
    -
    >+++++++++[<--------->-]<++++++
    +
    >+++[<--->-]<
    >+++++++++[<+++++++++>-]<--
    +++
    >+++++++++[<--------->-]<-
    >+++++++++[<+++++++++>-]<++
    ---
    ++
    >+++[<--->-]<
    >++[<++>-]<+
    >++[<++>-]<++
    >++++[<---->-]<++
    >++++++++[<-------->-]<++
    +
    +++
    >+++[<--->-]<---
    >+++++++++[<+++++++++>-]<-
    >+++[<--->-]<--
    >++++[<++++>-]<---
    >+++[<--->-]<
    >++[<++>-]<++
    >+++[<--->-]<--
    >+++++++[<------->-]<-----
    >++++[<---->-]<++
    >++++++[<++++++>-]<+++++
    >+++++[<+++++>-]<++++
    >++++++++[<-------->-]<------
    >+++++++++[<+++++++++>-]<++++++++
    >+++[<--->-]<-
    >++[<++>-]<++
    >+++++++++[<--------->-]<----
    >++++++++[<++++++++>-]<++++
    >+++[<+++>-]<++
    >+++++++++[<--------->-]<++
    >+++++++++[<+++++++++>-]<++++++
    >++++[<---->-]<--
    >++++++++[<-------->-]<-----
    >+++++++++[<+++++++++>-]<++++++
    >++++[<---->-]<++
    +++
    .
    >+++++++++[<--------->-]<+++++
    >+++++++++[<+++++++++>-]<++
    >++++[<---->-]<++
    >+++[<+++>-]<
    >+++[<--->-]<-
    >++++++++[<-------->-]<----
    >++++++++[<++++++++>-]<+++++
    >++++[<++++>-]<+
    >++++[<---->-]<+++
    +++
    >+++++++++[<--------->-]<+++++
    >++++++++[<++++++++>-]<++++
    >++++[<++++>-]<+++
    >+++++[<----->-]<+++
    >++++[<++++>-]<+
    >+++[<--->-]<---
    >++++[<++++>-]<---
    >+++++++++[<--------->-]<--
    >++++++++[<++++++++>-]<+
    >++[<++>-]<+
    >++++[<++++>-]<--
    >++++[<---->-]<+
    >++++[<++++>-]<---
    >+++++++++[<--------->-]<-
    >+++++++++[<+++++++++>-]<++++++++
    >+++[<--->-]<-
    >++[<++>-]<++
    >++++++++[<-------->-]<-------
    .
    

    Si buscas por Google hay muchos intérpretes y conversores para este lenguaje. Si ejecutamos dicho código tal y como está, esta es la salida: ..l.. Después de mirar un rato y depurar un poco el código, la solución a la que llegué fue poner un ‘.’ (punto) al final de cada línea que no tenía punto. El punto significa poner el byte actual en la salida. Así tras haber hecho eso y ejecutar de nuevo la salida que obtenemos es:

    Jan 30, 2012
    CyberlabProgramaciónHacking

    CTF #nullcon 2012: Programación 2

    nullcon1.jpg

    En el segundo nivel de está categoría se nos pedía la suma los términos medios de las primeras 1337 del triángulo de Pascal.

    Pues nada vistazo a la wikipedia, problema conocido, seguro que alguien ha escrito el algoritmo en Ruby, lo bajo, lo modifico, quedándome de esta forma:

    #!/usr/bin/env ruby
    
    def pascal(n)
      p=[1]
      sum = 0
      while(p.length<n)
    #    puts p.join(" ")
        p.join(" ")
        p=Array.new(p.length+1) {|i| 
          a=i0 ? p[i-1] : 0
          a+b
        }
        if p.length.odd?
          sum = sum + p[p.length()/2] 
        end 
      end
      return sum+1
    end
    
    puts "sum: " + pascal(1337).to_s

    Y cuyo resultado al ejecutarlo y por lo tanto nuestro flag:

    Jan 30, 2012
    ProgramaciónHackingCyberlab

    CTF #nullcon 2012: Programación 1

    nullcon1.jpg

    En la primera prueba de programación nos encontramos con este texto:

    Mfp ey zwvo fvat rjx hwprdrr lb nawzh tnfpc: Anj icvlu, hjgy Kbffhg, zk hjp gm nso nntjj, phf sw vawwhnwer, pcum nu oeq ewllxqmqit

    El cual es nuetro flag cifrado. Por lo que tenemos que averiguar como hacerlo.

    Si miramos el código fuente de la página de este reto, nos dan un pista:

    Rápidamente nos damos cuenta que es un cifrado basado en la rotación de caracteres dependiendo de la posición del mismo.

    Jan 30, 2012
    HackingCyberlabProgramación

    CTF #nullcon 2012: Análisis de logs 5


    nullcon1.jpg

    En el quinto y último nivel de esta categoría de análisis de logs, nos encontramos con un fichero (http://www.nullcon.net//challenge/data/dump.rar) PcapNg (una vez descomprimido). Uno de los problemas con los que me encontré era que el fichero es un poco grande y después de filtrar varias veces, Wireshark se comía la máquina y tenía que cerrar dicha aplicación y volverla a abrir ¿fuga de memoria en Wireshark? Supongo que la próxima vez debería de aprender a usar los filtros con tshark :)

    Jan 29, 2012
    SeguridadHackingCyberlab

    CTF #nullcon 2012: Análisis de logs 4

    nullcon1.jpg

    En este cuarto nivel, el fichero que se nos da es de Burp y se nos pregunta por el CVE del exploit usado.

    Esta vez y aprendiendo del nivel anterior me basé en buscar por las urls en vez de códigos de respuesta. Rápidamente me di cuenta que la mayoría de las peticiones se hacían una IP/página sin que, en principio, se nos diera alguna pista de la aplicación web a la que se accedía y viendo que nos preguntan por un CVE, empecé a descartar dichas urls.

    Jan 29, 2012
    HackingCyberlabSeguridad

    CTF #nullcon 2012: Análisis de logs 3

    nullcon1.jpg

    Buena en esta tercera prueba de análisis de logs, nos proveen un fichero de logs ( http://www.nullcon.net//challenge/data/access.rar ) de acceso de apache. Lo primero que tenemos que saber interpretar es dicho fichero, para ello, podemos visitar esta página, dónde nos explican el significado de cada columna.

    En este reto se nos pregunta por tres cosas para conseguir el flag: página vulnerable, puerto abierto e IP del atacante.

    Jan 28, 2012
    CyberlabSeguridadHacking

    CTF #nullcon 2012: Análisis de logs 2

    nullcon1.jpg

    En este caso lo que nos dan es un fichero pcap y nos preguntan por la contraseña del usuario suppadmin.

    Pues nada, nos bajamos el fichero ( http://www.nullcon.net//challenge/data/log3.pcap ) en cuestión abrimos nuestro Wireshark y vemos que el tráfico corresponde a MySQL y al final del fichero vemos algo como:

    ....
    ..."......select * from tb1_admin.....6....def
    myaccounts.tb1_admin.tb1_admin.id.id.?.......B...B....def
    myaccounts.tb1_admin.tb1_admin.username.username...d.........>....def
    myaccounts.tb1_admin.tb1_admin.passwd.passwd...d.........>....def
    myaccounts.tb1_admin.tb1_admin.access.access...
    [email protected]..............

    Se lanza una consulta select que devuelve un registro con las columnas id, username, passwd y access. Y los valores correspondientes los vemos en la última línea… mmmm… probemos con Supp@, error. A ver [email protected], error también… después intentos fallidos y de recapacitar un poco, vemos que cada campo está separado por el signo de puntuación ‘.’, así probemos con [email protected], Bingo!

    Jan 28, 2012
    HackingSeguridadCyberlab

    CTF #nullcon 2012: Análisis de logs 1

    nullcon1.jpg

    En esta primera prueba se nos da un fichero de logs (Nikto) no muy largo con lo cual muy rápido de analizar. Entre las líneas del mismo podemos ver esto:

    ...
    + OSVDB-3092: GET /test.txt : This might be interesting...
    + OSVDB-3092: GET /phpmyadmin/ : phpMyAdmin is for managing MySQL databases, and should be protected or limited to authorized hosts.
    + OSVDB-3268: GET /challenge/logically_insane/ : Directory indexing is enabled: /challenge/logically_insane/
    + OSVDB-3268: GET /icons/ : Directory indexing is enabled: /icons
    + OSVDB-3268: GET /images/ : Directory indexing is enabled: /images
    ...
    

    /challenge/logically_insane/ me llamó la atención. Según el escáner ese directorio tiene habilitado la función de listar. Pues accedamos al mismo:

    Jan 27, 2012
    CyberlabHacking

    Pruebas de trivial del CTF de #nullcon 2012

    nullcon1.jpg

    La semana pasada Nullcon abrió un CTF para todos los públicos ;) Y como el lunes pasado fue fiesta para mi, pues me lie a jugar y todavía estoy enganchado por las noches ¿Qué estará pensando mi mujer esta vez? :D

    Los retos están divididos en 7 categorías:

    • Trivia
    • Crypto
    • Programming
    • Web
    • Reverse Engineering
    • Log analysis
    • Forensics
    Cada categoría tiene 5 niveles y tienes que pasar cada nivel para acceder al siguiente.
    Ya hay varios que han pasado todas las pruebas, pero la web todavía sigue abierta y se puede seguir jugando. Así que iré escribiendo la solución a las pruebas que voy pasando.

    Voy a empezar por las más fáciles, de hecho pongo las 5 pruebas en una misma entrada porque hay poco que explicar. Todo lo que use fue Google y en los 2 ó 3 primeros resultados estaba el link a la información que buscaba.

    Jan 25, 2012
    HackingCyberlabJuegos