Wprowadzenie
Podczas administracji systemami, testów bezpieczeństwa lub zwykłego poznawania infrastruktury internetowej często pojawia się pytanie:
„Na jakiej technologii działa ta strona WWW?”
Czy serwer używa Apache czy Nginx?
Czy aplikacja działa na WordPressie, Drupalu, Laravelu, Django albo innym frameworku?
Czy strona korzysta z określonego systemu analitycznego, biblioteki JavaScript lub CDN?
Jednym z prostych, ale bardzo użytecznych narzędzi dostępnych w systemie Linux jest WhatWeb. Pozwala ono automatycznie wykrywać technologie wykorzystywane przez serwisy internetowe na podstawie publicznie dostępnych informacji.
Narzędzie jest popularne wśród administratorów, pentesterów oraz osób zajmujących się analizą bezpieczeństwa aplikacji WWW.
Czym jest WhatWeb?
WhatWeb to skaner technologii internetowych typu web fingerprinting.
Jego zadaniem jest rozpoznanie elementów infrastruktury strony WWW, takich jak:
- serwer HTTP,
- system CMS,
- framework backendowy,
- biblioteki JavaScript,
- systemy analityczne,
- platformy e-commerce,
- wersje oprogramowania,
- mechanizmy zabezpieczeń.
Projekt jest dostępny jako open source i został napisany w języku Ruby.
Oficjalne repozytorium:
https://github.com/urbanadventurer/WhatWeb
Instalacja WhatWeb w Linuxie
Ubuntu / Debian
W wielu dystrybucjach WhatWeb znajduje się w repozytoriach:
sudo apt update
sudo apt install whatweb
Sprawdzenie instalacji:
whatweb --version
Przykład:
WhatWeb version 0.5.5
Kali Linux
W Kali Linux narzędzie jest zazwyczaj dostępne domyślnie:
whatweb --version
Jeżeli nie jest zainstalowane:
sudo apt install whatweb
Instalacja z repozytorium Git
Można również pobrać najnowszą wersję:
git clone https://github.com/urbanadventurer/WhatWeb.git
cd WhatWeb
bundle install
Uruchomienie:
./whatweb example.com
Podstawowe użycie
Najprostsza analiza:
whatweb https://example.com
Przykładowy wynik:
https://example.com
HTML5,
HTTPServer[nginx],
Country[US],
Script,
Bootstrap,
jQuery
Oznacza to, że narzędzie wykryło między innymi:
- HTML5,
- serwer nginx,
- bibliotekę Bootstrap,
- jQuery.
Analiza konkretnej strony
Przykład:
whatweb https://biletomat.pl
Możemy otrzymać informacje takie jak:
Cloudflare,
HTML5,
JavaScript,
HSTS,
Google Analytics
Warto pamiętać, że jeśli strona korzysta z CDN lub WAF (np. Cloudflare), część informacji o prawdziwym serwerze może być ukryta.
Architektura często wygląda tak:
Użytkownik
|
|
Cloudflare CDN
|
|
Serwer WWW
|
|
Aplikacja
WhatWeb analizuje głównie warstwę widoczną z Internetu.
Tryb agresywny
Domyślnie WhatWeb wykonuje szybkie rozpoznanie.
Możemy zwiększyć dokładność:
whatweb -a 3 https://example.com
Dostępne poziomy:
| Poziom | Znaczenie |
|---|---|
| 1 | pasywna analiza |
| 2 | lekko agresywna |
| 3 | agresywna |
| 4 | maksymalna |
Najczęściej używany:
-a 3
Skanowanie wielu stron
Możemy analizować wiele adresów:
whatweb site1.com site2.com site3.com
Albo z pliku:
whatweb -i urls.txt
Przykład:
urls.txt
https://example.com
https://test.com
https://myserver.local
Zapisywanie wyników
Format tekstowy
whatweb example.com \
--log-verbose wynik.txt
JSON
Bardzo wygodne do automatyzacji:
whatweb example.com \
--log-json wynik.json
Przykład zastosowania:
- pipeline CI/CD,
- raporty bezpieczeństwa,
- inwentaryzacja infrastruktury.
Sprawdzanie nagłówków HTTP
WhatWeb może wykryć informacje z nagłówków:
whatweb --verbose example.com
Możemy zobaczyć:
HTTP Headers:
Server: nginx
X-Powered-By: PHP
Strict-Transport-Security
Przykład praktyczny: wykrywanie CMS
Załóżmy, że mamy stronę:
https://moja-firma.pl
Uruchamiamy:
whatweb -a 3 https://moja-firma.pl
Wynik:
WordPress,
PHP,
Apache,
Yoast SEO,
jQuery
Możemy wywnioskować:
- strona działa na WordPressie,
- backend wykorzystuje PHP,
- serwer WWW to Apache,
- używany jest plugin Yoast SEO.
WhatWeb a bezpieczeństwo
WhatWeb jest często pierwszym krokiem podczas audytu bezpieczeństwa.
Przykładowy proces:
1. Rozpoznanie domeny
|
v
2. WhatWeb
|
v
3. Identyfikacja technologii
|
v
4. Sprawdzenie znanych podatności
|
v
5. Testy bezpieczeństwa
Przykład:
Jeżeli wykryto:
WordPress 5.x
można sprawdzić:
- znane CVE,
- aktualizacje,
- konfigurację bezpieczeństwa.
WhatWeb w skryptach Bash
Narzędzie świetnie nadaje się do automatyzacji.
Przykład:
#!/bin/bash
URL=$1
echo "Scanning $URL"
whatweb \
--log-json result.json \
"$URL"
Uruchomienie:
./scan.sh https://example.com
Integracja z Pythonem
Możemy wywołać WhatWeb z programu Python:
import subprocess
url = "https://example.com"
result = subprocess.run(
[
"whatweb",
"--log-json",
"result.json",
url
],
capture_output=True,
text=True
)
print(result.stdout)
Ograniczenia WhatWeb
Należy pamiętać, że:
1. CDN ukrywa infrastrukturę
Cloudflare, Akamai czy Fastly mogą ukryć:
- prawdziwy adres IP,
- serwer origin,
- wersję backendu.
2. Brak wykrycia nie oznacza braku technologii
Jeżeli WhatWeb nie wykrył:
WordPress
nie oznacza to, że WordPressa nie ma.
Administrator może:
- ukrywać nagłówki,
- zmienić ścieżki,
- używać własnego motywu.
3. Nie jest skanerem podatności
WhatWeb nie zastępuje narzędzi takich jak:
- Nmap,
- Nikto,
- OpenVAS,
- Burp Suite.
Jego zadaniem jest identyfikacja technologii.
Podsumowanie
WhatWeb to niewielkie, ale bardzo praktyczne narzędzie Linuxowe do szybkiego rozpoznawania technologii używanych przez strony WWW.
Najważniejsze komendy:
# podstawowa analiza
whatweb example.com
# dokładniejszy skan
whatweb -a 3 example.com
# zapis JSON
whatweb --log-json wynik.json example.com
# wiele stron
whatweb -i urls.txt
W pracy administratora Linuxa może pomóc w:
- dokumentowaniu infrastruktury,
- analizie obcych systemów,
- audytach bezpieczeństwa,
- inwentaryzacji technologii,
- automatyzacji raportów.
To jedno z tych narzędzi, które zajmuje kilka sekund w użyciu, ale często dostarcza bardzo wartościowych informacji.