Trang

Tự test firewall của mình

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:

Code:
#./ftestd -i eth0
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.

Chú Ý:

Coppy phải ghi rõ nguồn Dương-UG Blog's
 

0 nhận xét:

Đăng nhận xét

:) :( :)) :(( =))

Copyright © Dương-UG Blog's - Nguyễn Bình Dương