# Explotación y hacking de vulnerabilidades en Hosts
Ya hemos detectado varias vulnerabilidades del sistema, de manera pasiva (google dorks, shodan, maltego) y de manera activa (nmap), hemos realizado el análisis de las vulnerabilidades (nessus y nmap) pero por ahora no hemos hecho nada para aprovecharnos de estas vulnerabilidades.
En general podemos definir esta fase como:
- se usarán técnicas que permitan al analista aprovechar una vulnerabilidad detectada para obtener algún beneficio desde el punto de vista del Hacking Ético.
- es una de las fases más importantes e intrusivas del proceso del Hacking Ético
- deben tenerse en cuenta las herramientas de protección y detección que utilizan las organizaciones y sistemas: antivirus, EDR, IPS, IDS, HIDS, WAF,...
a) si aún no has dado estos términos, toma un momento para ver qué significa cada uno para tenerlo en mente durante esta fase.
b) Sería interesante tener los informes tanto de nmap como de nessus sobre el host que estamos atacando, el hacking ético se considera un proceso iterativo: los outputs de una etapa se consideran los inputs para la siguiente.
c) Ya hemos hecho informes de metasploitable2 y OWASP, pero para seguir practicando tenemos más alternativas. Muchas instituciones publican retos o "bug bounties" en internet que incluso pueden llevar compensaciones económicas.
Busquen "internet bug bounty", lo que más nos interesará será entrar en Hackerone que es una organización que aglutina propuestas de empresas que ofrecen dinero si averiguamos sus vulnerabilidades. Vamos a echarle un vistazo a alguna de las ofertas antes de instalar otro sistema vulnerable con el que probar: metasploitable3.
d) adelanto, no van a funcionar los manuales, así que estoy haciendo un manual para poderlo instalar y nos aguantamos con el 2!Tomemos y analicemos los informes de nmap y nessus con metasploitable2.
Si te has dado cuenta las vulnerabilidades se pueden dividir en tres grandes bloques:
- vulnerabilidades en los Hosts
- vulnerabilidades en las Webs
- vulnerabilidades de Red
Seguiremos profundizando en herramientas y comprensión de las vulnerabilidades pero ya es hora de introducirnos en la herramienta por excelencia para esta tarea en el caso de los hosts.
## Introducción a Metasploit
Lo primero es aclarar que metasploit no es una herramienta sino un conjunto de herramientas, un framework que nos permite realizar el proceso de explotación de vulnerabilidades de manera sencilla y automatizada.
Por supuesto, al ser un curso de especialización aunque no entra en el temario, intentaremos profundizar algo más para que no nos quedemos en ser "script kiddies" (busquen el término que es super interesante) pero vamos primero a cumplir con el temario!
En metasploit se recopilan los scripts para explotar (exploits) prácticamente todas las vulnerabilidades existentes, pero no se limita a almacenar estos exploits sino que además tiene herramientas auxiliares que nos permite:
- realizar la fase del exploit hacia un objetivo
- controlar la conexión hacia el target
- utilizar técnicas de postexplotación: usar payloads (busca el térmito), escalar privilegios, crear nuevos usuarios en el target, ...
Vamos a dar más herramientas de la fase de recopilación de información, pero metasploit tiene una curva de aprendizaje empinada, así que quiero adelantar para que empiecen a practicar con la herramienta y tengan tiempo suficiente de uso antes de pasar a otras fases.
Empecemos con la esctructura de archivos, esto les hará entender muchas cosas sobre su uso:

Vamos a ir viendo la estructura del framework:
- modules: en esta carpeta están todos los módulos que vamos a usar en nuestras prácticas, metasploit se basa en módulos.Cada exploit se corresponde con un módulo pero hay más módulos con otras funcionalidades.
- plugins: aquí tendremos módulos con funcionanilades extras, por ejemplo hay un módulo que nos permite recoger los informes de Nessus directamente para poder empezar a usar metasploit partiendo de esos datos.
- scripts: en esa carpeta están sobre todo los scripts que usaremos para postexplotación, por ejemplo, meterpreter (busquen término).
- bd: aquí hay librerías que nos ayudarán a trabajar con bases de datos, lo veremos más adelante así que tranquilos.
Volvemos la carpeta que es el núcleo del Metasploit, la de módulos, entramos y aprendemos sobre su contenido:

