Tải bản đầy đủ (.pdf) (33 trang)

Bài tập lớn môn an toàn mạng (80)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.62 MB, 33 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THƠNG TIN

Học phần: An tồn mạng
Bài báo cáo:
Tìm hiểu cơng cụ WAFW00F
Giảng viên hướng dẫn:

TS. Đặng Minh Tuấn

Sinh viên thực hiện:

Đặng Đức Ngun

Mã sinh viên:

B18DCAT173

Nhóm mơn học:

02

Hà Nội – 2021


Mục lục
Mở đầu ............................................................................................................................. 1
Chương 1. Khái quát về Web Application FireWall........................................................ 2
1. Web Application Firewall là gì? .............................................................................. 2
2. Cách thức hoạt động ................................................................................................. 3
3. Phân biệt WAF và tường lửa.................................................................................... 4


4. Tầm quan trọng của tường lửa ứng dụng web ......................................................... 4
5. Các loại tường lửa ứng dụng Web ........................................................................... 5
6. Cách xác định WAF trong ứng dụng Web ............................................................... 6
Chương 2. Tìm hiểu cơng cụ WAFW00F ........................................................................ 8
1. Giới thiệu.................................................................................................................. 8
2. Lịch sử phát triển.................................................................................................... 14
3. Khả năng tương thích ............................................................................................. 17
4. Cài đặt cơng cụ WAFW00F ................................................................................... 17
5. Cách sử dụng .......................................................................................................... 18
Chương 3. Bài LAB ....................................................................................................... 20
Bài 1: Sử dụng công cụ WAFW00F kiểm tra website sử dụng WAF nào? .............. 20
Bài 2: Sử dụng proxy định tuyến các yêu cầu để xác định WAF .............................. 23
Chương 4. Đánh giá và so sánh...................................................................................... 26
1. Đánh giá ................................................................................................................. 26
2. So sánh ................................................................................................................... 26
Kết luận .......................................................................................................................... 28
Tài liệu tham khảo .......................................................................................................... 29


Danh sách các thuật ngữ tiếng Anh và viết tắt
Từ
viết tắt
DNS
HTTP
IP

Thuật ngữ tiếng Anh/Giải thích

Thuật ngữ tiếng Việt/Giải thích


Domain Name System
Hypertext Transfer Protocol
Internet Protocol

Hệ thống phân giải tên miền
Giao thức truyền tải siêu văn bản
Giao thức Internet
Hệ thống ngăn ngừa sự xâm nhập
mạng
Hệ thống phát hiện xâm nhập

IPS

Intrusion Prevention Systems

IDS

Intrusion Detection Systems
Payment Card Industry Data
Security Standard
Uniform Resource Locator
Web Application Firewall

PCI DSS
URl
WAF

An ninh thông tin tiêu chuẩn
Địa chỉ web
Tường lửa ứng dụng Web


Danh mục hình ảnh
Hình 1. 1 Mơ hình của một hệ thống Tường lửa ứng dụng Web ..................................... 2
Hình 1. 2 Mơ hình hoạt động WAF ................................................................................. 3
Hình 1. 3 Xác định WAF qua giá trị cookie .................................................................... 6
Hình 1. 4 Xác định WAF qua giá trị regex cookie .......................................................... 6
Hình 1. 5 Xác định WAF thơng qua HTTP Respone Code ............................................. 7
Hình 1. 6 HTTP Response Code của WebKnight Firewall ............................................. 7
Hình 2. 1 Cài đặt WAFW00F trên Kali Linux ............................................................... 18
Hình 2. 2 Cách sử dụng WAFW00F .............................................................................. 18
Hình 3. 1 Kiểm tra WAF 1 URL .................................................................................... 20
Hình 3. 2 Kiểm tra 1 WAF cụ thể .................................................................................. 21
Hình 3. 3 Kiểm tra chi tiết và các WAF phù hợp .......................................................... 21
Hình 3. 4 Kiểm tra WAF nhiều URL ............................................................................. 22
Hình 3. 5 Cài đặt TOR ................................................................................................... 23
Hình 3. 6 Cài đặt proxychains ........................................................................................ 23
Hình 3. 7 Config proxychains ........................................................................................ 24
Hình 3. 8 Thêm socks5 vào file config .......................................................................... 24
Hình 3. 9 Dùng proxy xác định WAF ............................................................................ 25


Hình 4. 1 Cơng cụ WhatWaf .......................................................................................... 26
Hình 4. 2 Công cụ identYwaf ........................................................................................ 27

