Narzędzia użytkownika

Narzędzia witryny


notatki:ftp_bruteforce

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
notatki:ftp_bruteforce [2025/06/19 17:47] administratornotatki:ftp_bruteforce [2025/06/19 20:09] (aktualna) administrator
Linia 1: Linia 1:
-====== FTP Bruteforce (Patator i CICFlowMeter) ======+====== Security: 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://documentation.ubuntu.com/server/reference/installation/system-requirements/|Wymagania minimalne ubuntu]] mówią o minimalnie 5GB). Dyski są w formacie vhdx, wykorzystywanym przez hyper-v. Każda z Maszyn ma dysk o rozmiarze 8GB ([[https://documentation.ubuntu.com/server/reference/installation/system-requirements/|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:\\ +Dyski maszyn można pobrać z linka poniżej:\\ 
 +https://1drv.ms/f/c/9dd28f74d9c48b45/ElEe6P0-WYpOmB3YukiRtzwBVGtNNW8QbW3jmy5V-9PWPQ?e=RSLSO4\\ 
 +Hasło do linka: ''Ostrowski19062025''
  
 ===== Oprogramowanie wykorzystane do wykonania eksperymentu ===== ===== Oprogramowanie wykorzystane do wykonania eksperymentu =====
Linia 23: Linia 24:
 | System operacyjny maszyn wirtualnych  | 24.04.2 LTS                | Ubuntu Server  | | System operacyjny maszyn wirtualnych  | 24.04.2 LTS                | Ubuntu Server  |
 | Hypervisor                            | Wersja: 10.0.26100.1882    | Hyper-V        | | Hypervisor                            | Wersja: 10.0.26100.1882    | Hyper-V        |
-| Serwer FTP                            | 3.0.                     | VSFTPD         | +| Serwer FTP                            | 3.0.                     | VSFTPD         | 
-| Narzędzie ataku                       0.                       | Patator        |+| Narzędzie ataku                       1.                       | Patator        |
 | Przechwytywanie ruchu                 | 4.99.1                     | tcpdump        | | Przechwytywanie ruchu                 | 4.99.1                     | tcpdump        |
-| Analiza Ruchu                         | 0.4.2                        | CICFlowMeter   |+| Analiza Ruchu                         | 0.4.2                      | CICFlowMeter   |
 | Słownik do ataku                      | ok. 14 MB, 14344392 haseł  | rockyou.txt    | | Słownik do ataku                      | ok. 14 MB, 14344392 haseł  | rockyou.txt    |
  
Linia 234: Linia 235:
   * ''rockyou.txt'': używa ogólnodostępnego słownika   * ''rockyou.txt'': używa ogólnodostępnego słownika
  
-⚠️ 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.+<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. 
 +</WRAP> 
  
 ====== Efekty Ataku ====== ====== Efekty Ataku ======
Linia 294: Linia 298:
 [TUTAJ CIĄGNIE SIĘ DALEJ] [TUTAJ CIĄGNIE SIĘ DALEJ]
 </code> </code>
 +
 +Pełna wersja logów do pobrania {{:notatki:vsftpd_copy.log}}
 +
 +<WRAP center round info 60%>
 +Po 765 próbach (~122min) zatrzymano eksperyment
 +</WRAP>
 + 
 +
 ====== Użycie CICFlowMeter (Python) i ekstrakcja cech ====== ====== Użycie CICFlowMeter (Python) i ekstrakcja cech ======
  
 <code bash> <code bash>
-cicflowmeter -f ftp_attack.pcap -o output/+administrator@attacker:~$ cicflowmeter -f ftp_attack.pcap -c ftp_attack.csv 
 +reading from file ftp_attack.pcap, link-type EN10MB (Ethernet), snapshot length 262144 
 +administrator@attacker:~$ ls -lah 
 +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  220 Mar 31  2024 .bash_logout 
 +-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       tcpdump       750K Jun 19 17:09 ftp_attack.pcap 
 +drwxrwxr-x 7 administrator administrator 4.0K Jun 19 15:13 patator 
 +-rw-r--r-- 1 administrator administrator  807 Mar 31  2024 .profile 
 +-rw------- 1 administrator administrator 134M Sep 23  2015 rockyou.txt 
 +-rw-rw-r-- 1 administrator administrator  51M Jun 19 15:19 rockyou.txt.tar.gz 
 +drwx------ 2 administrator administrator 4.0K Jun 19 15:07 .ssh 
 +-rw-r--r-- 1 administrator administrator    0 Jun 19 15:08 .sudo_as_admin_successful 
 +drwxrwxr-x 6 administrator administrator 4.0K Jun 19 15:16 venv_patator 
 +-rw-rw-r-- 1 administrator administrator  215 Jun 19 15:19 .wget-hsts 
 +-rw------- 1 administrator administrator  108 Jun 19 15:25 .Xauthority 
 +administrator@attacker:~$ cat ftp_attack.csv 
 +src_ip,dst_ip,src_port,dst_port,protocol,timestamp,flow_duration,flow_byts_s,flow_pkts_s,fwd_pkts_s,bwd_pkts_s,tot_fwd_pkts,tot_bwd_pkts,totlen_fwd_pkts,totlen_bwd_pkts,fwd_pkt_len_max,fwd_pkt_len_min,fwd_pkt_len_mean,fwd_pkt_len_std,bwd_pkt_len_max,bwd_pkt_len_min,bwd_pkt_len_mean,bwd_pkt_len_std,pkt_len_max,pkt_len_min,pkt_len_mean,pkt_len_std,pkt_len_var,fwd_header_len,bwd_header_len,fwd_seg_size_min,fwd_act_data_pkts,flow_iat_mean,flow_iat_max,flow_iat_min,flow_iat_std,fwd_iat_tot,fwd_iat_max,fwd_iat_min,fwd_iat_mean,fwd_iat_std,bwd_iat_tot,bwd_iat_max,bwd_iat_min,bwd_iat_mean,bwd_iat_std,fwd_psh_flags,bwd_psh_flags,fwd_urg_flags,bwd_urg_flags,fin_flag_cnt,syn_flag_cnt,rst_flag_cnt,psh_flag_cnt,ack_flag_cnt,urg_flag_cnt,ece_flag_cnt,down_up_ratio,pkt_size_avg,init_fwd_win_byts,init_bwd_win_byts,active_max,active_min,active_mean,active_std,idle_max,idle_min,idle_mean,idle_std,fwd_byts_b_avg,fwd_pkts_b_avg,bwd_byts_b_avg,bwd_pkts_b_avg,fwd_blk_rate_avg,bwd_blk_rate_avg,fwd_seg_size_avg,bwd_seg_size_avg,cwr_flag_count,subflow_fwd_pkts,subflow_bwd_pkts,subflow_fwd_byts,subflow_bwd_byts 
 +10.10.10.1,10.10.10.2,21,37852,6,2025-06-19 15:41:31,103.324816,12.12680601337824,0.1645296905246848,0.09678217089687341,0.06774751962781139,10,7,736,517,100,54,73.6,15.226293048539425,81,66,73.85714285714286,6.854166020511517,100,54,73.70588235294117,12.479464099930464,155.73702422145328,200,140,20,4,6.457801,49.981098,0.0,16.465319560282826,103.324816,50.001816,0.0,11.480535111111113,20.609759023049122,103.284029,49.981098,4e-05,17.21400483333333,23.19276500435293,4,3,0,0,3,0,2,7,15,0,0,0.7,73.70588235294117,510,502,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73.6,73.85714285714286,0,10,7,736,517 
 +[I TAK DALEJ]
 </code> </code>
