Bezpieczeństwo web (część 3), mapowanie technologii serwerowych – serwer www

Oprócz rozpoznania zawartości aplikacji (o czym pisałem w poprzednich wpisach) przydatne jest rozpoznanie konkretnych technologii. Inaczej przeprowadza się atak na aplikację PHP, a inaczej na ASP.NET.

Zacznijmy od serwera WWW.  Zdobycie nazwy i konkretnej wersji może okazać się krytyczne. Dlaczego? Wiele serwerów WWW miało luki w bezpieczeństwie. Jeśli dana aplikacja używa starego IIS, możemy poszukać biuletynów bezpieczeństwa i sprawdzić, czy możliwe jest wykorzystanie konkretnych luk. Na przykład, stare wersje IIS miały problem z generowaniem w pełni losowych identyfikatorów sesji. O tym w innym poście, ale odgadniecie kolejnego numeru sesji jest oczywiście katastrofalne z punktu widzenia bezpieczeństwa.

Zaprezentowana technika w tym wpisie, nazywa się “banner grabbing“.

Najprostsza sztuczka polega na wysłaniu zapytania do serwera,  które zwróci w odpowiedzi m.in. nagłówek header (przykład z Wikipedii):

// Źródło: https://en.wikipedia.org/wiki/Banner_grabbing

[root@prober] nc www.targethost.com 80
HEAD / HTTP/1.1

HTTP/1.1 200 OK
Date: Mon, 11 May 2009 22:10:40 EST
Server: Apache/2.0.46 (Unix)  (Red Hat/Linux)
Last-Modified:  Thu, 16 Apr 2009 11:20:14 PST
ETag: "1986-69b-123a4bc6"
Accept-Ranges: bytes
Content-Length: 1110
Connection: close
Content-Type: text/html

Za pomocą telnet, możemy w łatwy sposób uzyskać, przynajmniej część powyższych informacji:

1. Uruchomiamy CMD i wpisujemy “telnet adres_serwera port”:
1

2. Po połączeniu, wpisujemy “HEAD / HTTP/1.0”:
1

Jak widać, w szybki sposób dowiedzieliśmy się jaki serwer oraz jaka jego wersja jest zainstalowana. W praktyce jednak, ma to BARDZO ograniczone możliwości ponieważ zwykle administratorzy blokują nagłówek serwer lub zwracają nieprawidłowe informacje.

Niestety istnieją narzędzia, które potrafią przynajmniej w przybliżeniu podać wersję. Posiadają zwykle one zestaw reguł i na ich podstawie wyznaczają wersje. Każdy serwer zwraca trochę inne informacje na takie same zapytania. Może być to kolejność nagłówków, czasy generowania odpowiedzi czy konkretne wartości występujące w nagłówkach . Po wysłaniu wystarczającej ilości zapytań, narzędzia te potrafią dopasować serwer oraz wersję serwera.

Jednym z tych narzędzi jest HTTPRecon:
1

Oczywiście, jeśli wszystkie dostępne na rynku serwery www implementowałyby HTTP w identyczny sposób, powyższa sztuczka nie miałaby sensu.

Zwykle programiści nie są bezpośrednio odpowiedzialni za serwer WWW. Zawsze jednak należy pamiętać, aby instalować najnowsze aktualizacje ponieważ nawet aplikacja bez żadnych luk bezpieczeństwa może zostać z łatwością złamana jeśli serwer WWW np. generuje przewidywalne numery sesji.

Leave a Reply

Your email address will not be published.