🔁Pivoting: Skills Assessment
Última actualización
Última actualización
Un miembro del equipo inició una prueba de penetración en el entorno de Inlanefreight, pero fue trasladado a otro proyecto en el último minuto. Afortunadamente para nosotros, dejaron un web shell
para que podamos regresar a la red y poder continuar donde lo dejaron. Necesitamos aprovechar el shell web para continuar enumerando los hosts, identificando servicios comunes y usando esos servicios/protocolos para acceder a las redes internas de Inlanefreight.
Nuestros objetivos están detallados abajo:
Comience desde externo ( máquina de atacante
) y acceda al primer sistema a través del webshell.
Utilice el acceso al shell web para enumerar y pasar a un host interno.
Continúe enumerando y pivotando hasta llegar a Inlanefreight Domain Controller
y capturar el asociado flag
.
Utilice cualquier dato
, credencial
, script
u otra información dentro del entorno para permitir sus intentos de pivote.
Recopila todas las flags
que se puedan encontrar.
Nota: Ten en cuenta las herramientas y tácticas que practicamos a lo largo de este módulo. Cada uno puede proporcionar una ruta diferente hacia el siguiente punto de pivote. Es posible que el salto desde un conjunto de hosts le resulte sencillo, pero es posible que esa misma táctica no funcione para llegar al siguiente. Mientras completa esta evaluación de habilidades, recomendamos que tomes notas, dibujes un mapa de lo que ya sabes y planifiques tu próximo salto. Intentar hacerlo sobre la marcha resultará dificil sin tener una referencia visual.
Foothold
: 10.129.201.127
Encontrará el shell web que se muestra a continuación cuando busque support.inlanefreight.local
o la IP de destino arriba.
Una vez en el servidor web, enumera el host para obtener las credenciales que se pueden usar para iniciar un pivoting o un túnel hacia otro host en la red. ¿En qué directorio de usuario puedes encontrar las credenciales? Envíe el nombre del usuario como respuesta.
Encontramos 2 usuarios administradores:
En la carpeta de webadmin encontramos un id_rsa
que podríamos usar para conectarnos por SSH:
Nos los vamos a copiar a nuestra máquina de atacante. Al crackear el id_rsa
buscando la contraseña en plano parece que no tiene contraseña
También obtenemos información del nombre del servidor objetivo, un nombre de usuario y contraseña:
Como tenemos conectividad y acciones limitadas por la webshell, vamos a conectarnos por SSH, lo que nos dará mayor libertad para realizar acciones.
Le damos los permisos correctos al id_rsa:
Habilitamos el Port Forwarding por el puerto 9050 (el que usa proxychains por defecto)
Nota: Esta paso es fundamental para poder conectarnos posteriormente al host
Conseguimos acceder correctamente al servidor y leemos el archivo .bash_history
(que no podíamos leer desde la webshell), buscando alguna pista de cómo seguir avanzando:
Encontramos un for loop
que hace un ping sweep
, lo que nos sirve para descubrir redes internas. Solamente lo copiamos y lo ejecutamos en la terminal directamente:
Descubrimos que hay 2 hosts en la red:
Con proxychains apuntando al nuevo host descubierto y las credenciales que descubrimos antes:
Nos conectamos correctamente y obtenemos la flag en C:\ 🏆
Dado que las interfaces de red internas son 172.16.5.35
y 172.16.6.35
, podemos realizar un ping sweep en ambas subredes (172.16.5.0/24
y 172.16.6.0/24
). Vamos a crear un script de PowerShell para escanear ambas subredes.
Lo guardamos como un archivo PingSweep.ps1
y lo ejecutamos desde powershell:
Nota: Este tipo de ping sweep puede tardar un poco, ya que estamos escaneando 2 rangos completos de red.
En principio no encontramos nuevas subredes a las que podamos pivotar.
En pentests anteriores contra Inlanefreight, hemos visto que tienen la mala costumbre de utilizar cuentas con servicios de una manera que expone las credenciales de los usuarios y la red en su conjunto. ¿Qué usuario es vulnerable?
Vamos a hacer un dump de LSASS para extraer credenciales de los usuarios:
El archivo de volcado se guarda en:
Nos vamos a volver a conectar por RDP pero creando una carpeta compartida añadiendo lo siguiente:
Ahora que tenemos el archivo lsass.DMP en nuestra máquina de atacante, vamos a usar pypykatz para extraer todas las credenciales/hashes de los usuarios:
Vamos a conectarnos por RDP a la IP 172.16.6.35
con las siguientes credenciales:
Una vez dentro vamos a hacer un ping sweep de nuevo para buscar subredes:
IMPORTANTE: Tiene que ser desde una CMD, no desde PowerShell
Encontramos 3 subredes a las que vamos a probar a conectarnos con las mismas credenciales:
Nos conectamos a la 172.16.6.25
y buuuum! Accedemos sin problema y obtenemos la flag 🏆
Además observamos que tiene conectividad directa con el DC, por lo que podemos ver los archivos que contiene, incluido la flag final 🏆