Danh mục bảng biểu
Bảng 1 Danh sách WAF được hỗ trợ ............................................................................... 8
Bảng 2 Danh sách lựa chọn ............................................................................................ 19


Mở đầu

Tường lửa ứng dụng web là biện pháp kiểm soát bảo mật phổ biến được các doanh
nghiệp sử dụng để bảo vệ hệ thống web chống lại việc khai thác zero-day, nhiễm phần
mềm độc hại, mạo danh cũng như các mối đe dọa và lỗ hổng bảo mật đã biết và chưa
biết khác. Thông qua kiểm tra tùy chỉnh, WAF có thể phát hiện và ngăn chặn ngay lập
tức một số lỗi bảo mật ứng dụng web nguy hiểm nhất mà tường lửa mạng truyền thống
và các hệ thống phát hiện xâm nhập khác (IDSes) và hệ thống ngăn chặn xâm nhập
(IPSes) có thể khơng thực hiện được.
WAF đặc biệt hữu ích cho các cơng ty cung cấp sản phẩm hoặc dịch vụ qua
Internet như mua sắm thương mại điện tử, ngân hàng trực tuyến và các tương tác khác
giữa khách hàng hoặc đối tác kinh doanh.
Để tấn công 1 ứng dụng web, việc thăm dò xem ứng dụng web đó sử dụng loại
WAF nào là rất quan trọng. Từ đó hacker hay tester có thể vạch ra những hướng xâm
nhập vào hệ thống 1 cách rõ ràng. Và 1 trong những công cụ rất hiệu quả và hữu ích đó
là WAFW00F sẽ được giới thiệu trong bài báo cáo này.

1


Chương 1. Khái quát về Web Application FireWall
1. Web Application Firewall là gì?
WAF (Web Application Firewall) cịn gọi là tường lửa ứng dụng web. WAF là một
thiết bị proxy có thể xử lý giao thức HTTP nhằm bảo vệ ứng dụng web. WAF kiểm tra
lượng truy cập và sẽ lọc ra các yêu cầu có mối đe dọa xâm hại đến website trước khi
đến ứng dụng web.

Hình 1. 1 Mơ hình của một hệ thống Tường lửa ứng dụng Web
Một WAF có khả năng thực thi các chính sách bảo mật dựa trên các dấu hiệu tấn
công, các giao thức tiêu chuẩn và các lưu lượng truy cập ứng dụng web bất thường,
chống lại việc khai thác zero-day, nhiễm phần mềm độc hại, mạo danh cũng như các
mối đe dọa và lỗ hổng bảo mật đã biết và chưa biết khác. Thơng qua kiểm tra tùy

chỉnh, WAF có thể phát hiện và ngăn chặn ngay lập tức một số lỗi bảo mật ứng dụng
web nguy hiểm nhất mà tường lửa mạng truyền thống và các hệ thống phát hiện xâm
nhập khác (IDSes) và hệ thống ngăn chặn xâm nhập (IPSes) có thể khơng thực hiện
được.
2


2. Cách thức hoạt động
WAF phân tích các yêu cầu Hypertext Transfer Protocol (HTTP) và áp dụng một
bộ quy tắc xác định phần nào của cuộc hội thoại đó là lành tính và phần nào là độc hại.
Các phần chính của hội thoại HTTP mà WAF phân tích là các yêu cầu GET và POST.
Yêu cầu GET được sử dụng để truy xuất dữ liệu từ máy chủ và yêu cầu POST được sử
dụng để gửi dữ liệu đến máy chủ để thay đổi trạng thái của nó.

Hình 1. 2 Mơ hình hoạt động WAF
WAF có thể thực hiện hai cách tiếp cận để phân tích và lọc nội dung có trong các
yêu cầu HTTP này hoặc kết hợp cả hai:


Whitelisting (danh sách trắng): Cách tiếp cận danh sách trắng có nghĩa là
WAF sẽ từ chối tất cả các yêu cầu theo mặc định và chỉ cho phép các yêu cầu
được biết là đáng tin cậy. Nó cung cấp một danh sách các địa chỉ IP được biết là
an toàn. Danh sách trắng ít tốn tài nguyên hơn so với danh sách đen. Nhược
điểm của cách tiếp cận danh sách trắng là nó có thể vơ tình chặn lưu lượng truy
cập lành tính. Mặc dù nó tạo ra một mạng lưới rộng và có thể hiệu quả, nhưng
nó cũng có thể khơng chính xác.
3





