Acceso inicial
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
Ahora que hemos enumerado y analizado exhaustivamente el perímetro externo y hemos descubierto numerosos hallazgos, estamos listos para cambiar de rumbo y centrarnos en obtener un acceso estable a la red interna.
Según el documento SoW, si logramos establecernos internamente, el cliente desea que veamos hasta dónde podemos llegar, incluyendo el acceso al nivel de Domain Admin
. En la última sección, nos esforzamos por analizar las capas e identificar aplicaciones web que provocaban lecturas de archivos o ejecución remota de código, pero que no nos permitían acceder a la red interna.
Terminamos con la obtención de RCE en la aplicación monitoring.inlanefreight.local
después de una dura batalla contra los filtros y listas negras establecidos para tratar de prevenir ataques de Command Injection.
Como se mencionó en la sección anterior, podemos usar para establecer una conexión de reverse shell. Nuestro comando base será el siguiente, pero necesitaremos ajustarlo un poco para bypassear el filtro de espacios y de ejecución de comandos:
Podemos modificar este comando para que nos dé un payload útil para capturar un reverse shell.
Inicia un listener Netcat
en el puerto usado en el comando Socat (8443 aquí) y ejecuta la solicitud anterior en Burp Repeater. Si todo sale según lo previsto, tendremos un reverse shell como el usuario webdev
.
Iniciaremos un listener Socat en nuestro host de ataque.
A continuación, ejecutaremos una línea Socat en el host de destino.
Si todo va según lo previsto, tendremos una conexión de reverse shell estable en nuestro listener Socat.
Después de ejecutar el comando, escribe q
para volver a la shell. Según el resultado anterior, parece que un usuario intentaba autenticarse como el usuario srvadm
y tenemos un posible par de credenciales srvadm:ILFreightnixadm!
. Con el comando, su
podemos autenticarnos como el usuario srvadm
.
Ahora que hemos evitado el filtrado intensivo para lograr la inyección de comandos, hemos convertido la ejecución de código en un reverse shell y hemos escalado nuestros privilegios a otro usuario, no queremos perder el acceso a este host.
En la siguiente sección, trabajaremos para lograr la persistencia, idealmente después de escalar los privilegios a root
.
Envíe el contenido del archivo flag.txt en el directorio /home/srvadm.
Tenemos una shell limitada, por lo que vamos a ganar una shell interactiva. Para ello:
Iniciaremos un listener Socat en nuestro Kali Linux.
A continuación, ejecutaremos una línea Socat en el host de destino.
Recibimos una reverse shell estable en nuestro listener Socat
Tenemos la contraseña de srvadmin:ILFreightnixadm!
. Lo usaremos en la siguiente sección para obtener persistencia.
A continuación, necesitaremos actualizar a un TTY Interactivo
. Esta describe algunos métodos. Podríamos usar un método que también se trató en la sección "" , ejecutando el conocido comando de una sola línea de Python (python3 -c 'import pty; pty.spawn("/bin/bash")'
) para generar una pseudoterminal. Pero vamos a intentar algo un poco diferente usando Socat
. El objetivo es obtener una terminal adecuada para poder ejecutar comandos como su
, sudo
, ssh
, usar el autocompletado de comandos
o abrir un editor de texto si se necesita
.
Ahora que tenemos una reverse shell estable, podemos empezar a explorar el sistema de archivos. Los resultados del comando id
son inmediatamente interesantes. La sección "" muestra un ejemplo de usuarios del grupo adm
con permisos para leer TODOS los registros almacenados en /var/log
. Quizás podamos encontrar algo interesante allí.
Podemos usar para leer registros de auditoría en sistemas Linux. La página del manual lo describe como "aureport es una herramienta que genera informes resumidos de los registros de auditoría del sistema".