¿Porqué pop calc cuando puedes utilizar pop
Nedry? Esta herramienta contiene un x86-64 payload que recrea la escena de Jurassic Park en la que Dennis
Nedry encierra a Ray Arnold fuera de su terminal, explica
Jim
Gil, un experto de seguridad informática
del International Institute of Cyber Security (IICS) acerca de pop Nedry.
Cuando se ejecuta pasa lo siguiente:
1.
Asigna una ventana en la consola
con llamada a AllocConsole
2.
Sale un aviso que dice “¡No has
dicho la palabra mágica!” repetitivamente con llamadas a WriteConsoleA
3.
Al mismo tiempo baja winmm.dll y
obtiene la dirección del procedimiento para PlaySound
4.
Baja el audio “¡No, no, no...no
has dicho la palabra mágica!” de la memoria utilizando PlaySound
5.
Baja shell32.dll y obtiene la
dirección del proceso para ShellExecuteA
6.
Abre el buscador del objetivo en
una página web que tiene en infame Nedry GIF utilizando ShellExecuteA
7.
Entra en modo reposo durante un
tiempo para que el audio se reproduzca
8.
Restaura el stack’s y los ret’s
Construcción
Se utiliza Python script (Windows)
El Python Script se realizó para Windows. Para
activarlo asegúrese de que tanto nasm y Python 2 estén instalados y añadidos en
la variable PATHenvironment. Inicie el siguiente comando desde el directorio de
project’s parent para generar la posición independiente del código binario:
> python build.py --outfile
nedry.bin --url http://127.0.0.1:8080/nedry.html
Ésto reunirá lo armado, soltará el binary in .\build, y escribe en la página URL de Nedry
Construcción manual (Cualquier sistema operativo)
También puedes construir el shellcode manualmente para cualquier sistema
operativo con nasm
> cd .\src
> nasm -f bin -o pop-nedry.bin pop-nedry.asm
> nasm -f bin -o pop-nedry.bin pop-nedry.asm
Una vez que hayas construido el binary,
necesitas un patch en tu URL. Para hacer esto, abre un editor hex y busca
0x1dd. Re-escribe los NULL bytes con tu URL. Asegúrate que comience con http://
o https://. No utilices una URL de más de 63 caracteres para asegurar que quede
al menos un NULL para terminar el string.
Uso de
prueba
Construir el shellcode binary
> python build.py --outfile
nedry.bin --url http://127.0.0.1:8080/nedry.html
Inicie un servidor web de Python para
instalar la página HTML Nedry
> cd .\html
> python -m SimpleHTTPServer 8080
> python -m SimpleHTTPServer 8080
Pruebe el shellcode con
ShellcodeTester.exe incluido (o su explorador favorito).
> cd .\utils
> ShellcodeTester.exe ..\build\nedry.bin
> ShellcodeTester.exe ..\build\nedry.bin
Fuente:
https://github.com/zznop/pop-nedry
0 comments:
Post a Comment