Blacklisting (danh sách đen): Phương pháp tiếp cận danh sách đen mặc định
cho phép các gói tin đi qua và sử dụng chữ ký đặt trước để chặn lưu lượng web
độc hại và bảo vệ các lỗ hổng của các trang web hoặc ứng dụng web. Nó là một
danh sách các quy tắc chỉ ra các gói độc hại. Danh sách đen thích hợp hơn cho
các trang web và ứng dụng web cơng cộng vì chúng nhận được nhiều lưu lượng
truy cập từ các địa chỉ IP không quen thuộc mà khơng được biết là độc hại hoặc
lành tính. Nhược điểm của cách tiếp cận danh sách đen là tốn nhiều tài ngun
hơn; nó u cầu nhiều thơng tin hơn để lọc các gói dựa trên các đặc điểm cụ thể,
trái ngược với việc mặc định là địa chỉ IP đáng tin cậy.



Hybrid security (Kết hợp): Mơ hình bảo mật kết hợp sử dụng các yếu tố của
cả danh sách đen và danh sách trắng.

Bất kể mơ hình bảo mật mà WAF sử dụng là gì, nó cuối cùng vẫn hoạt động để
phân tích các tương tác HTTP và giảm hoặc lý tưởng nhất là loại bỏ lưu lượng độc hại
trước khi đến máy chủ để xử lý.

3. Phân biệt WAF và tường lửa
Tường lửa là một thuật ngữ rộng cho firmware bảo vệ mạng máy tính bằng cách
lọc các gói dữ liệu đến. Trong định nghĩa rộng đó, có một số danh mục được phân biệt
theo loại bảo vệ mà chúng cung cấp và cách thức chúng cung cấp. Một số chỉ định đó
bao gồm lọc gói, kiểm tra trạng thái, proxy và NGFW.
WAF là một loại tường lửa khác, được phân biệt bằng cách nó lọc các gói dữ liệu
cụ thể. WAF là duy nhất vì nó chỉ tập trung vào những kẻ tấn công dựa trên web ở lớp
ứng dụng, trong khi các loại khác – chẳng hạn như lọc gói và kiểm tra trạng thái – có
thể khơng thể chống lại các cuộc tấn cơng này. WAF giống như một tường lửa proxy
nhưng tập trung cụ thể vào logic ứng dụng Lớp 7.


4. Tầm quan trọng của tường lửa ứng dụng web
WAF quan trọng đối với số lượng ngày càng tăng các doanh nghiệp cung cấp sản
phẩm qua internet – bao gồm các ngân hàng trực tuyến, nhà cung cấp nền tảng truyền
thông xã hội và nhà phát triển ứng dụng di động – vì nó giúp ngăn chặn rò rỉ dữ liệu.
Nhiều dữ liệu nhạy cảm, chẳng hạn như dữ liệu thẻ tín dụng và hồ sơ khách hàng, được
lưu trữ trong cơ sở dữ liệu back-end có thể truy cập được thơng qua các ứng dụng web.
Những kẻ tấn công thường nhắm mục tiêu vào các ứng dụng này để giành quyền truy
cập vào dữ liệu liên quan.
Ví dụ: các ngân hàng có thể sử dụng WAF để giúp họ đáp ứng Tiêu chuẩn bảo mật
dữ liệu ngành thẻ thanh toán (PCI DSS), là một bộ chính sách để đảm bảo rằng dữ liệu
của chủ thẻ (CHD) được bảo vệ. Cài đặt tường lửa là một trong 12 yêu cầu tuân thủ
PCI DSS. Việc tuân thủ này áp dụng cho bất kỳ doanh nghiệp nào xử lý CHD. Vì
4


nhiều công ty mới hơn sử dụng các ứng dụng di động và Internet vạn vật (IoT) ngày
càng phát triển, ngày càng có nhiều giao dịch diễn ra ở lớp ứng dụng bằng cách sử
dụng web. Vì lý do này, WAF là một phần quan trọng trong mơ hình bảo mật của một
doanh nghiệp hiện đại.
WAF rất quan trọng, và nó hiệu quả nhất khi kết hợp với các thành phần bảo mật
khác, bao gồm IPS, IDS và tường lửa cổ điển hoặc thế hệ tiếp theo (NGFW). Một mơ
hình bảo mật doanh nghiệp toàn diện lý tưởng sẽ đặt WAF bên cạnh các loại tường lửa
khác, chẳng hạn như NGFW và các thành phần bảo mật, chẳng hạn như IPS và IDS,
thường được bao gồm trong NGFW.

