Wstęp
Od jakiegoś czasu zacząłem opisywać solucje maszyn z serwisu Vulnhub. Pewnie też zahaczę o serwis hackmyvm, bo jest tam parę ciekawych wirtualek, ale bardzo słabo, a wręcz zdawkowo opisywałem narzędzia, które są pomocne do ich przejścia. Bez nich raczej ciężko sobie poradzić. Będę opisywał (wg mnie) najciekawsze programy, ale też i przydatne skrypty, sposoby pomagające w przejściu naszej VM.
Zaczynamy
Nmap
Z czym to się skanuje?
Nmap jest chyba najstarszym skanerem sieciowym jakiego znam (nie licząc programu Ping - ale czy go można zaliczyć do skanerów sieci?). Komendy się wydaje stosując linię komend, co dla niektórych może nie być wygodne, ale na szczęście dla tych osób, są nakładki graficzne, które pomagają się odnaleźć w gąszczu komend. Pierwsza wersja Nmapa pochodzi z 1997 roku, czyli aż z XX wieku. Program jest ciągle rozwijany i na obecną chwilę chyba nie ma sobie równych. Jest dostępny na wszystkie ważniejsze platformy. To co mi się w nim podoba, oprócz multum funkcji, to wygodne podawanie zakresu sieci w hostach.
Przykłady
Człowiek się uczy na przykładach, więc podam parę przykładów:
Szybkie skanowanie sieci:
nmap -n -sn 172.16.1.100-200
Starting Nmap 7.91 ( https://nmap.org ) at 2021-09-21 18:06 CEST
Nmap scan report for 172.16.1.108
Host is up (0.00089s latency).
MAC Address: 92:25:CA:13:80:8A (Unknown)
Nmap scan report for 172.16.1.135
Host is up (0.00090s latency).
MAC Address: 00:17:9A:25:46:BF (D-Link)
Nmap scan report for 172.16.1.194
Host is up (0.00048s latency).
MAC Address: B6:B6:42:48:B5:89 (Unknown)
Nmap done: 101 IP addresses (3 hosts up) scanned in 1.83 seconds
Wygląda to nie do końca czytelnie, więc możemy trochę upiększyć nasz wynik, dodając skrypt na koniec:
nmap -n -sn 172.16.1.100-200 | awk '{if ($1~/Nmap/) printf ($5" "); if ($1~/MAC/) print $3} END{print}'
172.16.1.108 92:25:CA:13:80:8A
172.16.1.135 00:17:9A:25:46:BF
172.16.1.194 B6:B6:42:48:B5:89
Jeżeli już wyczailiśmy swoją podatną maszynę z obrazu do testów, zazwyczaj się używa komendy:
Pełne skanowanie
nmap -T5 -A -p- 172.16.1.108
Starting Nmap 7.91 ( https://nmap.org ) at 2021-09-21 18:21 CEST
Nmap scan report for hundred.lan (172.16.1.108)
Host is up (0.00040s latency).
Not shown: 65532 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| -rwxrwxrwx 1 0 0 435 Aug 02 06:19 id_rsa [NSE: writeable]
| -rwxrwxrwx 1 1000 1000 1679 Aug 02 06:11 id_rsa.pem [NSE: writeable]
| -rwxrwxrwx 1 1000 1000 451 Aug 02 06:11 id_rsa.pub [NSE: writeable]
|_-rwxrwxrwx 1 0 0 187 Aug 02 06:27 users.txt [NSE: writeable]
| ftp-syst:
| STAT:
| FTP server status:
| Connected to ::ffff:172.16.1.10
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| At session startup, client count was 2
| vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
| 2048 ef:28:1f:2a:1a:56:49:9d:77:88:4f:c4:74:56:0f:5c (RSA)
| 256 1d:8d:a0:2e:e9:a3:2d:a1:4d:ec:07:41:75:ce:47:0e (ECDSA)
|_ 256 06:80:3b:fc:c5:f7:7d:c5:58:26:83:c4:f7:7e:a3:d9 (ED25519)
80/tcp open http nginx 1.14.2
|_http-server-header: nginx/1.14.2
|_http-title: Site doesn't have a title (text/html).
MAC Address: 92:25:CA:13:80:8A (Unknown)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 1 hop
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
Metasploit
Tak, możemy też użyć Nmapa w Metasploicie. Parametry są takie same jak w “zwykłym” programie.
Przykład użycia
msf6 > workspace -a hundred
[*] Added workspace: hundred
[*] Workspace: hundred
msf6 > db_nmap -T5 -A -p- 172.16.1.108
[*] Nmap: Starting Nmap 7.91 ( https://nmap.org ) at 2021-09-21 20:42 CEST
[*] Nmap: Nmap scan report for hundred.lan (172.16.1.108)
[*] Nmap: Host is up (0.00039s latency).
[*] Nmap: Not shown: 65532 closed ports
[*] Nmap: PORT STATE SERVICE VERSION
[*] Nmap: 21/tcp open ftp vsftpd 3.0.3
[*] Nmap: | ftp-anon: Anonymous FTP login allowed (FTP code 230)
[*] Nmap: | -rwxrwxrwx 1 0 0 435 Aug 02 06:19 id_rsa [NSE: writeable]
[*] Nmap: | -rwxrwxrwx 1 1000 1000 1679 Aug 02 06:11 id_rsa.pem [NSE: writeable]
[*] Nmap: | -rwxrwxrwx 1 1000 1000 451 Aug 02 06:11 id_rsa.pub [NSE: writeable]
[*] Nmap: |_-rwxrwxrwx 1 0 0 187 Aug 02 06:27 users.txt [NSE: writeable]
[*] Nmap: | ftp-syst:
[*] Nmap: | STAT:
[*] Nmap: | FTP server status:
[*] Nmap: | Connected to ::ffff:172.16.1.10
[*] Nmap: | Logged in as ftp
[*] Nmap: | TYPE: ASCII
[*] Nmap: | No session bandwidth limit
[*] Nmap: | Session timeout in seconds is 300
[*] Nmap: | Control connection is plain text
[*] Nmap: | Data connections will be plain text
[*] Nmap: | At session startup, client count was 2
[*] Nmap: | vsFTPd 3.0.3 - secure, fast, stable
[*] Nmap: |_End of status
[*] Nmap: 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
[*] Nmap: | ssh-hostkey:
[*] Nmap: | 2048 ef:28:1f:2a:1a:56:49:9d:77:88:4f:c4:74:56:0f:5c (RSA)
[*] Nmap: | 256 1d:8d:a0:2e:e9:a3:2d:a1:4d:ec:07:41:75:ce:47:0e (ECDSA)
[*] Nmap: |_ 256 06:80:3b:fc:c5:f7:7d:c5:58:26:83:c4:f7:7e:a3:d9 (ED25519)
[*] Nmap: 80/tcp open http nginx 1.14.2
[*] Nmap: |_http-server-header: nginx/1.14.2
[*] Nmap: |_http-title: Site doesn't have a title (text/html).
[*] Nmap: MAC Address: 92:25:CA:13:80:8A (Unknown)
[*] Nmap: Device type: general purpose
[*] Nmap: Running: Linux 4.X|5.X
[*] Nmap: OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
[*] Nmap: OS details: Linux 4.15 - 5.6
[*] Nmap: Network Distance: 1 hop
[*] Nmap: Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
[*] Nmap: TRACEROUTE
[*] Nmap: HOP RTT ADDRESS
[*] Nmap: 1 0.39 ms hundred.lan (172.16.1.108)
[*] Nmap: OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 9.98 seconds
msf6 >
Parametry programu:
- -A - tak jakby skanowanie pełne, skanuje najpotrzebniejsze dla nas rzeczy
- -p- skanuje wszystkie porty (ważne żeby podać, bo czasami są zmyłki)
- -T5 - czym wyższa cyfra, tym skanowanie jest szybsze
Nping
Jest jakby “uboższym” bratem Nmapa. Można go ściągnąć stąd. Służy głównie do pingowania sieci z naciskiem na protokoły ICMP, ARP, TCP itd. Używam go głównie w zastępstwie starego Arpinga do szybkiego skanowania po MACach. Tak samo jak Nmap ma wygodny format zapisu hostów do skanowania.
Parę przykładów
nping -c 1 --arp-type ARP 172.16.1.108-109
Starting Nping 0.7.91 ( https://nmap.org/nping ) at 2021-09-21 16:16 CEST
SENT (0.9052s) ARP who has 172.16.1.108? Tell 172.16.1.10
RCVD (0.9060s) ARP reply 172.16.1.108 is at 92:25:CA:13:80:8A
SENT (1.9062s) ARP who has 172.16.1.109? Tell 172.16.1.10
```console
</div>
<div class="notice--primary" markdown="1">
```bash
nping -H 172.16.1.100-110
Starting Nping 0.7.91 ( https://nmap.org/nping ) at 2021-09-21 16:37 CEST
RCVD (8.0513s) ICMP [172.16.1.108 > 172.16.1.10 Echo reply (type=0/code=0) id=31782 seq=1] IP [ttl=64 id=41652 iplen=28 ]
nping -c1 -H --arp 172.16.1.108-109
Starting Nping 0.7.91 ( https://nmap.org/nping ) at 2021-09-21 16:43 CEST
RCVD (0.9011s) ARP reply 172.16.1.108 is at 92:25:CA:13:80:8A
nping -c1 -H --tcp -p 80 172.16.1.108
Starting Nping 0.7.91 ( https://nmap.org/nping ) at 2021-09-21 16:45 CEST
RCVD (0.0382s) TCP 172.16.1.108:80 > 172.16.1.10:62426 SA ttl=64 id=0 iplen=44 seq=2890728634 win=64240 <mss 1460>
nping -c1 -H --tcp -p 20,21,22,80,443 172.16.1.108-109
Starting Nping 0.7.91 ( https://nmap.org/nping ) at 2021-09-21 16:55 CEST
RCVD (0.0387s) TCP 172.16.1.108:20 > 172.16.1.10:26710 RA ttl=64 id=0 iplen=40 seq=0 win=0
RCVD (2.0406s) TCP 172.16.1.108:21 > 172.16.1.10:26710 SA ttl=64 id=0 iplen=44 seq=2253657139 win=64240 <mss 1460>
RCVD (4.0434s) TCP 172.16.1.108:22 > 172.16.1.10:26710 SA ttl=64 id=0 iplen=44 seq=2652345888 win=64240 <mss 1460>
RCVD (6.0464s) TCP 172.16.1.108:80 > 172.16.1.10:26710 SA ttl=64 id=0 iplen=44 seq=401423770 win=64240 <mss 1460>
RCVD (8.0494s) TCP 172.16.1.108:443 > 172.16.1.10:26710 RA ttl=64 id=0 iplen=40 seq=0 win=0
Netdiscover
Netdiscover wyświetla na żywo hosty, które znalazł w sieci. Program jest przydatny np., kiedy chcemy zobaczyć kto się nowy pojawił, albo zniknął. Niestety w programie mamy tylko możliwość wpisania całego zakresu sieci, ale to nie powinno przeszkadzać.
Przykład użycia
netdiscover -i eth0 -r 172.16.1.0/24
Currently scanning: 172.16.1.0/24 | Screen View: Unique Hosts
3 Captured ARP Req/Rep packets, from 3 hosts. Total size: 408
_____________________________________________________________________________
IP At MAC Address Count Len MAC Vendor / Hostname
-----------------------------------------------------------------------------
172.16.1.108 92:25:ca:13:80:8a 1 42 Unknown vendor
172.16.1.135 00:17:9a:25:46:bf 1 60 D-Link Corporation
172.16.1.194 b6:b6:42:48:b5:89 1 42 Unknown vendor
Masscan
Bardzo szybki skaner, który znajduje się w repozytorium. W sumie nie używam go za często do wyszukiwania otwartych portów wirtualek, ale zamieszczam go tutaj ze względu na jego szybkość.
Przykład użycia
masscan 172.16.1.108-172.16.1.200 -p80
Starting masscan 1.3.2 (http://bit.ly/14GZzcT) at 2021-09-21 17:51:10 GMT
Initiating SYN Stealth Scan
Scanning 93 hosts [1 port/host]
Discovered open port 80/tcp on 172.16.1.135
Discovered open port 80/tcp on 172.16.1.194
Discovered open port 80/tcp on 172.16.1.108
Fping
Mały i prosty program do szybkiego pingowania, dobrze się sprawdza w skryptach. Ale uwaga działa tylko na protokole ICMP.
Przykład użycia
fping -qag 172.16.1.0/24
172.16.1.108
172.16.1.135
172.16.1.194
172.16.1.244
NBTscan
Dosyć stary program, ale pozwala nam szybko zeskanować komputery głównie pod systemami Windows. W wirtualkach jest raczej nieprzydatny, za to w dużych windosowskich sieciach - na pewno się przyda. Zamieszczam go tu jako ciekawostkę. Inną ciekawą rzeczą jest to, że program pamięta czasy DOSa.
Przykład użycia:
nbtscan 172.16.1.0/24
Doing NBT name scan for addresses from 172.16.1.0/24
IP address NetBIOS Name Server User MAC address
------------------------------------------------------------------------------
172.16.1.35 SATMAH96S <server> SATMMAH96S 00:00:00:00:00:00
172.16.1.44 KOMP1 <server> KOMP1 00:00:00:00:00:00
172.16.1.113 DESKTOP-32RQ3IP <server> <unknown> xx:xx:xx:1b:xx:e2
I to już wszystko
Jak się podobał wpis, daj znać na mejla. A może znasz jakiś ciekawy program, który warto tutaj dodać? Myślę, że będę kontynuował tę serię.
Zostaw komentarz