🐽 Snort IDS 🐽

ℹ️ Giới thiệu

Snort là một hệ thống phát hiện và ngăn chặn xâm nhập (IDS/IPS) mã nguồn mở phổ biến, giúp giám sát và phân tích lưu lượng mạng để phát hiện các hoạt động đáng ngờ hoặc tấn công mạng. Được phát triển bởi Sourcefire (nay thuộc Cisco), Snort có khả năng phát hiện các cuộc tấn công mạng như quét cổng, tấn công từ chối dịch vụ, khai thác lỗ hổng, và nhiều loại tấn công khác nhờ vào các quy tắc (rules) đã được xây dựng sẵn. Snort thường được sử dụng trong môi trường doanh nghiệp và tổ chức để bảo vệ hệ thống mạng, đồng thời cung cấp cho người quản trị công cụ để giám sát và phân tích lưu lượng, từ đó đưa ra các biện pháp bảo vệ hiệu quả.

Snort 2 sẽ được sử dụng trong phạm vi của bài viết này, và sẽ chỉ được xây dựng như một hệ thống phát hiện tấn công (IDS) chứ chưa có hệ thống ngăn chặn tấn công (IPS).


💻 Xây dựng mô hình

  • Mô hình sẽ được xây dựng đơn giản như sau:

    • Một máy Kali Linux có kết nối Internet. Máy này sẽ đảm nhận nhiệm vụ với tư cách là Attacker.

    • Máy Ubuntu có Internet và đã cài đặt Snort ở chế độ IDS, Snort sẽ thực hiện lắng nghe trên cổng mạng nội bộ.

    • Máy Windows Server nằm trong mạng nội bộ và đã được cài đặt DVWA (DAMN VULNERABLE WEB APPLICATION).

  • Về DVWA thì đây là một ứng dụng web được xây dựng phục vụ cho mục đích hỗ trợ cho việc kiểm thử và ứng dụng các công cụ kiểm thử.


🛠️ Cài đặt

Trước khi cài đặt thì chúng ta cần phải cập nhật các gói cài đặt trước:

sudo apt update
sudo apt upgrade

Ở phần cài đặt này thì bạn có thể cài đặt Snort bằng 2 cách:

  1. Cài đặt bằng tự động với apt:
  • Với cách này thì bạn chỉ cần đơn giản một câu lệnh như sau:
sudo apt install snort -y
  • Kiểm tra Snort đã được cài đặt
snort -V
  • Ra được kết quả như dưới là ok.
   ,,_     -*> Snort! <*-
  o"  )~   Version 2.9.15.1 GRE (Build 15125) 
   ''''    By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
           Copyright (C) 2014-2019 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using libpcap version 1.10.1 (with TPACKET_V3)
           Using PCRE version: 8.39 2016-06-14
           Using ZLIB version: 1.2.11
  1. Cài đặt thủ công.
  • Với cách cài đặt này sẽ có thêm một vài công đoạn, cách cài này sẽ hướng đến khả năng customize Snort.

  • Bước đầu tiên là cài đặt các thư viện cần thiết cho quá trình cài đặt Snort.

sudo apt install -y build-essential autoconf libtool pkg-config gcc libpcre3-dev zlib1g-dev libluajit-5.1-dev libpcap-dev openssl libssl-dev libnghttp2-dev libdumbnet-dev bison flex libdnet autoconf libtool
  • Ta sẽ tạo một directory để chứa các file cài.
sudo mkdir ~/snort_source
cd ~/snort_source
  • Tải về daq-2.0.7.tar.gzsnort-2.9.20.tar.gz .
wget https://www.snort.org/downloads/snort/daq-2.0.7.tar.gz
wget https://www.snort.org/downloads/snort/snort-2.9.20.tar.gz
  • Giải nén daq-2.0.7.tar.gz.
tar xvzf daq-2.0.7.tar.gz
cd daq-2.0.7.tar.gz
  • Reconfig DAQ trước khi cài đặt
autoreconf -f -i
  • Sau đó thực hiện configure
./configure
make && sudo make install
  • Sau khi cài xong, quay lại và thực hiện tương tự với snort-2.9.20.tar.gz.
tar xvzf snort-2.9.20.tar.gz
cd snort-2.9.20.tar.gz
  • chạy ./configure với --enable-sourcefire.
./configure --enable-sourcefire
  • Thực hiện complie.
make
  • Ở bước này, nếu có xảy ra lỗi như dưới:
sp_rpc_check.c:32:10: fatal error: rpc/rpc.h: No such file or directory
   32 | #include <rpc/rpc.h>
      |          ^~~~~~~~~~~
compilation terminated.
  • Bạn có thể thử chạy các lệnh sau:
export CPPFLAGS="-I/usr/include/tirpc"
export LDFLAGS="-ltirpc"
  • Sau đó chạy ./configure --enable-sourcefire lại rồi chạy make.
make
sudo make install
  • Khi hoàn thành thì tạo liên kết từ /usr/local/bin/snort tới /usr/sbin/snort.
ln -s /usr/local/bin/snort /usr/sbin/snort
  • Kiểm tra Snort đã được cài đặt.
snort -V
  • Ra được kết quả
   ,,_     -*> Snort! <*-
  o"  )~   Version 2.9.20 GRE (Build 82) 
   ''''    By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
           Copyright (C) 2014-2022 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using libpcap version 1.10.1 (with TPACKET_V3)
           Using PCRE version: 8.39 2016-06-14
           Using ZLIB version: 1.2.11
  • Ta sẽ thực hiện tạo directory để chứa cấu trúc cấu hình và tập luật của Snort.
sudo mkdir -p /etc/snort/rules
sudo mkdir /var/log/snort
sudo mkdir /usr/local/lib/snort_dynamicrules
  • Tạo các tập luật.
sudo touch /etc/snort/rules/white_list.rules
sudo touch /etc/snort/rules/black_list.rules
sudo touch /etc/snort/rules/local.rules
  • Copy các file cấu hình.
sudo cp ~/snort_source/snort-2.9.20/etc/*.conf* /etc/snort
sudo cp ~/snort_source/snort-2.9.20/etc/*.map /etc/snort/
  • Chỉnh sửa cấu hình trong snort.conf.
ipvar HOME_NET 192.168.10.0/24

ipvar EXTERNAL_NET !$HOME_NET
  • Phần đường dẫn.
var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules

var WHITE_LIST_PATH /etc/snort/rules
var BLACK_LIST_PATH /etc/snort/rules
  • Có thể thêm dòng này để lưu log lại dưới định dạng plain text thuận tiện cho việc theo dõi nhanh.
output alert_fast: snort.alert.fast
  • Phần tập luật. Comment tất cả các rules chỉ để lại local.rules. Tuỳ thuộc vào mục đích sử dụng mà bạn có thể Uncomment các rules khác nhau.
include $RULE_PATH/local.rules

#include $RULE_PATH/app-detect.rules
#include $RULE_PATH/attack-responses.rules
#include $RULE_PATH/backdoor.rules
#include $RULE_PATH/bad-traffic.rules
#include $RULE_PATH/blacklist.rules
#include $RULE_PATH/botnet-cnc.rules
  • Sau khi chỉnh sửa xong thì lưu lại và thực hiện kiểm tra hoạt động của Snort.
snort -c /etc/snort/snort.conf -T
  • Ra được output như thế này là OK.
        --== Initialization Complete ==--

   ,,_     -*> Snort! <*-
  o"  )~   Version 2.9.20 GRE (Build 82) 
   ''''    By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
           Copyright (C) 2014-2022 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using libpcap version 1.10.1 (with TPACKET_V3)
           Using PCRE version: 8.39 2016-06-14
           Using ZLIB version: 1.2.11

           Rules Engine: SF_SNORT_DETECTION_ENGINE  Version 3.2  <Build 1>
           Preprocessor Object: SF_DNP3  Version 1.1  <Build 1>
           Preprocessor Object: SF_MODBUS  Version 1.1  <Build 1>
           Preprocessor Object: SF_GTP  Version 1.1  <Build 1>
           Preprocessor Object: SF_SDF  Version 1.1  <Build 1>
           Preprocessor Object: SF_SSLPP  Version 1.1  <Build 4>
           Preprocessor Object: SF_DCERPC2  Version 1.0  <Build 3>
           Preprocessor Object: SF_FTPTELNET  Version 1.2  <Build 13>
           Preprocessor Object: SF_POP  Version 1.0  <Build 1>
           Preprocessor Object: SF_SSH  Version 1.1  <Build 3>
           Preprocessor Object: SF_S7COMMPLUS  Version 1.0  <Build 1>
           Preprocessor Object: SF_SIP  Version 1.1  <Build 1>
           Preprocessor Object: SF_REPUTATION  Version 1.1  <Build 1>
           Preprocessor Object: appid  Version 1.1  <Build 5>
           Preprocessor Object: SF_SMTP  Version 1.1  <Build 9>
           Preprocessor Object: SF_DNS  Version 1.1  <Build 4>
           Preprocessor Object: SF_IMAP  Version 1.0  <Build 1>

Total snort Fixed Memory Cost - MaxRss:47232
Snort successfully validated the configuration!
Snort exiting
  • Cấu hình tập luật để phát hiện một số hình thức tấn công đơn giản. Như Nmap Scan, SQL Injection cơ bản, SQLmap, XSS, ICMP Ping Of Death, Brute Force, …
# ICMP Ping Detection
alert icmp any any -> $HOME_NET any (msg:"ICMP Ping detected"; itype:8; sid:1000000; rev:1;)

# Nmap Scan Detection
alert tcp any any -> $HOME_NET any (msg:"Nmap SYN Scan detected"; flags:S; threshold:type limit, track by_src, count 20, seconds 60; sid:1000001; rev:1;)
alert tcp any any -> $HOME_NET any (msg:"Nmap FIN Scan detected"; flags:F; threshold:type limit, track by_src, count 20, seconds 60; sid:1000002; rev:1;)
alert tcp any any -> $HOME_NET any (msg:"Nmap XMAS Scan detected"; flags:FPU; threshold:type limit, track by_src, count 20, seconds 60; sid:1000003; rev:1;)
alert tcp any any -> $HOME_NET any (msg:"Nmap NULL Scan detected"; flags:0; threshold:type limit, track by_src, count 20, seconds 60; sid:1000004; rev:1;)

# SQL Injection Detection Rules for Snort
alert tcp any any -> $HOME_NET 80 (msg:"AND SQL Injection detected"; flow:to_server,established; content:"and"; nocase; http_uri; sid:1000005; rev:1;)
alert tcp any any -> $HOME_NET 80 (msg:"OR SQL Injection detected"; flow:to_server,established; content:"or"; nocase; http_uri; sid:1000006; rev:1;)

# SQLMap Detection Rules
alert tcp any any -> $HOME_NET 80 (msg:"SQLMap UNION SELECT Injection attempt"; flow:to_server,established; content:"union select"; nocase; http_uri; sid:1000007; rev:1;)
alert tcp any any -> $HOME_NET 80 (msg:"SQLMap SQL Comment Injection detected"; flow:to_server,established; content:"--"; nocase; http_uri; sid:1000008; rev:1;)
alert tcp any any -> $HOME_NET 80 (msg:"SQLMap SQL Comment Injection detected"; flow:to_server,established; content:"#"; nocase; http_uri; sid:1000009; rev:1;)
alert tcp any any -> $HOME_NET 80 (msg:"SQLMap Time-based Blind SQL Injection attempt (sleep)"; flow:to_server,established; content:"sleep("; nocase; http_uri; sid:1000010; rev:1;)
alert tcp any any -> $HOME_NET 80 (msg:"SQLMap Information Schema Access attempt"; flow:to_server,established; content:"information_schema"; nocase; http_uri; sid:1000011; rev:1;)
alert tcp any any -> $HOME_NET 80 (msg:"SQLMap ORDER BY Injection attempt"; flow:to_server,established; content:"order by"; nocase; http_uri; sid:1000012; rev:1;)
alert tcp any any -> $HOME_NET 80 (msg:"SQLMap Boolean-Based SQL Injection detected ('or '1'='1')"; flow:to_server,established; content:"' or '1'='1"; nocase; http_uri; sid:1000013; rev:1;)
alert tcp any any -> $HOME_NET 80 (msg:"SQLMap User Agent Detected"; flow:to_server,established; content:"User-Agent: sqlmap"; http_header; sid:1000014; rev:1;)
alert tcp any any -> $HOME_NET 80 (msg:"SQLMap Hexadecimal Injection Detected"; flow:to_server,established; content:"0x"; nocase; http_uri; sid:1000015; rev:1;)
alert tcp any any -> $HOME_NET 80 (msg:"SQLMap Error-Based SQL Injection Detected (MySQL Error)"; flow:to_server,established; content:"You have an error in your SQL syntax"; nocase; http_uri; sid:1000016; rev:1;)
alert tcp any any -> $HOME_NET 80 (msg:"SQLMap UNION ALL SELECT Injection Detected"; flow:to_server,established; content:"union all select"; nocase; http_uri; sid:1000017; rev:1;)

# XSS Detection for DVWA Website (192.168.10.10)
alert tcp any any -> $HOME_NET 80 (msg:"XSS Attack - Script Tag Detected"; flow:to_server,established; content:"<script>"; nocase; http_uri; sid:1000018; rev:1;)
alert tcp any any -> $HOME_NET 80 (msg:"XSS Attack - alert() Function Detected"; flow:to_server,established; content:"alert("; nocase; http_uri; sid:1000019; rev:1;)
alert tcp any any -> $HOME_NET 80 (msg:"XSS Attack - onerror Event Detected"; flow:to_server,established; content:"onerror="; nocase; http_uri; sid:1000020; rev:1;)
alert tcp any any -> $HOME_NET 80 (msg:"XSS Attack - img src with JS Injection Detected"; flow:to_server,established; content:"<img src="; nocase; content:"javascript:"; nocase; http_uri; sid:1000021; rev:1;)

# ICMP PING OF DEATH
alert icmp any any -> $HOME_NET any (msg:"ICMP Ping of Death Attack Detected"; itype:8; dsize:>1000; sid:1000022; rev:1;)

# BRUTE FORCE
alert tcp $EXTERNAL_NET any -> $HOME_NET 80 (msg:"Brute Force Login Attempt via HTTP"; flow:to_server,established; content:"GET"; http_method; content:"username="; nocase; content:"password="; nocase; detection_filter:track by_src, count 5, seconds 1; classtype:attempted-user; sid:1000023; rev:1;)
  • Sau khi tạo xong thì lưu lại và bắt đầu chạy và lắng nghe lưu lượng mạng.
snort -c /etc/snort/snort.conf -i ens38
  • Mở một terminal khác và chạy lệnh sau để xem log được ghi lại của Snort.
tail -f /var/log/snort/snort.alert.fast
  • Phần Snort trên máy Ubuntu về cơ bản là đã hoàn thành, tiếp theo là đến phần thực hiện tấn công trên máy Kali.

  • Đảm bảo máy Ubuntu đang bật chế độ ip_forward.

sudo nano /etc/sysctl.conf
  • Tìm đến dòng net.ipv4.ip_forward = 1, bỏ comment.
sudo sysctl -p
  • Ra output như dưới là OK.
net.ipv4.ip_forward = 1

🧪 Kiểm tra hoạt động của Snort

Ping

  • Ping thử từ máy Kali tới máy DVWA.
┌──(root㉿kali)-[/home/kali]
└─# ping 192.168.10.10 -c 5
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq=1 ttl=127 time=0.668 ms
64 bytes from 192.168.10.10: icmp_seq=2 ttl=127 time=0.772 ms
64 bytes from 192.168.10.10: icmp_seq=3 ttl=127 time=1.18 ms
64 bytes from 192.168.10.10: icmp_seq=4 ttl=127 time=1.29 ms
64 bytes from 192.168.10.10: icmp_seq=5 ttl=127 time=1.15 ms
  • Trên máy Snort đã ghi lại được các log sau.
10/26-14:34:37.679216  [**] [1:1000000:1] ICMP Ping detected [**] [Priority: 0] {ICMP} 192.168.5.141 -> 192.168.10.10
10/26-14:34:38.707353  [**] [1:1000000:1] ICMP Ping detected [**] [Priority: 0] {ICMP} 192.168.5.141 -> 192.168.10.10
10/26-14:34:39.710262  [**] [1:1000000:1] ICMP Ping detected [**] [Priority: 0] {ICMP} 192.168.5.141 -> 192.168.10.10
10/26-14:34:40.711466  [**] [1:1000000:1] ICMP Ping detected [**] [Priority: 0] {ICMP} 192.168.5.141 -> 192.168.10.10

Nmap Scan

  • Thực hiện quét Nmap.
nmap -A -T4 -Pn 192.168.10.10
  • Snort ghi lại được.
10/26-14:37:52.307661  [**] [1:1000001:1] Nmap SYN Scan detected [**] [Priority: 0] {TCP} 192.168.5.141:51893 -> 192.168.10.10:443
10/26-14:37:52.307697  [**] [1:1000001:1] Nmap SYN Scan detected [**] [Priority: 0] {TCP} 192.168.5.141:51893 -> 192.168.10.10:5900
10/26-14:37:52.307723  [**] [1:1000001:1] Nmap SYN Scan detected [**] [Priority: 0] {TCP} 192.168.5.141:51893 -> 192.168.10.10:23
10/26-14:38:21.402069  [**] [1:1000000:1] ICMP Ping detected [**] [Priority: 0] {ICMP} 192.168.5.141 -> 192.168.10.10
10/26-14:38:21.428012  [**] [1:1000000:1] ICMP Ping detected [**] [Priority: 0] {ICMP} 192.168.5.141 -> 192.168.10.10
10/26-14:38:21.510032  [**] [1:1000004:1] Nmap NULL Scan detected [**] [Priority: 0] {TCP} 192.168.5.141:36782 -> 192.168.10.10:21
10/26-14:38:21.645732  [**] [1:1000003:1] Nmap XMAS Scan detected [**] [Priority: 0] {TCP} 192.168.5.141:36787 -> 192.168.10.10:1

SQL Injection

  • Kiểm tra với một vài câu lệnh SQL Injection đơn giản.

  • Snort phát hiện và ghi lại.
10/26-14:39:37.185299  [**] [1:1000013:1] SQLMap Boolean-Based SQL Injection detected ('or '1'='1') [**] [Priority: 0] {TCP} 192.168.5.141:57166 -> 192.168.10.10:80
10/26-14:39:37.185299  [**] [1:1000006:1] OR SQL Injection detected [**] [Priority: 0] {TCP} 192.168.5.141:57166 -> 192.168.10.10:80
10/26-14:41:28.915727  [**] [1:1000005:1] AND SQL Injection detected [**] [Priority: 0] {TCP} 192.168.5.141:60478 -> 192.168.10.10:80

SQLMAP

  • Sử dụng sqlmap để thực hiện dò quét và tấn công SQL Injection.
sqlmap -u 'http://192.168.10.10/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#' --cookie='PHPSESSID=8ef7cd7p4n260ifgrgob9h3tae; security=low' --batch --dbs --dump
10/26-14:43:26.254725  [**] [1:1000017:1] SQLMap UNION ALL SELECT Injection Detected [**] [Priority: 0] {TCP} 192.168.5.141:40554 -> 192.168.10.10:80
10/26-14:43:26.254725  [**] [1:1000005:1] AND SQL Injection detected [**] [Priority: 0] {TCP} 192.168.5.141:40554 -> 192.168.10.10:80
10/26-14:43:26.254725  [**] [1:1000015:1] SQLMap Hexadecimal Injection Detected [**] [Priority: 0] {TCP} 192.168.5.141:40554 -> 192.168.10.10:80
10/26-14:43:26.254725  [**] [1:1000006:1] OR SQL Injection detected [**] [Priority: 0] {TCP} 192.168.5.141:40554 -> 192.168.10.10:80
10/26-14:43:26.293223  [**] [1:1000001:1] Nmap SYN Scan detected [**] [Priority: 0] {TCP} 192.168.5.141:40578 -> 192.168.10.10:80
10/26-14:43:26.283272  [**] [1:1000014:1] SQLMap User Agent Detected [**] [Priority: 0] {TCP} 192.168.5.141:40570 -> 192.168.10.10:80
10/26-14:43:26.283272  [**] [1:1000017:1] SQLMap UNION ALL SELECT Injection Detected [**] [Priority: 0] {TCP} 192.168.5.141:40570 -> 192.168.10.10:80
10/26-14:43:26.283272  [**] [1:1000015:1] SQLMap Hexadecimal Injection Detected [**] [Priority: 0] {TCP} 192.168.5.141:40570 -> 192.168.10.10:80
10/26-14:43:26.283272  [**] [1:1000009:1] SQLMap SQL Comment Injection detected [**] [Priority: 0] {TCP} 192.168.5.141:40570 -> 192.168.10.10:80

XSS

  • Thực hiện chạy một câu lệnh XSS đơn giản.

  • Lệnh này sẽ in ra cookie của phiên đăng nhập.
<script>document.write(document.cookie);</script>
  • Snort bắt được các gói tin XSS.
10/26-14:45:48.859358  [**] [1:1000018:1] XSS Attack - Script Tag Detected [**] [Priority: 0] {TCP} 192.168.5.141:41270 -> 192.168.10.10:80

ICMP Ping Of Death

  • Giả lập một cuộc tấn công icmp flooding, sử dụng hping3 để thực hiện.
┌──(root㉿kali)-[/home/kali]
└─# hping3 -1 --flood -d 65000 192.168.10.10

HPING 192.168.10.10 (eth0 192.168.10.10): icmp mode set, 28 headers + 65000 data bytes
hping in flood mode, no replies will be shown
  • -1 là ICMP mode, hoạt động như lệnh ping.

  • --flood là option để gửi các gói tin một cách nhanh nhất có thể mà không cần đợi phản hồi.

  • -d 65000 là dung lượng của gói tin. Mục đích là để tăng dung lượng gói tin gửi đến Server và làm tốn nhiều tài nguyên hơn để xử lý trên máy mục tiêu.

  • 192.168.10.10 là IP của DVWA Server.

10/26-14:49:13.142424  [**] [1:1000022:1] ICMP Ping of Death Attack Detected [**] [Priority: 0] {ICMP} 192.168.5.141 -> 192.168.10.10
10/26-14:49:13.142424  [**] [1:1000000:1] ICMP Ping detected [**] [Priority: 0] {ICMP} 192.168.5.141 -> 192.168.10.10
10/26-14:49:14.147253  [**] [1:1000022:1] ICMP Ping of Death Attack Detected [**] [Priority: 0] {ICMP} 192.168.5.141 -> 192.168.10.10
10/26-14:49:14.147253  [**] [1:1000000:1] ICMP Ping detected [**] [Priority: 0] {ICMP} 192.168.5.141 -> 192.168.10.10
10/26-14:49:15.151061  [**] [1:1000022:1] ICMP Ping of Death Attack Detected [**] [Priority: 0] {ICMP} 192.168.5.141 -> 192.168.10.10
10/26-14:49:15.151061  [**] [1:1000000:1] ICMP Ping detected [**] [Priority: 0] {ICMP} 192.168.5.141 -> 192.168.10.10
10/26-14:49:16.151950  [**] [1:1000022:1] ICMP Ping of Death Attack Detected [**] [Priority: 0] {ICMP} 192.168.5.141 -> 192.168.10.10
10/26-14:49:16.151950  [**] [1:1000000:1] ICMP Ping detected [**] [Priority: 0] {ICMP} 192.168.5.141 -> 192.168.10.10
10/26-14:49:17.153839  [**] [1:1000022:1] ICMP Ping of Death Attack Detected [**] [Priority: 0] {ICMP} 192.168.5.141 -> 192.168.10.10
10/26-14:49:17.153839  [**] [1:1000000:1] ICMP Ping detected [**] [Priority: 0] {ICMP} 192.168.5.141 -> 192.168.10.10

Brute force

  • Sử dụng Hydra để brute force trang web.
hydra 192.168.10.10 http-get-form "/dvwa/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:H=Cookie: PHPSESSID=8ef7cd7p4n260ifgrgob9h3tae; security=low:F=Username and/or password incorrect." -l admin -P password.txt -t 4 -V
  • Sử dụng username là admin, với password list được lưu trong password.txt
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2024-10-26 03:50:53
[DATA] max 4 tasks per 1 server, overall 4 tasks, 194 login tries (l:1/p:194), ~49 tries per task
[DATA] attacking http-get-form://192.168.10.10:80/dvwa/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:H=Cookie: PHPSESSID=8ef7cd7p4n260ifgrgob9h3tae; security=low:F=Username and/or password incorrect.
[ATTEMPT] target 192.168.10.10 - login "admin" - pass "1238917" - 1 of 194 [child 0] (0/0)
[ATTEMPT] target 192.168.10.10 - login "admin" - pass "alice" - 2 of 194 [child 1] (0/0)
[ATTEMPT] target 192.168.10.10 - login "admin" - pass "1238917" - 3 of 194 [child 2] (0/0)
  • Thông tin đăng nhập mà hydra thu được là adminpassword.
[ATTEMPT] target 192.168.10.10 - login "admin" - pass "password" - 145 of 194 [child 3] (0/0)
[ATTEMPT] target 192.168.10.10 - login "admin" - pass "1238917" - 146 of 194 [child 0] (0/0)
[ATTEMPT] target 192.168.10.10 - login "admin" - pass "alice" - 147 of 194 [child 1] (0/0)
[ATTEMPT] target 192.168.10.10 - login "admin" - pass "1238917" - 148 of 194 [child 2] (0/0)
[80][http-get-form] host: 192.168.10.10   login: admin   password: password
1 of 1 target successfully completed, 1 valid password found
  • Đây là một phần log mà Snort ghi lại được.
10/26-14:51:02.487198  [**] [1:1000023:1] Brute Force Login Attempt via HTTP [**] [Classification: Attempted User Privilege Gain] [Priority: 1] {TCP} 192.168.5.141:51422 -> 192.168.10.10:80
10/26-14:51:02.498807  [**] [1:1000023:1] Brute Force Login Attempt via HTTP [**] [Classification: Attempted User Privilege Gain] [Priority: 1] {TCP} 192.168.5.141:51428 -> 192.168.10.10:80
10/26-14:51:02.555402  [**] [1:1000023:1] Brute Force Login Attempt via HTTP [**] [Classification: Attempted User Privilege Gain] [Priority: 1] {TCP} 192.168.5.141:51452 -> 192.168.10.10:80
10/26-14:51:02.628385  [**] [1:1000023:1] Brute Force Login Attempt via HTTP [**] [Classification: Attempted User Privilege Gain] [Priority: 1] {TCP} 192.168.5.141:51470 -> 192.168.10.10:80
  • Tóm lại thì hệ thống phát hiện tấn công Snort được xây dựng và cấu hình đã hoạt động bình thường và lắng nghe được các lưu lượng mạng tới DVWA Server, qua đó sẽ nắm bắt được các biểu hiện bất thường để từ đó phát hiện trước các cuộc tấn công. Phương hướng phát triển cho hệ thống này sẽ là ứng dụng chế độ ngăn chặn tấn công của Snort (IPS) vào chung với IDS, nhằm có thể tự động ngăn chặn trước các cuộc tấn công mà không cần sự can thiệp thủ công của người quản trị mạng khi có xảy ra các cuộc tấn công.
0
Subscribe to my newsletter

Read articles from Nguyễn Tài Nguyên directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Nguyễn Tài Nguyên
Nguyễn Tài Nguyên

In search of the Great Manifesto