czwartek, 18 lipca 2024

Niezbędnik pentestera infrastruktury #2 - ZoomEye

ZoomEye to wszechstronne narzędzie, które zdobywa coraz większą popularność wśród ekspertów ds. bezpieczeństwa, badaczy oraz hakerów. Tak jak Shodan, ZoomEye umożliwia przeszukiwanie urządzeń podłączonych do Internetu na całym świecie. 

W tym artykule przyjrzymy się bliżej tej platformie, jej możliwościom i praktycznym zastosowaniom.

Co to jest ZoomEye?

ZoomEye to chińska wyszukiwarka internetowa stworzona przez firmę Knownsec. Specjalizuje się w indeksowaniu urządzeń podłączonych do Internetu, takich jak serwery, routery, kamery internetowe, systemy sterowania przemysłowego (ICS) i inne urządzenia IoT. ZoomEye umożliwia głębszą analizę dostępnych usług i podatności urządzeń.


Jak działa ZoomEye?

ZoomEye skanuje Internet w poszukiwaniu otwartych portów i usług na różnych urządzeniach. Gdy znajdzie urządzenie, gromadzi informacje takie jak adres IP, otwarte porty, używane protokoły i banery usługowe. Następnie te dane są indeksowane i udostępniane użytkownikom przez interfejs wyszukiwarki.


Zastosowania ZoomEye

Bezpieczeństwo IT: Specjaliści ds. bezpieczeństwa wykorzystują ZoomEye do wykrywania podatnych urządzeń w sieciach firmowych i domowych, co pozwala im zabezpieczać te urządzenia przed potencjalnymi atakami.

Badania naukowe: ZoomEye jest narzędziem wspierającym badania nad Internetem Rzeczy (IoT), pomagając w analizie rozprzestrzeniania się tych urządzeń i ich podatności na ataki.

Hacking i Penetration Testing: Hakerzy i pentesterzy używają ZoomEye do wyszukiwania podatnych urządzeń, które mogą być celem testów penetracyjnych lub ataków.

Zarządzanie infrastrukturą IT: Administratorzy sieci monitorują urządzenia w swoich sieciach za pomocą ZoomEye, identyfikując te, które wymagają aktualizacji lub dodatkowej konfiguracji.


Jak korzystać z ZoomEye?

Rejestracja: Aby uzyskać pełny dostęp do funkcji ZoomEye, należy zarejestrować konto na stronie [ZoomEye.org](https://www.zoomeye.org). Darmowe konta mają ograniczoną liczbę wyników, dlatego warto rozważyć płatną subskrypcję przy intensywnym użytkowaniu.

Podstawowe wyszukiwanie i filtry: W polu wyszukiwania można wpisać interesujące nas zapytanie, takie jak nazwa urządzenia, adres IP, port lub określony baner usługowy. Na przykład, aby znaleźć kamery internetowe, możemy użyć zapytania: `app:"webcam"`.

Zaawansowane filtry: ZoomEye oferuje zaawansowane filtry pozwalające precyzyjnie dostosować wyniki wyszukiwania. Można filtrować wyniki według kraju (`country:PL`), portu (`port:80`), systemu operacyjnego (`os:Linux`) i innych parametrów.


Przykład wykorzystania ZoomEye

Jeśli chcemy sprawdzić, ile urządzeń w Polsce ma otwarty port 21 (FTP), możemy użyć zapytania:

port:21 country:PL

Wyniki wyszukiwania pokażą listę urządzeń w Polsce z otwartym portem FTP, co pozwala na analizę potencjalnych zagrożeń.


Skrypt bash do automatyzacji zapytań ZoomEye

Aby skorzystać z API, należy uzyskać klucz API dostępny w ustawieniach konta ZoomEye. Po instalacji narzędzia CLI, należy się zalogować:

zoomeye login YOUR_API_KEY

Można zapisać poniższy skrypt np. do pliku o nazwie zoomeye-scr.sh:

#!/bin/bash # Funkcja do zapytań ZoomEye function zoomeye_query() { local input_file="$1" local output_file="$2" local search_type="${3:-host}" # Domyślny typ wyszukiwania to host # Iteracja przez adresy lub zapytania z pliku wejściowego while IFS= read -r target; do # Wykonanie zapytania ZoomEye dla każdego wpisu zoomeye search "$search_type" "$target" --limit 100 >> "$output_file" done < "$input_file" } # Sprawdzenie czy podano wymagane argumenty if [ $# -lt 2 ]; then echo "Użycie: $0 <plik_wejściowy> <plik_wynikowy> [typ_wyszukiwania]" echo "Przykłady typów wyszukiwania: host, web, app" exit 1 fi # Pobranie argumentów input_file="$1" output_file="$2" search_type="${3:-host}" # Przygotowanie pliku wynikowego echo "Wyniki skanowania ZoomEye (typ: $search_type):" > "$output_file" echo "-------------------------------------------" >> "$output_file" # Wykonanie zapytań ZoomEye i zapis wyników do pliku zoomeye_query "$input_file" "$output_file" "$search_type" # Podsumowanie echo "Skanowanie zakończone. Wyniki zapisano w $output_file"

Uruchamiamy skrypt w następujący sposób:

# Podstawowe skanowanie hostów ./zoomeye-scr.sh lista-adresow.txt wyniki-host.txt # Skanowanie zasobów webowych ./zoomeye-scr.sh lista-stron.txt wyniki-web.txt web # Skanowanie określonych aplikacji ./zoomeye-scr.sh lista-aplikacji.txt wyniki-app.txt app

Wymagania

  • Zainstalowane narzędzie ZoomEye CLI
  • Aktywny klucz API ZoomEye
  • Plik z listą adresów lub zapytań do przeskanowania

Uwagi

  • Skrypt domyślnie zwraca maksymalnie 100 wyników dla każdego wpisu
  • Można modyfikować typ wyszukiwania (host, web, app)
  • Wyniki są dopisywane do pliku wynikowego
  • Przed użyciem upewnij się, że jesteś zalogowany za pomocą zoomeye login

Więcej informacji na temat wykorzystania ZoomEye z poziomu CLI znajduje się pod stroną [ZoomEye CLI](https://github.com/knownsec/ZoomEye-python).

Najciekawsze zapytania

ZoomEye udostępnia następujące zbiory możliwych do użycia filtrów i zapytań:

Ściągę ze wszystkimi możliwymi filtrami: [ZoomEye Filters](https://www.zoomeye.org/doc/quick-filter)

Przykłady ich użyć: [ZoomEye Examples](https://www.zoomeye.org/doc/usage)

Podsumowanie

ZoomEye to wszechstronne narzędzie, które umożliwia lepsze zrozumienie i zabezpieczenie urządzeń podłączonych do Internetu. Pomaga w pasywny sposób, podobnie jak Shodan, identyfikować podatności i monitorować infrastrukturę IT.