Artículo 71: Revisión de la evaluación del equipo rojo de la gestión de la red externa de un banco a la red interna del área central

3a8b8ac00a9599a4786569064d9b439f.png

 Prefacio de la Parte 1 

Hola a todos, mi nombre es ABC_123 . En este número les comparto un artículo sobre un proyecto de evaluación del equipo rojo que ABC_123 hizo una vez para un banco, duró dos semanas y fue muy difícil, pero finalmente llegó al área central de negocios del banco. Hoy revisaré Todo el proceso Espero que tanto el equipo rojo como el equipo azul puedan tener algo de inspiración, este también es el principio de "no sabes atacar, cómo defender" .

Se recomienda que todos establezcan la cuenta pública "Laboratorio Xitan" como una estrella; de lo contrario, es posible que no la vean. Porque las cuentas oficiales ahora pueden mostrar imágenes grandes solo para cuentas oficiales leídas con frecuencia y destacadas. Cómo operar: Haga clic en [...] en la esquina superior derecha y luego haga clic en [Establecer como estrella].

b5f1bd8e1ab5ca50f41f1a97f368c389.png

 Revisión del proceso específico de la Parte 2 

Primero, se publicará un diagrama de flujo elaborado por ABC_123 sobre este proyecto de evaluación del equipo rojo. A continuación, con base en este diagrama de flujo, se explicará en detalle todo el proceso de evaluación del equipo rojo.

32b1c2b7b3f4a95a5756410c2ae4b708.png

  • Proceso de gestión de red externa.

En términos generales, para proyectos bancarios, es difícil penetrar sin utilizar 0day. En términos de gestión de red externa, este proyecto de evaluación del equipo rojo pagó el precio de usar dos días 0 : 1. Al localizar un sistema de cadena de suministro a través de la fuga de información de registro, la auditoría del código encontró una vulnerabilidad de día 0, que es una vulnerabilidad de carga; 2. Cierto documento Vulnerabilidad de inyección de comandos en el sistema de vista previa en línea.

Se utilizaron dos vulnerabilidades en el proceso horizontal de la intranet: 1. Existía una vulnerabilidad de deserialización de Java en un determinado puerto comercial, 2. Existía una vulnerabilidad de deserialización de Java en varios puertos del middleware Websphere.

19a307a068795e4141397b743e5321ca.png

 1 Vulnerabilidad de carga en el sistema de la cadena de suministro.

Primero, al escanear el directorio, encontré una ruta /logs, que contenía algunos mensajes de error de aplicaciones web, y encontré un nombre de clase de paquete jar inusual.

d935db77f6b50f1d4b0374c7c43f457e.png

A continuación, utilizamos las palabras clave anteriores para encontrar el desarrollador del sistema en varios Baidu, Google y Github , y luego obtuvimos el código fuente a través de una serie de métodos. La estructura del directorio del código fuente es casi la misma que la del sitio web. Básicamente demuestra que es el mismo código fuente. Luego se encontró una vulnerabilidad de carga a través de la auditoría del código Java. Desafortunadamente, debe iniciar sesión en el backend para usarlo. . Cuando estaba desesperado, revisé los archivos SQL de inicialización en el código fuente y descubrí que el sistema ejecutaría estos archivos SQL durante el proceso de inicio, agregando así una cuenta de prueba de forma predeterminada, así que usé esta cuenta de prueba para iniciar sesión en fondo para obtener el webshell, y luego el contenido principal. La dirección horizontal de la red se realiza a través de esta entrada.

 2 deserialización de ColdFusion

Hay una vulnerabilidad de deserialización de Coldfusion en su sitio web. Esta vulnerabilidad la presenté en detalle en mi artículo anterior "El difícil proceso de deserialización de Coldfusion a través de waf para cambiar la exp para obtener el objetivo". A continuación, utilicé la vulnerabilidad de ejecución de código de este sistema. para obtener los permisos del segundo Webshell. Una cosa a señalar aquí es que para el uso de las vulnerabilidades de Coldfusion, se recomienda utilizar métodos en línea que puedan ejecutar comandos directamente. Intente no utilizar el método JRMPClient fuera de la red . Este método puede hacer que el sitio web de Coldfusion deje de responder fácilmente. Después de enviar varios paquetes, se desconoce el motivo específico. Esto se basa en la experiencia y los obstáculos que se han superado antes.

6329fff96adebfba38935c9e1cffe32f.png

Desde este sistema, la red interna se implementa horizontalmente, pero la resistencia es muy alta y el aislamiento de la red es muy bueno. Básicamente, solo se puede hacer ping a otras direcciones IP en la red interna, pero los puertos están bloqueados, por lo que la red externa puede sólo se puede gestionar de nuevo.

 3. Inyección de comandos en el sistema de vista previa en línea de un determinado documento.

Esta vulnerabilidad es una vulnerabilidad de inyección de comandos común. Obtiene directamente parámetros y los importa al tiempo de ejecución para su ejecución. Es una vulnerabilidad de inyección de comandos muy simple. Sin embargo, el sistema está ubicado en la nube y tiene muy pocos activos. Alibaba Cloud AK/SK y otras claves secretas no se encuentran en el archivo de configuración. Finalmente, se pueden consultar los nombres y listas de nombres de usuarios de algunos empleados.

 4 Fuga de información del disco de red

A través del método de búsqueda en disco de red, buscamos varias palabras clave confidenciales y encontramos un paquete comprimido de documentos de renuncia y traspaso de empleados . Después de la descompresión, tenía más de 1G y contenía una gran cantidad de diagramas de topología de red e información de la libreta de direcciones. Después de la penetración, Aprendimos sobre la arquitectura de la red y nos ayudó mucho.

Nota: La búsqueda en el disco de red debe considerarse caso por caso. Para aquellos objetivos que han experimentado muchas rondas de juegos ofensivos y defensivos y juegos de evaluación del equipo rojo, es difícil encontrar información valiosa a través de la búsqueda en el disco de red. Al principio, este método puede obtener mucha información valiosa.

64d24e4f4e01e827f7535d37b49dce11.png

  • Proceso horizontal de intranet

Los activos de intranet del banco tienen una gran cantidad de middleware Websphere y bases de datos Oracle, por lo que el proceso horizontal de la intranet se desarrolla principalmente en las dos direcciones siguientes:

 1   Vulnerabilidad del middleware de Websphere. El middleware Websphere tiene vulnerabilidades de deserialización de Java en los puertos 8880, 2809, 9100, 11006 y otros puertos, y se pueden obtener permisos.

 2   permisos de base de datos Oracle. Leyendo el archivo de configuración de la aplicación web, descifrando la contraseña cifrada, luego conectándose a la base de datos de Oracle y obteniendo permisos del servidor a través de la vulnerabilidad de escalada de privilegios de Oracle.

8200ac505c6ed860595aaba0a65485a8.png

  • Otras vulnerabilidades de la red externa

Además de gestionar las vulnerabilidades de día 0, también se han descubierto en Internet muchas vulnerabilidades a nivel de aplicaciones web, incluidas vulnerabilidades de inyección SQL, bombas de SMS, vulnerabilidades de clientes de aplicaciones, restablecimientos de contraseñas, vulnerabilidades de análisis de Nginx, recorrido de registros de transacciones, explosión de contraseñas débiles, etc. A través de estas vulnerabilidades se obtuvo información sensible, lo que fue de gran ayuda para su posterior penetración. A continuación, seleccionaré algunas vulnerabilidades más representativas de las que hablaré.

a64bd991fe11926f973a728e3701a6f7.png

 1 Vulnerabilidad de carga del sistema de capacitación, se pueden cargar páginas html

