curl, wget, ftp, smbclient.
(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

  1. 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.

    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
    
    *Zarówno curl -o jak i wget pozwalają zapisać plik lokalnie, natomiast cat służy do jego późniejszego odczytu.

  1. 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.

    bash

    wget -r --no-parent http://192.168.200.50/
    
    *Używane do pobierania całych struktur katalogów (np. jeśli serwer działa jak serwer plików).

  1. 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.

    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
    
    *W ramach tego testu logujesz się na serwer FTP bez hasła, sprawdzasz dostępne pliki i pobierasz konkretny plik z flagą.

  1. 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.

    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
    
    *Użycie -N pomija uwierzytelnianie, -L wyświetla listę udziałów, ls pokazuje pliki, a get umożliwia pobranie flagi.