Prueba 4: práctica CTF

Directorio de artículos

Propósito

A través del proceso de penetración del dron objetivo, comprender el modo de competencia CTF, comprender el alcance del conocimiento cubierto por el CTF, como MISC, PPC, WEB, etc., a través de la práctica, fortalecer las capacidades de colaboración del equipo y dominar el combate real preliminar del CTF. capacidades y capacidades de recopilación de información. Familiarizado con el escaneo de red, detección de servicios web HTTP, enumeración de directorios, escalado de privilegios, extracción de información de imágenes, descifrado de contraseñas y otras herramientas relacionadas

Entorno del sistema

Kali Linux 2, fuente de la máquina de destino de WebDeveloper: https://www.vulnhub.com/

Herramientas experimentales

Ilimitado

Principio experimental

El contenido de este experimento es la práctica del CTF, por lo que primero debemos entender qué es el CTF, conocernos a nosotros mismos y conocer al enemigo es la única forma de sobrevivir. No repetiré la introducción del CTF relacionado aquí. Si quieres saber el contenido específico, puedes leer mi blog.: ¿Qué es CTF?

Procedimiento de prueba y contenido

El objetivo de este experimento:

Obtenga la bandera en el archivo de desarrollador web /root/flag.txt del dron

La idea básica:

Este escaneo de supervivencia de la dirección IP del segmento de red (netdiscover); escaneo de red (Nmap); navegar por el servicio HTTP; enumeración del directorio del sitio web (Dirb); encontrar el archivo de paquete de datos "cap"; analizar el archivo "cap" para encontrar la cuenta de fondo de administración del sitio web contraseña; Explotación de complementos (con lagunas); explotar lagunas para obtener contraseñas de cuentas de servidor; Servidor de inicio de sesión remoto SSH; Aplicaciones alternativas tcpdump.

Veamos la operación específica

Pregunta 1: Encuentre el destino (netdiscover), busque la dirección IP de WebDeveloper

Esta pregunta requiere que obtengamos la dirección IP del dron objetivo, aquí podemos usar nmap para escanear.
En primer lugar, asegúrese de que estamos en el mismo segmento de red que el dron objetivo y luego utilícelo nmap ip/24para escanear todo el segmento de la red. Los resultados del escaneo pueden ser muchos. El siguiente paso es ver nuestra capacidad para filtrar información .Primero, excluya esta máquina, y luego verifique la situación de apertura del puerto, aquí juzgamos preliminarmente que 192.168.154.135 es la ip de la máquina de destino que estamos buscando:
Inserte la descripción de la imagen aquí
úsela nuevamente nmap -O ippara ver qué sistema operativo el host corresponde a la ip : se
Inserte la descripción de la imagen aquí
sabe que nuestra máquina de destino es un sistema Linux, que se escanea aquí El sistema también es Linux, por lo que nos aseguramos de que 192.168.154.135 sea la IP de la máquina de destino

Pregunta 2: Utilice NMAP para escanear el host de destino, busque la apertura del puerto y el estado del servicio del host de destino, tome una captura de pantalla y explique qué servicios proporciona el destino. (Utilice los puntos de conocimiento del primer experimento)

Se puede ver en la figura que el host de destino ha abierto el puerto 22 y el puerto 80 para proporcionar servicios ssh y http respectivamente. El servicio ssh es principalmente para servicios similares al servidor en línea remoto telnet, y el servicio http es principalmente para la función de prestación de servicios de navegación de información en línea.
Inserte la descripción de la imagen aquí

Pregunta 3: Si el host de destino proporciona el servicio HTTP, intente utilizar un navegador para visitar el sitio web de destino. Captura de pantalla. ¿Hay alguna información disponible?

En la pregunta anterior, encontramos que el dron objetivo proporciona servicios HTTP, por lo que aquí abrimos el navegador en kali para acceder directamente a la ip del dron objetivo, y podemos encontrar que visitamos con éxito el sitio web objetivo:
Inserte la descripción de la imagen aquí

Cuarta pregunta: use whatweb para detectar la plantilla CMS utilizada por el sitio web de destino. Captura de pantalla. ¿Qué CMS se utiliza para el análisis?

