massove scanny

23.09.2001 22:03

akoze mlady hacker se urcite casem dostane k problemu, kde sehnat dobre gateway
v relativne kratkem case a bez nejakeho vetsiho usili. pomineme-li celkem pracne
hledani spatne napsanych php stranek v googlu, tak asi jedinym spolehlivym
resenim jsou massove scany.

massovy scan je typ scannu, pri kterem automatizovane scannujeme plosne vybranou
oblast pocitacu (napr. domenu celou domenu .sk) a sbirame bannery, fingerujeme
uzivatele, zjistujeme verzi bindu apod. ve vysledcich pak uz lze snadno najit
vsecky pocitace, na kterych bezi napr. vadna sluzba xpop verze > 1.0, ty pak
lechce sploitnout a voila, gateway je na svete.

takze co potrebujeme: jednu dobrou gate na dostatecne rychle lince, kterou jsme
ochotni obetovat, ip adresy scannovanych pocitacu, scanner.

1) gateway

gateway urcenou ke skenovani musime mit absolutne pod kontrolou a navic musi byt
na dostatecne rychle lince (aspon 2 MBit). bylo by dobre aby admin byl v tu dobu
nekde na dovolene, protoze pokud mu nejakym zpusobem neodfiltrujeme postu
(gateway je v .ru, ipchains deny na 25 z .cz) budou mu chodit upozorneni o scanu
(vas pocitac nas v pondeli scannoval bla bla...). jako absolutne nevhodne tedy
odpadavaji ruzne konta na skolskych serverch, v praci u tatinka, u kamarada...
na harddisku by melo byt taky aspon 100-200 MB volnych pro ulozeni dnsek a
naskenovanych dat.

2) ip adresy

toto bude jiz vetsi orisek. nejdrive si musime rozmyslet co chceme scannovat,
existuje nekolik moznosti jak se k pozadovanym datum dostat. budto muzeme
scannovat cele intervaly provajdra/zeme, nebo si muzem vytahovat ipcka pocitacu
z dns.

druha moznost je vytahovat si zaznamy z dns pomoci zone transferu - preneseni
cele zony, ktere spravuje dns hezky k nam. nejdriv tedy kontaktujeme nejakou top
level domenu, ktera nam poskytne data o domenach druheho radu - tedy napr pro
domenu cz by jsme to v linuxu provedli asi takto:

host -al cz. ns.uu.net > domain.cz

mezi tim si skocnem uvarit kafco, protoze nez se pres sit prenese 20 MB, bude to
par minut trva. tak tedy mame vsechny domeny druheho radu hezky doma. co ted?
kontaktujeme nameservery domen druheho a vyzadame si to same - zone transfer -
ted uz to budou vetsinou konkretni hosti. toto je dobre delat az pri samotnem
scanu, jinak bychom taky mohli klidne zaplnit cely disk dns zaznamama, ktere
budou mit v pripad .cz klidne i par giga.

3) scanner

potrebujeme nejaky jednoduchy, nenarocny a inteligentni, ktery si muzeme
prizpusobit k obrazu svemu a predavat mu scanovana ipcka do stdin. takovych
existuje hafo, namatkou treba mscan a sscan, ja sem si vsak napsal svuj, protoze
zadny uz existujici mi nevyhovoval. menuje se is a najdete ho
z http://gargamel.or.cz/archiv/security/ig/is/is4.tgz . pri
scannovani catchuje bannery, u httpd zjistuje verzi httpd serveru, fingeruje
a pri smtp VRFYkuje preddefinovane uzivatele, catchuje telnet bannery, zjistuje
open proxy, dokaze zjistit verzi bindu a rpc sluzby. zdrojak je dle meho celkem
citelny a tak neni problem si dle chuti pridat test na tu ci onu sluzbu, ktera v
pri defaultnim nastaveni neni. take lze nastavit pocet potomku, ktere ma scanner
forkovat (nejlepe 10-15) a dobu, za niz se spojeni oznaci za vytimeoutovane.
vysledky uklada do souboru scan.

balik s is obsahuje take programy interval, z0ne (neni z moji produkce) a
zoner.sh, ktery praci vyrazne z automatizuje. ve skriptu zoner.sh lze
nadefinovat vstupni soubor s dns zaznamy, umisteni programu z0ne, scanneru,
logfile a tmpfile. skript pracuje tak, ze veme jednu domenu druheho radu, pomoci
programu z0ne provede jeji axfr a jednotliva ipcka oscannuje.

takze nyni uz mame vsechno a muzeme zacit. stahneme si dnsku .cz (host -al cz.
ns.uu.net > domain.cz), zkompilujeme scanner a pustime zoner.sh. pokud uvidime
neco jako scanning blabla... je vse v poradku a scanner scanuje. v souboru
zon.log (jeslti jste si to nezmenili) uvidime prubeh scanu a axfr.

ted si par dni pockame, nez scanner oscanuje vsecko co ma. v prubehu stahujeme
vysledky hezky domu (vsechny scan.* soubory). muzeme si je zanalyzovat, treba
tak, ze si udelame databazi vsech vunebrale programu a pak postupne prochazime
jednotlive scanlogy a matchujeme. jednim z nejjednodussich prikladu je napr.

grep BIND scan.* | grep "8.2.2"

cimz ziskama vsechny pocitace s vunebrale verzi bindu. jak s temito udaji
nalozite je jen na vas.

doscanovania, pepa zdechlikzdechlik