5. Các loại tường lửa ứng dụng Web
-

-


-

Network-based WAFs (WAF dựa trên mạng): Thường dựa trên phần cứng và
có thể giảm độ trễ vì chúng được cài đặt cục bộ tại cơ sở thông qua một thiết bị
chuyên dụng, càng gần ứng dụng càng tốt. Hầu hết các nhà cung cấp WAF dựa
trên mạng lớn đều cho phép sao chép các quy tắc và cài đặt trên nhiều thiết bị,
do đó có thể triển khai, cấu hình và quản lý quy mơ lớn. Hạn chế lớn nhất đối
với loại sản phẩm WAF này là chi phí – có chi phí vốn trả trước, cũng như chi
phí vận hành liên tục để bảo trì.
Host-based WAFs (WAF dựa trên máy chủ): Có thể được tích hợp hồn tồn
vào mã ứng dụng. Các lợi ích của việc triển khai WAF dựa trên máy chủ bao
gồm chi phí thấp hơn và các tùy chọn tùy chỉnh tăng lên. WAF dựa trên máy
chủ có thể là một thách thức để quản lý vì chúng yêu cầu thư viện ứng dụng và
phụ thuộc vào tài nguyên máy chủ cục bộ để chạy hiệu quả. Do đó, có thể cần
thêm nguồn nhân viên, bao gồm cả nguồn lực của lập trình viên, nhà phân tích
hệ thống và DevOps/DevSecOps, có thể được yêu cầu.
Cloud-hosted WAFs (WAF được lưu trữ trên đám mây): Cung cấp giải
pháp chi phí thấp cho các tổ chức muốn có sản phẩm chìa khóa trao tay u cầu
tài nguyên tối thiểu để triển khai và quản lý. Cloud WAF dễ triển khai, có sẵn
trên cơ sở đăng ký và thường chỉ yêu cầu hệ thống tên miền (DNS) đơn giản
hoặc thay đổi proxy để chuyển hướng lưu lượng ứng dụng. Mặc dù có thể khó
khăn khi đặt trách nhiệm lọc lưu lượng ứng dụng web của tổ chức với nhà cung
cấp bên thứ ba, nhưng chiến lược này cho phép các ứng dụng được bảo vệ trên
nhiều vị trí lưu trữ và sử dụng các chính sách tương tự để bảo vệ khỏi các cuộc
tấn công lớp ứng dụng. Ngồi ra, các bên thứ ba này có thơng tin tình báo về
mối đe dọa mới nhất và có thể giúp xác định và chặn các mối đe dọa bảo mật
ứng dụng mới nhất.

5



6. Cách xác định WAF trong ứng dụng Web
Trong quá trình thử nghiệm xâm nhập, việc thu thập càng nhiều thơng tin về hệ
thống mục tiêu sẽ giúp ta có nhiều phương án hơn trong việc thực thi tấn công. Và việc
xác định WAF cũng không phải là một ngoại lệ. Có được thơng tin về WAF được rên
khai trên ứng dụng wev sẽ giúp tiết kiệm thời gian trong q trình thử nghiệm thâm
nhập. Với thơng tin có được về hệ thống WAF, ta có thể tìm hiểu được cách thức và
ngun tắc hoạt động của nó thay vì phải thử nghiệm nhiều lần.
Sau đây là một vài cách để xác định loại WAF trên ứng dụng web:


Giá trị cookie: Một vài WAF sẽ thêm vào cookie một giá trị nhất định.
Citrix Netscalar: Có giá trị của cookie trong HTTP Response sẽ là ns_af,
citrix_ns_id

Hình 1. 3 Xác định WAF qua giá trị cookie
F5 Big IP ASM: Có giá trị của cookie trong HTTP Response bắt đầu là ký tự TS
theo sau đó là chuỗi các ký tự ngẫu nhiên tuân thủ theo regular expression ^TS[azA-Z0-9]{3,6}

Hình 1. 4 Xác định WAF qua giá trị regex cookie
6




HTTP Response Codes: Một vài loại WAF, ta có thể xác định thông qua
HTTP Response Codes như 403, 406, 419, 500, 501 ...
ModSecurity: Khi ta gửi một request khác thường tới web server, ta sẽ nhận
được HTTP Response Code 406 Not acceptable