Como se muestra en la siguiente figura, puede cargar directamente un archivo html. Si inserta un código de ataque XSS en el archivo html, es equivalente a crear una vulnerabilidad XSS almacenada disfrazada, o puede cargar una página de phishing y usarla como ataque al abrevadero. Las siguientes capturas de pantalla de la máquina virtual nativa son representaciones.

543d845fdc5237f09be027b833e624a8.png

 2 vulnerabilidad DOM tipo XSS

XSS de tipo DOM puede evitar todas las intercepciones WAF debido a su mecanismo especial.

https://www.xxx.com/xxx/include/resources/reload.html#vbscript:msgbox(1)

c3004e76fbf093acdca6535f909c8c0c.png

 3 Vulnerabilidad de lectura de archivos arbitrarios

Este es un sistema en la red externa y existe lectura de archivos arbitraria. El método para omitir waf es el siguiente:

7e0ce05b680497dc80b067eb97dea05b.png

 4 bytes anchos comen caracteres de escape provocando XSS

No importa cómo opere aquí, la carga útil de xxs estará entre comillas dobles y se tratará como una cadena y no se puede ejecutar. En este momento, puede intentar usar el método de byte ancho para comer la barra invertida del carácter de escape adyacente para continuar con XSS. . Como lo muestra la flecha en la figura siguiente, la imagen se divide y se muestra, lo que indica que el código xss se ha analizado y ejecutado.

9b983a8750ca7048208e9efc353e1fc7.png

 5 bombas SMS para saltarse las restricciones

Esta bomba de mensajes de texto es bastante interesante. Limita el número de mensajes de texto que un número de teléfono móvil puede enviar en un minuto. Sin embargo, se puede evitar superponiendo continuamente %20 (codificación de espacios en la URL) después del número de teléfono móvil . Añadir N veces del 20% a través del módulo intruso de Burpsuite, lo que resulta en un bombardeo de mensajes de texto.

bd028779ec21c070d10953eac88f960c.png

 6 Elimine el parámetro de signo para omitir la verificación.

A veces se encontrará con la siguiente situación. Después de usar burpsuite para capturar paquetes, al reproducir el paquete de datos se indicará que la verificación MAC falló. Esta situación es difícil de manejar. En este caso, intente eliminar el campo de signo y la "verificación MAC". fallido".

bca8f16046ee55d88dc77e5b46e1a3d9.png

 7 Utilice Frida para resolver el cifrado de parámetros de la APLICACIÓN

c0a7f1c56439efa91dc850354ff35882.png

7cdf429187782cfd5d2f07853e61ac91.png

f79a732b7f33a1d7894f20858e392c80.png

 8. Audite el código JS y resuelva el problema del cifrado de transmisión web

En el punto de interrupción en el evento de inicio de sesión del código JS, se descubre que el paquete de datos está cifrado mediante la función $.jCryption.encrypt(tempS, ***, ***), donde la clave de cifrado es un valor fijo. y $.jCryption.decrypt se usa directamente (***,contraseña); puede descifrar paquetes de datos. Después de descifrar los paquetes de datos, se descubrieron múltiples lagunas lógicas y lagunas de acceso no autorizado.

2b292171528fddd15b84c8583fd91038.png

73c18846e4f48717dc0abfd74b6fe4ed.png

 9 otras vulnerabilidades de aplicaciones web

Además, se descubren algunas vulnerabilidades de aplicaciones web en la red externa, que son vulnerabilidades relativamente comunes, pero la descripción detallada se resume a continuación:

1.   Descargue el archivo heapdump del marco Springboot, desde el cual puede encontrar la contraseña de la cuenta, y la dirección / env de Springboot filtra la dirección IP de la intranet, lo cual es conveniente para la penetración posterior para localizar la IP de la intranet.

2.   Hay un enlace en la cuenta oficial a un sitio web de terceros, que en realidad tiene una vulnerabilidad de análisis de nginx. Luego de obtener el shell descubrí que era de poca utilidad, era un servidor aislado, aparte de una base de datos mysql no había mucha información valiosa.

