Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 31 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
31
Dung lượng
2,38 MB
Nội dung
BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THƠNG - BÁO CÁO TIỂU LUẬN MÔN AN TỒN MẠNG CHỦ ĐỀ: Tìm hiểu cơng cụ FFUF Giảng viên: TS Đặng Minh Tuấn Sinh viên: Nguyễn Trần Tuấn Dũng MSV: B18DCAT036 Nhóm mơn học: Nhóm Hà Nội, 2021 Mục lục DANH SÁCH THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT DANH MỤC HÌNH ẢNH LỜI NÓI ĐẦU Giới thiệu, lịch sử hình thành Giới thiệu Lịch sử hình thành Hướng dẫn cài đặt Cài đặt FFUF máy Linux Cài đặt FFUF máy Windows Các khái niệm Fuzzing Wordlist Hướng dẫn sử dụng 10 Các tùy chọn FFUF 10 Một số tùy chọn phổ biến, hay dùng 13 Các tùy chọn chung 13 Các tùy chọn HTTP 13 Các tùy chọn đầu vào 14 Các tùy chọn lọc kết 15 Các tùy chọn tìm kết trùng khớp với điều kiện đưa 15 Các cách sử dụng FFUF 16 Tìm kiếm files, thư mục ẩn web 16 Tìm kiếm thư mục web 16 Tìm kiếm files web 16 Tìm trang trang web 17 Tìm subdomain trang web 17 Recursive Fuzzing (Tìm kiếm đệ quy) 18 Tìm tham số PHP 19 GET Request Fuzzing 19 POST Request Fuzzing 19 Tìm kiếm giá trị tham số 20 Lab, kịch bản, demo 20 Tìm kiếm thư mục web 20 Tìm kiếm files web 21 Tìm subdomain trang web 24 Tìm kiếm duyệt đệ quy với FFUF 25 Tìm tên tham số với FFUF 26 So sánh 28 So sánh với DirBuster GoBuster 28 So sánh với Wfuzz 29 Kết luận 30 TÀI LIỆU THAM KHẢO 31 DANH MỤC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT Thuật ngữ tiếng Anh/Từ viết tắt Wordlist opensource Thread Request Tool File Bruteforce Extension Option IIS (Internet Information Services) Thuật ngữ tiếng Việt/ Giải thích Danh sách từ Mã nguồn mở Luồng Thông báo yêu cầu HTTP Công cụ Tập tin Một loại công mạng Phần đuôi tập tin Tùy chọn Phần mềm máy chủ web mở rộng tạo Microsoft DANH MỤC HÌNH ẢNH Hình Cài đặt golang máy Linux Hình Cài đặt FFUF thơng qua go complier Hình Kiểm tra phiên FFUF máy Linux .8 Hình Kiểm tra thông tin phiên FFUF máy Windows .9 Hình Repo SecLists Github Error! Bookmark not defined Hình Câu lệnh hiển thị option FFUF 10 Hình Các tùy chọn chung FFUF .13 Hình Các tùy chọn HTTP FFUF 14 Hình Các tùy chọn đầu vào FFUF 14 Hình 10 Các tùy chọn đầu FFUF .15 Hình 11 Các tùy chọn lọc kết FFUF .15 Hình 12 Các tùy chọn tìm kết trùng khớp .15 Hình 13 Sử dụng FFUF để tìm kiếm thư mục ẩn trang web 20 Hình 14 Kết tìm kiếm thư mục 21 Hình 15 Trang web khơng hiển thị truy cập thư mục 22 Hình 16 Sử dụng FFUF để tìm file khả dụng thư mục 23 Hình 17 Kết tìm kiếm file thư mục 24 Hình 18 Câu lệnh tìm subdomain trang web 24 Hình 19 Kết tìm kiếm subdomain 25 Hình 20 Tìm kiếm đệ quy với FFUF 25 Hình 21 Quá trình tìm kiếm đệ quy FFUF 26 Hình 22 Trang web thơng báo không đủ quyền đọc liệu 26 Hình 23 Câu lệnh FFUF tìm kiếm tên tham số hợp lệ 27 Hình 24 Kết tìm kiếm tham số 27 Hình 25 Giao diện người dùng DirBuster .28 LỜI NÓI ĐẦU Trong thời đại cơng nghệ thơng tin có bước phát triển vũ bão lĩnh vực hoạt động khắp nơi toàn giới, hầu hết tổ chức, doanh nghiệp có cho Website để thông tin buôn bán sản phẩm – dịch vụ đến khách hàng Mỗi Website dù nhỏ dù to tồn điểm yếu bảo mật nghiêm trọng mà tin tặc khai thác để phá hoại Vì vậy, báo cáo này, em giới thiệu kĩ thuật Fuzzing công cụ FFUF cách sử dụng để tìm lỗ hổng bảo mật tồn website Giới thiệu, lịch sử hình thành Giới thiệu FFUF (Fuzz Faster U Fool) tool opensource viết ngôn ngữ lập trình Go, ffuf ngày phát triển tốc độ đáng kể nó, chạy 100 thread thực scan subdomains với wordlist khoảng 110 nghìn từ phút 50 giây, với số request trung bình giây 2000 Lịch sử hình thành FFUF dự án mã nguồn mở, trì cộng đồng, tạo joohoi ( https://github.com/joohoi ) vào ngày 11 tháng 11 năm 2019 Hướng dẫn cài đặt Cài đặt FFUF máy Linux o Cài đặt môi trường Vì FFUF viết golang nên việc cần làm đặt golang sudo apt-get install golang Hình Cài đặt golang máy Linux o Cài đặt FFUF Nếu cài sẵn go compiler cần gõ lệnh go get github.com/ffuf/ffuf Hình Cài đặt FFUF thơng qua go complier Hoặc git clone cd ffuf go build Để kiểm tra việc cài đặt thành công hay chưa, kiểm tra cách kiểm tra phiên bản: ffuf –V Hình Kiểm tra phiên FFUF máy Linux Cài đặt FFUF máy Windows o Cài đặt Golang từ trang chủ https://go.dev/doc/install o Cài đặt FFUF thông qua Windows terminal tương tự máy Linux go get github.com/ffuf/ffuf Hoặc git clone cd ffuf go build o Kiểm tra phiên Hình Kiểm tra thông tin phiên FFUF máy Windows Các khái niệm Fuzzing Fuzzing kỹ thuật phát lỗi phần mềm cách tự động bán tự động sử dụng phương pháp lặp lại thao tác sinh liệu sau chuyển cho hệ thống xử lý Nó cung cấp liệu đầu vào cho chương trình (là liệu không hợp lệ, liệu không mong đợi: giá trị vượt biên, giá trị đặc biệt có ảnh hưởng tới phần xử lý, hiển thị chương trình), sau theo dõi ghi lại lỗi, kết trả ứng dụng trình xử lý chương trình Fuzzing kỹ thuật kiểm thử hộp đen khơng địi hỏi quyền truy cập vào mã nguồn Do có khả tìm thấy lỗi cách nhanh chóng tránh việc phải xem mã nguồn Wordlist o o Wordlist danh sách từ tệp văn bản, dòng chứa từ, thiết kế cho mục đích khác Các wordlist tìm github, thơng qua repo github tiếng SecLists SecLists tập hợp danh sách từ sử dụng trình đánh giá bảo mật Danh sách gồm nhiều mục username (tên đăng nhập), passwords (mật khẩu), v v Hình Repo github SecLists Hướng dẫn sử dụng Các tùy chọn FFUF Đầu tiên tìm hiểu tùy chọn mà FFUF hỗ trợ, giống tool khác, FFUF cung cấp tùy chọn -h để xem tùy chọn mà FFUF hỗ trợ Hình Câu lệnh hiển thị option FFUF Đầu cho thấy tùy chọn mà FFUF có hỗ trợ: Fuzz Faster U Fool - v1.3.1-dev HTTP OPTIONS: -H flags are accepted -X -b curl functionality -d Header `"Name: Value"`, separated by colon Multiple -H HTTP method to use Cookie data `"NAME1=VALUE1; NAME2=VALUE2"` for copy as POST data ffuf -u -w /usr/share/wordlists/dirbuster/directory-list-1.0.txt -e html,.php,.txt Option -e xác định file (extension) cần tìm Tìm trang trang web Giả sử sử dụng FFUF tìm thư mục /blog trang web, truy cập vào URL **https://example.com/blog**, web không trả lại hiển thị trang Lúc này, sử dụng FFUF để tiếp tục kiểm tra thư mục /blog có chứa trang ẩn không Tuy nhiên, trước chúng bắt đầu, cần xác định loại trang tồn thư mục (Ví dụ html,.aspx,.php, ), cách kiểm tra máy chủ web (web server) Ví dụ, máy chủ apache, phần mở rộng php, máy chủ IIS, phần mở rộng aps aspx Chúng ta sử dụng wordlist web-extensions.txt repo github SecLists để tìm duyệt qua phần mở rộng, từ biết loại file chứa thư mục mà không cần biết web server Ví dụ: ffuf -w /opt/useful/SecLists/Discovery/WebContent/web-extensions.txt:FUZZ -u http://SERVER_IP:PORT/blog/indexFUZZ Trong ví dụ trên, tìm file cách duyệt qua từ wordlist web-extensions.txt Tìm subdomain trang web Subdomain hay miền phụ phần mở rộng tên miền Ví dụ, https://mail.google.com với mail subdomain google.com Để tìm subdomain trang web với FFUF, cần wordlist Trong repo SecLists đề cập trên, có wordlist dành riêng cho việc này, tìm thấy SecLists/Discovery/DNS/ Ví dụ: ffuf -w /opt/useful/SecLists/Discovery/DNS/subdomainstop1million-5000.txt:FUZZ -u Trong ví dụ nêu trên, FFUF thực tìm subdomain trang web example.com với wordlist subdomains-top1million-5000.txt Recursive Fuzzing (Tìm kiếm đệ quy) Đặt tình thư mục tìm với FFUF có thư mục tệp riêng, việc tìm kiếm files thư mục nhiều thời gian để hồn thành Khi đó, để tự động hóa việc tìm kiếm file thư mục trang web nhằm mục đích tiết kiệm thời gian sử dụng Recursive fuzzing FFUF Khi sử dụng option -recursive, FFUF tự động bắt đầu trình quét khác theo thư mục xác định duyệt qua tất thư mục Nghĩa là, FFUF tìm thư mục /folder1 trang web example.com, FFUF tự động tìm kiếm thư mục thư mục /folder1 tiếp tục lặp đệ quy Các option cần sử dụng để thực tìm kiếm đệ quy FFUF -recursive -recursive-depth o o Option -recursive thông báo cho FFUF thực duyệt tìm kiếm đệ quy Option -recursive-depth để xác định “độ sâu” duyệt tìm kiếm đệ quy, để giá trị 1, FFUF duyệt tìm kiếm thư mục thư mục trực tiếp chúng Ví dụ: ffuf -w /opt/useful/SecLists/Discovery/WebContent/directory-list-2.3-small.txt:FUZZ -u http://SERVER_IP:PORT/FUZZ -recursion -recursiondepth -e php -v Ở ví dụ trên, sử dụng thêm option -v để FFUF in URL đầy đủ thư mục tìm option -e để tìm kiếm file có php Tìm tham số PHP GET Request Fuzzing Giả sử muốn tìm kiếm tham số PHP, sử dụng FFUF để làm việc Một URL kèm tham số có dạng http://admin.example.com:PORT/admin/admin.php?param1= key Với param tên tham số truyền vào key giá trị tham số Vì vậy, tất cần làm thay param thành FUZZ để FFUF tìm kiếm tham số, ví dụ: ffuf -w /opt/useful/SecLists/Discovery/WebContent/burp-parameter-names.txt:FUZZ -u :PORT/admin/admin.php?FUZZ= key -fs xxx POST Request Fuzzing Tương tự với GET request kèm tham số, sử dụng FFUF với POST request Điểm khác biệt POST request không chuyển cách thêm ? tên tham số kèm giá trị vào URL Với FFUF, sử dụng option -d để xác định data cần gửi POST Request Ví dụ: ffuf -w /opt/useful/SecLists/Discovery/WebContent/burp-parameter-names.txt:FUZZ -u :PORT/admin/admin.php -X POST -d 'FUZZ=key' -H 'Content-Type: application/xwww-form-urlencoded' -fs xxx Tìm kiếm giá trị tham số Giả sử sử dụng FFUF để tìm tên tham số, cần thêm giá trị hợp lệ tham số đó, FFUF giúp làm việc này, cần chút thay đổi nhỏ câu lệnh, thay để FUZZ vào tên tham số, để vào phần giá trị tham số, chi tiết ví dụ dưới: ffuf -w ids.txt:FUZZ -u :PORT/admin/admin.php -X POST -d 'id=FUZZ' -H 'Content-Type: application/xwww-form-urlencoded' -fs xxx Câu lệnh duyệt giá trị wordlist để tìm giá trị tham số id Lab, kịch bản, demo Tìm kiếm thư mục web Demo tìm kiếm thư mục web trang web có URL http://167.99.202.131:32466/ Sử dụng câu lệnh ffuf với option -w để xác định wordlist sử dụng -u để xác định URL trang web cần tìm thư mục Hình 13 Sử dụng FFUF để tìm kiếm thư mục ẩn trang web Tìm thư mục trang web Hình 14 Kết tìm kiếm thư mục Với đường dẫn tương ứng **http://167.99.202.131:32466/forum** **http://167.99.202.131:32466/blog** Tìm kiếm files web Kịch bản: Chúng ta phát thư mục /blog, truy cập vào trang web khơng hiển thị Khi đó, sử dụng FFUF để tìm kiếm file thư mục web /blog Hình 15 Trang web khơng hiển thị truy cập thư mục Tìm file hợp lệ wordlist web-extensions.txt , ta thấy với đuôi file php, trang web trả status code 200, nghĩa là file hợp lệ Hình 16 Sử dụng FFUF để tìm file khả dụng thư mục Tiếp theo, tìm kiếm tên file hợp lệ, sử dụng wordlist directory-list2.3-medium.txt Ta tìm trang home.php index.php Hình 17 Kết tìm kiếm file thư mục Tìm subdomain trang web Demo dị tìm subdomain trang web sử dụng wordlist subdomainstop1million-5000.txt, trang web tiến hành dị tìm subdomain hackthebox.eu Hình 18 Câu lệnh tìm subdomain trang web Và kết tìm subdomain trang web hackthebox.eu: Hình 19 Kết tìm kiếm subdomain Tìm kiếm duyệt đệ quy với FFUF Sử dụng FFUF để tìm kiếm thư mục thư mục trực tiếp trang web Hình 20 Tìm kiếm đệ quy với FFUF Ta thấy phát thư mục mới, FFUF thêm task vào hàng chờ Hình 21 Quá trình tìm kiếm đệ quy FFUF Tìm tên tham số với FFUF Kịch bản: Tìm trang admin đọc thông tin nhạy cảm Khi đó, sử dụng FFUF để tìm tên tham số cần có để cấp quyền đọc thơng tin nhạy cảm trang admin Hình 22 Trang web thông báo không đủ quyền đọc liệu Sử dụng FFUF với wordlist burp-parameter-names.txt Hình 23 Câu lệnh FFUF tìm kiếm tên tham số hợp lệ Kết tìm tên tham số user có kích thước response khác với giá trị cịn lại Hình 24 Kết tìm kiếm tham số So sánh So sánh với DirBuster GoBuster GoBuster DirBuster cơng cụ tìm files thư mục ẩn thơng qua hình thức cơng Bruteforce, Dirbuster cơng cụ miễn phí, có điều cơng cụ có giao diện người dùng giải vấn đề mà Gobuster khơng thể làm, recursive Nghĩa là, với Gobuster, tìm directory, in tên directory tiếp tục tìm directories khác dựa vào wordlists cung cấp, khơng vào bên directory tìm in nội dung nằm bên Dirbuster làm điều đó, bù lại Dirbuster không nhanh Gobuster dễ bị lỗi Gobuster Hình 25 Giao diện người dùng DirBuster Nhưng so với FFUF, DirBuster GoBuster có hạn chế định Trong DirBuster GoBuster dùng để tìm kiếm thư mục file ẩn trang web, FFUF đa dụng hơn, sử dụng với nhiều mục đích khác Ngồi ra, viết Go nên FFUF có hiệu suất cao so với DirBuster viết Java Thêm vào đó, việc cài đặt FFUF dễ dàng so với Dirbuster Gobuster So sánh với Wfuzz Về bản, FFUF Wfuzz có chức giống nhau, việc cài đặt sử dụng đơn giản FFUF đánh giá nhanh viết Go, cịn Wfuzz viết Python FFUF viết năm 2019 ưa chuộng tốc độ mà mang lại Kết luận Bài báo cáo trình bày khái niệm tổng quan Fuzz testing, giới thiệu cơng cụ FFUF trình bày kịch bản, demo cách sử dụng FUFF Ngồi ra, qua tìm hiểu demo, thấy FFUF công cụ vô mạnh mẽ hữu hiệu việc kiểm thử web application, giúp chuyên gia bảo mật chuyên viên kiểm thử nhanh chóng thu thập thơng tin trang web rút gọn thời gian tìm kiếm lỗ hổng bảo mật tính tự động hóa cơng cụ Hơn thế, cộng đồng bảo mật tồn giới khơng ngừng phát triển, bảo trì hồn thiện để tạo cơng cụ có hiệu cao TÀI LIỆU THAM KHẢO DDos (2015, 12 7) SecLists - Thứ bạn cần trình PenTesting Retrieved from WhiteHat Hòa, V T (2020, 20 9) Fuzzing web với FFUF Retrieved from Viblo Skelton, M (2020, 17) Everything you need to know about FFUF Retrieved from Codingo Trang, T T (2017, 22) Tìm hiểu Fuzz Testing Retrieved from Viblo ... codes and ranges -fl Filter by amount of lines in response Comma separated list of line counts and ranges -fr Filter regexp -fs Filter HTTP response size Comma separated list of sizes and ranges... Việt/ Giải thích Danh sách từ Mã nguồn mở Luồng Thông báo yêu cầu HTTP Công cụ Tập tin Một loại công mạng Phần đuôi tập tin Tùy chọn Phần mềm máy chủ web mở rộng tạo Microsoft DANH MỤC HÌNH ẢNH... Cài đặt FFUF máy Linux o Cài đặt mơi trường Vì FFUF viết golang nên việc cần làm đặt golang sudo apt-get install golang Hình Cài đặt golang máy Linux o Cài đặt FFUF Nếu cài sẵn go compiler cần gõ