10:19
16/8/2010

Buszujący w DNS…

Większość osób świadomych zagadnień bezpieczeństwa i prywatności w Internecie kilka razy zastanowi się zanim poda w portalu społecznościowym swoje dokładne dane. Jednak, czy będąc administratorem systemu sieciowego nie robimy mimowolnie czegoś bardzo podobnego? Zostawmy cały “łebdwazerowy buzz” i skupmy na jednej najstarszych usług internetowych — DNS, a dokładniej reverse DNS, która zamienia adres IP na przypisaną mu nazwę.

Autorem tego, artykułu jest Zając Poziomka.
Jeśli chcesz, aby twój tekst ukazał się na Niebezpieczniku daj nam znać

Badanie DNS

Celem przeprowadzonego jakiś czas temu badania było zebranie revDNS-ów dla wszystkich adresów IP przydzielonych oficalnie Polsce i przeanalizowanie ich pod kątem nazw przypisywanych systemom przez administratorów — ze szczególnym uwzględnieniem potencjalnych zagrożeń dla bezpieczeństwa.

Bloki IP zostały zaczerpnięte ze strony http://www.countryipblocks.net, do odpytywania DNS został użyty nmap ożeniony z paroma skryptami w perlu i bazą MySQL.

Psst, DNS-ie, nic już nie mów...

Całe skanowanie zostało rozproszone na kilkanaście serwerów DNS na całym świecie i trwało z przerwami ok. 4 tygodni, tak aby nie powodować zbytnich obciążeń ani zbędnych alarmów u operatorów. W sumie przeanalizowano 14,5 miliona adresów IP, z czego 10 milionów miało prawidłowy wpis revDNS — kilkanaście sieci miało błędną konfigurację powodującą błędy DNS (“czarne dziury”, odpowiedzi DNS z flagą “Unknown error”, itp).

Wyniki Badania DNS w Polsce

Oto jakie ciekawostki można znaleźć w wynikach:

[zajc@host]$ cat dns | grep vlan | wc -l
5277

servodat.vlan255.architor.XXXXXX.net.pl
vrrp1-taczaka-vlan2.net.XXXXXXXX.pl — baaardzo duży portal, na wejściu znamy lokalizację urządzenia, wiemy że korzysta z protokołu VRRP, znamy vlan, adresy mac (można wyliczyć z informacji, ze jest to grupa 1 VRRP) — nice.

vlan1-sw1.XXXXX.pl (sw1 = switch 1)
vlan2-broadcast.XXXXX.pl
XXXXX.vlan2.smartbox-77713.XXXXX.net.pl — czy smartbox to jakaś marka sprzętu WAN? Nie znalazłem informacji nigdzie, a nazwa w DNS pojawia się często.
mgmt-vlan.c1900.XXXXX.pl — punkt zaczepienia do sieci managementowej? Miau :)
atrium.vlan322.XXXXX.pl
snopkowska6.vlan333.XXXXX.pl
do-szombierki1.vlan2.XXXXX.pl

Bardzo często przewijają się nazwy ulic/węzłów, firm podpiętych do routerów, itp — dysponując odpowiednią ilością wolnego czasu na podstawie samych wpisów DNS można sobie rozrysować dokładnie całą sieć danego operatora WAN, wraz z VLANami, punktami styku międzyoperatorskiego, itp. Na talerzu podana cała architektura warstwy 1 i 2.

Wyszukiwanie serwerów testowych

Poszukajmy serwerów testowych, z definicji nie przywiązuje się wagi do ich bezpieczeństwa :)

[zajc@host]$ cat dns | grep ^test | wc -l
1868

test.XXXXX.gov.pl – nielubiane ministerstwo ;)
testowy0.XXXXX.pl
testmail.XXXXX.edu.pl
testphp5.XXXXX.pl
testwww.XXXXX.pl – znana firma ubezpieczeniowa :)
test.XXXXX.pl – popularny plebiscyt telewizyjny, może już leżą przyszłoroczne wyniki ;)
test.XXXXX.pl – bardzo duży bank
test-ns-01.XXXXX.pl – ani chybi DNS testowy, może ma otwarty port 53 TCP? :)
testowy.XXXXX.policja.gov.pl :)
test123.XXXXX.pl – jeden z największych portali
testsmtp.XXXXX.pl
test-asterisk.XXXXX.pl – asterisk to popularna bramka telefoniczna

[zajc@host]$ cat dns | grep backup | wc -l
231

