Domyślne hasła są złe

Wszystkie urządzenia podłączone do Internetu są narażone na ataki, przede wszystkim routery, których interfejsy są widoczne z Internetu oraz urządzenia umieszczone w strefie zdemilitaryzowanej (DMZ) firewalla. Można się o tym przekonać przeglądając logi bezpieczeństwa. Nawet, jeśli Twoje urządzenie nie udostępnia w Internecie żadnych usług, prawdopodobnie znajdziesz w nim ślady nieudanych (oby!) prób logowania do konta roota (administratora).

Jeśli sądzisz, że Twoje urządzenia i sieć nie są zagrożone, bo nie przechowujesz ważnych danych, mylisz się. Próba włamania nic nie kosztuje ponieważ większość ataków jest zautomatyzowana, dlatego intruzom opłaca się działanie w ciemno. Atakujący używa narzędzi, które sprawdzają wiele adresów IP poszukując otwartych portów. Filozofia jest taka: sprawdźmy, dokąd uda się włamać, a potem zastanowimy się, jak to wykorzystać. Może się zdarzyć, że Twoje urządzenia zostaną przejęte i użyte w poważnym ataku, na przykład na ważny system rządowy lub wojskowy.

Częstym i poważnym błędem ułatwiającym włamanie jest pozostawienie niezmienionych, fabrycznych ustawień, zwłaszcza nazw użytkowników i haseł. Dotyczy to szczególnie konta administracyjnego, na które użytkownik loguje się po raz pierwszy, kiedy konfiguruje nowe urządzenie. Informacje o domyślnych nazwach użytkowników i odpowiadających im hasłom są łatwo dostępne.

Jak to się robi?

Sprawdź, jak łatwo można przygotować taki atak, a przekonasz się, że zagrożenie jest realne. Potrzbujesz komputera z Linuksem, dostępu do atakowanej (testowej) sieci LAN albo Internetu oraz programu nmap służącego do tworzenia mapy hostów w sieci. Przy jego pomocy można uzyskać informacje o strukturze i zabezpieczeniach badanej sieci. My wykorzystamy nmap, żeby wyszukać urządzenia udostępniające interfejs WWW do zdalnego zarządzania.

uwaga!

Ćwiczenie polega między innymi na skanowaniu portów. Administratorzy niektórych sieci uczelnianych, szkolnych a zwłaszcza korporacyjnych mogą zakazywać takich działań nawet, jeśli nie kończą się atakiem. Zanim spróbujesz, upewnij się, że nikt nie będzie miał pretensji.
Adresy IP na zamieszczonych poniżej listingach zostały częściowo ukryte. Niektóre cyfry zastąpiono znakiem X, który faktycznie nie może się tam znaleźć.

do roboty

Atak może być przeprowadzony na przykład tak:

zróbmy to

Używamy dowolnego terminala. Wywołanie nmap z potrzebnymi opcjami wygląda tak:
sudo nmap -iR 1000 -Pn -p80,8080 -oG wynik

Opcje mają następujące działanie:

Czas trwania poszukiwań zależy od liczby sprawdzanych adresów IP i zestawu testów, które nmap ma przeprowadzić na każdym z nich. W rezultacie otrzymujemy plik, w którym są zapisane informacje o wynikach testów, który wygląda tak:

# Nmap 7.92 scan initiated Mon May 9 00:32:30 2022 as: nmap -iR 1000 -Pn -p80,8080 -O -oG wynik
Host: 21.130.145.X () Status: Up
Host: 21.130.145.X () Ports: 80/filtered/tcp//http///, 8080/filtered/tcp//http-proxy///
Host: 135.90.42.X (X.2a.5a87.ip4.static.sl-reverse.com) Status: Up
Host: 135.90.42.X (X.2a.5a87.ip4.static.sl-reverse.com) Ports: 80/filtered/tcp//http///, 8080/filtered/tcp//http-proxy///
Host: 132.220.131.X () Status: Up
Host: 132.220.131.X () Ports: 80/filtered/tcp//http///, 8080/filtered/tcp//http-proxy///
Host: 46.3.177.X () Status: Up
Host: 46.3.177.X () Ports: 80/closed/tcp//http///, 8080/closed/tcp//http-proxy///
Host: 80.56.81.X (f81X.upc-f.chello.nl) Status: Up
Host: 80.56.81.X (f81X.upc-f.chello.nl) Ports: 80/filtered/tcp//http///, 8080/filtered/tcp//http-proxy///
Host: 86.207.112.X (lfbn-lyo-1-1297-1.w86-207.abo.wanadoo.fr) Status: Up
Host: 86.207.112.X (lfbn-lyo-1-1297-1.w86-207.abo.wanadoo.fr) Ports: 80/filtered/tcp//http///, 8080/filtered/tcp//http-proxy///
Host: 84.216.4.X (84-216-4-X.cust.britt.se) Status: Up
Host: 84.216.4.X (84-216-4-X.cust.britt.se) Ports: 80/filtered/tcp//http///, 8080/filtered/tcp//http-proxy///
Host: 163.118.167.X () Status: Up
Host: 163.118.167.X () Ports: 80/filtered/tcp//http///, 8080/filtered/tcp//http-proxy///

