miércoles, 13 de marzo de 2013

Looking for Oracle´s Account. NSE script´s

Ya hemos hablado varias veces en este blog sobre los NSE scripts para NMAP.
Hoy vamos a jugar contra un gigante de la informática, el "señor Oracle".
No vamos a encontrar en el espacio internauta muchos servidores Oracles accesibles, ya que requiere cierta complejidad su instalación y mantenimiento, y por pocos skills que tengas en esta materia, tendrás los suficientes como para montar las cosas bien, y realizar un mínimo de anti-fingerprinting, anti brute-forcing, camdio de puertos, cuentas, etc...pero siempre hay de todo.
Para localizar servidores Oracle un buen punto de partida sería buscar servidores con el puerto 1521. Prueba a buscar en Shodan si te aparece alguno...
En redes locales, generalmente consejerias, ministerios, educación si es mucho más fácil encontrar servidores Oracle.

Vamos a usar un script denominado oracle-sid-brute.
nmap --script oracle-sid-brute ip  sería lo básico, pero hay que tener en cuenta que el script va a buscar, mediante el TNS-listener, SID (identificadores de base de datos) contenidos en la lista ubicada en /nselib/data/oracle-sids. Es recomendable pegarle un vistazo, e incluso meter algunos "clásicos" como puedan ser: producción, produc, erp, core, la imaginación al poder.
Si quieres pasarle un lista de posibles sid, para "bruteforcear" con un poco más de sentido, deberíamos pasarle como argumento al script: --script-args=oraclesids=ruta al fichero de sids...

Tiene pinta de ser un servidor con la instancia XE, un express !!!.
Bueno, seguimos indagando un poco con estas máquinas del demonio :-).
Esta vez usamos el script oracle-brute.
nmap --script oracle-brute -p 1521 --script-args oracle-brute.sid=XE ip
La lista de usuarios/claves por defecto de oracle la tenemos en la misma dirección que la lista de SID anterior, salvo que el fichero se llama oracle-default-accounts.lst.


Si lo que queremos es pasarle una lista de usuarios específica, podemos usar el script oracle-enum-user indicando en --script-args oracle-enum-users.sid=el sid ,userdb=el fichero de usuarios.

Bueno, parece que tiene las cuentas por defecto bloqueadas.
Vamos a ver si es vulnerable a 2012-3137 ya que tenemos un exploit muy simpático y sencillo de usar, o simplemente queremos sacar ciertos hashes...
nmap --script oracle-brute-stealth -p 1521 --script-args oracle-brute-stealth.sid=sid ip.


Laraaaaaaaaaaaalaaaalaaaaaaaa ya tenemos información de hashes, solo con haber intentado la conexión... estos chicos de Oracle...Aunque se que habéis estudiado el CVE de arriba, os dejo un poco mas información sobre este protocolo de autenticación tan chulo.

Si queréis profundizar un poco más en las vulnerabilidades de Oracle, os recomiendo el blog del señor Joxean Koret que tiene una cantidad importante, y de calidad, de artículos e investigaciones al respecto.
También debéis empaparos del Real Pentesting con Oracle.
Me voy que he visto a la policía en la puerta de mi casa y de repente quiero ir a comprar el pan...por la puerta de atrás... corriendooooooooo. xD
Como siempre, gracias por leerme, espero que os guste esta pequeña reseña sobre la identificación de máquinas Oracle.