Whatweb es una herramienta de escaneo web que se puede utilizar para determinar el CMS, la plataforma de blogs, el paquete de software de análisis estadístico, la biblioteca JavaScript, etc., que utiliza el servidor.
Utilícelo whatweb ippara escanear el sitio web de destino:
Inserte la descripción de la imagen aquí
puede saber que la plantilla CMS utilizada por el sitio web es WordPress a través de los resultados del escaneo.

Pregunta 5: Busque wpscan en Internet y explique brevemente sus funciones.

Funciones básicas de WPScan:

  1. Detección de versiones de Wordpress y detección de temas
  2. Comprobación de seguridad del complemento de Wordpress
  3. Fuerza bruta de la contraseña
  4. Puedes especificar un agente

Pregunta 6: Utilice Dirb para explotar el directorio del sitio web y encontrar un directorio (ruta) que parezca estar relacionado con el tráfico de la red.

dirb es una herramienta de escaneo de directorios web basada en diccionarios que utiliza métodos recursivos para obtener más directorios. También admite autenticación proxy y http para restringir el acceso a sitios web. dirb está instalado por defecto en Kali. Herramientas similares y patators foráneos, Dirsearch, DirBuster, la espada doméstica.
Usamos dirb 目标网站的urlpara explotar el directorio raíz del sitio web:
Inserte la descripción de la imagen aquí
Este directorio contiene ipdata, ¿crees que está relacionado con el tráfico?

Pregunta 7: El navegador visita el directorio (ruta) y encuentra un archivo de cap, captura de pantalla.

En el paso anterior, obtuvimos el siguiente sitio web :, http://192.168.154.135/ipdata/abierto en el navegador:
Inserte la descripción de la imagen aquí
Luego saltamos a esta interfaz y descubrimos que efectivamente existe un archivo llamado analyse.cap.

Pregunta 8: Utilice Wireshark para analizar el paquete de datos y analizar el flujo de datos TCP. ¿Qué información útil encontraste? Captura de pantalla

