50 tonos de ficha



Mañana a las 12:00 hora de Moscú, se lanzará un nuevo laboratorio de pruebas de penetración Test Lab 12, que es una copia de una red corporativa real con sus vulnerabilidades inherentes y errores de configuración. El sitio web del laboratorio ya ha registrado a 25,000 participantes, incluidos expertos líderes en el campo de la seguridad de la información de las compañías rusas e internacionales más grandes.

A continuación se incluye información sobre la composición del nuevo laboratorio, ejemplos de búsqueda y explotación de vulnerabilidades y material para capacitación.

El énfasis principal en los laboratorios está en el realismo: la estructura de TI está diseñada por analogía con las redes corporativas de las empresas, acercando las acciones de los atacantes al pirateo real. Los participantes que actúan como intrusos intentan explotar las vulnerabilidades y, si tienen éxito, obtienen acceso a nodos individuales del laboratorio, cada uno de los cuales contiene una ficha. El ganador es el participante que primero recolectó todos los tokens , es decir, de hecho recibió el control total sobre la red corporativa virtual.

Todos, independientemente del nivel de habilidad, pueden probar las habilidades de prueba de penetración en condiciones lo más cercanas posible a las reales, sin violar la ley.

El nuevo laboratorio consistirá en una red informática distribuida, presentada en forma de varios perímetros con diferentes niveles de complejidad de penetración. El primer perímetro (externo) es el más fácil de "atravesar", luego el progreso será más complicado. En el sector más complejo, colocamos vulnerabilidades, cuya explotación es difícil con un gran número de participantes. Este enfoque nos permite resolver dos problemas a la vez:

  • Permitir a todos evaluar sus habilidades en el laboratorio, manteniendo su realismo.
  • elimine una situación en la que, al explotar ciertos tipos de vulnerabilidades o realizar un ataque, los participantes interfieran entre sí.



Protagonizó la película en el laboratorio utilizado:

  • Varios servicios de red (correo, DNS, AD y VPN, etc.), SIEM y DBMS;
  • Aplicación web y API (PHP, Python, Django, Java);
  • Aplicaciones de escritorio autoescritas;
  • Servicios de soporte adicionales para el realismo.

Para pasar el laboratorio necesitarás:

  • habilidades de trabajo con varios protocolos de red;
  • la capacidad de analizar datos del sistema SIEM, configurar filtros de correlación y más;
  • experiencia en ingeniería inversa;
  • Experiencia en encontrar vulnerabilidades en servicios de red y aplicaciones web.

Pruebas de penetración de laboratorio privado


Decidimos establecer el cumplimiento de varias tareas del pasado laboratorio privado, que se desarrolló este verano para ayudar a los especialistas novatos a adquirir rápidamente competencias básicas.

Toda la información sobre la composición del laboratorio (sistemas, usuarios, etc.) es ficticia y solo sirve para crear su imagen realista.

Las técnicas de prueba de penetración descritas en el artículo son de naturaleza educativa. No infrinjas la ley.

La estructura completa de la organización ficticia "UNIONSEC", que consta de 15 servidores, se encuentra detrás de la puerta de enlace 192.168.102.10, accesible después del establecimiento de la conexión VPN. Los participantes tuvieron la tarea de comprometer la red corporativa del laboratorio. El resultado de la operación de cada una de las vulnerabilidades fue un token, que tuvo que transmitirse a través del formulario en la página lab.pentestit.ru .



El laboratorio fue atacado por 7 equipos de dos participantes, pero nadie pudo comprometer toda la red. Sin embargo, algunos equipos mostraron un resultado decente.



El trabajo en el laboratorio requería experiencia con diversas herramientas y habilidades en la realización de pruebas de penetración Además, algunas tareas no podrían completarse sin el conocimiento en el campo del desarrollo y la ingeniería inversa. Dado el tiempo limitado que se les dio a los participantes para completar las tareas, completar casi la mitad de las tareas, en nuestra opinión, es un resultado digno.



Inteligencia


Usando la utilidad nmap, obtenemos una lista de puertos abiertos:

nmap 192.168.102.10 -sV





Sitio web de la empresa


En la dirección 192.168.102.10 en la sección "Contáctenos" vemos una lista de direcciones de correo electrónico:


Según el código HTML de la aplicación, podemos suponer que usa el CMS de WordPress y contiene el complemento wp-symposium-15.1.

A través de www.exploit-db.com determinamos que el complemento es vulnerable a la inyección de SQL. A través del URI 192.168.102.10/wp-content/plugins/wp-symposium-15.1/get_album_item.php?size= "estamos tratando de explotar la vulnerabilidad utilizando el script BASH:

 #!/bin/bash for ((i=0; i<= 10; i++)) do wget --no-proxy -q -O- "http://192.168.102.10/wp-content/plugins/wp-symposium-15.1/get_album_item.php?size=SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA limit 1 offset $i; --" echo "" done 

Obtenemos la lista de bases de datos:

information_schema
wp_db


y después de explotar la vulnerabilidad, el token:

wget -q -O- 192.168.102.10/wp-content/plugins/wp-symposium-15.1/get_album_item.php?size=* from token; --"





Mail


Enumeramos las contraseñas usando hydra:

hydra smtp://192.168.101.10 -s 25 -L /tmp/emails -P /tmp/pass



Con los datos recibidos, autorizamos la WUI del servidor de correo y obtenemos el token:




Openvpn


Conexión

Desde el norte de la web http://192.168.102.10:88 cargamos el archivo "openvpn.conf". Después de escanear el servidor (por ejemplo, con la utilidad DirBuster), encontramos .bash_history :

-bash: generating new OpenVPN password for user admin: command not found
-bash: generating: command not found
-bash: date +%F: command not found
-bash: echo "admin:`date +%F | md5sum | sed -s 's/ -//'`" > /etc/openvpn/user.pass: command not found
cat /etc/openvpn/user.pass
service openvpn restart
exit


donde puede encontrar el nombre de usuario, así como el algoritmo de generación de contraseña. Para reproducir la contraseña creada anteriormente, use la fecha exacta en que se creó el archivo:



y realizar la conversión de acuerdo con la historia de los equipos. La contraseña resultante se usa para la autenticación VPN.

Escaneo del servidor

Una vez conectado a la VPN, escanearemos los puertos del servidor:



Obtenemos el token en http://10.255.0.1:8080 :





TERMINAL


El servidor VPN nos envía varias rutas a redes internas, después de escanear, encontramos varios hosts con un puerto 22 abierto. Intentamos iniciar sesión con la cuenta de desarrollador. Después de conectarnos a uno de los servidores, encontramos la presencia del directorio / home / support e intentamos seleccionar una contraseña para la cuenta del mismo nombre:

patator ssh_login host=192.168.11.5 user=support password=FILE0 0=usr/share/wordlists/rockyou.txt -x ignore:fgrep='Authentication failed'



Después de recoger la contraseña, obtenemos el token ubicado en el directorio de inicio:



Ingeniería inversa


En el servidor TERMINAL, logramos encontrar el admin.bin , cuya acción finaliza cuando se solicita la contraseña. Usando el reverso, obtenemos la contraseña fv34cm3cm , que es un token. Cuando ingresa, se nos da SSH PRIVATE KEY .

Desde la clave privada, nos autenticamos en el servidor 192.168.11.2 , en el que encontramos el archivo dump.pcap en el dump.pcap /opt/ . Analizamos el volcado de tráfico de red del archivo y extraemos el token, así como la contraseña para la autorización BÁSICA en el servidor web 192.168.11.3 :

tcpdump -r /tmp/dump.pcap -A | grep token





API


En 192.168.11.3 , se encuentra la API, accesible desde la PC del administrador. Usando la traducción de puertos (por ejemplo, a través de SSH), comenzamos su estudio.

Después de explotar la vulnerabilidad descubierta en la API, obtenemos un token que es parte de la contraseña del usuario admin :



Una aplicación web está disponible en http://172.16.0.4 , que está en desarrollo. Del archivo readme.html obtenemos una lista de páginas desarrolladas:



Al abrir http://172.16.0.4/availability.php obtenemos un error. Intentamos repetir la acción utilizando el parámetro REFERRER http://172.16.0.4/index.html , después de lo cual el formulario con el botón ping estará disponible:



Después de asegurarnos de que el campo de entrada no tenga filtrado, obtenemos el token:


Estamos conectados a través de SSH al servidor 172.16.0.1 . Después de la autorización, nos encontramos con un script que solicita un código PIN (5 dígitos):



Usando un script de adivinación de contraseña escrito automáticamente, tenemos acceso completo a la consola y encontramos el archivo con el token en la carpeta del usuario:




Regreso al futuro


Para acostumbrarnos rápidamente al nuevo laboratorio número 12, hemos preparado una breve lista de materiales y herramientas:


¡Nos vemos en "Test lab 12" y deja que gane el más fuerte!

Source: https://habr.com/ru/post/es432940/


All Articles