¿Búsqueda de DNS con comodines?

8

¿Algo parecido nslookupu digofrece la posibilidad de buscar en base a algo contenido en el nombre ... como una búsqueda con comodines o algo así?

Estoy tratando de hacer un pequeño script con un contenedor GUI para nuestro equipo de servicio de asistencia. Idealmente, me gustaría que puedan buscar el apellido del usuario (algo que siempre está presente en el registro DNS) y luego completaré un menú desplegable con las posibles opciones para elegir.

No puedo encontrar una manera efectiva de tener el equivalente de nslookup *miller*... sería genial volver

Name: sf-jacobmiller.localdomain.com
Address: 10.10.10.121

Name: sf-justinmiller.localdomain.com
Address: 10.10.10.144

..que luego podría analizar en un menú desplegable para que puedan elegir.

Todavía no he examinado qué hay disponible con lo ldapsearchque pueda hacer lo que estoy buscando. Mi único requisito es que esto esté integrado en OSX y no necesitaré instalar nada más, de lo contrario, estoy abierto a cualquier solución que pueda ofrecer. Gracias

Try TryAgain
fuente

Respuestas:

11

Puede obtener una lista completa de entradas en una zona con una transferencia de zona; necesitaría permitir esto para los sistemas autorizados en su servidor DNS.

Una vez hecho esto, puede ejecutar la transferencia y obtener el resultado:

dig axfr localdomain.com | grep -i miller
Shane Madden
fuente
Tan fácil y directo como podría haber esperado. Gracias
Try TryAgain
Me gustaría editar su respuesta para incluirla de grep -imanera que no distinga entre mayúsculas y minúsculas, de lo contrario me di cuenta de que las mayúsculas y minúsculas causarían demasiados problemas. Sin embargo, no puedo hacer una edición tan pequeña. Gracias de nuevo por una solución tan elegante, exactamente lo que estaba buscando.
Try TryAgain
6

Un servidor de nombres no le permitirá, por diseño, buscar una zona o consultar para qué zonas tiene autoridad. Más allá de la razón obvia de reducir los vectores de ataque (no puede hacer una solicitud HTTP / 1.1 a un host si no conoce su nombre), hay una muy buena razón para esto: una zona puede contener comodines, por lo que preguntar para cada host en esa zona es como dividir por cero.

Si opera el servidor de nombres cuyos registros desea buscar, puede hacer una transferencia de zona a un servidor de nombres local y buscar los registros directamente. Aún necesitará analizar los registros de texto en cualquier formato en el que se transfieran, ya que un servidor de nombres local no responderá de manera diferente.

dartonw
fuente
6

Solo puede preguntar a un servidor DNS si tiene un registro específico. Entonces, no, no habrá tal herramienta para DNS.

Editar

Zonetransfer es, por supuesto, una posibilidad si está disponible.

Christopher Perrin
fuente
Parece que se demostró que te equivocaste, como esperaba.
Try TryAgain
3
@TryTryAgain En realidad, en el caso general es del todo correcto: Tenga en cuenta las palabras clave en la respuesta que aceptó: need to allow this for authorized systems in your DNS server. Por ejemplo, si intenta una transferencia de zona serverfault.com(o, de hecho, prácticamente cualquier zona que no controle o para la que no haya hecho arreglos con los administradores de DNS) no obtendrá resultados.
voretaq7
44
@ Try TryAgain La redacción también parece ser un poco grosera. Si la respuesta fuera tan obvia como la estás haciendo sonar, no hubieras tenido que publicar la pregunta. Todos estamos aquí para ayudarnos unos a otros ... generalmente.
Andrew B
1

De acuerdo con la respuesta marcada, pensé que un bucle for podría ser una alternativa para alguien que no está autorizado para hacer una transferencia de zona. Si conoce el rango de IP:

name="mthebeau"
net="123.45.67."
for ip in $( seq 1 255 ); do {
    sleep 1; # be kind to the server, unauthorized user
    text="$( nslookup $net$ip 2>&1 | grep "$name" )";
    if [ -z "$text" ]; then continue; fi;
    echo "$text";
}; do

Busqué esta respuesta porque quería abrir mi escritorio a un usuario local cuya IP y nombre de máquina no conocía.

usuario456228
fuente