Ricerche DNS inverse


13

Buongiorno a tutti,

Mi è stato consegnato un dominio con circa 150.000 record DNS al suo interno per un totale di 100.000 macchine. I record DNS si trovano tutti in un'unica zona di ricerca diretta sullo stesso dominio e, solo per essere utili, non esiste una zona di ricerca inversa.

Dato che scavare e invecchiare non è un'opzione (solo la mia fortuna!), Ho bisogno di trovare un modo semplice per uccidere un sacco di dischi vecchi.

Il punto di partenza più semplice per me era cercare di eliminare tutti i record che hanno un timestamp più vecchio di un anno (circa 2700 record) - ma alcuni di loro stanno ancora rispondendo al ping.

Le probabilità sono queste perché usiamo DHCP e da allora gli IP sono stati dati ai nuovi host.

Normalmente una ricerca inversa zoen sarebbe davvero utile in questo momento in modo da poter cercare più registrazioni per un IP, ma come ho detto prima - non ce n'è una.

Qualcuno conosce la parte superiore della testa un modo semplice per cercare duplicati? Ho considerato un'esportazione completa in CSV da DNS e ho iniziato a ordinare e filtrare, ma per oltre 2k record, speravo in qualcosa di un po 'più semplice.

Inoltre, a causa della natura scadente di alcuni dei kit che eseguiamo, è sufficiente eliminare solo i record e consentire una nuova registrazione!

Pensieri ?

EDIT: non tutte le macchine sono unite AD, quindi un confronto AD / DNS è fuori discussione.

EDIT 2: Voti a tutto tondo, alcuni suggerimenti davvero buoni qui! Ho già iniziato a lavorare su esportazioni e comapre in Excel, ho un ping per ogni IP / Host in corso registrandomi a un file di test per vedere cosa è e non è reale e sto aspettando l'approvazione del cambiamento per un'acquisizione di pacchetti per avviare il monitoraggio in tempo reale. Questi script sono anche utili e, anche se non li userò nel loro formato attuale, mi hanno dato una buona base per eseguire le mie cose. Grazie a tutti!

Risposte:


8

Se è possibile esportare come CSV, quindi importare in Excel, è possibile utilizzare la formattazione condizionale per generare un elenco di duplicati?

http://www.tech-recipes.com/rx/35290/excel-2013-find-duplicate-data-using-conditional-formatting/


4
Si prega di non utilizzare collegamenti per soluzioni. Fornire la soluzione nella risposta mantiene la risposta migliore perché i collegamenti possono andare a male.
Paul,

3
Per essere chiari su ciò che dice @Paul, ovviamente sono desiderati i collegamenti, ma non solo i collegamenti. Quindi mantieni il link nella risposta, ma aggiungi ciò che è scritto sul suo target.
glglgl

Giusto! Lo farò in futuro.
Rhys Evans,

6

Userei nmap per verificare tutti i tuoi host vivi che dovrebbero cancellare il resto dei record morti per te. Consiglio vivamente di scavengare da questo punto in avanti però. Sembra divertente però :)


Funzionerebbe se gli host sono sempre attivi. Se le macchine sono anche portatili, alcuni (o molto, dipende dall'attività) potrebbero perdersi.
WoJ,

4

Qui ci sono due script (che sono quasi identici): uno per trovare IP duplicati e uno per trovare nomi duplicati.

#region Find duplicate name in dns records
$DupNames = Get-WmiObject -ComputerName 'dc2008' `
   -Namespace 'root\MicrosoftDNS' `
   -Class MicrosoftDNS_AType `
   -Filter "ContainerName='yadsarah.org.il'" | Select-Object RecordData, TimeStamp, OwnerName | `
Group-Object OwnerName | Where-Object {$_.Count -gt 1}

$DupNamesArr = @()
foreach ($RecordGroup in $DupNames) {
    foreach ($Record in $RecordGroup.Group) {
        $RecordObj = New-Object System.Object
        $RecordObj | Add-Member -MemberType NoteProperty -Name 'Name' -Value $Record.OwnerName
        $RecordObj | Add-Member -MemberType NoteProperty -Name 'IPAddress' -Value $Record.RecordData
        $RecordObj | Add-Member -MemberType NoteProperty -Name 'TimeStamp' -Value $Record.TimeStamp
        $DupNamesArr += $RecordObj
    }
}
#endregion

#region Find duplicate IP in dns records
$DupIPs = Get-WmiObject -ComputerName 'dc2008' `
   -Namespace 'root\MicrosoftDNS' `
   -Class MicrosoftDNS_AType `
   -Filter "ContainerName='yadsarah.org.il'" | Select-Object RecordData, TimeStamp, OwnerName | `
Group-Object RecordData | ?{$_.Count -gt 1}

$DupIPArr = @()
foreach ($RecordGroup in $DupIPs) {
    foreach ($Record in $RecordGroup.Group) {

        $RecordObj = New-Object System.Object
        $RecordObj | Add-Member -MemberType NoteProperty -Name 'Name' -Value $Record.OwnerName
        $RecordObj | Add-Member -MemberType NoteProperty -Name 'IPAddress' -Value $Record.RecordData
        $RecordObj | Add-Member -MemberType NoteProperty -Name 'TimeStamp' -Value $Record.TimeStamp
        $DupIPArr += $RecordObj
    }
}
#endregion

Appunti:

  1. Alcuni sistemi (come il bilanciamento del carico) richiedono alcuni record duplicati per funzionare correttamente.

  2. È possibile aggiungere il nome del computer e l'IP utilizzando WMI, verificando così il record.

  3. I record con data e ora 0 sono statici, nel senso che sono stati aggiunti manualmente (e hanno maggiori probabilità di essere importanti).


2

Forse puoi registrare tutte le richieste DNS della vita reale per un periodo di tempo sufficientemente lungo (questo potrebbe in effetti essere di diversi mesi se vuoi catturare quello script di statistiche una-per-trimestre-query-tutte-tutte-pagina-stampante-pagina). Quindi eliminare tutti i record non richiesti.

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.