W pierwszej linii jest zapisywana informacja o dacie i godzinie uruchomienia nmap oraz użyte opcje i parametry. W następnych liniach znajdują się wyniki testów. W przypadku wywołania programu z proponowanymi parametrami każdemu sprawdzonemu adresowi IP odpowiadają dwie linie. W pierwszej jest informacja o tym, że urządzenie jest włączone Status: Up. W drugiej jest wynik sprawdzenia portów.

Interesują nas tylko adresy IP urządzeń z otwartymi portami 80 i 8080, dlatego przefiltrujemy pierwszą listę. Wywołujemy program grep żeby przeszukać plik o nazwie wynik w poszukiwaniu wierszy, które zawierają słowo open. Wyniki wyszukiwania zapisujemy w pliku open_ports.

grep open ./wynik > open_ports

W rezultacie otrzymujemy plik, którego zawartość wyświetlamy poleceniem:
cut open_ports | less
Kolejne ekrany otrzymujemy po naciśnięciu klawisza spacji, klawisz b cofa listę o jeden ekran.
Host: 210.31.9.X () Ports: 80/open/tcp//http///, 8080/filtered/tcp//http-proxy/// Seq Index: 22 IP ID Seq: Randomized
Host: 104.16.119.X () Ports: 80/open/tcp//http///, 8080/open/tcp//http-proxy/// Seq Index: 261 IP ID Seq: All zeros
Host: 104.96.41.X (a104-96-41-X.deploy.static.akamaitechnologies.com) Ports: 80/open/tcp//http///, 8080/filtered/tcp//http-proxy/// Seq Index: 259 IP ID Seq: All zeros
Host: 54.185.2.X (ec2-54-185-2-X.us-west-2.compute.amazonaws.com) Ports: 80/open/tcp//http///, 8080/filtered/tcp//http-proxy/// Seq Index: 259 IP ID Seq: All zeros
Host: 34.149.163.X (X.163.149.X.bc.googleusercontent.com) Ports: 80/open/tcp//http///, 8080/filtered/tcp//http-proxy/// Seq Index: 261 IP ID Seq: Randomized
Host: 35.243.137.X (X.137.243.35.bc.googleusercontent.com) Ports: 80/open/tcp//http///, 8080/filtered/tcp//http-proxy/// Seq Index: 258 IP ID Seq: All zeros
Host: 90.60.5.X (apoitiers-651-1-94-X.w90-60.abo.wanadoo.fr) Ports: 80/open/tcp//http///, 8080/filtered/tcp//http-proxy/// Seq Index: 257 IP ID Seq: All zeros
Host: 24.8.120.X (c-24-8-120-X.hsd1.co.comcast.net) Ports: 80/open/tcp//http///, 8080/closed/tcp//http-proxy/// Seq Index: 256 IP ID Seq: Incremental
Host: 164.90.99.X () Ports: 80/open/tcp//http///, 8080/filtered/tcp//http-proxy/// Seq Index: 261 IP ID Seq: All zeros
Host: 52.216.82.X (s3-website-us-east-1.amazonaws.com) Ports: 80/open/tcp//http///, 8080/filtered/tcp//http-proxy/// Seq Index: 263 IP ID Seq: Randomized
Host: 156.255.48.X () Ports: 80/open/tcp//http///, 8080/filtered/tcp//http-proxy/// Seq Index: 254 IP ID Seq: All zeros
Host: 66.226.137.X (host-66-226-137-X.in2net.com) Ports: 80/open/tcp//http///, 8080/filtered/tcp//http-proxy/// Seq Index: 255 IP ID Seq: All zeros
Host: 114.142.245.X (114-142-245-X.dsl.teleguam.net) Ports: 80/open/tcp//http///, 8080/filtered/tcp//http-proxy/// Seq Index: 249 IP ID Seq: All zeros
Host: 103.87.11.X () Ports: 80/open/tcp//http///, 8080/open/tcp//http-proxy/// Seq Index: 250 IP ID Seq: Randomized
Host: 36.67.136.X () Ports: 80/open/tcp//http///, 8080/open/tcp//http-proxy/// Seq Index: 253 IP ID Seq: Incremental
Host: 116.197.37.X () Ports: 80/open/tcp//http///, 8080/filtered/tcp//http-proxy/// Seq Index: 238 IP ID Seq: All zeros
Host: 188.166.231.X () Ports: 80/open/tcp//http///, 8080/filtered/tcp//http-proxy/// Seq Index: 250 IP ID Seq: All zeros

Teraz w kolejnych liniach znajdują się informacje o urządzeniach z otwartym portem 80 lub 8080 (albo oboma). Wpisując ich adresy IP do przeglądarki sprawdzamy, jakie urządzenie odpowie. Może to być serwer poczty, serwer www, router, drukarka, firewall itp.

stop

W tym miejscu przerywamy eksperyment, nie próbujmy zgadywać loginów i haseł.

wniosek

Bez problemu ustaliliśmy adresy IP wielu urządzeń z otwartymi portami, w taki sam sposób ktoś może odnaleźć Twoje urządzenia. Żeby zapewnić im minimum bezpieczeństwa:

dodatkowe informacje

Opis programu nmap można znaleźć na stronie nmap.org
Opis polecenia grep znajduje się tutaj.
Przydzielaniem numerów portów dla protokołów i usług zajmuje się organizacja IANA. Spis wszystkich przyznanych numerów portów znajduje się tutaj.
Podstawowym, chociaż nie najłatwiejszym źródłem wiedzy o Internecie jest nieodmiennie zbiór dokumentów RFC publikowanych na stronie: www.rfc-editor.org.