-W katalogu ''output/'' został zapisany plik ''ftp_attack_Flow.csv''. 
  
  
 +Wynik przechwytywania do pobrania {{:notatki:ftp_attack.pcap}}
 +
 +Wynik ekstrakcji cech do pobrania {{:notatki:ftp_attack.csv}}
 +
 +===== Kluczowe cechy wyniku (Analiza pierwszego wiersza CSV) =====
 +
 +<code>
 +src_ip=10.10.10.1, dst_ip=10.10.10.2, dst_port=37852, protocol=6 (TCP)
 +flow_duration=103.3 s  
 +tot_fwd_pkts=10, tot_bwd_pkts=7  
 +flow_byts_s ≈ 12.13 B/s, flow_pkts_s ≈ 0.165 pkt/s  
 +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)
 +</code>
 +
 +  * ''flow_duration'' (~103 s) – sesja trwała ponad 1,5 minuty; w przypadku automatycznego ataku można się tego spodziewać, gdy serwer zwalnia odpowiedzi.
 +  * ''tot_fwd_pkts'' = 10, ''tot_bwd_pkts'' = 7 – 10 prób logowania z serwera (komunikaty żądania), 7 odpowiedzi serwera (błędy logowania).
 +  * ''flow_byts_s'' ≈ 12 B/s – to stosunkowo niska przepustowość, typowa dla sesji inicjowanych ręcznie lub przy wolnym ftp.
 +  * ''flow_pkts_s'' ≈ 0.165 pkt/s – bardzo rzadkie pakiety (średnio co 6 sekund), co może sugerować rate-limit lub timeout serwera.
 +  * ''flow_iat_mean'' ≈ 16 s – średnia odległość czasowa między pakietami to 16 s, co wskazuje na powolną interakcję między próbami.
 +
 +===== 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('ftp_attack.csv')
 +
 +# Wybór interesujących cech
 +features = ['flow_duration', 'flow_byts_s', 'flow_pkts_s', 'fwd_pkts_s', 'bwd_pkts_s',
 +            'tot_fwd_pkts', 'tot_bwd_pkts', 'totlen_fwd_pkts', 'totlen_bwd_pkts',
 +            'fwd_pkt_len_max', 'bwd_pkt_len_max', 'flow_iat_mean', 'flow_iat_std',
 +            'flow_iat_max', 'flow_iat_min']
 +df_selected = df[features]
 +
 +# Normalizacja danych (opcjonalnie)
 +df_normalized = (df_selected - df_selected.mean()) / df_selected.std()
 +
 +# Wizualizacja
 +plt.figure(figsize=(12, 8))
 +for feature in df_normalized.columns:
 +    plt.plot(df_normalized.index, df_normalized[feature], label=feature)
 +plt.title('Sygnatura Ataku')
 +plt.xlabel('Indeks Przepływu')
 +plt.ylabel('Znormalizowana Wartość')
 +plt.legend()
 +plt.grid(True)
 +plt.show()
 +</code>
 +
 +{{.:pasted:20250619-194744.png}}
  
 +====== 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, nieudane próby logowania, co pozwala administratorowi wykryć próbę ataku.
 +  * 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, jest podstawową ochroną przed atakami brute-force.
 +  * Środowisko testowe oparte na VM i Hyper-V – pozwala na bezpieczne i kontrolowane przeprowadzanie eksperymentów bezpieczeństwa.
notatki/ftp_bruteforce.1750348053.txt.gz · ostatnio zmienione: przez administrator