3.   Hay varias vulnerabilidades de inyección SQL en la red externa, no entraré en detalles sobre esto, todas son bases de datos Mysql y tienen permisos no root, lo que dificulta su explotación posterior. Finalmente se obtuvo el nombre del empleado, número de teléfono móvil y número de trabajo, los cuales fueron valiosos para su posterior penetración.

4.   Se filtró el código fuente de Github y parte del código fuente y la dirección de correo electrónico se encontraron en Github.

5.   Para las vulnerabilidades lógicas en el sistema empresarial de la red externa, no se publicarán capturas de pantalla del informe original, porque es fácil pasar por alto las capturas de pantalla y la codificación de las vulnerabilidades lógicas. Básicamente, se trata de consultas no autorizadas de registros de transacciones, consultas no autorizadas de saldos de facturas, consultas no autorizadas de planes de pago, etc. El método sin excepción es cambiar los valores de varios parámetros para ver si existen lagunas no autorizadas.

6.   Otra es que hay algunas funciones de carga abandonadas, pero desde el js de la página web, la dirección de la función de carga aún existe. Después de construir el paquete de carga, se descubre una vulnerabilidad de carga, pero solo se pueden cargar archivos html. . En casos anteriores se obtuvieron permisos.

7.   Vulnerabilidad del cliente de la aplicación. Empaquetado débil de la APLICACIÓN: esto se basa en Xposed para enganchar la aplicación, luego usa el método callMethod para volcar la clase enganchada y luego la descompila. No entraré en demasiados detalles aquí. He investigado muy poco sobre el desempaquetado de aplicaciones; se filtró cierta clave secreta del cliente IPA: utilicé IDA Pro para descompilar el cliente IPA, busqué códigos duros y encontré un fuga de información sensible.


  • ataque de ingenieria social

Como se muestra en la siguiente figura, el siguiente es el proceso de ataque de ingeniería social. En general, no tiene mucho éxito porque el banco limita estrictamente las reglas de acceso a la red. Dado que no hay acceso a la red, se realiza phishing XSS dirigido al cliente. El sistema de servicio y el phishing por correo electrónico dirigido a empleados bancarios no tuvieron éxito.

a4c726590986a6129248c37f066e0638.png

 1 Enviar paquete comprimido a través del chat We*Chat

A través de la recopilación temprana de información, combinada con las vulnerabilidades de inyección SQL encontradas en el sistema de aplicación web externa, los permisos de la base de datos en la nube, etc., se obtuvo una lista de números de teléfonos móviles, a través de estos números de teléfonos móviles, agregamos el chat WeChat uno por uno y lo enviamos. puertas traseras con paquetes comprimidos. Sin embargo, solo se puede acceder en línea a las computadoras portátiles personales. Las computadoras en la red de la oficina no pueden conectarse a la red externa y no pueden iniciar sesión en WeChat. Por lo tanto, la idea del trabajo social de WeChat fue Se detuvo rápidamente.

 2 Ataque de dirección del remitente de falsificación de correo electrónico

A través de la detección del sistema de correo electrónico, se descubrió que el sistema de correo electrónico tiene una vulnerabilidad al falsificar cualquier dirección de correo electrónico de origen. Combinado con la herramienta swaks de Kali Linux, los correos electrónicos de phishing se pueden enviar como cualquier administrador y pueden evitar el correo electrónico anti-phishing. puerta. Durante este proceso de evaluación del equipo rojo, enviaron con éxito correos electrónicos de phishing suplantando la identidad del administrador del departamento de información bancaria ([email protected]), pero al final ninguno de ellos se conectó, luego se supo que el empleado El entorno de correo electrónico de inicio de sesión fue bloqueado desde la red externa.

El comando general es el siguiente: swaks --to [email protected] -f [email protected] --server mail.xxbank.com.cn -p 2525 -au--ehlo xxbank.com.cn --h -De "Departamento de Información Bancaria XXX <[email protected]>" --header "Asunto: Departamento de Información Bancaria XXX" --body "hola, he recibido tu correo electrónico".

