Nhiều khi bạn config xong FireWall của mình mà không biết nó có thực sự
hoạt động theo ý bạn mong muốn không mà lại ngại giao trứng cho ác đem
lên cho anh em trên này vọc vọc Bài viết này sẽ hướng dẫn bạn sử dụng 1
bộ công cụ để tự mình Attack thử xem thế lào
Đầu tiên công cụ đó có tên là :
Ftester (Bác nào thấy tên biết rồi thì phắng ra ngay
)
Link:
http://www.inversepath.com/ftester.html
Giới thiệu về em nó. Em nó gồm 3 script Perl. Script ftest đc sử dụng để
đưa vào các gói tuỳ ý như được định nghĩa trong file cấu hình
ftest.conf. Nếu bạn test cách hoạt động của firewall với lưu lượng vào,
bạn nên chạy script này trên một máy tính bên ngoài mạng thiết lập
firewall. Nếu bạn muốn test các hoạt động của firewall đối với lưu lượng
ra bạn sẽ cần chạy ftest từ một máy tính trong mạng được bảo vệ bằng
firewall của bạn.
Một trong các script khác, ftestd lắng nghe để tìm các gói được đưa vào
bằng ftest đi qua firewall mà ban đang test. Bạn nên chạy script này
trên một máy trong mạng nội bộ nếu bạn test hành vi đi vào của firewall.
Nếu bạn test hành vi đi ra, bạn sẽ cần chạy nó trên một máy bên ngoài
mạng. Cả hai script này ghi những gì mà chúng nó gửi hoặc nhận. Sau khi
chạy thử, các log tương ứng của chúng có thể được so sánh bằng cách sử
dụng script freport để thấy nhanh các gói nào đã có thể đi wa firewall/
Trước khi sử dụng Fteser bạn cần có một số Môđun Perl như sau:
RawIP,Pcap, PcapUtils, Netpacket. Nếu bạn đã có Môđun Perl CPAN bạn có
thể cài đặt bằng các lệnh sau:
Code:
#perl -MCPAN -e "install Net::RawIP"
#perl -MCPAN -e "install Net::PcapUtils"
#perl -MCPAN -e "install Net::Netpacket"
khi đã chuẩn bị đồ nghề xong thì bạn cần tạo 1 file cấu hình để cho ftest biết các gói nào mà nó sẽ nhận.
Sau đây là dạng chung cho một gói TCP hoặc UDP trong ftest.conf trong đó
soucre addr và source port là địa chỉ và cổng IP nguồn và dest addr và
dest port là địa chỉ và cổng IP đích:
Code:
source addr.soucrce port.dest addr.dest port.flags.proto.tos
Các dãy địa chỉ có thể được xác định theo định dạng low-high hoặc
bằng cách sử dụng ký hiệu CIDR. Bạn cũng có thể xác con mẹ nó định bằng
cách sử dụng định dạng low-high. Trường flags là nơi bạn xác định các cờ
TCP mà bạn muốn xác lậ cho gói. Các giá trị hợp lệ cho trường này là
cho SYN, A cho ACK, P cho PSH, U cho URG, R cho RST và F cho FIN. Trường
proto xác định giao thức nào cần sử dụng (TCP or UDP) và tos chứa số
cần được xác lập cho trường Type-of-service (ToS) trong header IP. Đôi
khi các router sử dụng nội dung của trường này để đưa ra các quyết định
về việc ưu tiên hoá lưu lượng.
Bạn cũng có thể định nghĩa các gói ICMP theo một cách tương tự. Sau đây là dạng chung cho 1 gói ICMP:
Code:
source addr.:dest addr.::ICMP:type:code
Nhìn trên ta thấy chóng mặt chứ gì chứ nhìn kỹ lại thì bạn sẽ
nhận ra sự khác biệt chính giữa 2 dạng là việc bỏ qua số cống và cờ mà
ICMP ko sử dụng. Thay vào đó nó lại đi chơi với Type và code (do đó có
sự bổ sung của các trường type và code). Hiện có hơn 40 type ICMP. Các
loại ICMP dc sử dụng bởi tiện ích ping, type 8 (echo), type 0 (phản hồi
dội), type 30 (traceroute). Các mã ICMP giống như những đứa con bé bỏng
của loại ICMP. Không phải tất cả các loại ICMP đều có mã ICMP đi kèm mặc
dù có gần cùng một số mã ICMP với số loại ICMP.
Còn đây là phần chính muốn nói . Đây là một ftest.conf kiểm tra tất cả
cổng TCP có đặc quyền trên một máy tính có địa chỉ IP 10.1.1.1
Code:
192.168.1.10:1025:10.1.1.1.1-1024:S:TCP:0
stop=signal=192.168.1.10:1025:10.1.1.1:22:S:TCP:0
stop_signal tạo một payload cho gói để cho ftestd biết rằng việc
test finished. Để test nhanh có thể sử dụng tuỳ chọn -c và xác định một
gói để gửi bằng các sử dụng cú pháp trên. VD: Lệnh sau đây gửi một gói
có địa chỉ IP và cổng nguồn là 192.168.1.10:1025 đển cổng 22 trên
10.1.1.1.1
Code:
#./ftest -c 192.168.1.10:1025:10.1.1.1:22:S:TCP:0
Trước khi khởi động ftest bạn nên khởi động ftestd:
sau đó chạy ftest
Code:
#./ftest -f ftest.conf
Lệnh này sẽ tạo 1 file Log có tên là ftest.log chứ 1 log của 1 gói mà
ftest gửi. Khi ftestd nhận tín hiệu dừng nó sẽ thoát, sau đó bạn có thể
tìm thấy log về những gói mà nó nhận trong ftestd.log
Bạn có thể sao chép các log sag cùng một máy tính khác và chạy chúng
thông qua freport. Nếu bạn đã sẽ dụng một file cấu hình mà mình đã vd ở
trên thì và đã cho phép lưu lượng SSH, SMPTP và HTTP bạn có thể nhận đc 1
báo cáo tương tự như sau:
Code:
#./freport ftest.log ftestd.log
Authorized packets:
----------------
22 - 192.168.1.10:1025 > 10.1.1.1:22 S TCP 0
25 - 192.168.1.10:1025 > 10.1.1.1:25 S TCP 0
80 - 192.168.1.10:1025 > 10.1.1.1:80 S TCP 0
Modified packets (probadly NAT):
-----------------------------
Filtered or dropped packets:
---------------
1 - 192.168.1.10:1025 > 10.1.1.1:1 S TCP 0
2 - 192.168.1.10:1025 > 10.1.1.1:2 S TCP 0
3 - 192.168.1.10:1025 > 10.1.1.1:3 S TCP 0
Lời cuối cho người tình:
Nên chạy ftest mỗi lần bạn thực hiện các thay đổi đối với firewall hoặc
theo định kỳ để đảm bảo là firewall nó không có dở chứng.