(nmap NSE, smbmap, ldapsearch, enum4linux, snmpwalk, rpcclient, crackmapexec, nbtscan)
Enumeracja usługowa
Identyfikacja wersji usług, banerów, konfiguracji, otwartych funkcji (np. anon FTP, public SMB), słabych konfiguracji. Przykładowo: Nmap służy do identyfikacji usług (np. wykrywa, że np. port 80 to HTTP, port 21 to FTP, port 445 to SMB). Po wykryciu usług – kolejny krok to interakcja z nimi przy pomocy:
curl Pobieranie zawartości stron HTTP. Gdy Nmap wykryje port 80 lub 8080.
wget Pobieranie plików z serwera. Gdy widzisz plikowe zasoby na HTTP.
ftp Połączenie z serwerem FTP. Gdy Nmap wykryje port 21 i np. ftp-anon.
smbclient Przeglądanie i pobieranie plików SMB. Gdy Nmap wykryje port 445 (np. smb-enum-shares).
dig Sprawdzasz, jakie informacje dana usługa ujawnia.
Rozszerzenie:
nmap ze skryptami NSE: nmap -sV --script=banner,ftp-anon,http-title,smb-enum-shares,smb-os-discovery [IP]
enum4linux-ng – enumeracja SMB, NetBIOS, użytkowników Windows.
rpcclient – do enumeracji RPC/WMI.
ldapsearch – dobrze, że ująłeś, często pomijany.
nbtscan – NetBIOS scan.
snmpwalk – jeżeli usługa SNMP działa na porcie 161.
smbmap, crackmapexec – eksploracja SMB/WinRM.
telnet, nc – ręczna eksploracja niskopoziomowa.
Commands
curl http://<host>/ Pobranie zawartości strony głównej z serwera HTTP i wyświetlenie jej w terminalu.
curl http://<host>/plik.txt Wyświetlenie zawartości konkretnego pliku znajdującego się na serwerze HTTP.
curl http://<host>/plik.txt -o plik.txt Pobranie pliku z serwera HTTP i zapisanie go lokalnie pod wskazaną nazwą.
wget http://<host>/plik.txt Pobranie pojedynczego pliku z serwera HTTP.
wget -r --no-parent http://<host>/ Rekurencyjne pobranie wszystkich plików z serwera HTTP bez wychodzenia poza katalog nadrzędny.
ftp <host> Nawiązanie połączenia z serwerem FTP.
smbclient -N -L //<host>/ Listowanie wszystkich dostępnych zasobów (udziałów) SMB bez uwierzytelnienia.
smbclient -N //<host>/<udział> Połączenie z określonym zasobem SMB bez hasła (tryb anonimowy).
Przykłady testów
- Pozyskanie pliku "sekret.txt" z serwera HTTP i jego odczyt lokalny
Zadanie: Uzyskaj dostęp do pliku udostępnionego na serwerze HTTP, pobierz go lokalnie, a następnie odczytaj jego zawartość w terminalu.*Zarówno curl -o jak i wget pozwalają zapisać plik lokalnie, natomiast cat służy do jego późniejszego odczytu.bash
#1. Sprawdzenie dostępności strony głównej serwera HTTP# curl http://192.168.200.50/ #2. Odczytanie zawartości pliku bezpośrednio z serwera HTTP# curl http://192.168.200.50/sekret.txt #3. Pobranie pliku i zapisanie lokalnie# curl http://192.168.200.50/sekret.txt -o sekret.txt #lub# wget http://192.168.200.50/sekret.txt #4. Wyświetlenie zawartości pobranego pliku lokalnie# cat sekret.txt
- Rekurencyjne pobranie wszystkich plików z serwera HTTP
Zadanie: Pobierz cały katalog z serwera HTTP wraz z plikami, bez wychodzenia poza katalog nadrzędny.*Używane do pobierania całych struktur katalogów (np. jeśli serwer działa jak serwer plików).bash
wget -r --no-parent http://192.168.200.50/
- Odczyt pliku z serwera FTP z dostępem anonimowym
Zadanie: Połącz się z serwerem FTP, uwierzytelnij jako użytkownik anonymous, sprawdź zawartość katalogu i pobierz plik pass.txt.*W ramach tego testu logujesz się na serwer FTP bez hasła, sprawdzasz dostępne pliki i pobierasz konkretny plik z flagą.bash
#1. Połączenie z serwerem FTP z użyciem dostępu anonimowego# ftp 192.168.200.50 #2. Uwierzytelnienie jako użytkownik anonymous# user: anonymous pass: dowolne_haslo #3. Wylistowanie zawartości katalogu FTP# dir #4. Pobranie pliku z serwera FTP# get pass.txt
- Dostęp do zasobu SMB i pobranie pliku bez uwierzytelniania
Zadanie: Połącz się z serwerem SMB, wyświetl dostępne zasoby, przejdź do udziału/SECRET, a następnie pobierz plik pass.txt – wszystko bez uwierzytelniania hasłem.*Użycie -N pomija uwierzytelnianie, -L wyświetla listę udziałów, ls pokazuje pliki, a get umożliwia pobranie flagi.bash
#1. Enumeracja zasobów udostępnionych przez serwer SMB# smbclient -N -L //192.168.200.50/ #2. Dostęp do konkretnego zasobu SMB bez hasła# smbclient -N //192.168.200.50/SECRET #3. Pobranie pliku z zasobu SMB# ls get pass.txt