Mostrando entradas con la etiqueta Misc. Mostrar todas las entradas
Mostrando entradas con la etiqueta Misc. Mostrar todas las entradas

lunes, 14 de abril de 2014

Write-up: PlaidCTF 2014 - Heartbleed - Misc - 10 pts

El reto presentado tiene que ver con la vulnerabilidad presentada la semana pasada.

El enunciado decía lo siguiente:

Back up now! Hopefully for good.
Our hearts are bleeding. But instead of bleeding password bytes, they're bleeding flags. Please recover our flags so we don't bleed to death before we can update to 1.0.1-g. Site is up at https://54.82.147.138:45373

Lo que hice fue utilizar este PoC público para este bug:

python hb-test.py 54.82.147.138 -p 45373 > hb-response.txt

Parte del output es el siguiente:




 El flag es:flag{hey_guise_we_made_a_heartbleed}

domingo, 3 de marzo de 2013

Nullcon 2013 BattleUnderground - Misc 1&2 Write up

Misc 1

The statement on this level was: "Who wrote the private key on whiteboard just by looking at the public certificate?"

A quick search in Google with the following keywords "whiteboard private key certificate" was all I needed to solve this level.

The first result https://plus.google.com/118187272963262049674/posts/TSDhe5CvaFe with the a comment from Radu Grigore gave me the answer:

"During his own Google interview, Jeff Dean was asked the implications if P=NP were true. He said, "P = 0 or N = 1." Then, before the interviewer had even finished laughing, Jeff examined Google’s public certificate and wrote the private key on the whiteboard."

The flag for this level was: "Jeff Dean".

Misc 2

In this level we were provided with an .img file: 8cb94a0d097f0fc0b34fe9729c6ce11c.img

First thing to do is to use binwalk to see what is inside:

ncr@poxyran:~/Desktop/nullcon$ binwalk 8cb94a0d097f0fc0b34fe9729c6ce11c.img

DECIMAL       HEX           DESCRIPTION
-------------------------------------------------------------------------------------------------------
223255        0x36817       LZMA compressed data, properties: 0x01, dictionary size: 33554432 bytes, uncompressed size: 16777216 bytes
224263        0x36C07       LZMA compressed data, properties: 0x01, dictionary size: 33554432 bytes, uncompressed size: 723517440 bytes
4195328       0x400400      gzip compressed data, from Unix, last modified: Mon Feb 18 03:23:14 2013
8388608       0x800000      Linux EXT filesystem, rev 1.0 ext3 filesystem data, UUID=e3362b15-1b48-47a3-80bb-134ffd3ffd3f


There is an EXT filesystem inside plus a gzip file and two LZMA compressed streams. Let's first extract the gzip using dd:

ncr@poxyran:~/Desktop/nullcon$ dd if=8cb94a0d097f0fc0b34fe9729c6ce11c.img of=elgzip.tar.gz skip=4195328 bs=1 count=4193280

Why I extracted the gzip file first? Well, that's because I first used the strings utility over the .img file and this is what I found:

ncr@poxyran:~/Desktop/nullcon$ strings 8cb94a0d097f0fc0b34fe9729c6ce11c.img | less

lost+found
lost+found
backup
Key.tar.gz
(END)
 

Inside the gzip file there was a file called Key.txt file. Extracting and opening the Key.txt gave us the flag:
  
c701c556565490732b28c009d1c6027b

Codegate 2013 - Misc 100 Write up

This weekend, two CTF competition were held: Codegate 2013 & Nullcon 2013 BattleUnderground. I was playing with my teammates Francisco and Archie.
 
This level was pretty easy, it was related to the movie "The Net" from 1995 with Sandra Bullock.

I just downloaded the subtitles of the movie and then I looked for words like "contraseña" (my subtitles were in Spanish), "login", etc; and this is what I found:

01:31:10,654 --> 01:31:13,121
<i>''Contraseña:/natoar23ae''</i>

The flag was: natoar23ae

lunes, 21 de diciembre de 2009

Felis Nabidad y Japy Niu iar!!

Hola!,

Bueno, despues de un tiempo de escribir en este blog, creo que es la primera vez que escribo unas palabras antes de la navidad y el fin de año.

No se muy bien que decir porque no estoy acostumbrado :P

Solo queria comentarles que durante estas vacaciones que ya comienzan en unos dias, voy a intentar actualizar el blog con un par de cosas interesantes y no con tantas gacetas informaticas :)

Ah, ademas, como pueden observar, el blog ha tomado otro color :P.

Por cierto, voy a seguir trabajando, junto con Matias y compañia, en la toolcita PyPEELF, que si bien ya llevamos rato trabajando en ella, todavia falta bastante para poder relesear algo "utilizable" por la comunidad.

En fin, un saludo para todos!, Feliz Navidad y un prospero Año Nuevo!.

Hasta pronto!.

lunes, 20 de julio de 2009

while(1), simple as that!.

Hola!,

queria contarles de un problema que tuve y como lo solucione muy facilmente.

La situacion era la siguiente: tenia un webserver corriendo y ademas otro programa que fowardeaba los requests http de determinada clase al webserver. Determinado request hacia que se cargue una dll on-demand que yo queria tracear. En principio, sospechaba del proceso responsable de cargar dicha dll pero probando con Olly varias cosas como por ejemplo, setearlo para que se detenga cuando una dll nueva es cargada, no funcionaba, ni tampoco un BPX en LoadLibraryA. La cosa se ponia dificil.

Conversando un rato con un amigo (Yibam) y comentandole el problema que tenia, ideamos un par de soluciones que podian llegar a resultar, como por ejemplo, utilizando un driver y desde kernel seteando un callback para que cuando se carguen las dlls podamos determinar que proceso era y que dll cargaba. Otra idea fue implementar eso mismo pero desde user-mode con uhooker....todas eran soluciones un tanto liosas para algo tan simple.

Luego, hablando con otro amigo (marciano) me dijo: "y si pones un INT3 en el DllMain?", la idea era buena, la probe pero resulta que el webserver parecia catchear la excepcion y tirar un error :(

Finalmente di con la solucion (gracias marciano nuevamente), por que en lugar de un INT3 no colocamos un JMP EIP (while(1))?. Pues dicho y hecho, eso fue lo que hice y pum!!!! habia un proceso que se "comia" el 99% del CPU!, attacheandome a dicho proceso pude comprobar que era el causante de cargar la dll que tanto buscaba.

Al final, un problema que parecia sencillo, para el cual habiamos diseñado soluciones algo complejas, termino solucionandose con algo super sencillo!, como era de esperar.

Bueno, eso, una estupidez pero queria contarselas!.

Hasta la proxima!.