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.
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.
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 OS X, 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.
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.
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.
Para
ejemplificar el uso de la herramienta, seleccionamos una de las shellcodes disponibles. Para este
ejemplo, 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.
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 pentest, sea el que
hemos generado.
Para finalizar el ejemplo, configuramos la shellcode en un exploit contra la máquina remota. En 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.
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