Enlace de descarga: https://www.vulnhub.com/entry/dc-1-1,292/
Detección de host nmap -sn 192.168.44.0/24
(Debido a que la máquina de destino DC usa el modo NAT, y mi modo NAT es el segmento de red 192.168.44.0, por lo que solo necesito escanear los hosts supervivientes recién agregados en el segmento de red 192.168.44.0, que debe ser la máquina de destino)
Después de encontrar la dirección IP de la máquina de destino, inicie un escaneo de puertos y encuentre que el puerto 22 80111 está abierto
Visité el puerto 80 y descubrí que era Drupal cms, uno de los tres principales CMS PHP (drupal joomal wordpress), pero no sé la versión específica.
Al escanear el puerto con nmap anteriormente, se usó el parámetro -A, por lo que el archivo robots.txt se encontró en el sitio web y se accedió al archivo robots.txt escaneado en nmap.
Encontrado en UPGRADE.txt que la versión de drupal es 7.x
Utilice searchsploit en kali para buscar vulnerabilidades en drupal 7
Utilice /usr/share/exploitdb/exploits/php/webapps/34992.py esta vulnerabilidad de inyección SQL para agregar el usuario administrador
Ver uso
Utilice /usr/share/exploitdb/exploits/php/webapps/34992.py
/usr/share/exploitdb/exploits/php/webapps/34992.py -t URL del sitio web -u nombre de usuario con derechos de administrador agregados -p contraseña de usuario
De lo anterior, puede ver que el usuario Administrador se creó correctamente
Inicie sesión en el fondo, haga clic en el fondo y busque flag3
Encontré un archivo para cargar en segundo plano y el hígado no bajó durante mucho tiempo.
Cambie la idea, use msf para verificar si hay una exp disponible
hora:
msfconsole iniciar msf
búsqueda drupal búsqueda exp
use exploit / unix / webapp / drupal_drupalgeddon2 use la exp
Configurar la exp y ejecutar
Obtener el caparazón, encontrar flag1
cat flag1.txt leer flag1
Obtenga consejos: todo buen CMS necesita un archivo de configuración, y esto también
Busque la ubicación del archivo de configuración
cat settings.php leyó el archivo de configuración y encontró flag2 y el usuario y contraseña de la base de datos
Consejo de Flag2: El descifrado de fuerza bruta y los ataques de diccionario no son las únicas formas de obtener derechos de acceso (debe obtener derechos de acceso), si utiliza estas autenticaciones.
'database' => 'drupaldb',
'username' => 'dbuser',
'password' => 'R0ck3t',
De acuerdo con el usuario y la contraseña de la base de datos, intenté iniciar sesión en la base de datos MySQL y descubrí que el shell msf no podía ejecutar el comando para iniciar sesión en la base de datos.
Obtener shell
Utilice el shell obtenido para iniciar sesión en la base de datos, pero aún no puede iniciar sesión en la base de datos sin un eco
Solo para mejorar el shell obtenido y descubrir que hay un entorno de Python en la máquina de destino, puede escribir un shell para él con Python
python -c 'importar pty; pty.spawn ("/ bin / sh")'
Referencia: El artículo anterior: https://blog.csdn.net/qq_32393893/article/details/105487795 Complete este shell para
completar el shell, después de que se muestre la respuesta, inicie sesión correctamente en la base de datos MySQL
La cuenta tímida de administrador creada al principio del artículo anterior se encontró en la tabla de usuarios y se obtuvo la marca 3.
Hojeando la base de datos, no se encontró nada más
El usuario flag4 se encontró en el archivo / etc / passwd
Use hydra para destruir la contraseña de flag4 y descubra que abre el puerto 22. El diccionario que uso aquí es el diccionario de John y la ruta es /usr/share/john/password.list
Inicie sesión correctamente, busque el archivo flag4.txt, obtenga flag4
De acuerdo con el indicador, la bandera está debajo de la raíz, intente escalar el privilegio suid y busque el archivo ejecutable suid que se ejecuta en el sistema
Se encuentra la ejecución de búsqueda, intente encontrar el privilegio
toque tímido
encuentra tímido -exec whoami \;
encuentra tímido -exec / bin / sh \;
cd / raíz
gato thefinalflag.txt