Estudio en profundidad de seguridad de red, lección 6: vulnerabilidades de marco populares (RCE: vulnerabilidad de deserialización de Weblogic)


1. Introducción a Weblogic

Actualmente, el uso de Weblogic se sitúa entre los primeros del mundo. Según las estadísticas, existen hasta 35.382 activos con servicios Weblogic abiertos a Internet en todo el mundo. El uso de Weblogic en Estados Unidos y China representa cerca del 70% de el uso total de Weblogic, entre ellos, el número de activos pertenecientes a China es de 10,562 unidades.

  • La mayoría de las vulnerabilidades de Weblogic se informaron en 201X.
  • Puerto común de Weblogic: 7001

2. Historial de vulnerabilidad de deserialización de Weblogic

  • #SSRF:
    CVE-2014-4210

  • #JAVA反序列化:
    CVE-2015-4852
    CVE-2016-0638
    CVE-2016-3510
    CVE-2017-3248
    CVE-2018-2628
    CVE-2018-2893

  • #Carga arbitraria de archivos
    CVE-2018-2894

  • #XMLDecoder Deserialización:
    CVE-2017-10271
    CVE-2017-3506

  • Varias versiones más nuevas de Weblogic están activas
    Weblogic 10.3.6.0
    Weblogic 12.1.3.0
    Weblogic 12.2.1.1
    Weblogic 12.2.1.2
    Weblogic 12.2.1.3


3. Características del marco Weblogic

1. Interfaz 404

Insertar descripción de la imagen aquí

2. Interfaz de inicio de sesión

La dirección de backend predeterminada general es: IP:7001/console/login/LoginForm.jsp
Insertar descripción de la imagen aquí


4. Contraseñas débiles de uso común para cuentas y contraseñas de weblogic

Insertar descripción de la imagen aquí


5. Introducción a las vulnerabilidades de Weblogic

La contraseña de weblogic se cifra mediante AES (la versión anterior 3DES) y el cifrado simétrico se puede descifrar. Sólo necesita encontrar el texto cifrado del usuario y la clave de cifrado. Ambos archivos se encuentran en base_domain y se denominan SerializedSystemIni.dat y config.xml.


6. Reproducción manual de vulnerabilidades de Weblogic

1. Obtener la contraseña de la cuenta. Esta es una vulnerabilidad que permite la lectura arbitraria de archivos.

1) Lea el archivo SerializedSystemIni.dat y obtenga la clave de cifrado

Visite http://ip:7001/hello/file.jsp?path=security/SerializedSystemIni.dat. Hay una vulnerabilidad de lectura de archivos arbitraria.
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
注意:SerializedSystemIni.dat es un archivo binario, por lo que debe usar burpsuite para leerlo y explorarlo. La descarga directa desde el servidor puede introducir algunos caracteres que interfieran. Seleccione la cadena de caracteres confusos leídos en eructo, luego cópiela, guárdela localmente y asígnele el nombre: 1.dat

2) Lea el archivo config.xml y obtenga la contraseña cifrada

Visite http://ip:7001/hello/file.jsp?path=config/config.xml. <node-manager-password-encrypted>El valor que contiene es la contraseña de administrador cifrada.
Insertar descripción de la imagen aquí

3) Utilice herramientas para obtener contraseñas en texto claro

Insertar descripción de la imagen aquí
De esta manera obtendrás la contraseña del administrador.

2. Cargue el shell en segundo plano (requisito previo: inicie sesión correctamente con la contraseña de la cuenta obtenida al leer cualquier archivo en este momento)

1) Subir entrada

Cargar entrada: estructura de dominio-implementación-instalación-cargar archivo-instalar esta implementación como una aplicación. Luego simplemente acceda al nombre del proyecto.
Insertar descripción de la imagen aquí

2) Subir ruta

Ruta de carga: Estructura del dominio-Implementación-Instalación-Cargar archivo-Instalar esta implementación como una aplicación. Luego simplemente acceda al nombre del proyecto.
Insertar descripción de la imagen aquí
Haga clic en "Cargar archivo" para ir a la página siguiente
Insertar descripción de la imagen aquí

3) Cargue el shell, aquí debe cargar el archivo war

Tenga en cuenta que debe cargar el shell JSP y, a continuación, procesar shell.jsp.
Insertar descripción de la imagen aquí

comprimir archivos
Insertar descripción de la imagen aquí

Luego modifique la extensión del archivo a shell.war
Insertar descripción de la imagen aquí

Después de cargar el shell, haga clic en "Siguiente"
Insertar descripción de la imagen aquí

Mostrar esto significa que la carga del shell se realizó correctamente. También hay una ruta aquí.
Insertar descripción de la imagen aquí
Luego siga haciendo clic en "Siguiente".

Finalmente, haga clic en "Finalizar" y la operación de carga del shell se completará aquí.
Insertar descripción de la imagen aquí

4) Utilice la herramienta Shell para conectarse

Debido a que aquí se usa el caballo Ice Scorpion, se usa la conexión Ice Scorpion, la
ruta de conexión es la siguiente:
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí


7. Posdata

Además de las vulnerabilidades demostradas anteriormente, Weblogic también tiene otras vulnerabilidades, no las presentaré una por una aquí, aquellos que estén interesados ​​pueden ir a los principales foros técnicos para encontrarlas por sí mismos.


Supongo que te gusta

Origin blog.csdn.net/p36273/article/details/132982083
Recomendado
Clasificación