dnsfind je program za iskanje delujočih rekurzivnih DNS srežnikov v podomrežjih naslovnega prostora IPv4.
namestitev na debianske sisteme:
dodati je treba moj APT repozitorij, navodila za to so na http://prog.sijanec.eu
apt install dnsfind
prevod in namestitev na ostale s posix kompatibilne sisteme:
make && make install
program vsakemu strežniku v kot argumenti navedenih omrežjih pošlje majhen IPv4(UDP(DNS)) paket, manjši od 68 bajtov, tako da se ne fragmentira, vsebujoč DNS zahtevo za poljubno domeno. domena mora imeti v DNS sistemu en A zapis, program pa preveri, če se zapis v morebitnem odgovoru ujema z dejanskim A zapisom in ustrezno sporoči na standardni izhod.
da se nastaviti časovne zamike, recimo zamik med pošiljanjem paketov. program po želji lahko shranjuje bodisi prejete in poslane bodisi samo prejete pakete v PCAP datoteko za nadaljno statistično obdelavo.
ob vsakem prejetem paketu se izpiše vrstica na standarni izhod v slednji obliki:
vsaka vrstica se začne z RESPONSE, temu sledi tabulator in naslov strežnika nato pa:
eno izmed - WORKING, kar pomeni, da je prvi A zapis odgovora pravilen,
- LYINGWITH predledek naslov, kar pomeni, da je 1. A zapis napačen in ga pove,
- NOA, kar pomeni, da A zapisa ni bilo v odgovoru.
prvima dvema zapisoma (WORKING in LYINGWITH) lahko sledi še en tabulator in MORETHANONE
presledek številka, ki pove, da je odgovor vseboval več kot en A zapis in pove koliko jih je.
stikala za razne opcije je treba navesti pred omrežji in so sledeča:
-a Nastavi IP naslov A RR domene, podane v -d, ki naj se uporabi namesto klica getaddrinfo(3)
-b Uporabi mrežno kartico, katere IP naslov je podan, za pošiljanje in prejemanje paketov
-d Nastavi domeno z enim A zapisom, ki bo poslana kot vprašanje (privzeto: dnsfind.sijanec.eu)
-e Ne vključi poslanih paketov, ki so itak vedno isti, v PCAP datoteko, nastavljeno z -o
-h Pokaže besedilo pomoči
-o Sproti naj se v navedeno datoteko piše vsak poslan/prejet (glej -e) paket v PCAP obliki
-p Nastavi številko izvornih UDP vrat. Če ni navedena, jedro izbere eno prosto.
-t Zamik pred pošiljanjem naslednjega paketa v mikrosekundah (privzeto in minimalno 1000)
-w Končaj toliko mikrosekund po prejemu zadnjega paketa po koncu pošiljanja (privzeto 1000000)
stikalom sledijo omrežja, ki so podana kot naslov omrežja, poševnica in omrežna maska.
omrežja so ločena s presledki, z drugimi besedami mora biti vsako svoj argument.
naslov omrežja in omrežja maska sta lahko tudi domeni, ki sta na začetku prevedeni v IPv4.
omrežne maske so lahko tudi število začetnih nastavljenih bitov (24 za 255.255.255.0).
omrežne maske, ki niso CIDR, so dovoljene, recimo 255.0.255.255.
na primer za skeniranje celotnega Interneta se lahko uporabi kakršen koli naslov in maska 0.
opozorilo: pred skeniranjem velikih omrežij se posvetujte s ponudnikom omrežne povezljivosti in
vsekakor zamenjajte domeno iz dnsfind.sijanec.eu na nekaj svojega s stikalom -d.
teoretično bi trajalo en dan za skeniranje celotnega naslovnega prostora IPv4 (2^32 računalnikov), a
je ta številka lahko veliko večja, recimo tudi zato, ker jedro skoraj vedno malo zamudi zamik med
pošiljanjem dveh paketov, ki je uveljavljen s sistemskim klicem <code>poll(2)</code>. prav tako se
čas porablja tudi ob pisanju na standardni izhod, standardno napako, vtičnice in PCAP datoteko.
-- Anton Luka Šijanec <anton@sijanec.eu> Tue, 18 Jan 2022 14:30:00 +0200