A menudo podemos utilizar la herramienta
msfvenom de
Metasploit para poder llevar a cabo la generación de
shellcodes o código ofuscado para que los exploits consigan ejecutarlos sobre los objetivos. La herramienta
msfvenom es una de las fundamentales en el mundo de la seguridad, pero hoy queremos hablar de otras herramientas que pueden complementar a la gran
msfvenom de
Metasploit. Una
shellcode es un pequeño código
Assembly el cual puede ser utilizado como un
payload o parte de él en una explotación de
software.
|
Figura 1: OWASP ZSC "Weaponizing ShellCodes" |
Además, en otros ámbitos también son utilizados: el propio malware o la fase de
bypass de
antivirus, son claros ejemplos. La posibilidad de personalizar las
shellcodes es algo interesante, desde el punto de vista ofensivo, ya que nos permite poder evadir y hacer más difícil la posible detección o contramedida en este caso. La herramienta
OWASP ZSC utiliza nuevos
encodes y métodos que, al principio, tendrán una menor detección por parte de los antivirus.
OWASP ZSC permite generar miles de
shellcodes de forma dinámica, a través del uso de encodes aleatorios. La herramienta puede ser descargada
desde su Github.
|
Figura 2: GitHub OWASP ZSC |
Con esta herramienta,
OWASP, ha trabajado en la creación de nuevos métodos de ofuscación. Esto lo llevaron a cabo durante el último
Google Summer of Code. Además, se está buscando penetrar en el área de
shellcodes para
macOS, lo cual hace que esta herramienta gane en interés. Lógicamente, aún no está, desde mi punto de vista, a la altura de herramientas como
msfvenom, pero si el proyecto sigue adelante, la cosa promete.
|
Figura 3: OWASP ZeroDay Cyber Research Shellcoder |
La instalación de la herramienta es sencilla:
python installer.py, una vez descargado el código desde su
Github. Accedemos a la herramienta ejecutando el comando
zsc, previa instalación realizada. Como se puede ver en la imagen, las posibilidades que ofrece la herramienta van directamente relacionadas con la selección de las
shellcodes, el listado de éstas y la ofuscación que se puede llevar a cabo.
|
Figura 4: Comandos de OWASP ZSC |
Otra de las opciones que permite hacer las herramientas es listar las
shellcodes disponibles. Para ello se puede hacer uso del comando shell_storm_list, una vez cargada la opción
shellcode. El listado de
shellcodes es el que se tiene disponible en el sitio web de
Shell Storm, un sitio web que ofrece una gran cantidad de
shellcodes para distintas plataformas y arquitecturas.
|
Figura 5: Shellcodes en OWASP ZSC |
Para ejemplificar el uso de la herramienta, seleccionamos una de las shellcodes disponibles. Para este caso, utilizamos la ruta
shellcode/generate/windows_x86/[shellcode]. Si quisiéramos utilizar otra ruta para otra plataforma, sería del tipo:
Windows_x86_x64,
Linux, etcétera. Para mostrar en el ejemplo, seleccionamos la
shellcode add_admin, cuyo código permitirá que cuando se ejecute aparezca un nuevo usuario en el sistema con privilegios de
Administrador.
Tras seleccionar la shellcode se puede introducir el nombre del usuario y la contraseña seleccionada. Tal y como se puede ver en la imagen, se preguntará por un encoder después de introducir los datos anteriores.
|
Figura 6: Generación de shellcode con creación de un usuario administrador |
Se nos preguntará si queremos almacenar los resultados en un fichero assembly o de
Lenguaje C. Por otro lado, podremos mostrar la
shellcode directamente en pantalla. En la imagen se puede ver un ejemplo de esto. Al final obtenemos una serie de
OpCodes, los cuales forman nuestra
shellcode. Es el momento de introducirlos en el
exploit con el objetivo de que el código que se ejecute, una vez comprometida la máquina en el proyecto de
Ethical Hacking, sea el que hemos generado.
|
Figura 7: Selección de encoder para la shellcode |
Para finalizar el ejemplo, configuramos la shellcode en un exploit contra la máquina remota. En sitios como
exploit-db existen muchos
exploits que podéis modificar y, además, tienen la versión del software vulnerable para que descarguéis y configuréis en vuestro laboratorio con el objetivo de poder probar y aprender.
En la imagen, se puede ver como se ha creado un usuario llamado “
pepe” con privilegios de
Administrador y que tiene como contraseña “
1234”. En este instante, el
pentester puede lograr acceso a la máquina a través de este código ejecutado aprovechando la vulnerabilidad.
|
Figura 8: Creación de usuario con la shellcode |
Sin duda,
OWASP ZSC es una herramienta que debemos llevar en la mochila del
pentesting, ya que es un gran complemento a
msfvenom. Además, el listado de
shellcodes proporcionado desde
Shell Storm ayuda a enriquecer el proceso. Si no lo has probado, te recomendamos que la pruebas.
No hay comentarios:
Publicar un comentario