BÁO CÁO BÀI TẬP LỚN MÔN: AN TOÀN MẠNG ĐỀ TÀI: Tìm hiểu về công cụ Wfuzz

77 36 0
BÁO CÁO BÀI TẬP LỚN MÔN: AN TOÀN MẠNG ĐỀ TÀI: Tìm hiểu về công cụ Wfuzz

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THÔNG TIN I -□□&□□ - BÁO CÁO BÀI TẬP LỚN MƠN: AN TỒN MẠNG ĐỀ TÀI: Tìm hiểu cơng cụ Wfuzz Nhóm lớp: 01 GIẢNG VIÊN: TS Đặng Minh Tuấn SINH VIÊN THỰC HIỆN: Họ tên Nguyễn Thu Trang Mã sinh viên B18DCAT245 Lớp sinh viên D18CQAT01 - B MỤC LỤC MỤC LỤC DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT DANH MỤC HÌNH ẢNH LỜI NÓI ĐẦU 12 Chương 1: Giới thiệu khái quát Wfuzz 12 I Giới thiệu tool Wfuzz 13 Wfuzz gì? 13 Fuzzing gì? 13 Tính linh hoạt Wfuzz thể qua đâu? 13 II Lịch sử đời 15 Chương 2: Hướng dẫn cài đặt, sử dụng Wfuzz 17 Hướng dẫn cải đặt 17 I Cài đặt: 17 1.1 Cài đặt wfuzz pip 17 1.2 Sử dụng Wfuzz docker image 17 1.3 Cài đặt mã nguồn 17 1.4 Dependencies 18 Lưu ý cài đặt 18 II 2.1 Thư viện Pycurl MacOS 18 2.2 Thư viện Pycurl MacWindows 20 2.3 Lỗi PyCurl SSL 20 2.3.1 Xác minh cố 20 2.3.2 Cài đặt Pycurl OpenSSL Flavour 21 2.3.3 Cài đặt Pycurl chống lại OpenSSL 21 Hướng dẫn sử dụng 22 Bắt đầu: 22 1.1 Getting help 23 1.2 Payloads 23 1.2.1 Chỉ định payload 24 1.2.2 Multiple payloads 26 1.3 Bộ lọc 26 1.3.1 Ẩn response 27 1.3.2 Hiển thị response 28 1.3.3 Sử dụng Baseline 28 1.3.4 Bộ lọc Regex 29 Cách sử dụng 29 2.1 Fuzzing Paths Files 29 2.2 Fuzzing Parameters URLs 30 2.3 Fuzzing POST Requests 30 2.4 Fuzzing Cookies 31 2.5 Fuzzing Custom headers 31 2.6 Fuzzing HTTP Verbs 32 2.7 Proxies 33 2.8 Authentication 34 2.9 Đệ quy (Recursion) 34 2.10 Perfomance 35 2.11 Ghi vào tệp 35 2.12 Đầu khác 36 Cách sử dụng nâng cao 37 3.1 Cách sử dụng wfuzz theo lựa chọn toàn cậu – Wfuzz global option 37 3.2 Lặp: Kết hợp payload 38 3.1 Encoders 39 3.3.1 Chỉ định encoder 39 3.3.2 Chỉ định multiple encoders 40 3.1 Scan/Parse Plugins 42 3.4.1 Custom scripts 45 3.1 Recipes (Công thức) 45 3.1 Kết nối với máy chủ cụ thể 46 3.1 Chế độ quét: Bỏ qua lỗi ngoại lệ 47 3.1 Ngôn ngữ lọc 48 3.8.1 Lọc kết 52 3.8.2 Payload mangling 54 3.8.2.1 Slicing a payload 54 3.8.2.2 Re-writing a payload 55 3.8.2.3 Prefilter 56 3.1 Hệ thống lại kết trước 56 3.1 Hệ thống lại kết trước 59 3.10.1 Yêu cầu mangling 59 Wfpayload 60 III 4.1 Tạo từ điển 60 4.2 Phân tích phiên lưu 60 4.3 Chạy plugin so với phiên lưu 61 4.4 Viết lại phiên lưu 62 Hướng dẫn sử dụng thư viện 62 Python library 62 IV 1.1 Lựa chọn thư viện 62 1.2 Fuzzing URL 63 1.3 Đối tượng FuzzSession 64 1.4 Get Payload 65 1.5 Get Session 66 1.6 Tương tác với kết 66 Bài demo 67 Fuzzing đường dẫn tệp 68 Tham số Fuzzing URL 69 Fuzzing Cookies 69 Verbs HTTP 70 Xác thực 71 Đệ quy 73 Chương 3: So sánh, đánh giá 74 Chương 4: Kết luận 76 Tài liệu tham khảo 77 DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT Từ viết tắt HTML HTTP JSON CLI CSRF Thuật ngữ tiếng Anh/ Gải thích Wfuzz Hypertext Markup Language Hypertext Transfer Protocol JavaScript Object Notation Command Line Interface Cross-site Request Forgery Encode Thuật ngữ tiếng Việt/ Giải thích Tiện tích dịng lệnh Kali Ngôn ngữ Đánh dấu Siêu văn Giao thức truyền tải siêu văn Kiểu liệu mở java Giao diện dòng lệnh Kỹ thuật cơng giả mạo Bộ mã hóa GET Phương thức gửi liệu thông qua đường dẫn URL Một đoạn mã chạy máy nạn nhân để thực hành vi độc hại Thành phần mở rộng Truyền thông tin qua HTTP header Phương tiện trung gian kết nối server thật Thư viện python Mẫu Yêu cầu gửi từ client lên server Dữ liệu Server gửi client Rà quét Xác định Ngôn ngữ truy vấn liệu Là tiêu chuẩn an ninh cơng nghệ tồn cầu Địa Web Payload Plugin POST Proxy SQL SSL Pycurl Regex Request Response Scan Specifying Structured Query Language Secure Sockets Layer URL Uniform Resource Locator DANH MỤC HÌNH ẢNH Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Logo Wfuzz 14 Christian Martorella - Người đồng sáng lập công cụ Wfuzz 15 Carlos del Ojo - Người đồng sáng lập công cụ Wfuzz 15 Hình ảnh giao diện Wfuzz Kali Linux 16 Cài đặt Wfuzz lệnh pip 17 Cài đặt Wfuzz cách dùng docker image 17 Clone mã nguồn Wfuzz từ Github 17 Cài đặt Wfuzz vào Python 17 Lỗi chạy Wfuzz 18 10 Lỗi chạy Wfuzz 18 11 Cài đặt OpenSSL qua Homebrew 18 12 cài đặt Curl sử dụng brew 19 13 Thay đổi bash_profile 19 14 Thay đổi shell 19 15 Cài đặt pycurl 19 16.Lỗi chạy Wfuzz 19 17 Lỗi chạy Wfuzz 20 18 Lỗi chạy pycurl 20 19 Lỗi không hoạt động với pycurl 20 20 Pycurl liên kết chống lại với GnuTLS 20 21 Pycurl liên kết chống lại với OpenSSL 21 22 Cài đặt Liburl OpenSSL Flavour 21 23 Lỗi module named botle 22 24 Cách thực thi dòng lệnh Wfuzz điển hình 22 25 Kết sau thực thi 22 26 Kiểm tra mô-đun sử dụng –e 23 27 Liệt kê payload có sẵn 24 28 Thông tin chi tiết payload 24 29 Lọc thông tin payload 24 30 Xác định tham số payload 25 31 Xác định tham số mặc định payload thông qua dòng lệnh -zd 25 32 Xác định giá trị tham số mặc định payload 25 33 Sử dụng payload tệp 25 34 Sử dụng payload stdin 26 35 brute force tệp ,thư mục lúc 26 36 Lọc tài nguyên web mà máy chủ web không xác định 27 37 Thêm tài nguyên bị cấm vào lọc 27 38 Lỗi 404 trả 28 39 Cải thiện lọc “–hc 404” 28 40 Lọc tài nguyên sử dụng - -hh 28 41 Lọc phản hồi 29 42 Lỗi không sử dụng thiết bị chuyển mạch với regex python 29 43 Wfuzz tìm kiếm thư mục phổ biến 30 Hình 44 Wfuzz tìm kiếm tệp phổ biến 30 Hình 45 : fuzz số loại liệu chuỗi truy vấn URL 30 Hình 46 fuzz số loại liệu mã hóa biểu mẫu 30 Hình 47 Gửi cookie đến máy chủ để liên kết yêu cầu với phiên HTTP 31 Hình 48 Các yêu cầu HTTP 31 Hình 49 fuzz cookie 31 Hình 50 Thêm header HTTP vào yêu cầu 31 Hình 51 Các yêu cầu HTTP tạo 31 Hình 52 Sửa đổi header có 32 Hình 53 Các yêu cầu HTTP tạo 32 Hình 54 fuzz header 32 Hình 55 Chỉ đinh HTTP verbs fuzzing sử dụng tùy chọn -X 33 Hình 56 Chỉ đinh HTTP verbs fuzzing sử dụng tùy chọn -X 33 Hình 57 Proxy sử dụng giao thức SOCKS4 SOCKS5 33 Hình 58 Proxy sử dụng đồng thời cách cung cấp tham số -p khác 34 Hình 59 Sử dụng xác thực fuzz để bảo tài nguyên 34 Hình 60 Tìm kiếm thư mục sau fuzz thư mục lần cách sử dụng payload 35 Hình 61 Thực thi printer có sẵn 35 Hình 62 Ghi kết vào tệp đầu định dạng JSON 36 Hình 63 Thực thi printer có sẵn 36 Hình 64 Ghi kết vào tệp đầu định dạng JSON 36 Hình 65 Ghi kết vào tệp đầu định dạng JSON 36 Hình 66 Thay hồn tồn đầu payload mặc định sử dụng –field 37 Hình 67 –Efield –field lặp lại để hiển thị số trường 37 Hình 68 Liệt kê biểu thức lọc định 37 Hình 69 Sửa đổi wfuzz.ini thư mục 38 Hình 70 Các payload cung cấp theo mặc định 38 Hình 71 Sử dụng zip 39 Hình 72 Sử dụng chain 39 Hình 73 Kết hợp payload sử dụng trình vịng lặp 39 Hình 74 Lấy danh sách encoder có sẵn 39 Hình 75 Chỉ định encoder payload cách dài 40 Hình 76 Chỉ định encoder payload cách sử dụng dòng lệnh tùy chọn zE 40 Hình 77 Cách khác để định encoders 40 Hình 78 Chỉ định nhiều Encoder lúc 41 Hình 79 Xâu chuỗi Encoder ký tự @ 42 Hình 80 Chọn số Encoders theo danh mục 42 Hình 81 Lấy danh sách plugin để quét ứng dụng web 42 Hình 82 Thơng tin chi tiết tập lệnh lấy –script-help 43 Hình 83 Phân tích cú pháp tệp robots.txt 44 Hình 84 Kết nhắm vào máy chủ web có URL thơng số khác 44 Hình 85 Kết vơ hiệu hóa nhớ cache 45 Hình 86 Tạo cơng thức 45 Hình 87 Thực wfuzz cách sử dụng tùy chọn recipe 46 Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình 88 Kết hợp cơng thức với tùy chọn dòng lệnh bổ sung 46 89 Một số công thức kết hợp 46 90 IP kết nối với máy chủ cổng cụ thể 46 91 Ngoại lệ gặp cố mạng 47 92 Kết sau quét cách cung cấp tùy chọn –Z để bỏ qua lỗi 47 93 Mã lỗi lọc cách sử dụng biểu thức XXX 48 94 Lấy thông tin ngôn ngữ lọc 48 95 Phân tích tùy chọn lọc tiêu chuẩn 53 96 Phân tích tùy chọn lọc tiêu chuẩn 53 97 Phân tích tùy chọn lọc tiêu chuẩn (ví dụ khác) 53 98 Phân tích tùy chọn lọc tiêu chuẩn (ví dụ khácx2) 53 99 Bộ lọc hiển thị yêu cầu có tham số 54 100 Các kết có vấn đề plugin lọc 54 101 Sử dụng toán tử để trả giá trị Boolean 54 102 Kết phiên trước 55 103 Lọc payload 55 104 Fuzz đề cập kết trước 55 105 Tham số lệnh slice cho phép ghi lại payload 56 106 : Kết wfuzz lưu trữ cách sử dụng tùy chọn –oF 57 107 Sử dụng từ khóa FUZZ để lặp lại u cầu xác cách lưu trữ 57 108 Thêm tiêu đề 57 109 Sử dụng cookie định payload khác 58 110 Các yêu cầu HTTP lưu trữ in cờ –prev 58 111 Cùng yêu cầu URL khác 58 112 Sử dụng tham số payload attr 58 113 Chỉ định từ khóa FUZZ tên trường(field) dạng FUZZ [field] 58 114 Ví dụ định từ khóa FUZZ tên trường(field) dạng FUZZ [field] 59 115 Tạo yêu cầu HTTP 59 116 Thêm dấu ngoặc kép vào tham số chuỗi trước thực yêu cầu HTTP 60 117 Tạo từ điển 60 118 Sử dụng cú pháp wfuzz tạo từ điển 60 119 Trả danh sách request HTTP 61 120 Tìm phản hồi HTTP chấp nhận nguồn gốc CORS 61 121 Chọn trường để hiển thị với –field 61 122 (Hoặc) Chọn trường để hiển thị với –field 61 123 Chạy plugin phiên lưu 62 124 Một phiên có nhóm 404/400 kết mà bạn muốn xóa 62 125 Phiên có kết mà muốn xóa 62 126 Thư viện tùy chọn 63 127 Import mô-đun wfuzz 63 128 testphp 64 129 Duy trì thơng số phiên fuzzing 64 130 Duy trì thông số phiên fuzzing 65 131 Tạo payload chạy 65 132 Sử dụng phương thức get_payloads cần nhiều payload khác 65 Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình 133 Sử dụng phương thức get_payloads cần nhiều payload khác 66 134 Làm việc với kết ngôn ngữ với syntax 66 135 Phương thức để đánh giá biểu thức ngôn ngữ 67 136 Cài Wfuzz máy Kali 67 137 Nhập wfuzz -h để trợ giúp 68 138 Fuzzing đường dẫn tệp 68 139 Tham số Fuzzing URL 69 140 Fuzzing Cookies 70 141 Verbs HTTP 70 142 Verbs HTTP trang http://www.infosecptit.com/code/login_error.asp 71 143 Wfuzz dùng để xác thực 72 144 Wfuzz dùng để xác thực trang http://www.infosecptit.com/code/login_error.asp72 145 Đệ quy 73 146 Hạn chế Wfuz 75 10 Hình 126 Thư viện tùy chọn Các tùy chọn sử dụng giao diện thư viện chính: fuzz, payload session cách rõ ràng 1.2 Fuzzing URL Fuzzing URL với thư viện wfuzz đơn giản Đầu tiên, import mơđun wfuzz: Hình 127 Import mô-đun wfuzz 63 Bây giờ, thử fuzz trang web để tìm nội dung ẩn, chẳng hạn thư mục Đối với ví dụ sử dụng Acunetix’s testphp (http://testphp.vulnweb.com/): Hình 128 testphp Bây giờ, có đối tượng FuzzResult gọi r Chúng ta nhận tất thơng tin cần từ đối tượng 1.3 Đối tượng FuzzSession Một đối tượng FuzzSession có tất phương thức API wfuzz Đối tượng FuzzSession cho phép bạn trì thơng số định phiên fuzzing: Hình 129 Duy trì thơng số phiên fuzzing ContextFuzzSession sử dụng làm trình quản lý context: 64 Hình 130 Duy trì thông số phiên fuzzing 1.4 Get Payload Hàm get_payload tạo payload Wfuzz từ tệp lặp lại Python Đó cách nhanh chóng linh hoạt để payload theo lập trình mà không cần sử dụng plugin payload Wfuzz Việc tạo payload bắt đầu chạy thực đơn giản sau: Hình 131 Tạo payload chạy Phương thức get_payloads sử dụng cần nhiều payload khác nhau: Hình 132 Sử dụng phương thức get_payloads cần nhiều payload khác 65 1.5 Get Session Hàm get_session tạo đối tượng phiên Wfuzz từ dịng lệnh định Đó cách nhanh chóng nhận payload theo chương trình từ chuỗi đại diện cho tùy chọn CLI: Hình 133 Sử dụng phương thức get_payloads cần nhiều payload khác Tương tác với kết Sau có kết wfuzz làm việc với kết ngơn ngữ với syntax sau: 1.6 Hình 134 Làm việc với kết ngơn ngữ với syntax Đối tượng kết có phương thức để đánh giá biểu thức ngơn ngữ: 66 Hình 135 Phương thức để đánh giá biểu thức ngôn ngữ IV Bài demo Đầu tiên tải wfuzz Kali với câu lệnh pip install wfuzz Hình 136 Cài Wfuzz máy Kali Nhập wfuzz -h để trợ giúp, Wfuzz sử dụng để tìm kiếm nội dung ẩn, chẳng hạn tệp thư mục, máy chủ web, cho phép tìm thêm vectơ cơng Cần lưu ý rằng, thành công nhiệm vụ phụ thuộc nhiều vào từ điển sử dụng Theo mặc định, wfuzz chứa tệp danh sách từ fuzzdb seclists, số cách sử dụng wfuzz đề cập đây: 67 Hình 137 Nhập wfuzz -h để trợ giúp Fuzzing đường dẫn tệp Trong url trên, từ khóa “FUZZ” phải định từ khóa “FUZZ” giống loại giá đỡ cho công cụ thực đâu để FUZZ Hình 138 Fuzzing đường dẫn tệp 68 Tham số Fuzzing URL Bạn thường muốn FUZZ số loại liệu chuỗi truy vấn URL, điều đạt cách định từ khóa FUZZ URL sau dấu chấm hỏi: Hình 139 Tham số Fuzzing URL Fuzzing Cookies Ví dụ: để gửi cookie riêng bạn đến máy chủ, để liên kết yêu cầu với phiên HTTP, bạn sử dụng tham số -b (lặp lại cho cookie khác nhau): 69 Hình 140 Fuzzing Cookies Verbs HTTP Các động từ HTTP fuzzing định cách sử dụng cơng tắc -X Hình 141 Verbs HTTP 70 Trên trang http://www.infosecptit.com/code/login_error.asp Hình 142 Verbs HTTP trang http://www.infosecptit.com/code/login_error.asp Xác thực Wfuzz đặt tiêu đề xác thực cách sử dụng khóa chuyển dịng lệnh –basic / ntlm / dig Ví dụ: tài nguyên bảo vệ sử dụng Xác thực làm mờ lệnh sau: 71 Hình 143 Wfuzz dùng để xác thực Trên trang http://www.infosecptit.com/code/login_error.asp Hình 144 Wfuzz dùng để xác thực trang http://www.infosecptit.com/code/login_error.asp 72 Đệ quy Cơng tắc -R sử dụng để định độ sâu đệ quy payload Ví dụ: bạn muốn tìm kiếm thư mục có sau FUZZ lại thư mục cách sử dụng payload, bạn sử dụng lệnh sau: Hình 145 Đệ quy 73 Chương 3: So sánh, đánh giá Wfuzz ứng dụng hướng dòng lệnh chạy Linux Terminal Windows Command Prompt, có nghĩa khơng chứa GUI tương tác thay vào cung cấp cờ dịng lệnh nhập Mặc dù điều hạn chế lúc đầu, điều cho thấy mức độ linh hoạt cao bạn sử dụng đầy đủ công cụ qua máy chủ từ xa, “đường dẫn” (chuyển đến/từ) vào khỏi Wfuzz với các công cụ điều khiển dịng lệnh Điều cảm thấy hạn chế lúc đầu, nhiên tơi khuyến khích bạn làm theo hướng dẫn để tận dụng tối đa Wfuzz bạn trở thành người dùng nâng cao hơn, bạn tận dụng tối đa tính linh hoạt Thông thường, bạn nghe Wfuzz so với công cụ dirb dirbuster, mức độ định, so sánh cơng Mặc dù Wfuzz sử dụng để thực hành vi công thư mục sức mạnh thực nằm tính linh hoạt cơng cụ so sánh tốt cho Wfuzz nên tạo để chống lại thứ Burp Suite Intruder Turbo Intruder Về vấn đề cộng đồng nguồn tài nguyên để tìm hiểu khai thác Wfuzz cịn khác nhiều hạn chế, thân cộng đồng hỗ trợ Wfuzz ít, sách nhà phát triển Wfuzz - Xavier Mendez có nhiều thiếu xót ví dụ lỗi “No plugins found!” sử dụng wordlist làm hạn chế nhiều khả Wfuzz 74 Hình 146 Hạn chế Wfuz 75 Chương 4: Kết luận Như vậy, qua phần tìm hiểu demo mẫu, thân thấy Wfuzz công cụ vô hữu hiệu việc kiểm thử xâm nhập hệ thống, giúp chuyên gia bảo mật chuyên viên kiểm thử xâm nhập nhanh chóng phát lỗ hổng Bên cạnh đó, wfuzz giúp người làm bảo mật không chuyên tiếp cận với việc khai thác lỗ hổng dễ dàng với nhiều module payload tích hợp sẵn Hơn cộng đồng bảo mật khắp giới khơng ngừng xây dựng phát triển cơng cụ để có để tạo cơng cụ tồn diện đạt hiệu cao 76 Tài liệu tham khảo Edge-Security (2021) Được truy lục từ Edge-Security: http://www.edgesecurity.com/wfuzz.php Git Hub (2017, July 20) Retrieved from Git Hub: https://github.com/gwen001/wfuzz/blob/master/README Kali (2021, 11 26) Retrieved from Kali: https://www.kali.org/tools/wfuzz/ Mendez, X (2020) Wfuzz Documentation (2.1.4 ed.) OWASP (2021) Retrieved from https://owasp.org/www-community/Fuzzing 77 ... xâm nhập, đánh giá an tồn thơng tin đời Trong báo cáo này, em trình bày kết tìm hiểu cơng cụ Wfuzz Báo cáo em chia làm chương Trong đó: • • • • Chương I: Giới thiệu khái quát Wfuzz Chương II: Hướng... Hình Hình Logo Wfuzz 14 Christian Martorella - Người đồng sáng lập công cụ Wfuzz 15 Carlos del Ojo - Người đồng sáng lập công cụ Wfuzz 15 Hình ảnh giao diện Wfuzz Kali Linux... thầy! Chương 1: Giới thiệu khái quát Wfuzz 12 I Giới thiệu tool Wfuzz Wfuzz gì? WFuzz tiện ích dịng lệnh có Kali Linux - công cụ fuzzing viết Python Các công cụ Wfuzz thường sử dụng để kiểm tra ứng

Ngày đăng: 09/02/2022, 16:22

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan