Shellcoding 4 dummies

Iniciado por SnakingMax, 8 Mayo 2011, 18:35 PM

0 Miembros y 1 Visitante están viendo este tema.

SnakingMax

He compartido esta info con todos vosotros en mi blog pero me gustaría hacerlo aquí tambien en la comunidad ya que gracias a esta info he codeado mi primera shellcode, muy básica, pero a veces los tutoriales son algo enrevesados y uno se pierde por la mitad. Así que espero que os sirva de ayuda a los que están interesados en aprender.

Tutoriales muy muy claros:
http://securityetalii.es/2010/04/14/exploitation-shellcodes-en-linux-i/
http://securityetalii.es/2010/04/21/exploitation-shellcodes-en-linux-ii/
http://securityetalii.es/2010/04/05/exploitation-evadiendo-nx/


Compilar un Programita en ensamblador:
Código (bash) [Seleccionar]
nasm -f elf $ShellcodeEnASM


Crea el binario del código compilado. (con el archivo.o generado anteriormente)
Código (bash) [Seleccionar]
ld archivo.o -o sc


Quitar la protección del stack, para que sea ejecutable. (Sí el programita ld tambien puede hacerlo)
Código (bash) [Seleccionar]
sudo execstack -s sc $ShellcodeEjecutable


Desensamblar nuestro ejecutable
Código (bash) [Seleccionar]
objdump -d $ShellcodeEjecutable


Desactivar core dump:
Código (bash) [Seleccionar]
ulimit -c unlimited


Desactivar ALSR: (por defecto está puesto a 2, nosotros lo ponemos a 0)
Código (bash) [Seleccionar]
echo 0 > /proc/sys/kernel/randomize_va_space

Bueno.. con esto ya es suficiente para empezar. Si teneis ganas de aprender estoy seguro que no os vais a perder en el camino pero recordad que a programar se aprende programando.
La shellcode que se explica en los tutoriales no es la única solución ni la mejor para lanzar una shell.

Os animo a visitar en shellstorm las shellcodes de Sagrini (seguro que ya lo conoceis todos) y Kernel_Panic para lanzar el /bin/sh:
http://shell-storm.org/shellcode/shellcode-linux.php

Tambien os animo a utilizar una máquina virtual para codear vuestras shellcodes. A mi me resulta mas cómodo y no me tengo que preocupar de los cambios que le hago al sistema operativo.

Shamaroot

El conocimiento es libre.