Tenemos diferentes carpetas pero las que vamos a utilizar por ahora son las de exploits y payloads.
La dinámica es que usaremos los exploits para poder introducir payloads en el target de nuestra investigación, podemos usar diversos exploits con diferentes payloads, incluso combinándolos.
Los módulos en encoders y nops, ayudarán a que los exploits lleguen sin problemas al target, pero en general son todo módulos auxiliares a los exploits y los payloads.
Por ejemplo entremos en auxiliary:

Veremos que tenemos herramientas de sniffing o escanners de puertos, o sea, que también podemos usar el metasploit para tareas de recopilación de información y otras tareas auxiliares a la explotación. Podríamos usar nmap dentro de metasploit!
Dentro de la carpeta exploits vamos por ejemplo a la carpeta UNIX (si no sabes lo que es míralo, historia de la informática!!)

Veremos otro viejo histórico el irc y si nos metemos vemos que tenemos algo que nos puede sonar de haberlo detectado en el análisis de vulnerabilidades

Se les ha quedado un viejo servicio IRC abierto y sin actualizar con un backdoor. Vamos a explotarlo.
## Primer intento con Metasploit
Entramos a la herramienta que nos ayudará a lanzar cada módulo : msfconsole

Nos dará un entorno parecido a este, como ves hay 2335 explits y1385 payloads ahora mismos activos.
Vamos a ver por ejemplo la herramienta connect combinada en el metasploitable nc.
En el metasploitable dejo la herramienta netcat escuchando por el puerto 4444

y en mi kali con mi consola escribo:

Veré que en objetivo sale:

Como vemos tenemos herramientas como connect que nos permiten realizar conexiones con otras máquinas pero vamos a la importante.
Tenemos una vulnerabilidad, tendremos un exploit y un payload para explotarla?
buscamos:

y luego con USE seguido del nombre completo o número del exploit en la imagen anterior estaremos dentro del exploit(podemos salir pulsando "back")

Si buscamos por nmap me saldrán muchísimos módulos auxiliares que automatizan las labores el nmap

Pero volvamos a nuestra backdoor detectadas y vemos qué opciones tenemos en este momento:

Con "show options" vemos las opciones básicas, con "show advanced"

nos muestra muchas más pero por ahora, nos quedamos con las primeras en donde veíamos que teníamos que configurar el host objetivo y el puerto donde está la vulnerabilidad cada uno pondrá la ip correspondiente, en mi caso:

Como ves cara valor requerido puede fijarse con set, indicando el nombre y el valor del parámetro a rellenar.
El puerto estaba correcto así que lanzamos el exploit:

Como ven, nos avisa de que este exploit necesita configurarle un payload. Para ver qué payloads podemos usar con este exploit:

Vemos que hay un generic y un reverse, los reverse normalmente tienen más éxito en caso de que haya firewalls así que probamos con ese:

Con "set payload" hemos indicado el que queremos cargar y al volver a poner "show options" vemos que ahora sale la información del payload con los datos que tenemos que configurarle:

Ya tenemos todos los datos oblitarios, nos damos cuenta de que este payload es un "single", no necesitamos nada más para ejecutarlo.
El payload aprovechará el exploit y establecerá una conexión reversa con nuestro metaexploit así que ejecutamos de nuevo el exploit:

Ahora vemos que se ha establecido una sesión de shell, parece que no hay nada pero si pulsamos "ls" nos dará el contenido del directorio de la máquina objetivo, es decir...estamos ya dentro de la víctima.

Comprueba si en tu análisis de vulnerabilidades había alguna relacionada con ftp e intenta investigar y usarla.
Instrucciones útiles que siempre se me olvidan!
sudo dhclient
sudo iptables -S
sudo iptables -F