Ricerca DNS con caratteri jolly?


8

Qualcosa di simile nslookupo digoffrire la possibilità di cercare in base a qualcosa contenuto nel nome ... come una ricerca jolly o qualcosa del genere?

Sto cercando di creare un piccolo script con un wrapper GUI per il nostro team di helpdesk. Idealmente, mi piacerebbe che potessero cercare il cognome dell'utente (qualcosa che è sempre presente nel record DNS) e quindi popolare un menu a discesa con le possibili opzioni tra cui scegliere.

Non riesco a trovare un modo per avere effettivamente l'equivalente di nslookup *miller*... sarebbe bello poter tornare indietro

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

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

..che potrei quindi analizzare in un pulldown per loro da scegliere.

Non ho ancora esaminato ciò che è disponibile con il ldapsearchquale potrebbe essere in grado di fare quello che sto cercando. Il mio unico requisito è che questo sia integrato in OSX e non avrò bisogno di installare nient'altro, altrimenti sono aperto a tutte le soluzioni che puoi offrire. Grazie

Risposte:


11

È possibile ottenere un elenco completo di voci in una zona con un trasferimento di zona; dovresti consentire questo per i sistemi autorizzati nel tuo server DNS.

Una volta fatto, puoi eseguire il trasferimento e grep il risultato:

dig axfr localdomain.com | grep -i miller

Semplice e diretto come avrei potuto sperare. Grazie
Try TryAgain

Vorrei modificare la tua risposta per includerla in grep -imodo che non faccia distinzione tra maiuscole e minuscole, altrimenti ho capito che il caso avrebbe causato troppi problemi. Tuttavia, non posso apportare modifiche così minori. Grazie ancora per una soluzione così elegante, esattamente quello che stavo cercando.
Prova TryAgain

6

Un server dei nomi non consente, in base alla progettazione, di cercare in una zona o di interrogare per quali zone è autorevole. Oltre all'ovvia ragione della riduzione dei vettori di attacco (non è possibile effettuare una richiesta HTTP / 1.1 a un host se non si conosce il suo nome), c'è un ottimo motivo per questo: una zona può contenere caratteri jolly, quindi chiedere per ogni host in una tale zona è come dividere per zero.

Se si utilizza il server dei nomi di cui si desidera cercare i record, è possibile eseguire un trasferimento di zona su un server dei nomi locale e cercare direttamente i record. Sarà comunque necessario analizzare i record di testo in qualunque formato vengano trasferiti, poiché un server dei nomi locale non risponderà in modo diverso.


6

Puoi chiedere a un server DNS solo se ha un record specifico. Quindi, no non ci sarà tale strumento per DNS.

modificare

Lo Zonetransfer è ovviamente una possibilità se è disponibile.


Sembra che ti sia stato smentito, come mi aspettavo.
Prova TryAgain

3
@TryTryAgain In realtà, nel caso generale è del tutto corretto: Nota le parole chiave della risposta è stata accettata: need to allow this for authorized systems in your DNS server. Ad esempio, se si tenta un trasferimento di zona per serverfault.com(o in effetti praticamente qualsiasi zona che non si controlla o per la quale non si è concordato con gli amministratori DNS) non si otterranno risultati.
voretaq7,

4
@ TryTryAgain Anche il fraseggio appare leggermente scortese. Se la risposta fosse ovvia come la stai suonando, non avresti dovuto pubblicare la domanda. Siamo tutti qui per aiutarci a vicenda ... di solito.
Andrew B,

1

Accettando la risposta selezionata, ho pensato che un ciclo for-the-ring potesse essere un'alternativa per qualcuno che non è autorizzato a effettuare un trasferimento di zona. Se conosci l'intervallo 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

Ho cercato questa risposta perché volevo aprire il mio desktop a un utente locale di cui non conoscevo IP e nome macchina.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.