Oracle TNS (enumeration and RCE)
El TNS listener (Transparent Network Substrate) es el proceso que atiende las conexiones a una base de datos Oracle, por defecto en el puerto 1521. Es una superficie de ataque habitual en pentests internos: si adivinamos el SID (el identificador de la instancia) y unas credenciales, podemos consultar la base de datos y, con privilegios suficientes, llegar a ejecutar comandos o escribir ficheros en el servidor.
Mecanismo
Para hablar con el listener y forzar credenciales, la herramienta de referencia es ODAT (Oracle Database Attacking Tool), que automatiza la adivinación de SID, el spraying de credenciales y varios abusos:
odat all -s <ip>ODAT devuelve el SID y, si acierta, credenciales válidas (por ejemplo las clásicas scott/tiger). Con ellas se entra por sqlplus, e incluso se puede intentar escalar a administrador de base de datos:
sqlplus <user>/<pass>@<ip>/<sid>
sqlplus <user>/<pass>@<ip>/<sid> as sysdbaSi la cuenta tiene privilegios, el paquete UTL_FILE permite escribir ficheros en el sistema, lo que sobre un servidor web (por ejemplo IIS) se convierte en un webshell:
odat utlfile -s <ip> -d <sid> -U <user> -P <pass> --sysdba --putFile C:\\inetpub\\wwwroot <file> ./<file>Requisitos
La enumeración del listener y del SID no necesita credenciales. A partir de ahí, consultar la base de datos exige un usuario válido (a menudo obtenido por defecto o por spraying), y la escritura de ficheros o la ejecución requieren privilegios como sysdba o permisos sobre UTL_FILE. El listener remoto es administrable en Oracle 8i/9i pero no en 10g/11g, lo que limita algunos vectores según la versión.
Cómo detectarlo
Delatan el ataque: una ráfaga de intentos de login fallidos contra la instancia (spraying de ODAT), la aparición de sesiones con sysdba desde equipos no administrativos, y la escritura de ficheros en rutas de servidor web mediante UTL_FILE. La auditoría nativa de Oracle registra los logins y el uso de paquetes sensibles.
Defensa. Eliminar cuentas por defecto (scott, etc.) y aplicar contraseñas fuertes, parchear la base de datos, restringir el listener a orígenes de confianza (valid node checking), limitar los privilegios sysdba y sobre UTL_FILE, y activar la auditoría. Relacionado con xp_cmdshell en MSSQL, RCE por subida de ficheros y reutilización de credenciales.