Hình 1. 5 Xác định WAF thơng qua HTTP Respone Code
WebKnight Firewall: Khi ta gửi một request khác thường tới web server, ta sẽ
nhận được HTTP Response 999 No Hacking

Hình 1. 6 HTTP Response Code của WebKnight Firewall
Để tự động xác định WAF được triển khai trên ứng dụng web, ta có thể sử dụng 1
số cơng cụ như: WAFW00F, identYwaf, identYwaf,.... Các cơng cụ này có khả năng
xác định nhiều loại WAF khác nhau. Ngoài xác định giá trị cookie và http response,
các cơng cụ này cịn sử dụng một vài kỹ thuật khác để xác định WAF như Drop (Sử
dụng gói tin như FIN hoặc RST và tìm kếm câu trả lời nhận được), Sever cloaking
(thay đổi URL và các phương pháp khác nhau như HTTP respond re-writing),
Pre-Built Rules.
7


Chương 2. Tìm hiểu cơng cụ WAFW00F
1. Giới thiệu
WAFW00F là một cơng cụ do Sandro Gauci phát triển, nó cho phép người sử
dụng nhận diện và fingerprint tường lửa ứng dụng Web nào đang bảo vệ website được
quét.
Để làm được điều đó, WAFW00F thực hiện như sau:


Gửi một u cầu HTTP bình thường và phân tích phản hồi. Sau đó xác định xem
website đang được bảo vệ bởi WAF nào.



Nếu điều đó khơng thành cơng, nó sẽ gửi một số yêu cầu HTTP (có thể độc hại)

và sử dụng logic đơn giản để suy ra nó là WAF nào.



Nếu điều đó cũng khơng thành cơng, nó sẽ phân tích các phản hồi được trả về
trước đó và sử dụng một thuật toán đơn giản khác để đoán xem liệu WAF hoặc
giải pháp bảo mật có đang tích cực ứng phó với các cuộc tấn cơng của chúng tơi
hay khơng.

WAFW00F có thế phát hiện được 152 loại tường lửa sau:
Bảng 1 Danh sách WAF được hỗ trợ
Tên WAF

Nhà cung cấp

ACE XML Gateway

Cisco

aeSecure

aeSecure

AireeCDN

Airee

Airlock

Phion/Ergon


Alert Logic

Alert Logic

AliYunDun

Alibaba Cloud Computing

Anquanbao

Anquanbao

AnYu

AnYu Technologies

Approach

Approach

AppWall

Radware

Armor Defense

Armor
8



ArvanCloud

ArvanCloud

ASP.NET Generic

Microsoft

ASPA Firewall

ASPA Engineering Co.

Astra

Czar Securities

AWS Elastic Load Balancer

Amazon

AzionCDN

AzionCDN

Azure Front Door

Microsoft

Barikode


Ethic Ninja

Barracuda

Barracuda Networks

Bekchy

Faydata Technologies Inc.

Beluga CDN

Beluga

BIG-IP Local Traffic Manager

F5 Networks

BinarySec

BinarySec

BitNinja

BitNinja

BlockDoS

BlockDoS


Bluedon

Bluedon IST

BulletProof Security Pro

AITpro Security

CacheWall

Varnish

CacheFly CDN

CacheFly

Comodo cWatch

Comodo CyberSecurity

CdnNS Application Gateway

CdnNs/WdidcNet

ChinaCache Load Balancer

ChinaCache

Chuang Yu Shield


Yunaq

Cloudbric

Penta Security

Cloudflare

Cloudflare Inc.

Cloudfloor

Cloudfloor DNS
9


Cloudfront

Amazon

CrawlProtect

Jean-Denis Brun

DataPower

IBM

DenyALL


Rohde & Schwarz CyberSecurity

Distil

Distil Networks

DOSarrest

DOSarrest Internet Security

DotDefender

Applicure Technologies

DynamicWeb Injection Check

DynamicWeb

Edgecast

Verizon Digital Media

Eisoo Cloud Firewall

Eisoo

Expression Engine

EllisLab


BIG-IP AppSec Manager

F5 Networks

BIG-IP AP Manager

F5 Networks

Fastly

Fastly CDN

FirePass

F5 Networks

FortiWeb

Fortinet

GoDaddy Website Protection

GoDaddy

Greywizard

Grey Wizard

Huawei Cloud Firewall


Huawei

HyperGuard

Art of Defense

Imunify360

CloudLinux

Incapsula

Imperva Inc.

IndusGuard

Indusface

Instart DX

Instart Logic

ISA Server

Microsoft

Janusec Application Gateway

Janusec

10


Jiasule

Jiasule

Kona SiteDefender

Akamai

KS-WAF

KnownSec

KeyCDN

KeyCDN

LimeLight CDN

LimeLight

LiteSpeed

LiteSpeed Technologies

Open-Resty Lua Nginx

FLOSS


Oracle Cloud

Oracle

Malcare

Inactiv

MaxCDN

MaxCDN

Mission Control Shield

Mission Control

ModSecurity

SpiderLabs

NAXSI

NBS Systems

Nemesida

PentestIt

NevisProxy


AdNovum

NetContinuum

Barracuda Networks

NetScaler AppFirewall

Citrix Systems

Newdefend

NewDefend

NexusGuard Firewall

NexusGuard

NinjaFirewall

NinTechNet

NullDDoS Protection

NullDDoS

NSFocus

NSFocus Global Inc.


OnMessage Shield

BlackBaud

Palo Alto Next Gen Firewall

Palo Alto Networks

PerimeterX

PerimeterX

PentaWAF

Global Network Services
11


pkSecurity IDS

pkSec

PT Application Firewall

Positive Technologies

PowerCDN

PowerCDN


Profense

ArmorLogic

Puhui

Puhui

Qcloud

Tencent Cloud

Qiniu

Qiniu CDN

Reblaze

Reblaze

RSFirewall

RSJoomla!

RequestValidationMode

Microsoft

Sabre Firewall


Sabre

Safe3 Web Firewall

Safe3

Safedog

SafeDog

Safeline

Chaitin Tech.

SecKing

SecKing

eEye SecureIIS

BeyondTrust

SecuPress WP Security

SecuPress

SecureSphere

Imperva Inc.


Secure Entry

United Security Providers

SEnginx

Neusoft

ServerDefender VP

Port80 Software

Shield Security

One Dollar Plugin

Shadow Daemon

Zecure

SiteGround

SiteGround

SiteGuard

Sakura Inc.

Sitelock


TrueShield
12


SonicWall

Dell

UTM Web Protection

Sophos

Squarespace

Squarespace

SquidProxy IDS

SquidProxy

StackPath

StackPath

Sucuri CloudProxy

Sucuri Inc.

Tencent Cloud Firewall


Tencent Technologies

Teros

Citrix Systems

Trafficshield

F5 Networks

TransIP Web Firewall

TransIP

URLMaster SecurityCheck

iFinity/DotNetNuke

URLScan

Microsoft

UEWaf

UCloud

Varnish

OWASP


Viettel

Cloudrity

VirusDie

VirusDie LLC

Wallarm

Wallarm Inc.

WatchGuard

WatchGuard Technologies

WebARX

WebARX Security Solutions

WebKnight

AQTRONIX

WebLand

WebLand

RayWAF


WebRay Solutions

WebSEAL

IBM

WebTotem

WebTotem

West263 CDN

West263CDN

Wordfence

Defiant
13


WP Cerber Security

Cerber Tech

WTS-WAF

WTS

360WangZhanBao


360 Technologies

XLabs Security WAF

XLabs

Xuanwudun

Xuanwudun

Yundun

Yundun

Yunsuo

Yunsuo

Yunjiasu

Baidu Cloud Computing

YXLink

YxLink Technologies

Zenedge

Zenedge


ZScaler

Accenture

2. Lịch sử phát triển
WAFW00F được phát hành chính thức v0.9.1 vào ngày 15 tháng 5 năm 2014 cung
cấp các tính năng:





Hỗ trợ python3
Phát hiện Cloud Flare (được hỗ trợ từ fingerprint nmap waf nse)
Phát hiện Secure Entry Server (được hỗ trợ từ fingerprint nmap waf nse)
Phát hiện Cisco’s ACE XML Gateway (được hỗ trợ từ fingerprint nmap waf
nse)
• Phát hiện IBM DataPower (nhờ Mathieu Dessus)
v0.9.4 phát hành vào ngày 16 tháng 3 năm 2016 bổ sung:


wafw00f hiện có thể được cài đặt bằng cách sử dụng setuptools và pip như
một cơng cụ hệ thống
• Có thể bao gồm hoặc ghi đè các tiêu đề bằng cách chuyển tùy chọn –
headersfile hoặc -H
• Vá và hỗ trợ proxy http nhờ Louis-Philippe Huberdeau
• Hiện đang phát hiện 36 WAF sau (!!) nhờ nhiều đóng góp của akun, Matt
Foster, Brendan Coles và Denis Kolegov:
o Profense

o NetContinuum
14


o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o

o
o
o
o
o
o
o
o

Anquanbao
ChinaCache-CDN
Incapsula WAF
PowerCDN
CloudFlare
NSFocus
Safedog
West263CDN
360WangZhanBao
Mission Control Application Shield
USP Secure Entry Server
Cisco ACE XML Gateway
Barracuda Application Firewall
Art of Defence HyperGuard
BinarySec
Teros WAF
F5 BIG-IP LTM
F5 BIG-IP APM
F5 BIG-IP ASM
F5 FirePass
F5 Trafficshield

InfoGuard Airlock
Citrix NetScaler
Trustwave ModSecurity
IBM Web Application Security
IBM DataPower
DenyALL WAF
Applicure dotDefender
Juniper WebApp Secure
Microsoft URLScan
Aqtronix WebKnight
eEye Digital Security SecureIIS
Imperva SecureSphere
Microsoft ISA Server
• Dọn dẹp bản mã, tái cấu trúc, tối ưu hóa, v.v. được bao gồm trong bản phát
hành này
v0.9.5 phát hành vào ngày 14 tháng 6 năm 2018 tăng số WAF có thể nhận diện lên
47 và fix 1 số lỗi cài đặt.
v0.9.6 phát hành vào ngày 20 tháng 2 năm 2019 tăng số WAF lên 50:
15




Nhận diện thêm AWS LB/WAF



Nhận diện thêm DOSarrest




Thêm XLabs Security WAF



Sửa 1 số văn bản



pylinting

v1.0.0 phát hành vào ngày 01 tháng 5 năm 2019 bổ sung:


Số lượng WAF được phát hiện tăng lên 112 nhờ @ 0xInfect



Nhiều plugin WAF hiện có nhiều phương pháp phát hiện



Đã khắc phục một số sự cố được báo cáo và lỗi được xác định trong q
trình thử nghiệm và phân tích



Cải tiến chung các phương pháp tấn cơng




Đã xóa một số check cũ khơng chính xác



Ký tự ASCII mới với màu ANSI tuyệt vời

v2.0.0 phát hành vào ngày 13 tháng 12 năm 2019 bổ sung:


Tồn bộ cơ sở hạ tầng mã của WAFW00F được tái cấu trúc và viết lại
engine.



WAFW00F hiện có thể phát hiện hơn 150 WAF (cơ sở dữ liệu phát hiện lớn
nhất cho đến nay).



Mỗi plugin WAF hiện có nhiều phương pháp để fingerprint và phát hiện.



Cải tiến các mơ-đun phát hiện WAF chung.



Những thay đổi và cải tiến lớn trong fingerprint hiện có.


v2.1.0 phát hành vào ngày 29 tháng 1 năm 2020 bổ sung:


Nhập từ các tệp JSON, CSV và TXT để chỉ định URL nào sẽ quét bằng cách
sử dụng cờ -i



Xuất ra tệp JSON, CSV, TXT bằng cách sử dụng cờ -o



Đầu ra rõ ràng tiêu chuẩn khi chuyển -o -dưới dạng cờ đến wafw00f



Bao gồm các phát hiện WAF mới

16


3. Khả năng tương thích
Phiên bản Python: WAFW00F hồn tồn tương thích với cả hai phiên bản Python
2.x cũng như 3.x. Tuy nhiên, hỗ trợ cho các phiên bản Python 2.x sẽ sớm bị loại bỏ
do phiên bản sắp kết thúc.
WAFW00F hiện hồn tồn tương thích / ổn định với các phiên bản Python 3.x (tốt
nhất là> = 3.4) hiện tại.
Hệ điều hành: WAFW00F đã được thử nghiệm trên các bản phân phối Linux
chính (Arch, Debian, Ubuntu), Windows và Mac hoạt động như mong đợi.
Màu sắc: Art ASCII mới đẹp có màu. Trên các hệ thống dựa trên Linux (và Hệ

thống con Linux dành cho Windows), ta sẽ tìm thấy các đầu ra có màu. Tuy nhiên,
Mac & Windows khơng hỗ trợ trình tự thốt ANSI nên đầu ra sẽ khơng có màu trên
Mac & Windows. Tuy nhiên, ta vẫn có thể sử dụng WAFW00F một cách hồn hảo trên
chúng.
Các thư viện: WAFW00F cần một số thư viện để chạy hiệu quả. Ngồi các thư
viện tích hợp sẵn, một số yêu cầu cài đặt thông qua pip.
Sau đây là các phụ thuộc mà cơng cụ WAFW00F u cầu:


requests - Để thực hiện các truy vấn HTTP.



pluginbase - Một trình phân tích cú pháp plugin cho các dự án dựa trên python.

Phần còn lại của các thư viện Python được WAFW00F sử dụng là các thư viện tiêu
chuẩn được cài đặt sẵn với trình thơng dịch Python 3.x.

4. Cài đặt cơng cụ WAFW00F
Trên Kali Linux: Chương trình được cài đặt sẵn trên Kali Linux. Để cài đặt trong
các bản dựng tối thiểu, sử dụng lệnh:
sudo apt install wafw00f

17


Hình 2. 1 Cài đặt WAFW00F trên Kali Linux
Trên Debian, Linux Mint, Ubuntu:
1.
2.

3.
4.
5.

sudo apt update
sudo apt install git python3-pip
git clone />cd wafw00f
sudo python3 setup.py install

Trên BlackArch: Chương trình được cài đặt sẵn trên BlackArch. Để cài đặt trong
các bản dựng tối thiểu, sử dụng lệnh:
sudo pacman -S wafw00f

5. Cách sử dụng

Hình 2. 2 Cách sử dụng WAFW00F

18


Để sử dụng WAFW00F, ta sử dụng lệnh sau:
wafw00f [OPTIONS] URL1 [URL2 [URL3 ... ]]
Trong đó: - [OPTIONS] là các tùy chọn
- URL là các đường dẫn tới trang Web thực thi
Bảng 2 Danh sách lựa chọn
Tùy chọn
-h, --help
-v, --verbose
-a, --findall
-r, --noredirect

-t TEST, --test=TEST
-o OUTPUT, --output=OUTPUT

-f FORMAT, --format=FORMAT
-i INPUT, --input-file=INPUT

-l, --list
-p PROXY, --proxy=PROXY

-V, --version
-H HEADERS, -headers=HEADERS

Mô tả
Hiển thị thông báo trợ giúp này và thốt
Bật tính chi tiết, các tùy chọn nhiều -v làm
tăng độ chi tiết
Tìm tất cả các WAF phù hợp với các chữ ký,
không ngừng thử nghiệm ở chữ ký đầu tiên
Không tuân theo các chuyển hướng được đưa
ra bởi phản hồi 3xx
Kiểm tra một WAF cụ thể
Ghi đầu ra vào tệp csv, json hoặc tệp văn bản
tùy thuộc vào phần mở rộng tệp. Đối với
stdout, chỉ định - làm tên tệp.
Buộc định dạng đầu ra thành csv, json hoặc
văn bản.
Đọc mục tiêu từ một tệp. Định dạng đầu vào
có thể là csv, json hoặc văn bản. Đối với csv
và json, tên cột hoặc phần tử `url` là bắt buộc.
Liệt kê tất cả các WAF mà WAFW00F có thể

phát hiện
Sử dụng proxy HTTP để thực hiện các yêu
cầu, ví dụ:
http://hostname:8080,socks5://hostname:1080,
http://user:pass@hostname:8080
In phiên bản hiện tại của WafW00f và thoát.
Chuyển các tiêu đề tùy chỉnh qua tệp văn bản
để ghi đè bộ tiêu đề mặc định.

19


Chương 3. Bài LAB
Bài 1: Sử dụng công cụ WAFW00F kiểm tra website sử dụng WAF nào?
-

Kiểm tra 1 URL: Phát hiện WAF của website wise.com

Sử dụng câu lệnh: wafw00f wise.com

Hình 3. 1 Kiểm tra WAF 1 URL
Ta có thể thấy website này được bảo vệ bởi WAF Cloudflare của Cloudflare Inc.
Số lượng requests là 2.

-

Kiểm tra 1 WAF cụ thể:

Thử kiểm tra trang web có được bảo vệ bởi
Edgecast của Verizon Digital Media hay không

Sử dụng câu lệnh: -t 'Edgecast (Verizon Digital
Media)'

20


Hình 3. 2 Kiểm tra 1 WAF cụ thể
Ta có thể thấy trang web này không sử dụng WAF Edgecast của Verizon Digital Media
-

Kiểm tra chi tiết và các WAF phù hợp:

Sử dụng câu lệnh: wafw00f -v -a

Hình 3. 3 Kiểm tra chi tiết và các WAF phù hợp

21


×