859588d63b293e46910bf4725beb7150.png

  • etapa de penetración física

Después de obtener la autorización del cliente, conduje hasta la oficina central con varios colegas y di varias vueltas. Parecía poco probable que pudiera ingresar a la oficina central por la fuerza, así que me concentré en los puntos de acceso wifi. Después de la detección, se encontraron dos puntos de acceso wifi, uno de los cuales estaba incluido en la clave maestra y se puede conectar directamente al segmento de red del área de prueba; el segundo punto de acceso wifi requiere una contraseña, que se encontró en el documento de la intranet , por lo que los dos puntos de acceso wifi Todos los puntos de acceso han sido eliminados, pero solo se puede acceder a ellos desde el área de prueba o el área de Internet que puede acceder a la red externa.

3677827bcd83ecbf0e66b18d224e5588.png

Luego se colocó una tableta cerca y saltó un proxy de calcetines 5, que luego se entregó a los colegas para realizar una penetración lateral en el área de prueba de la intranet. Desafortunadamente, el área de prueba estaba llena con algunos sistemas de prueba y el aislamiento de la red era muy estricto El área está completamente aislada del área de producción y no se puede conectar a la red de oficinas o red comercial de la oficina central. A veces hay información confidencial, como paquetes de guerra de algunos ** sistemas comerciales, en el sistema del área de prueba.

Las vulnerabilidades horizontales de intranet son relativamente comunes: por ejemplo, la vulnerabilidad MS17-010 obtiene permisos del sistema Windows, zabbix puede ejecutar comandos, contraseñas débiles para administradores de puerta de enlace API, información de nombre y número de teléfono móvil de sistemas de oficina móviles y deserialización shiro de sistemas de gestión de comerciantes. .transformación, etc., no entraré en demasiados detalles aquí.

 Resumen de la Parte 4 

1.  Los proyectos de evaluación del equipo rojo del banco son generalmente muy difíciles. La mayoría de ellos dependen de días 0 y auditorías de código. Hoy en día, el personal del equipo rojo depende básicamente de las vulnerabilidades de la cadena de suministro para ingresar. La protección de la seguridad de la cadena de suministro también es una prioridad máxima .

2.  Las lagunas en la red externa a las que no se puede acceder proporcionarán un buen apoyo informativo en la etapa posterior a la penetración. La inyección de SQL y las contraseñas débiles pueden ayudar a los miembros del equipo rojo a comprender el método de denominación de los nombres de usuario del sistema empresarial. Las fugas de direcciones IP de la intranet se pueden utilizar para localizar rápidamente segmentos de IP en la etapa posterior a la explotación, por lo que estas vulnerabilidades de riesgo medio y bajo deben repararse. en el tiempo .

3.  Los problemas de seguridad con los puntos de acceso Wifi físicamente penetrados también son muy comunes. A veces, instalar software como una clave maestra puede resultar muy eficaz.

4.  También puede intentar obtener webshell para algunos sistemas en la nube, porque los códigos de algunos sistemas en la nube incluyen AK/SK de Alibaba Cloud, Tencent Cloud, etc. Si encuentra uno, puede obtener inmediatamente algunos permisos del servidor.

5.   Cuando encuentre cifrado de parámetros, si es una aplicación móvil, puede probar Frida; si es una aplicación web, puede intentar encontrar la función de descifrado de JavaScript.

e76b5c99f63120a9b2abedd153e0f1e9.png

La cuenta pública se centra en compartir tecnología de seguridad de red, incluido el análisis de eventos APT, ataque y defensa del equipo rojo, análisis del equipo azul, pruebas de penetración, auditoría de código, etc. Un artículo por semana, 99% original, así que estad atentos.

Contácteme: 0day123abc#gmail.com (reemplace # con @)

Supongo que te gusta

Origin blog.csdn.net/m0_71692682/article/details/131950669
Recomendado
Clasificación