mx-backup.XXXXX.pl
poczta-backup.XXXXX.pl
backups.XXXXX.pl
backupBGP.XXXXX.pl
backupstore1.XXXXX.pl
backupserver.XXXXX.com.pl
sysbackup.XXXXX.pl

Szukamy ciekawych usług

DNS:

[zajc@host]$ cat dns | grep ^dns\\. | wc -l
779

[zajc@host]$ cat dns | grep ^ns\\. | wc -l
410

MySQL:

[zajc@host]$ cat dns | grep mysql | wc -l
779

phpmysql.XXXXX.pl
mysql5.XXXXX.pl
mysql41.XXXXX.pl
mysqlbackup.XXXXX.pl

ciekawe, czy numery wersji dalej się zgadzają z tym co jest na serwerze :)

FTP:

[zajc@host]$ cat dns | grep ^ftp\\. | wc -l
781

Proxy:

[zajc@host]$ cat dns | grep proxy | wc -l
818

www-proxy.XXXXX.pl
test-proxy.XXXXX.com.pl – duża i znana firma :)
proxy2.XXXXX.pl – duża i znana firma :)
proxy12.XXXXX.pl – duża i znana firma :)
proxy13.XXXXX.pl – duża i znana firma :)
imap-proxy.XXXXX.pl

[zajc@host]$ cat dns | grep w3cache | wc -l
324

Serwisy pocztowe:

[zajc@host]$ cat dns | grep ^poczta\\. | wc -l
1955

[zajc@host]$ cat dns | grep ^mail\\. | wc -l
4149

[zajc@host]$ cat dns | grep ^pop3\\. | wc -l
64

[zajc@host]$ cat dns | grep ^smtp | wc -l
712

Apache:

[zajc@host]$ cat dns | grep ^apache | wc -l
16

tylko 16 – nie jest źle :)

Routery:

[zajc@host]$ cat dns | grep router| wc -l
3875

[zajc@host]$ cat dns | grep "^gw[\.0-9]"| wc -l
2263

[zajc@host]$ cat dns | grep ^gateway| wc -l
415

Różności — tutaj nie będę podawał liczby wyników wyszukiwania, bo jest ona niemiarodajna (np. jest dużo domen zawierających dane słowo kluczowe)

Urządzenia sieciowe:

[zajc@host]$ cat dns | grep ^print

printer.XXXXX.pl
printserver2.XXXXX.com.pl (aż do printserver5)
print-hp2100.XXXXX.pl
print-oki.XXXXX.pl
printserver_panasonic.XXXXX.pl

[zajc@host]$ cat dns | grep ^hp

hp5color.XXXXX.pl
hplj1320m.XXXXX.pl
hplj4050.XXXXX.pl
hplaser.XXXXX.gov.pl
;)
hp4000.XXXXX.pl – duża firma badania opinii publicznej :)
hp-officejet.XXXXX.pl
hp1500marketinglan.XXXXXX.pl

I coś na koniec :)

[zajc@host]$ cat dns | grep dupa | wc -l
4

spodziewałem się, że będzie znacznie więcej :)

Wnioski

Krótka analiza pokazała, że sposób przydzielania nazw revDNS może ujawnić zbyt wiele informacji dotyczących architektury sieci, jej usług, czy urządzeń. Zwłaszcza łatwe namierzenie serwerów testowych może być łatwym punktem do ataku na daną firmę, czy umożliwić wykradzenie danych leżących publicznie na takim serwerze (security by obscurity).

O ile trudno za problem bezpieczeństwa uznać nazywanie hostów adekwatnie do ich zastosowania (dns, www, ftp, proxy), o tyle posiadanie dużej bazy z danymi revDNS pozwala na szybkie wyszukanie serwerów, które mogą być podatne na atak z wykorzystaniem np. exploita 0day. Nazywanie hostów wg. działającego na nich oprogramowania (np. mysql) to zasadniczo ZłyPomysł(tm) — a podawanie wersji to proszenie się o “kuku” :)

Osobną kwestią pozostaje aktualność danych DNS i ich odzwierciedlenie w rzeczywistości — jest to kwestia do przebadania w praktyce i być może w przyszłości pojawi się osobna analiza tego zagadnienia. Nawet jeżeli tylko 10% wpisów jest prawidłowych daje to spore pole do działania…

Wszelkie komentarze i pomysły na wyszukiwanie innych ciekawych rzeczy w takiej bazie mile widziane — może będzie kolejna część tego dokumentu.

