César Cuadra Pacheco Gerente de Consultoría at Open-Sec
C|EH, OSCP, OSCP, CISSP, CISSP, CompTIA Security+
…en la primera edición
Cómo descubrir de una vulnerabilidad
Cómo identificar de espacios y registros
Cómo controlar el puntero de instrucciones.
Cómo crear un payload con metasploit
Cómo crear un exploit en python
Cómo crear un exploit en metasploit
… en la segunda edición
Utilizaremos un reconocido escáner de vulnerabilidades. Explicaremos brevemente su lenguaje scripting NASL. Utilizaremos el lenguaje scripting para “crear” un exploit funcional. Demostraremos cómo tomar control del equipo afectado utilizando nuestros, recientemente adquiridos, conocimientos de PhD. en explotación con Metasploit
La Receta
Escáner de vulnerabilidades = Nuestro querido amigo Nessus
Lenguaje de scripting = NASL
Vulnerabilidad = CA BrightStor ARCserve Backup RPC Interface
Plugin a utilizar = arcserve_command_exec.nasl
Bugtraq ID = 31684
Payload = Meterpreter
Objetivo = El cielo es el límite
¿Por qué?
En un servicio de Ethical Hacking o de Penetration Testing existe un marco de tiempo bien definido, por lo tanto, no siempre podemos dedicarle mucho tiempo a desarrollar un exploit. En ocasiones no hay versiones trial del software afectado, por lo tanto no tenemos a mano lo necesario para hacer un análisis de la vulnerabilidad y crear el exploit.
… ¿Por qué?
La vulnerabilidad que tomaremos como ejemplo posee un exploit funcional en Metasploit PERO es sólo para W2k y Wxp y casualmente esta vulnerabilidad, en la vida real, esta presente en servidores con W2k3. Demostrar que el conocimiento de una herramienta nos permite modificarla, o alguna de sus partes, para lograr nuestro objetivo.
NASL - Nessus Attack Scripting Language
Es el lenguaje utilizado por nessus para los plugins. Es un lenguaje scripting y por lo tanto posee muchas limitaciones, pero a la vez posee muchas ventajas, debido a que existe muchas funciones fáciles de usar para nuestros escaneos. Tiene una sintaxis “parecida a C”. Básicamente posee 3 partes: configuración, post-configuración y verificación de seguridad.
NASL, funciones utilizadas
Si deseamos hacer un comentario en el código, debemos precederlo del signo #.
Para mostrar algún valor o resultado utilizamos la función display().
Para solicitar un ingreso por parte del usuario, utilizamos la función prompt().
La función get_kb_item() es utilizada para obtener información del host evaluado.
“Creando” el exploit
Comentamos las siguientes lineas: #script_require_keys("Host/OS/smb"); #script_require_ports (6504); # os = get_kb_item("Host/OS/smb"); # if ("5.0" >< os) # windir = "winnt"; # else # windir = "windows"; # security_hole(port:port, extra:report);
Modificamos: windir = "windows"; host = prompt("Ingrese Nombre NETBIOS del Host: "); cmd = prompt("\nIngrese Comando: ");
Agregamos: display(report);
Ejecutando el “exploit”
Utilizamos el ejecutable nasl que esta incluido en la instalación de nessus.
Desde la consola ingresamos: /opt/nessus/bin/nasl -t
En nuestro caso: /opt/nessus/bin/nasl -t 192.168.20.1 /root/limahack.nasl
Y en este caso el nombre NETBIOS del objetivo es VMW2K3.
Utilizando nuestros conocimientos de PhD. en Metasploit
Crearemos un usuario administrador en el equipo afectado.
Utilizaremos Metasploit, específicamente el exploit de ejecución de comandos por SMB.
Utilizaremos como payload a Meterpreter.