En pentesting, los exploits pueden clasificarse según el tipo de vulnerabilidad que aprovechan o el objetivo que buscan alcanzar. Los más importantes son:
Exploits de ejecución remota de código (RCE): permiten ejecutar código en un sistema objetivo desde una ubicación remota.
Exploits de ejecución de código local: requieren algún nivel de acceso previo al sistema y permiten ejecutar código con determinados privilegios.
Exploits de escalada de privilegios: aprovechan vulnerabilidades para pasar de permisos limitados a privilegios mayores, por ejemplo, de un usuario normal a administrador.
Exploits de aplicaciones web: aprovechan vulnerabilidades como SQL Injection, XSS, SSRF, CSRF o fallos de autenticación y autorización.
Exploits de servicios de red: atacan servicios expuestos mediante protocolos como SMB, FTP, SSH, HTTP o RDP cuando presentan vulnerabilidades.
Exploits de sistemas operativos: aprovechan errores específicos de Windows, Linux u otros sistemas operativos.
Exploits de aplicaciones: aprovechan vulnerabilidades presentes en programas específicos, como navegadores, servidores, sistemas de gestión o software empresarial.
Exploits de dispositivos y firmware: afectan routers, dispositivos IoT, equipos de red, cámaras u otros dispositivos integrados.
Exploits de vulnerabilidades 0-day: aprovechan vulnerabilidades que todavía no son conocidas públicamente o para las que aún no existe un parche disponible.
También pueden clasificarse según cómo se ejecutan:
Exploit remoto: no requiere acceso físico o local al sistema.
Exploit local: necesita algún nivel de acceso previo.
Exploit cliente: normalmente requiere que el usuario interactúe con contenido malicioso o especialmente diseñado.