Primero, descargamos este archivo y luego lo abrimos con Wireshark.
Inserte la descripción de la imagen aquí
Puede ver que hay muchos paquetes de datos aquí. Es muy imprudente encontrarlos uno por uno. Aquí usamos declaraciones de filtrado para filtrar y analizar estos paquetes de datos La pregunta, es obvio que el interlocutor quiere que encontremos información clave útil del flujo de datos tcp de estos paquetes. Después del análisis, ¿qué crees que el interlocutor quiere que encontremos? Supongo audazmente: la persona que hizo la pregunta puso una determinada cuenta y contraseña en estos flujos de datos de tcp. Dado que la cuenta y la contraseña están involucradas, debe ser inseparable del inicio de sesión. Así que construimos una oración de filtrado: http.request.method == "POST" && http contains "login"
Inserte la descripción de la imagen aquí
¿Es muy agradable ? Busque directamente al paquete de datos que queremos, rastreemos el flujo para ver qué información hay en él:
Inserte la descripción de la imagen aquí
aquí obtenemos esta información :, log=webdeveloper&pwd=Te5eQg%264sBS%21Yr%24%29wf%25%28DcAdaquí básicamente podemos concluir que esta es la información útil que necesitamos encontrar: número de cuenta y contraseña. Pero obviamente esto es después del cifrado, por lo que intentamos descifrarlo. Finalmente, podemos encontrar que estos datos están cifrados mediante una URL. Después del descifrado:
Cuenta: desarrollador web
Contraseña: Te5eQg & 4sBS! Yr $) wf% (DcAd para
ser honesto, en eso tiempo Después de la decodificación, no puedo creer que esta sea la contraseña ...

Pregunta 9: Utilice la información obtenida en el paso anterior para ingresar al backend del sitio web

Luego podemos consultar el sitio web correspondiente del paquete de datos anterior:
Inserte la descripción de la imagen aquí
A través del análisis, obtenemos el sitio web que queremos visitar. http://192.168.154.135/wp-login.php
Luego, visite el sitio web e inicie sesión en el sitio web con la cuenta y la contraseña que acaba de obtener:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Pregunta 10: Aproveche la vulnerabilidad del CMS (complemento) para aumentar los derechos

Solución 1: utilice el complemento MeterSploit + la vulnerabilidad del complemento de galería réflex para lograrlo. Instale el complemento de la galería de reflejos
Primero descargue el complemento de la galería de reflejos con lagunas o busque la galería de reflejos en la interfaz de complementos (pruébelo, busque y descargue los complementos directamente, las lagunas parecen estar solucionadas y el final no se puede lograr la
escalada de privilegios). Descargue el complemento de la galería de reflejos con vulnerabilidades como ejemplo, e importe el complemento de la siguiente manera:Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Recuerde abrir el complemento después de importar:
Inserte la descripción de la imagen aquí
Después de que todo esto esté preparado, abrimos msf para explotar la vulnerabilidad, use msfconsoleopen msf:
Inserte la descripción de la imagen aquí
cambie rhosts a la ip del dron objetivo:
Inserte la descripción de la imagen aquí
ahora podemos controlar el sitio web objetivo, la siguiente tarea es para ver Para obtener la cuenta y la contraseña de wp-config.php, primero use para pwdver la ubicación actual:
Inserte la descripción de la imagen aquí
luego use para cdcambiar de directorio, cambie al directorio / var / www / html y luego use para lsver el contenido del directorio actual directorio:
Inserte la descripción de la imagen aquí

Luego use para cat wp-config.phpabrir el archivo wp-config.php y busque el nombre de usuario y la contraseña de la base de datos:
Inserte la descripción de la imagen aquí
Opción 2: Cargue un shell de rebote
http://pentestmonkey.net/tools/web-shells/php-reverse-shell
[Propósito : Penetración del sitio web PHP; modo de realización: después de cargar el sitio web, la URL visita (contiene) la página del shell de rebote.
Función: el script iniciará una conexión TCP de rebote al atacante (la dirección IP y el número de puerto del atacante se especifican en el script).
Este CMS está desarrollado por PHP, que se puede utilizar para realizar shell inverso. Pero la dirección IP y el puerto iniciales deben modificarse. (Señale al atacante).

Inserte la descripción de la imagen aquí

Vaya al fondo, busque cualquier página PHP y luego use el código php-reverse-shell.PHP para modificar el código de la página. (Aquí se toma la interfaz 404 como ejemplo)

Inserte la descripción de la imagen aquí

Modifique la dirección IP y el puerto del objetivo de rebote en el código (modifique la dirección IP del atacante y el número de puerto abierto).
Inserte la descripción de la imagen aquí

El atacante usa NC para comenzar a monitorear en Kali, y el atacante visita la página PHP modificada en su navegador. Esto da como resultado un shell inverso (usuario www-data). Después de establecer una sesión, verifique wp-config.php para obtener la cuenta y la contraseña. (Preste atención a la ruta)
Luego comience a monitorear el puerto 4444: Después de
Inserte la descripción de la imagen aquí
modificar el código de la página de reproducción,
192.168.154.135/wp-content/themes/twentysixteen/404.php
puede acceder a él y luego puede monitorearlo en el panel del monitor, y luego cambiar al directorio / var / www / html de acuerdo con la operación en la Solución 1, y luego verifique wp-config. El archivo .php está bien.

Opción 3: Explotar la vulnerabilidad del administrador de archivos

Instale el complemento, puede navegar directamente por wp-config.php.
No se demostrará nada.

Undécima pregunta: servidor de inicio de sesión SSH

Aquí usamos directamente la cuenta y la contraseña obtenidas en la décima pregunta para iniciar sesión, y usamos ssh webdeveloper@ippara iniciar sesión de forma remota:

Inserte la descripción de la imagen aquí
Iniciar sesión correctamente Luego miramos nuestro target: flag en el archivo /root/flag.txt:

Inserte la descripción de la imagen aquí

Entonces encontramos que nuestros permisos no son suficientes, use tcpdump para ejecutar cualquier comando (cuando tcpdump captura el paquete, ejecutará el comando especificado). Vea los comandos ejecutables por la identidad actual.

Inserte la descripción de la imagen aquí
Descubrió que puede ejecutar el comando tcpdump con privilegios de root para
crear archivos de ataque

touch /tmp/exploit1

Escribir shellcode

echo 'cat /root/flag.txt' > /tmp/exploit

Otorgar permisos ejecutables

chmod +x /tmp/exploit

Utilice tcpdump para ejecutar comandos arbitrarios

sudo tcpdump -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/exploit -Z root

Inserte la descripción de la imagen aquí

¡Entonces conseguimos la bandera sin problemas!

Supongo que te gusta

Origin blog.csdn.net/yghlqgt/article/details/111183547
Recomendado
Clasificación