Od Redakcji: Na naszych szkoleniach z bezpieczeństwa protokół DNS nazywamy “kolosem na glinianych nogach”, ukazując nazwy RevDNS jako mocną wskazówkę co do tego, który z systemów danej firmy zaatakować najpierw. W logach niebezpiecznikowego serwera widzieliśmy już hosty z takimi RevDNS-ami jak “krystian”, “asterisk” czy “*.in-addr.arpa”. Niektóre z nich należały do największych polskich serwisów portali i serwisów, co tylko pokazuje, że pomyłki (literówki) w plikach konfiguracyjnych zdarzają się każdemu :-)

Przeczytaj także:


25 komentarzy

Dodaj komentarz
  1. grepnij po home, moze jakies adresy domowe znajdziesz :)

  2. Ciekawy artykuł… Mam małe pytanie odnośnie wersji konkretnych usług sieciowych i ich ukrywania. Jak np. zabezpieczyć się przed tym, by skaner typu “nikto”

    http://en.wikipedia.org/wiki/Nikto_Web_Scanner

    nie był w stanie wykryć wersji używanego oprogramowania? Jakaś wskazówka?

    • @okropnick: mod_security i podmiana bannera (albo to samo w konfiguracji danej usługi — o ile na to pozwala). Skanery jednak nie tylko zgaduja wersje na podstawie bannera, ale rownież po charakterystycznych odpowiedziach – tu podmiana bannera nic nie da (por. Nmap; poguglaj za fingerprinting)

  3. ~# host vrrp1-taczaka-vlan2.net.${drogosprzedam}.pl
    Host vrrp1-taczaka-vlan2.net.${drogosprzedam}.pl not found: 3(NXDOMAIN)

    jak widać, i administratorzy DrogoSprzedam nie śpią ;)

  4. dla autora postu – “useless use of cat” – http://partmaps.org/era/unix/award.html

    Co do sieci “bardzo dużego portalu” to nie problem znaleźć, kto to, no ale nie ma go jak uchronić nie tracąc dobrego przykładu ;) .

    mgmt-vlan.c1900.XXXXX.pl – cisco 1900 ? (akurat tutaj można się spodziewać, że nazwa jest już dawno nieaktualna, ale to tylko przykład)

  5. @Okropnick: Zależy od usługi,ale przeważnie pogrzebanie w źródłach i ich zmiana pomaga. Nie ma magicznych przełączników np do Apache’a (chociaz tutaj np mod_security2 potrafi zmienić nazwę bez problemów), albo nginx-a.

  6. @d2, @Piotr Konieczny: Dzięki.

  7. Podepnę się pod prośbę RooTer’a
    “man grep” bo aż oczy razi !

    zamiast
    “cat dns | grep vlan | wc -l”
    grep -c vlan dns

    analogicznie reszta
    szybciej i bardziej zrozumiale

  8. @OkropNick zapoznaj się z narzędziem typu HttpRecon (http://www.computec.ch/projekte/httprecon/), to tak na przykładzie serwera HTTP. O ile ograniczanie ilości informacji na temat usługi jest wskazane (zwykle – opcje konfiguracyjne), o tyle zmiana bannera na niewiele się zda, jak zresztą pisał Piotrek. Po prostu poszczególne wersje oprogramowania mają swoje cechy charakterystyczne, których przez samą podmianę bannera nie zamaskujesz.

    Jeśli miałbyś modyfikować źródła oprogramowania tylko po to, by zmienić banner, to najprawdopodobniej mija się to z celem – prosisz się o większe problemy, niż z tego masz zyski. Choćby z aktualizacją oprogramowania.

  9. @Loku
    Może szybciej ale bardziej zrozumiale – NIE. Nie każdy zna na pamięć przełączniki grepa a komendę wc raczej tak :-)

  10. Ok, następnym razem będzie koszerny grep :).

    Bardzo często działa translacja IP – revDNS ale w drugą stronę już nie, dlatego
    Host vrrp1-taczaka-vlan2.net.${drogosprzedam}.pl not found: 3(NXDOMAIN) nie działa i jest to normalne zachowanie. Z ciekawostek podam, że {drogosprzedam} swoje hosty nazywa markami alkoholi :D

    Czekam na pomysły dot. szukania innych ciekawych rzeczy w takiej bazie. Na chwilę obecną admini Gazety Wyborczej i Newsweeka dali nieźle ciała, ale o tym na razie sza ;)

  11. @PawełGoleń: fajny program, dzięki za link, bo nie wiedziałem, że takie oprogramowanie istnieje. Wykonałem test na dwóch webserwerkach. Wynik jest taki, że Apache ze zmienionym server stringiem przy użyciu modsecurity dostał w tym programie 100% jako Apache 2.0.54 (prawdziwy – apache 2.2.6), natomiast nginx przekompilowany został rozpoznany jako Apache 2.2.3, później IIS 6.0, znowu Apache 2.0.54 i dopiero na 5 pozycji nginx 0.5.32, mimo że serwer był z zupełnie innej gałęzi. Do rzeczy – uważam, że mimo iż takie narzędzia istnieją i będą coraz lepsze (domyślam się, że to kwestia odpowiednich sygnatur), to i tak warto pokusić się o proste tricki w postaci zmiany bannera na danej usłudze, bo z niezłym skutkiem pozwalają wywieźć w pole potencjalnego włamywacza.

  12. @d2: httpRecon podałem jako przykład. Jest jeszcze kilka innych cech, po których można ustalać, z czym ma się do czynienia, np. kwestia tego, czy nazwy plików są/nie są case sensitive, do ego jeszcze dochodzi tak zwana intuicja. Ogólnie rzecz biorąc powtórzę to co pisałem – o ile ograniczyć ilość danych zwracanych przez usługę należy (patrz w przypadku Apache np. ServerSignature i ServerTokens), to w pewnej chwili wartość dodana takich zmian jest niższa, niż nakład pracy, który musisz w nie włożyć.

    Przy okazji – dość głupim pomysłem jest wstawianie w banner nazwy oprogramowania, które nie istnieje, lub w oczywisty sposób różni się od rzeczywiście zainstalowanego.

  13. Niespodziewanie atrakcyjny post w sezonie ogórkowym. Gratuluję pomysłu, wykonania i chęci podzielenia się.

  14. No proszę nawet policja… no kto by pomyślał…
    a to nielubiane ministerstwo to nie jest czasem ePUAP, PARP ?

  15. Jestem ciekaw czy takie odpytywanie jest legalne…

  16. http://www.robtex.com – sporo daje ;-) Może nie takie dokładne jak narzędzie autora ale jest spoko ;-)

  17. Straszne!
    a co z nazwami w stylu r4-isp-to-acx.ac-x.pl czy też z-peering.global-primary.aster.pl? wynika z nich że są to publiczne routery! skandal! cóż za lekkomyślność!

    /me czeka z niecierpliwością aż autor poza inne opcje programu nmap, wtedy na pewno odkryje znacznie więcej zagrożeń dla bezpieczeństwa czyhających w internecie!

    BP
    MSPANC

  18. co do smartbox – tak to jest sprzet uzywany glownie w chinach stoja na nim hotspoty… ciezko cos znalezc na ten temat bo cale to urzadzenie jest od gory do dolu po chinsku nawet samo “smartbox”…

  19. @PCX
    A ten SmartBox to nie jest przypadkiem bramka VoIP Wisecom Technologies Ltd. z oprogramowaniem OpenRG™?

  20. 1. od czego są widoki w serwerach dnsowych?
    2. sam rdns wiosny nie czyni..
    3. zazwyczaj takie hosty wpuszczają tylko z określonych podsieci
    4. nie nakręcał bym się jak autor tego posta :)
    5. o topologi sieci nie wiele się dowiesz, do póki nie masz widoku fizycznych połączeń, w każdym innym wypadku można sobie co najwyżej gdybać, co z czym jak i którędy..

    pozdrawiam,
    Ł.

  21. Oj nawet nie wiesz jak się mylisz z tym wpuszczaniem z określonych sieci ;-). Owszem część administratorów to blokuje, ale jak ktoś wpisuje w rDNS za dużo i to na zablokowanie ruchu nie wpadnie. Ot, chociażby testowe wersje portali internetowych – tak poleciały hasła z wykop.pl, tak wyciekły dane z banku WBK ( o czym nikt chyba jeszcze nie słyszał), itp.
    Z punktu widzenia bezpieczeństwa nie przywiązywałbym wielkiej wagi do analizy połączeń fizycznych – liczą sie zależności funkcjonalne a nie to, czy router A jest wpięty do interfejsu Gi/0/1 czy może Gi/0/11.

  22. Ciekawe:) Może głupie, ale z jakiego pliku wziąłeś IP?
    ja pod linkiem: http://www.countryipblocks.net/e_country_data/PL_range.txt
    nie widzę mojego IP. A jest to DSL z TP.

  23. […] W analizie DNS-ów może Wam pomóc skrypt dnsenum. Warto też zapoznać się z badaniem zająca poziomki, który przeanalizował RevDNS-y dla polskich klasy adresowych. […]

  24. @ZajacPoziomka: mówisz o wycieku z BZ WBK, który był pod koniec zeszłego roku?

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: