20:16
12/4/2010

NTP, czyli zabawa z serwerami czasu

Serwery czasu NTP (ang. Network Time Protocol) kojarzone są głównie z dostarczaniem informacji na temat bieżącego czasu. Niewiele jednak osób wie, że można je odpytać o kilka innych, ciekawych z punktu widzenia atakującego, informacji…

Narzędzie ntpdc

W naszych zabawach skorzystamy z programu ntpdc, który powinien być standardowo dostępny na systemach *nix/OSX.

Narzędzie to przyjmuje kilka parametrów, m.in.:

peers - pokazuje skojarzone serwery NTP

Statystyki i serwery NTP skojarzone z badanym

sysstats - dane dotyczące usługi czasu po stronie serwera
monlist - adresy IP klientów, które zapytały o czas

Ostatnia akcja jest naprawdę ciekawa, ponieważ zwraca każdemu, kto o to zapyta, 600 adresów IP, które właśnie skorzystały z badanego serwera NTP :>

ntpdc i lista klientów rządowego serwera czasu

Jak wykorzystać adresy IP?

Zastanówmy się teraz, do czego atakujący może wykorzystać wiedzę na temat serwera czasu z jakiego korzysta “ofiara”?

  • Niektóre z urządzeń/narzędzi są domyślnie skonfigurowane do korzystania z danego serwera czasu. Mówimy tu o routerach, firewallach, etc. Odpytując “domyślny” dla tych urządzeń serwer NTP o “monlist” poznamy adresy IP, pod którymi mogą pracować w/w urządzenia i narzędzia.
  • Badając wynik “monlist” poznać możemy adresy IP, które nidy nie pojawiłyby się w trakcie mapowania sieci “ofiary” przez zapytania (r)DNS.
  • Sam serwer NTP można także wykorzystać do 200 krotnego wzmocnienia ataku DDoS

 

Automatyzacja zabawy w metasploicie

Jeśli nie posiadasz narzędzia ntpdc w swoim systemie, możesz skorzystać z multiplatformowego metasploita:

Automatyzacja ntp monlist przy pomocy metasploita

Kolejnym krokiem pentestu mogłoby być przeskanowanie znalezionych w ten sposób adresów IP pod kątem podatności charakterystycznych dla oprogramowania, które domyślnie korzysta z badanego przez nas serwera NTP…

P.S. Dla maniaków Pythona, firma Sensepost przygotowała skrypt ntp_monlist.

Przeczytaj także:



17 komentarzy

Dodaj komentarz
  1. Ciekawe, ciekawe. Nawet nie wiedziałem że jest taka funkcja w NTP ;)

  2. Wydaje się, że wspomniane usługi mogą się też przydać dobrej stronie mocy. Odkąd przekonałem się, że nie znajdę darmowego SOCKS proxy z możliwości zakładania gniazda słuchającego na UDP poprzestałem na projekcie programu do wymiany plików dla dwóch komputerów znajdujących się za różnymi NATami. Problemem był w tym wypadku serwer mediacyjny, bo resztę można zorganizować via e-mail, jabber, etc.

    W tym wypadku wystarczy, że poznamy IP drugiej strony, która następnie skorzysta z konkretnego serwera NTP. Wtedy my łączymy się z serwerem, wrzucamy polecenie nonlist i mamy port UDP naszego kolegi, a więc i namiary na tunel, którym możemy się z nim bezpośrednio komunikować pomimo tego, że nie jesteśmy z nim w podsieci i żaden z nas nie ma publicznego IP ;)

  3. Zaczynam się zastanawiać nad powrotem do poprzedniej epoki – OFFLINE.
    Serio. Dzięki Wam zacząłem się bać i uświadomiłem sobie, że firewall w routerku wcale nie sprawia, że jestem bezpieczny…

  4. Ojapapiernicze… Czemu to miało służyć?

    • @Jurgi: jeśli pytasz, czemu miała służyć ta funkcja, to najprawdopodobniej odpowiedzią jest “diagnostyka” serwera NTP :-)

  5. A ja jestem ciekaw skad zalozenie [ciche], ze wielu ludzi korzysta z NTPD? ;)
    Jesli to tylko ciekawostka, to rzeczywiscie jest to interesujace.

  6. user: root
    password: 1234
    sprawdza się w 1/10 przypadków :P
    Myślicie, że jesteście cwani i zmieniliście hasło do swojego routera? ;> To teraz sprawdźcie dla jakiego konta ;>

  7. oo, ciekawe – nie wiedziałem, że NTP udostępnia aż tak wiele ficzerów ;)
    dzięki za info!

  8. nie zawsze to dziala. standardowo instalowany ntpd chyba jest zapezpieczony przed tym. mam u siebie na debianie najnowszy ntpd i nie odpowiada na zadna komende. A defaultowo ustawiany serwer w confingach ntpd to – 0.debian.pool.ntp.org ktory na pierwsza komende ze skojarzonymi serwerami odpowiada, na druga sysstats tez, na trzecia juz nie :) wiec tu znow chyba jest ze *.gov.pl to malopprofesjonaliscie…

  9. ntpdc> monlist
    tempus1.gum.gov.pl: timed out with incomplete data
    ***Response from server was incomplete

    już chyba zalatali? czy za duzo osob probuje sie dopchac? :P

  10. Eeee… Nie jest tak źle. Serwery z których korzystam nie udostępniają monlist. Jeden zaś, timeoutuje każdą operację.
    Czyli jak zwykle: ktoś nie skonfigurował serwera.

  11. Kilka dni temu sprawdziłem 19 polskich serwerów NTP podanych na Wikipedii. 11 jest właśnie tak “źle” skonfigurowanych :]]
    Tu faktycznie wyjątkowo przydatną opcją jest poznanie adresów wewnętrznych firmy. Wtedy ataki na sieć LAN via przeglądarka stają się o wiele prostsze :]

  12. @Borys oczywiście poinformowałeś administratorów tych serwerów o tym, że mogliby “dokonfigurować” swoje serwery ntp? :D

  13. Tym razem nie. Nie uważam tego za krytyczną lukę, tym bardziej, że problem jest ogólnie znany. To było raczej badanie statystyczne :]

  14. […] na przykładzie Metasploita. O samym metasploicie pisaliśmy już wielokrotnie, np. przy okazji ataków na serwery czasu, czy opisu Metasploitable, specjalnej maszyny wirtualnej przygotowanej do testowania ataków […]

  15. […] Gdyby ktoś z Was kontrolował jakieś serwery
    czasu, warto je zaktualizować, aby uniemożliwić ataki DDoS przy
    pomocy tricku, który kiedyś już opisywaliśmy na łamach
    Niebezpiecznika. […]

  16. […] przez atakujących zwracaliśmy uwagę na Niebezpieczniku już 4 lata temu w tekście pt. “NTP, czyli zabawa serwerami czasu” — opisywaliśmy wtedy jak można wykorzystać polecenie “monlist” lub […]

Twój komentarz

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

RSS dla komentarzy: