Ataques SSRF y sockets: buffet de vulnerabilidades

Imagina que tienes dos sistemas (sistema A y sistema B) que confían entre sí, es decir, que la comunicación entre ellos no está bloqueada por un firewall porque se tienen que transferir datos desde un sistema a otro. El sistema A es, por ejemplo, un portal corporativo accesible desde una red insegura como es Internet. El otro sistema es un ERP al que no se puede acceder directamente desde Internet, pero que confía en el portal corporativo. Este es el esquema típico en una empresa...

La idea de un ataque SSRF (Server Side Request Forgery, no confundir con CSRF) es encontrar algún tipo de servicio vulnerable en el sistema A, que puede reenviar peticiones maliciosas a la red interna y por lo tanto al sistema B. Así es como podemos superar los firewalls y sistemas IDS y explotar sistemas más seguros. Con una vulnerabilidad de este tipo podemos por ejemplo conseguir el escaneo de redes internas, el reenvío de peticiones HTTP, ataques de fuerza bruta contra el backend y, una de las más peligrosas, hacer tunneling XXE (Xml eXternal Entity).

Hace tiempo vimos en el blog un 0-day para una vulnerabilidad XXE en Postgresql de Onsec. Esta vez, vamos a ver la presentación de una ponencia que hicieron sus integrantes, Vladimir Vorontsov y Alexander Golovko, en la conferencia ZeroNights que tuvo lugar en Moscú los pasados 19 y 20 de noviembre, y en la que veréis la aplicación práctica de varios ataques SSRF usando sockets.

Eso sí, sacar el móvil porque dentro encontraréis un QR-Code que os llevará a un interesante script que explota un SSRF universal en PHP-FPM (FastCGI Process Manager) capaz de evadir safe_mode, disabled_functions, open_basedir, etc. Cualquier feedback sobre la explotación de esa vulnerabilidad será bienvenido :)


Comentarios