¿Cómo encontrar todos los nombres de host en DNS conectados a una IP?

24

Si tengo varios hosts configurados en una máquina ( Virtual Hosts de la apache), ¿cómo puedo hacer una búsqueda en la IP y encontrar todos los dominios configurados para llegar a ella?

Por ejemplo, tengo varios dominios web y de correo electrónico conectados a mi servidor. ¿Cómo puedo encontrar todos los dominios que apuntan a él?

¿Es posible?

Tengo entradas DNS A para todos los dominios que poseo, además sé que los dominios de algunos amigos apuntan a mi servidor. Lo que me gustaría ver es si las personas que no conozco también están señalando allí. (O si alguien ha cambiado su dominio a otro lugar, y puedo eliminar su sitio web 'antiguo' de mi servidor).

madriguera
fuente

Respuestas:

30

No, realmente no. Esto se trata de la diferencia entre las búsquedas DNS directas e inversas.

Una búsqueda directa es el nombre estándar-> búsqueda de IP. Entonces, tendría que saber todos los nombres de antemano.

Lo que desea es hacer una búsqueda de IP-> nombre, pero de alguna manera obtener todos los nombres que ha aplicado en su configuración de Apache y en DNS como registros A (o CNAMES o lo que sea).

Lo que probablemente encontrará es que al hacer una búsqueda inversa (por ejemplo, dig @nameserver $ ip -x) devolverá el nombre de host que esa persona le dio a esa IP, que podría ser su ISP. Puede tener un nombre como 45-23-45-231.big-isp.com, lo que no significa mucho para ti. Y, lo que es más importante, solo hay un registro inverso, pero potencialmente muchos más avanzados.

Supongo que se reduce a la pregunta: ¿cómo sabe la zona inversa sobre alguno de los registros en la zona de avance? En la mayoría de las configuraciones, la zona de reenvío se pone a disposición del cliente para realizar cambios, pero los propietarios de netblock mantienen la zona de reversa. Los dos sistemas no necesitan saber nada el uno del otro para funcionar.

Cawflands
fuente
2
Me suena bien.
Einstiien
lástima - también sería muy útil
warren
12

No es posible hacerlo con el protocolo DNS en sí, porque normalmente solo hay un PTRregistro para cada dirección IP, aunque puede haber muchos Aregistros apuntando a esa dirección IP.

Sin embargo, algunas compañías (por ejemplo, http://www.ip-adress.com/ ) han logrado compilar bases de datos que contienen lo que busca almacenando los resultados de una gran cantidad de búsquedas de DNS y luego ofreciendo una consulta inversa en sus propias bases de datos

Sin embargo, esas bases de datos no pueden ser definitivas, no pueden garantizar conocer todos los dominios posibles que podrían apuntar a esa IP; solo pueden registrar los detalles de DNS para los nombres de dominio que realmente han buscado.

Alnitak
fuente
de eso tenía miedo ... maldición: - |
Warren
1
Solo un aviso de que aún no he encontrado un servicio de búsqueda que maneje todos los TLD. De hecho, todos los que he intentado no pudieron enumerar los dominios .com.au, incluso cuando están alojados en el mismo servidor que los dominios .com.
John Gardeniers
1
extraño: no hay ninguna razón por la que un servicio como este deba importar en qué TLD se encuentre el sitio. Dicho esto, como mencioné, las bases de datos solo conocen los sitios sobre los que las personas preguntan: supongo que a la gente no le importan los dominios .com.au ;-)
Alnitak
4

La única forma de hacerlo es tener datos de contenido del nombre de dominio que desea inspeccionar.

Con este contenido, puede desarrollar una secuencia de comandos recursiva para buscar el nombre de host en relación con su IP (recursiva debido a la eventual comprobación de CNAME).

Para obtener datos de algún socio de nombre de dominio, puede solicitar ser secundario y obtener DATOS con un dig -t axfr.

profano
fuente
3

Creo que vienes a esto desde la dirección equivocada. Además de a) consultar todos los servidores DNS existentes para cada nombre de dominio posible y luego almacenar el resultado ob) obtener transferencias de zona de los servidores DNS que le interesan, no hay forma de hacerlo con DNS.

Bueno, si está ejecutando vhosts basados ​​en nombres de Apache, ya tiene una lista de dominios que llegarán a su servidor. Además del vhost predeterminado, un vhost basado en el nombre solo responderá por su 'nombre. Entonces, si apunto foobar.com a mi casilla, y no tengo un vhost foobar.com, será atendido por defecto o no recibirá respuesta (si no tiene un servidor predeterminado).

Apache tiene algunas características de registro muy potentes. No debería ser un problema definir un formato de registro personalizado con las líneas de solicitud que desee. Además, siempre está el campo de referencia.

El correo, por otro lado, es un poco más doloroso. Lo mejor que se me ocurre es elegir lo que pueda de los registros del servidor y, si realmente necesita saber , configurar una captura de paquetes para SMTP.

Jason Antman
fuente
con apache vhosts solo sé qué rutas estoy entregando a dominios específicos ... no todos los dominios que están configurados: si apuntas mynewdomain.tld a mi servidor, ya que no hay entrada de vhost, apache solo devolverá el raíz web predeterminada
warren
1
Sin embargo, examinar los registros podría funcionar, no había pensado en eso como una forma de hacerlo en el servidor.
Warren
LogFormat %{Host}i hostnamelog, luego CustomLog /path/to/log hostnamelogen su VHost predeterminado, asegurándose de que esté separado de cualquiera de sus VHosts "reales". Luego, ocasionalmente, sort /path/to/log | uniq -c | sort -npara tener una idea de lo que te está golpeando.
BMDan
2

Debes comprobar si RobTex no es el mejor diseño web, ¡pero es muy útil! Puede encontrar todos los DNS asociados a una IP.

Por supuesto, como explicó Alnitak,

No es posible hacerlo con el protocolo DNS en sí

Eso significa que este sitio web es solo una enorme base de datos de la mayoría de los servidores DNS / IP. Eso es bastante eficiente pero no 100% exhaustivo.

Bonswouar
fuente
El enlace parece estar roto o tiene un SSL realmente malo
Adam Nofsinger