b Giới thiệu: ➔ WhatWaf là một công cụ phát hiện bảo mật ứng dụng web nâng cao nhằm mục đích tìm thông tin về tường lửa của một website dành cho các pentesters.. ➔ Whatwaf sẽ cố gắng xác
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Họ và tên: Nguyễn Văn Đức Anh
Mã sinh viên: B18DCAT009
Trang 2MỤC LỤC
I GIỚI THIỆU, LỊCH SỬ HÌNH THÀNH: 4
A ) WAF LÀ GÌ ? 4
B ) G IỚI THIỆU : 8
C ) L ỊCH SỬ HÌNH THÀNH : 9
II CÀI ĐẶT, HƯỚNG DẪN SỬ DỤNG: 11
1 C ÀI ĐẶT : 11
2 S Ử DỤNG : 13
a) Các nét đặc trưng của WhatWaf: 13
b) Danh sách các WAF, hệ thống bảo mật ứng dụng web hỗ trợ nhận dạng: (89) 14 3 C ÁC ĐỐI SỐ KHI SỬ DỤNG : 17
III CÁC BÀI LAB DEMO: 21
1 BÀI 1:XÁC ĐỊNH TƯỜNG LỬA CỦA ỨNG DỤNG WEB VÀ TÌM CÁCH BYPASSES CHO WEBSITE HTTPS://APPLE.COM 21
2 BÀI 2:XÁC ĐỊNH TƯỜNG LOẠI TƯỞNG LỬA CỦA MỘT SỐ WEBSITE: 23
IV SO SÁNH, ĐÁNH GIÁ: 26
A ) S O SÁNH : 26
1 Wafw00f: 26
2 Wafpass: 27
3 XSStrike: 28
B ) Đ ÁNH GIÁ : 29
V TÀI LIỆU THAM KHẢO: 30
Trang 3Chú thích hình ảnh
Ảnh 1: Quét bằng WAFW00F tool 5
Ảnh 2: Quét bằng identYwaf tool 6
Ảnh 3: Quét bằng identYwaf tool 2 7
Ảnh 4: Giao diện tương tác của WhatWaf 8
Ảnh 5: Tác giả và thành tựu trên github của whatwaf 9
Ảnh 6: Cài đặt whatwaf trên kali linux 1 11
Ảnh 7: Cài đặt whatwaf trên kali linux 2 12
Ảnh 8: Cài đặt whatwaf trên kali linux 3 12
Ảnh 9: Bài demo 1 - website sẽ khai thác 21
Ảnh 10: Bài demo 1 - quét loại tường lửa được dùng 21
Ảnh 11: Bài demo 1 - whatwaf cho kết quả tường lửa sử dụng 22
Ảnh 12: Bài demo 1 - whatwaf đưa ra các phương án vượt qua tường lửa 23
Ảnh 13: Bài demo 2 - website ebay 23
Ảnh 14: Bài demo 2 - ebay sử dụng akamai firewall 24
Ảnh 15: Bài demo 2 - website wire 24
Ảnh 16: Bài demo 2 - website wire sử dụng 2 loại tường lửa 25
Ảnh 17: Wafw00f example 26
Ảnh 18: Wafpass example 27
Ảnh 19: XSStrike example 28
Trang 4I Giới thiệu, lịch sử hình thành:
a) WAF là gì?
• WAF – Web Application Firewall, tường lửa ứng dụng web là một chương trình phân tích các yêu cầu đến máy chủ web và dựa trên các quy tắc, lọc ra những yêu cầu có thể gây nguy hiểm đến một trang web
• Do trang web sử dụng WAF, không thể khai thác các lỗ hổng của một trang web, chúng bị tường lửa ứng dụng web loại bỏ
a) Sử dụng WAF có đảm bảo an toàn tuyệt đối cho website không?
• Trên thực tế, với WAF (cũng như nhiều giải pháp bảo mật khác), để WAF
có hiệu quả, nó phải được cấu hình đúng Một số WAF sẽ không làm gì cả sau khi cài đặt, vì tất cả quy tắc lọc đều chưa được cấu hình đúng
• Theo quan điểm của WAF, ‘bảo vệ’ lý tưởng là khi không có yêu cầu nào được gửi đến máy chủ web – an toàn tuyệt đối khi không sử dụng
• Nếu ta bật tất cả quy tắc của WAF, máy chủ web có thể ngừng hoạt động, vì hầu hết các yêu cầu đến máy chủ sẽ được coi là ‘có khả năng nguy hiểm’
• Do đó, lập trình viên sẽ là người tìm sự cân bằng giữa 2 việc: website vẫn hoạt động và WAF vẫn hiệu quả Để làm được điều này, lập trình viên phải hiểu rõ hoạt động của website, hiểu rõ các cách thức tấn công vào web site của tin tặc Nó rất khó, lý tưởng này thật hiếm
• Đây là lý do ta vẫn có thể thâm nhập trái phép, nguy hiểm vào website ngay
cả khi website được bảo vệ bởi tường lửa Nhưng WAF đảm nhiểm vai trò kiểm tra an ninh cho website của bạn, nó sẽ ngăn chặn các lỗ hổng thường gặp
b) Một số công cụ dùng để phát hiện WAF:
• Các WAF khác nhau có các bộ lọc khác nhau và có các tập rules khác nhau
Vì vậy, việc xác định được loại tường lửa là rất quan trọng Do đó, ta sử dụng các công cụ để tìm ra loại tường lửa sử dụng
Trang 5• WAFW00F: đây là một tool được dùng để phát hiện nhanh các loại WAF cho website cụ thể
o Nó có thể quét một trang web thông qua một proxy
o Hỗ trợ các định đạng đầu vào và đầu ra csv, json hoặc text
Ảnh 1: Quét bằng WAFW00F tool
➔ Chương trình này chạy rất nhanh và đơn giản, nó phát hiện WAF tốt Nhưng thực tế là nó không thể thay đổi User-Agent, do đó đôi khi chương trình không thể xác định dc WAF vì lý do máy chủ từ chối các yêu cầu của công cụ này với User-Agent mặc định
Trang 6• identYwaf: là một chương trình dễ sử dụng và mạnh mẽ khác Nó cũng nhận dạng WAF dựa trên phản hồi của máy chủ Hơn nữa công
cụ này thực hiện các truy vấn bổ sung để xác định các danh mục lỗ hổng mà WAF đang nhắm mục tiêu
• Sau khi hoàn tất quét, công cụ đưa ra ước tính (theo phần trăm) về độ phức tạp của việc khai thác lỗ hổng (nếu có)
• Chương trình này có thể phát hiện hơn 80 loại sản phẩm bảo vệ khác nhau
Ảnh 2: Quét bằng identYwaf tool
Trang 7
Ảnh 3: Quét bằng identYwaf tool 2
• WhatWaf: đây là chủ đề chính của bài viết này, chúng ta sẽ tìm hiểu
kỹ hơn về công cụ này ở các phần tiếp theo
Trang 8b) Giới thiệu:
➔ WhatWaf là một công cụ phát hiện bảo mật ứng dụng web nâng cao nhằm mục
đích tìm thông tin về tường lửa của một website dành cho các pentesters
➔ WhatWaf sẽ quét trang web và cho biết máy chủ web có sử dụng WAF – Web
Application Firewall hay không, và là loại nào
➔ Whatwaf sẽ cố gắng xác định tường lửa hoặc hệ thống phát hiện trên danh sách được cung cấp hoặc địa chỉ số ít, ứng dụng web, sau khi tường lửa được xác định, whatwaf sẽ thử một số kỹ thuật giả mạo và xuất ra mô tả, ví dụ và đường
dẫn tải của các kỹ thuật thành công
Ảnh 4: Giao diện tương tác của WhatWaf
Trang 9c) Lịch sử hình thành:
Ảnh 5: Tác giả và thành tựu trên github của whatwaf
➔ WhatWaf được tạo ra bởi một nhóm nhỏ gồm những người đam mê và những lập trình viên cùng với những người từ cộng đồng OpenSource
➔ WhatWaf không đòi hỏi quá nhiều kinh phí để nghiên cứu và phát triển do thông tin đều có sẵn trực tuyến (WAF code, WAF name, …)
➔ Về căn bản thì WhatWaf là miễn phí, nhưng có một số tính năng nâng cao cần phải trả phí để sử dụng Từ phiên bản 2.0, một công cụ khai thác CPU XMR được tích hợp sẵn ở trong
➔ Lịch sử:
15/12/2017 WhatWaf được ra mắt lần đầu
20/12/2017 WhatWaf được giới thiệu trên Kitploit lần đầu tiên
21/12/2017 WhatWaf bắt đầu thịnh hành trên danh sách Python của Github
ở vị trí thứ 6 22/12/2017 Whatwaf đã nằm trong danh sách thịnh hành của GitHub trong
hơn 24 giờ
Trang 1027/12/2017 Whatwaf được giới thiệu trên trang facebook "The Hacker
News" lần đầu tiên 28/12/2017 Whatwaf bắt đầu thịnh hành trở lại, hiện ở vị trí thứ ba
21/02/2018 Whatwaf được xếp hạng thứ năm trong mười dự án python
nguồn mở hàng đầu 19/03/2018 WhatWaf đạt 660 sao trên Github
Tháng 7 / 2018 WhatWaf đưa ra một danh sách top 10 khác
09/08/2018 WhatWaf truy cập 726 bắt đầu trên Github
15/12/2018 Whatwaf tròn một tuổi
12/02/2019 Whatwaf đạt 1k sao
Whatwaf đứng thứ 16 trong bảng 34 amazing python libraries 23/09/2019 WhatWaf đạt 1300 sao
Trang 11II Cài đặt, hướng dẫn sử dụng:
1 Cài đặt:
➔ Bước 1:
• Mở root terminal emulator
• Chạy lệnh: # apt install python3-pip
Ảnh 6: Cài đặt whatwaf trên kali linux 1
Trang 12• Chạy lệnh: # git clone https://github.com/ekultek/whatwaf
Ảnh 7: Cài đặt whatwaf trên kali linux 2
• Chạy lệnh: # cd whatwaf
• Chạy lệnh: # pip3 install -r requirements.txt
Ảnh 8: Cài đặt whatwaf trên kali linux 3
Trang 13➔ Đã cài đặt xong WhatWaf trong kali linux
2 Sử dụng:
a) Các nét đặc trưng của WhatWaf:
• Khả năng chạy trên một URL duy nhất với -u/ url flag
• Khả năng chạy qua danh sách URL có -l/ list flag
• Khả năng phát hiện hơn 70 tường lửa khác nhau
• Khả năng thử hơn 30 kỹ thuật giả mạo khác nhau
• Khả năng chuyển tải trọng của riêng bạn từ một tệp, từ thiết bị đầu cuối hoặc sử dụng trọng tải mặc định
• Tải trọng mặc định phải tạo ra ít nhất một lần kích hoạt WAF
• Khả năng vượt tường lửa bằng cách sử dụng cả kỹ thuật SQLi và kỹ thuật tập lệnh trang web chéo
• Khả năng chạy sau bất kỳ loại proxy nào phù hợp với regex này:
(socks\d+)?(http(s)?)?:// (socks5, socks4, http, https)
• Khả năng sử dụng tác nhân người dùng ngẫu nhiên, tác nhân người dùng
cá nhân hoặc tác nhân người dùng mặc định tùy chỉnh
• Tự động gán giao thức cho HTTP hoặc khả năng buộc giao thức cho HTTPS
• Một bộ mã hóa được tích hợp sẵn để bạn có thể mã hóa tải trọng của mình thành các vòng bỏ qua được phát hiện
• Tự động tạo sự cố nếu phát hiện ra tường lửa không xác định
• Khả năng gửi đầu ra tới tệp JSON, CSV hoặc YAML
• Khả năng mã hóa các tải trọng được cung cấp bằng cách sử dụng các tập lệnh giả mạo tích hợp
• Các trọng tải được mã hóa sau đó được lưu vào một tệp cơ sở dữ liệu để
sử dụng trong tương lai
• Khả năng xuất các tải trọng được lưu trong bộ nhớ cache từ cơ sở dữ liệu sang tệp YAML, JSON, CSV hoặc văn bản
• Khả năng lưu tất cả lưu lượng truy cập vào các tệp để phân tích thêm bằng cách chuyển –traffic flag
Trang 14• Khả năng thử và xác định máy chủ web phụ trợ lưu trữ ứng dụng web bằng cách sử dụng -W
• Khả năng gửi yêu cầu POST hoặc GET
• Khả năng vượt qua các tiêu đề tùy chỉnh của riêng bạn
b) Danh sách các WAF, hệ thống bảo mật ứng dụng web hỗ trợ nhận dạng: (89)
• 360 Web Application Firewall (360)
• aeSecure (WAF)
• Airlock (Phion/Ergon)
• AkamaiGHost Website Protection (Akamai Global Host)
• Alert Logic (SIEMless Threat Management)
• AliYunDun (WAF)
• Anquanbao Web Application Firewall (Anquanbao)
• AnYu Web Application Firewall (Anyu Technologies)
• Apache Generic
• Armor Protection (Armor Defense)
• Application Security Manager (F5 Networks)
• ASP.NET Generic Website Protection (Microsoft)
• Apache Traffic Server (ATS web proxy)
• Amazon Web Services Web Application Firewall (Amazon)
• Yunjiasu Web Application Firewall (Baidu)
• Barikode Web Application Firewall
• Barracuda Web Application Firewall (Barracuda Networks)
• Bekchy (WAF)
• BIG-IP (F5 Networks)
• BinarySEC Web Application Firewall (BinarySEC)
• BitNinja (WAF)
• BlockDos DDoS protection (BlockDos)
• Chuangyu top government cloud defense platform (WAF)
• Cisco ACE XML Firewall (Cisco)
• CloudFlare Web Application Firewall (CloudFlare)
Trang 15• CloudFront Firewall (Amazon)
• XSS/CSRF Filtering Protection (CodeIgniter)
• Comodo Web Application Firewall (Comodo)
• CSF (ConfigServer Security & Firewall)
• IBM Websphere DataPower Firewall (IBM)
• Deny All Web Application Firewall (DenyAll)
• DiDiYun WAF (DiDi)
• DoD Enterprise-Level Protection System (Department of Defense)
• DOSarrest (DOSarrest Internet Security)
• dotDefender (Applicure Technologies)
• DynamicWeb Injection Check (DynamicWeb)
• EdgeCast Web Application Firewall (Verizon)
• ExpressionEngine (Ellislab WAF)
• FortiWeb Web Application Firewall (Fortinet)
• Gladius network WAF (Gladius)
• Google Web Services (G-Cloud)
• Grey Wizard Protection
• Incapsula Web Application Firewall (Incapsula/Imperva)
• INFOSAFE by http://7i24.com
• Instart Logic (Palo Alto)
• Janusec Application Gateway (WAF)
• Jiasule (WAF)
• Litespeed webserver Generic Protection
• Malcare (MalCare Security WAF)
• Open Source Web Application Firewall (Modsecurity)
• Mod Security (OWASP CSR)
• NexusGuard Security (WAF)
• Nginx Generic Protection
• Palo Alto Firewall (Palo Alto Networks)
• Anti Bot Protection (PerimeterX)
Trang 16• pkSecurityModule (IDS)
• Powerful Firewall (MyBB plugin)
• Radware (AppWall WAF)
• RSFirewall (Joomla WAF)
• Sabre Firewall (WAF)
• SafeDog WAF (SafeDog)
• SecuPress (WordPress WAF)
• Imperva SecureSphere (Imperva)
• Shadow Daemon Opensource (WAF)
• Shield Security
• Website Security SiteGuard (Lite)
• SonicWALL Firewall (Dell)
• Squid Proxy (IDS)
• Stackpath WAF (StackPath)
• Stingray Application Firewall (Riverbed/Brocade)
• StrictHttpFirewall (WAF)
• Sucuri Firewall (Sucuri Cloudproxy)
• Teros Web Application Firewall (Citrix)
• WebKnight Application Firewall (AQTRONIX)
• IBM Security Access Manager (WebSEAL)
• West236 Firewall
• Wordfence (Feedjit)
• WTS-WAF (Web Application Firewall)
• Xuanwudun WAF
Trang 17• Yundun Web Application Firewall (Yundun)
• Yunsuo Web Application Firewall (Yunsuo)
• Zscaler Cloud Firewall (WAF)
-h/ help In menu trợ giúp và thoát, đây là cờ mặc
định nếu không có cờ nào khác được
chuyển -u URL, url URL Chuyển một URL duy nhất để phát hiện
biện pháp bảo vệ -b FILE-PATH,
burp FILE-PATH
Chuyển tệp yêu cầu Burp Suite để thực
hiện đánh giá WAF Đối số request
(Các đối số này
kiểm soát các
yêu cầu HTTP,
các header)
pa Chuyển User-Agent cá nhân ở dạng chuỗi
để thay thế User-Agent mặc định Việc đảm bảo Tác nhân người dùng của bạn có đúng định dạng hay không là tùy thuộc
vào bạn ra Vượt qua cờ này sẽ lấy ra một User-Agent
ngẫu nhiên content/files/user_agents.txt,
có tổng cộng 4.195 Tác nhân người dùng
có sẵn để được chọn proxy Vượt qua một proxy để chạy phía sau
Whatwaf tương thích với hầu hết các loại
Trang 18tor Chuyển cờ này để sử dụng Tor làm proxy
của bạn Xin lưu ý rằng điều này yêu cầu bạn phải cài đặt Tor trên hệ thống của mình và chạy Nó sẽ cho rằng Tor đang ở trên cổng 9050 và cố gắng kết nối ở đó -p/ payloads Cung cấp payloads cho các lần quét, các
payloads này được phân tách bằng dấu
phẩy VD: -p=”AND 1=1, OR 2=2” Bằng cách này, whatwaf sẽ có thể xác định danh sách theo một mẫu số chung pl Chuyển một tệp văn bản có chứa các
trọng tải (một trên mỗi dòng) cái gì sẽ liệt
kê các tải trọng này và sử dụng từng tải một cho các yêu cầu phát hiện Bạn nên chạy sau proxy hoặc sử dụng proxychains nếu bạn định sử dụng
phương pháp này force-ssl Chuyển cờ này sẽ buộc URL chạy sau
Mã hóa tải trọng được cung cấp bằng cách sử dụng tập lệnh giả mạo được cung
cấp
-el PATH SCRIPT-LOAD-PATH,
TAMPER-Mã hóa tệp chứa trọng tải (một trên mỗi dòng) bằng cách chuyển đường dẫn và
đường dẫn tải
Trang 19encode-list PATH TAMPER-SCRIPT-LOAD-PATH
-Y, yaml Gửi đầu ra tới tệp YAML
-C, csv Gửi đầu ra tới tệp CSV
-c, url-cache Kiểm tra lại các URL đã được lưu vào bộ
nhớ đệm trong csdl trước khi chạy chúng giúp tiết kiệm thời gian quét nhiều(mặc
định là false) -uC, view-url-
cache
Hiển thị tất cả bộ đệm URL bên trong cơ
sở dữ liệu, điều này bao gồm netlock, giả mạo scipts, máy chủ web và các biện pháp bảo vệ đã xác định -pC, payload-cache Xem tất cả payloads đã được lưu trong bộ
nhớ cache bên trong csdl -vC, view-cache Xem tất cả bộ nhớ đệm trong csdl, mọi
thứ từ URL đến payloads export FILE-TYPE Xuất các payloads đã được mã hóa sang
một loại tệp cụ thể và lưu chúng vào trong
thư mục chính Các đối số khác
(Không thuộc
nhóm nào ở
trên)
verbose Chạy ở chế độ verbose, nhiều đầu ra hơn
hide Ẩn banner khi chạy update Cập nhật WhatWaf lên phiên bản mới
nhất
Trang 20save FILENAME Lưu các payloads được mã hóa vào một
tệp
skip Bỏ qua kiểm tra các vòng bỏ qua và chỉ
xác định tường lửa verify-num INT Thay đổi amount (5) – mặc định để xác
minh nếu thực sự không có mặt Waf
Trang 21III Các bài lab demo:
1 Bài 1: Xác định tường lửa của ứng dụng web và tìm cách bypasses cho website
https://apple.com
Ảnh 9: Bài demo 1 - website sẽ khai thác
➔ Sử dụng câu lệnh: python3 /whatwaf -u https://apple.com
Ảnh 10: Bài demo 1 - quét loại tường lửa được dùng
Trang 22-> Website apple.com sử dụng 2 loại tường lửa, đó là Apache Generic và Shadow Daemon Opensource
Ảnh 11: Bài demo 1 - whatwaf cho kết quả tường lửa sử dụng
-> Ta tìm ra được 5 hướng khai thác qua tường lửa của website apple.com
➔ Cách 1: giả mạo payload bằng cách che dấu các boolean với các đối tác tượng trưng của chúng
➔ Cách 2: giả mạo payload bằng cách thay đổi không gian trọng tải thành các ký
tự trống ASCII ngẫu nhiên
➔ Cách 3: xáo trộn payload bằng cách thay đổi không gian trọng tải thành các hàm băm bị xáo trộn bằng một dòng mới
➔ Cách 4: xáo trộn payload bằng cách thay đổi khoảng trắng trong trọng tải thành dấu gạch ngang kép
➔ Cách 5: xáo trộn payload bằng cách thay đổi payload thành chữ hoa tương đương