Różnice między wybraną wersją a wersją aktualną.
Poprzednia rewizja po obu stronachPoprzednia wersjaNowa wersja | Poprzednia wersja | ||
notatki:ftp_bruteforce [2025/06/19 17:06] – administrator | notatki:ftp_bruteforce [2025/06/19 20:09] (aktualna) – administrator | ||
---|---|---|---|
Linia 1: | Linia 1: | ||
- | ====== FTP Bruteforce (Patator i CICFlowMeter) ====== | + | ====== |
===== Schemat i opis środowiska testowego ===== | ===== Schemat i opis środowiska testowego ===== | ||
Linia 15: | Linia 15: | ||
Każda z Maszyn ma dysk o rozmiarze 8GB ([[https:// | Każda z Maszyn ma dysk o rozmiarze 8GB ([[https:// | ||
- | Dyski maszyn można pobrać z linków | + | Dyski maszyn można pobrać z linka poniżej: |
+ | https:// | ||
+ | Hasło do linka: '' | ||
===== Oprogramowanie wykorzystane do wykonania eksperymentu ===== | ===== Oprogramowanie wykorzystane do wykonania eksperymentu ===== | ||
Linia 23: | Linia 24: | ||
| System operacyjny maszyn wirtualnych | | System operacyjny maszyn wirtualnych | ||
| Hypervisor | | Hypervisor | ||
- | | Serwer FTP | 3.0.3 | VSFTPD | + | | Serwer FTP | 3.0.5 | VSFTPD |
- | | Narzędzie ataku | + | | Narzędzie ataku |
| Przechwytywanie ruchu | 4.99.1 | | Przechwytywanie ruchu | 4.99.1 | ||
- | | Analiza Ruchu | 0.4.2 | CICFlowMeter | + | | Analiza Ruchu | 0.4.2 | CICFlowMeter |
| Słownik do ataku | ok. 14 MB, 14344392 haseł | | Słownik do ataku | ok. 14 MB, 14344392 haseł | ||
Linia 45: | Linia 46: | ||
58 packages can be upgraded. Run 'apt list --upgradable' | 58 packages can be upgraded. Run 'apt list --upgradable' | ||
administrator@target: | administrator@target: | ||
- | Reading package lists... Done | + | [LOGI Z INSTALACJI] |
- | Building dependency tree... Done | + | |
- | Reading state information... Done | + | |
- | The following additional packages will be installed: | + | |
- | ssl-cert | + | |
- | The following NEW packages will be installed: | + | |
- | ssl-cert vsftpd | + | |
- | 0 upgraded, 2 newly installed, 0 to remove and 58 not upgraded. | + | |
- | Need to get 137 kB of archives. | + | |
- | After this operation, 380 kB of additional disk space will be used. | + | |
- | Get:1 http:// | + | |
- | Get:2 http:// | + | |
- | Fetched 137 kB in 0s (424 kB/s) | + | |
- | Preconfiguring packages ... | + | |
- | Selecting previously unselected package ssl-cert. | + | |
- | (Reading database ... 86807 files and directories currently installed.) | + | |
- | Preparing to unpack .../ | + | |
- | Unpacking ssl-cert (1.1.2ubuntu1) ... | + | |
- | Selecting previously unselected package vsftpd. | + | |
- | Preparing to unpack .../ | + | |
- | Unpacking vsftpd (3.0.5-0ubuntu3.1) ... | + | |
- | Setting up ssl-cert (1.1.2ubuntu1) ... | + | |
- | Created symlink / | + | |
- | Setting up vsftpd (3.0.5-0ubuntu3.1) ... | + | |
- | Created symlink / | + | |
- | Processing triggers for man-db (2.12.0-4build2) ... | + | |
- | Scanning processes... | + | |
- | Scanning linux images... | + | |
- | + | ||
- | Running kernel seems to be up-to-date. | + | |
- | + | ||
- | No services need to be restarted. | + | |
- | + | ||
- | No containers need to be restarted. | + | |
- | + | ||
- | No user sessions are running outdated binaries. | + | |
- | + | ||
- | No VM guests are running outdated hypervisor (qemu) binaries on this host. | + | |
- | administrator@target: | + | |
</ | </ | ||
- | Plik konfiguracyjny | + | Zmiany w pliku konfiguracyjnym |
<code bash> | <code bash> | ||
- | administrator@target: | ||
- | administrator@target: | ||
- | # Example config file / | ||
- | # | ||
- | # The default compiled in settings are fairly paranoid. This sample file | ||
- | # loosens things up a bit, to make the ftp daemon more usable. | ||
- | # Please see vsftpd.conf.5 for all compiled in defaults. | ||
- | # | ||
- | # READ THIS: This example file is NOT an exhaustive list of vsftpd options. | ||
- | # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd' | ||
- | # capabilities. | ||
- | # | ||
- | # | ||
- | # Run standalone? | ||
- | # daemon started from an initscript. | ||
- | listen=YES | ||
- | # | ||
- | # This directive enables listening on IPv6 sockets. By default, listening | ||
- | # on the IPv6 " | ||
- | # and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6 | ||
- | # sockets. If you want that (perhaps because you want to listen on specific | ||
- | # addresses) then you must run two copies of vsftpd with two configuration | ||
- | # files. | ||
- | listen_ipv6=NO | ||
- | # | ||
- | # Allow anonymous FTP? (Disabled by default). | ||
anonymous_enable=NO | anonymous_enable=NO | ||
- | # | ||
- | # Uncomment this to allow local users to log in. | ||
local_enable=YES | local_enable=YES | ||
- | # | ||
- | # Uncomment this to enable any form of FTP write command. | ||
write_enable=YES | write_enable=YES | ||
- | # | + | listen=YES |
- | # Default umask for local users is 077. You may wish to change this to 022, | + | listen_ipv6=NO |
- | # if your users expect that (022 is used by most other ftpd' | + | |
- | # | + | |
- | # | + | |
- | # Uncomment this to allow the anonymous FTP user to upload files. This only | + | |
- | # has an effect if the above global write enable is activated. Also, you will | + | |
- | # obviously need to create a directory writable by the FTP user. | + | |
- | # | + | |
- | # | + | |
- | # Uncomment this if you want the anonymous FTP user to be able to create | + | |
- | # new directories. | + | |
- | # | + | |
- | # | + | |
- | # Activate directory messages - messages given to remote users when they | + | |
- | # go into a certain directory. | + | |
- | dirmessage_enable=YES | + | |
- | # | + | |
- | # If enabled, vsftpd will display directory listings with the time | + | |
- | # in your local time zone. The default is to display GMT. The | + | |
- | # times returned by the MDTM FTP command are also affected by this | + | |
- | # option. | + | |
- | use_localtime=YES | + | |
- | # | + | |
- | # Activate logging of uploads/ | + | |
- | xferlog_enable=YES | + | |
- | # | + | |
- | # Make sure PORT transfer connections originate from port 20 (ftp-data). | + | |
- | connect_from_port_20=YES | + | |
- | # | + | |
- | # If you want, you can arrange for uploaded anonymous files to be owned by | + | |
- | # a different user. Note! Using " | + | |
- | # recommended! | + | |
- | # | + | |
- | # | + | |
- | # | + | |
- | # You may override where the log file goes if you like. The default is shown | + | |
- | # below. | + | |
- | # | + | |
- | # | + | |
- | # If you want, you can have your log file in standard ftpd xferlog format. | + | |
- | # Note that the default log file location is / | + | |
- | # | + | |
- | # | + | |
- | # You may change the default value for timing out an idle session. | + | |
- | # | + | |
- | # | + | |
- | # You may change the default value for timing out a data connection. | + | |
- | # | + | |
- | # | + | |
- | # It is recommended that you define on your system a unique user which the | + | |
- | # ftp server can use as a totally isolated and unprivileged user. | + | |
- | # | + | |
- | # | + | |
- | # Enable this and the server will recognise asynchronous ABOR requests. Not | + | |
- | # recommended for security (the code is non-trivial). Not enabling it, | + | |
- | # however, may confuse older FTP clients. | + | |
- | # | + | |
- | # | + | |
- | # By default the server will pretend to allow ASCII mode but in fact ignore | + | |
- | # the request. Turn on the below options to have the server actually do ASCII | + | |
- | # mangling on files when in ASCII mode. | + | |
- | # Beware that on some FTP servers, ASCII support allows a denial of service | + | |
- | # attack (DoS) via the command "SIZE / | + | |
- | # predicted this attack and has always been safe, reporting the size of the | + | |
- | # raw file. | + | |
- | # ASCII mangling is a horrible feature of the protocol. | + | |
- | # | + | |
- | # | + | |
- | # | + | |
- | # You may fully customise the login banner string: | + | |
- | # | + | |
- | # | + | |
- | # You may specify a file of disallowed anonymous e-mail addresses. Apparently | + | |
- | # useful for combatting certain DoS attacks. | + | |
- | # | + | |
- | # (default follows) | + | |
- | # | + | |
- | # | + | |
- | # You may restrict local users to their home directories. | + | |
- | # the possible risks in this before using chroot_local_user or | + | |
- | # chroot_list_enable below. | + | |
- | # | + | |
- | # | + | |
- | # You may specify an explicit list of local users to chroot() to their home | + | |
- | # directory. If chroot_local_user is YES, then this list becomes a list of | + | |
- | # users to NOT chroot(). | + | |
- | # (Warning! chroot' | + | |
- | # the user does not have write access to the top level directory within the | + | |
- | # chroot) | + | |
- | # | + | |
- | # | + | |
- | # (default follows) | + | |
- | # | + | |
- | # | + | |
- | # You may activate the " | + | |
- | # default to avoid remote users being able to cause excessive I/O on large | + | |
- | # sites. However, some broken FTP clients such as " | + | |
- | # the presence of the " | + | |
- | # | + | |
- | # | + | |
- | # Customization | + | |
- | # | + | |
- | # Some of vsftpd' | + | |
- | # default. | + | |
- | # | + | |
- | # This option should be the name of a directory which is empty. | + | |
- | # directory should not be writable by the ftp user. This directory is used | + | |
- | # as a secure chroot() jail at times vsftpd does not require filesystem | + | |
- | # access. | + | |
- | secure_chroot_dir=/ | + | |
- | # | + | |
- | # This string is the name of the PAM service vsftpd will use. | + | |
- | pam_service_name=vsftpd | + | |
- | # | + | |
- | # This option specifies the location of the RSA certificate to use for SSL | + | |
- | # encrypted connections. | + | |
- | rsa_cert_file=/ | + | |
- | rsa_private_key_file=/ | + | |
- | ssl_enable=NO | + | |
- | + | ||
- | # | + | |
- | # Uncomment this to indicate that vsftpd use a utf8 filesystem. | + | |
- | # | + | |
- | administrator@target: | + | |
</ | </ | ||
Linia 297: | Linia 107: | ||
Instalacja Narzędzi: | Instalacja Narzędzi: | ||
<code bash> | <code bash> | ||
- | sudo apt update | + | administrator@attacker: |
- | sudo apt install git python3-pip tcpdump -y | + | [sudo] password for administrator: |
+ | Hit:1 http:// | ||
+ | Hit:2 http:// | ||
+ | Hit:3 http:// | ||
+ | Hit:4 http:// | ||
+ | Reading package lists... Done | ||
+ | Building dependency tree... Done | ||
+ | Reading state information... Done | ||
+ | 58 packages can be upgraded. Run 'apt list --upgradable' | ||
+ | administrator@attacker: | ||
+ | [TUTAJ LOGI Z INSTALACJI] | ||
</ | </ | ||
+ | Przed instalacją patatora dodano repozytoria kali-linux do ubuntu.\\ | ||
Instalacja Patatora:\\ | Instalacja Patatora:\\ | ||
<code bash> | <code bash> | ||
- | git clone https:// | + | administrator@attacker:~$ sudo apt install |
- | cd patator | + | [TUTAJ LOGI Z INSTALACJI] |
- | pip install -r requirements.txt | + | |
</ | </ | ||
Instalacja CICFlowMeter w wersji Python:\\ | Instalacja CICFlowMeter w wersji Python:\\ | ||
<code bash> | <code bash> | ||
- | cd ~ | + | administrator@attacker: |
- | git clone https:// | + | [TUTAJ LOGI Z INSTALACJI] |
- | cd CICFlowMeter | + | |
- | pip install | + | |
</ | </ | ||
Pobranie słownika do ataku:\\ | Pobranie słownika do ataku:\\ | ||
<code bash> | <code bash> | ||
- | sudo apt install seclists unzip -y | + | administrator@attacker: |
- | cp /usr/share/seclists/ | + | --2025-06-19 15: |
- | cd ~ | + | Resolving github.com (github.com)... 140.82.121.3 |
- | tar -xzf rockyou.txt.tar.gz | + | Connecting to github.com (github.com)|140.82.121.3|: |
+ | HTTP request sent, awaiting response... 302 Found | ||
+ | Location: https:// | ||
+ | --2025-06-19 15: | ||
+ | Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.109.133, | ||
+ | Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.109.133|: | ||
+ | HTTP request sent, awaiting response... 200 OK | ||
+ | Length: 53291283 (51M) [application/ | ||
+ | Saving to: ‘rockyou.txt.tar.gz’ | ||
+ | |||
+ | rockyou.txt.tar.gz | ||
+ | |||
+ | 2025-06-19 15:19:48 (1.59 MB/s) - ‘rockyou.txt.tar.gz’ saved [53291283/ | ||
+ | |||
+ | administrator@attacker: | ||
+ | administrator@attacker: | ||
+ | 14344391 rockyou.txt | ||
+ | administrator@attacker: | ||
+ | 123456 | ||
+ | 12345 | ||
+ | 123456789 | ||
+ | password | ||
+ | iloveyou | ||
+ | princess | ||
+ | 1234567 | ||
+ | rockyou | ||
+ | 12345678 | ||
+ | abc123 | ||
</ | </ | ||
====== Test Komunikacji ====== | ====== Test Komunikacji ====== | ||
+ | Ping:\\ | ||
<code bash> | <code bash> | ||
- | |||
administrator@target: | administrator@target: | ||
PING 10.10.10.2 (10.10.10.2) 56(84) bytes of data. | PING 10.10.10.2 (10.10.10.2) 56(84) bytes of data. | ||
Linia 342: | Linia 186: | ||
rtt min/ | rtt min/ | ||
administrator@target: | administrator@target: | ||
+ | </ | ||
+ | FTP:\\ | ||
+ | <code bash> | ||
+ | administrator@attacker: | ||
+ | Connected to 10.10.10.1. | ||
+ | 220 (vsFTPd 3.0.5) | ||
+ | Name (10.10.10.1: | ||
+ | 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> | ||
</ | </ | ||
====== Przeprowadzenie Ataku ====== | ====== Przeprowadzenie Ataku ====== | ||
- | Uruchomienie | + | W jednej sesji terminala uruchomienie |
<code bash> | <code bash> | ||
- | sudo tcpdump -i eth0 port 21 -w ftp_attack.pcap | + | sudo tcpdump -i eth1 port 21 -w ftp_attack.pcap |
</ | </ | ||
- | Atak Patator:\\ | + | W drugiej sesji terminala atak Patator:\\ |
<code bash> | <code bash> | ||
- | ./patator ftp_login host=192.168.0.105 user=ftpuser password=FILE0 0=rockyou.txt -x ignore: | + | administrator@attacker: |
+ | 15:39:45 patator | ||
+ | 15:39:45 patator | ||
+ | 15:39:45 patator | ||
+ | 15:39:45 patator | ||
+ | 15:40:38 patator | ||
+ | 15:40:38 patator | ||
+ | 15:40:38 patator | ||
+ | 15:40:38 patator | ||
+ | 15:40:38 patator | ||
+ | 15:40:38 patator | ||
+ | 15:40:38 patator | ||
+ | 15:40:38 patator | ||
+ | 15:40:38 patator | ||
+ | 15:40:38 patator | ||
+ | [TUTAJ CIĄGNIE SIĘ DALEJ] | ||
</ | </ | ||
- | * '' | + | * '' |
* '' | * '' | ||
- | ⚠️ | + | <WRAP center round important 60%> |
+ | W 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. | ||
+ | </ | ||
====== Efekty Ataku ====== | ====== Efekty Ataku ====== | ||
Linia 373: | Linia 252: | ||
Fragment logu z / | Fragment logu z / | ||
<code yaml> | <code yaml> | ||
- | WKLEIĆ | + | administrator@target: |
+ | [sudo] password for administrator: | ||
+ | Thu Jun 19 15:27:39 2025 [pid 6752] CONNECT: Client " | ||
+ | Thu Jun 19 15:27:50 2025 [pid 6751] [ftpuser] OK LOGIN: Client " | ||
+ | Thu Jun 19 15:40:35 2025 [pid 7001] CONNECT: Client " | ||
+ | Thu Jun 19 15:40:35 2025 [pid 7003] CONNECT: Client " | ||
+ | Thu Jun 19 15:40:35 2025 [pid 7005] CONNECT: Client " | ||
+ | Thu Jun 19 15:40:35 2025 [pid 7007] CONNECT: Client " | ||
+ | Thu Jun 19 15:40:35 2025 [pid 7009] CONNECT: Client " | ||
+ | Thu Jun 19 15:40:35 2025 [pid 7011] CONNECT: Client " | ||
+ | Thu Jun 19 15:40:35 2025 [pid 7013] CONNECT: Client " | ||
+ | Thu Jun 19 15:40:35 2025 [pid 7015] CONNECT: Client " | ||
+ | Thu Jun 19 15:40:35 2025 [pid 7017] CONNECT: Client " | ||
+ | Thu Jun 19 15:40:35 2025 [pid 7019] CONNECT: Client " | ||
+ | Thu Jun 19 15:40:37 2025 [pid 7000] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:40:37 2025 [pid 7006] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:40:37 2025 [pid 7002] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:40:37 2025 [pid 7008] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:40:37 2025 [pid 7004] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:40:37 2025 [pid 7014] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:40:37 2025 [pid 7012] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:40:37 2025 [pid 7010] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:40:37 2025 [pid 7016] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:40:37 2025 [pid 7018] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:41:30 2025 [pid 7006] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:41:30 2025 [pid 7000] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:41:30 2025 [pid 7008] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:41:30 2025 [pid 7002] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:41:30 2025 [pid 7012] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:41:30 2025 [pid 7014] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:41:30 2025 [pid 7004] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:41:30 2025 [pid 7010] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:41:30 2025 [pid 7016] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:41:30 2025 [pid 7018] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:42:23 2025 [pid 7006] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:42:23 2025 [pid 7008] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:42:23 2025 [pid 7002] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:42:23 2025 [pid 7000] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:42:23 2025 [pid 7012] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:42:23 2025 [pid 7010] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:42:23 2025 [pid 7004] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:42:23 2025 [pid 7014] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:42:23 2025 [pid 7018] [ftpuser] FAIL LOGIN: Client " | ||
+ | Thu Jun 19 15:42:23 2025 [pid 7016] [ftpuser] FAIL LOGIN: Client " | ||
+ | [TUTAJ CIĄGNIE SIĘ DALEJ] | ||
</ | </ | ||
+ | |||
+ | Pełna wersja logów do pobrania {{: | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | Po 765 próbach (~122min) zatrzymano eksperyment | ||
+ | </ | ||
+ | |||
+ | |||
====== Użycie CICFlowMeter (Python) i ekstrakcja cech ====== | ====== Użycie CICFlowMeter (Python) i ekstrakcja cech ====== | ||
<code bash> | <code bash> | ||
- | cd ~/ | + | administrator@attacker: |
- | python3 CICFlowMeter.py -f ftp_attack.pcap -o output/ | + | reading from file ftp_attack.pcap, link-type EN10MB (Ethernet), snapshot length 262144 |
+ | administrator@attacker: | ||
+ | total 186M | ||
+ | drwxr-x--- 7 administrator administrator 4.0K Jun 19 17:16 . | ||
+ | drwxr-xr-x 3 root root 4.0K Jun 19 15:07 .. | ||
+ | -rw------- 1 administrator administrator 1.1K Jun 19 15:25 .bash_history | ||
+ | -rw-r--r-- 1 administrator administrator | ||
+ | -rw-r--r-- 1 administrator administrator 3.7K Mar 31 2024 .bashrc | ||
+ | drwx------ 4 administrator administrator 4.0K Jun 19 17:15 .cache | ||
+ | drwx------ 2 administrator administrator 4.0K Jun 19 17:15 .config | ||
+ | -rw-rw-r-- 1 administrator administrator 263K Jun 19 17:16 ftp_attack.csv | ||
+ | -rw-r--r-- 1 tcpdump | ||
+ | drwxrwxr-x 7 administrator administrator 4.0K Jun 19 15:13 patator | ||
+ | -rw-r--r-- 1 administrator administrator | ||
+ | -rw------- 1 administrator administrator 134M Sep 23 2015 rockyou.txt | ||
+ | -rw-rw-r-- 1 administrator administrator | ||
+ | drwx------ 2 administrator administrator 4.0K Jun 19 15:07 .ssh | ||
+ | -rw-r--r-- 1 administrator administrator | ||
+ | drwxrwxr-x 6 administrator administrator 4.0K Jun 19 15:16 venv_patator | ||
+ | -rw-rw-r-- 1 administrator administrator | ||
+ | -rw------- 1 administrator administrator | ||
+ | administrator@attacker: | ||
+ | src_ip, | ||
+ | 10.10.10.1, | ||
+ | [I TAK DALEJ] | ||
</ | </ | ||
- | W katalogu '' | ||
+ | Wynik przechwytywania do pobrania {{: | ||
+ | |||
+ | Wynik ekstrakcji cech do pobrania {{: | ||
+ | |||
+ | ===== Kluczowe cechy wyniku (Analiza pierwszego wiersza CSV) ===== | ||
+ | |||
+ | < | ||
+ | src_ip=10.10.10.1, | ||
+ | flow_duration=103.3 s | ||
+ | tot_fwd_pkts=10, | ||
+ | flow_byts_s ≈ 12.13 B/s, flow_pkts_s ≈ 0.165 pkt/ | ||
+ | pkt_len_mean ≈ 73.7 B | ||
+ | flow_iat_mean ≈ 16.47 s | ||
+ | bwd_blk_rate_avg ≈ 0.7 (ilość pakietów w tył do przodu) | ||
+ | </ | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ===== Uproszczona sygnatura ataku ===== | ||
+ | |||
+ | Poniżej prosty skrypt wizualizujący dane wyjściowe z programu CICFlowMeter: | ||
+ | <code python signature_grapher.py> | ||
+ | import pandas as pd | ||
+ | import matplotlib.pyplot as plt | ||
+ | |||
+ | # Wczytanie danych z pliku CSV | ||
+ | df = pd.read_csv(' | ||
+ | |||
+ | # Wybór interesujących cech | ||
+ | features = [' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | df_selected = df[features] | ||
+ | |||
+ | # Normalizacja danych (opcjonalnie) | ||
+ | df_normalized = (df_selected - df_selected.mean()) / df_selected.std() | ||
+ | |||
+ | # Wizualizacja | ||
+ | plt.figure(figsize=(12, | ||
+ | for feature in df_normalized.columns: | ||
+ | plt.plot(df_normalized.index, | ||
+ | plt.title(' | ||
+ | plt.xlabel(' | ||
+ | plt.ylabel(' | ||
+ | plt.legend() | ||
+ | plt.grid(True) | ||
+ | plt.show() | ||
+ | </ | ||
+ | |||
+ | {{.: | ||
+ | ====== Wnioski ====== | ||
+ | * Skuteczność ataku brute-force zależy od słownika – jeśli hasło użytkownika nie jest w słowniku, atak się nie powiedzie, choć nadal generuje duży ruch i może zostać wykryty. | ||
+ | * Monitorowanie logów serwera FTP jest kluczowe – logi wyraźnie pokazują wielokrotne, | ||
+ | * Przechwytywanie i analiza ruchu (tcpdump + CICFlowMeter) – umożliwiają szczegółową analizę zachowania sieci podczas ataku, co może być wykorzystane do budowy systemów wykrywania włamań (IDS). | ||
+ | * Ograniczenie szybkości ataku (--rate-limit=50) – jest istotne, aby nie przeciążyć serwera i lepiej symulować realistyczne warunki ataku. | ||
+ | * Silne, losowe hasło zabezpiecza konto – stosowanie silnych haseł, które nie występują w popularnych słownikach, | ||
+ | * Środowisko testowe oparte na VM i Hyper-V – pozwala na bezpieczne i kontrolowane przeprowadzanie eksperymentów bezpieczeństwa. |