1. Trang chủ
  2. » Giáo Dục - Đào Tạo

An toàn mạng Bài báo cáo: Tìm hiểu về DotDotPwn trong Kali Linux

33 29 0

Đ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

Nội dung

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 DotDotPwn Kali Linux Giảng viên hướng dẫn: Sinh viên thực hiện: Mã sinh viên: Nhóm: TS Đặng Minh Tuấn Phạm Đăng Long B18DCAT147 Hà Nội 2021 MỤC LỤC DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT………………………… DANH MỤC CÁC HÌNH ẢNH……………………………………………………………… LỜI MỞ ĐẦU……………………………………………………………………………… … Chương 1: Tổng quan DotDotPwn…………………………………………………… … Dotdotpwn gì? Lịch sử hình thành, trình phát triển Dotdotpwn…………………………… .7 Khái quát Tấn cơng Directory Traversal……………………………………………….7 3.1 Tấn cơng Directory Traversal gì? 3.2 Directory Traversal xuất đâu? .7 3.3 Nguyên nhân gây Directory Traversal……………………………………………… 3.4 Cơ chế hoạt động công Directory Traversal…………………………………… Khái quát fuzzing testing……………………………………………………………….11 Chương 2: Hướng dẫn cài đặt sử dụng DotDotPwn cho hệ điều hành Kali-Linux…….14 Kiểm tra xem Môi trường Perl thiết lập hay chưa…………………………… 14 Chuyển Desktop tạo thư mục có tên DotDotPwn đây…………………………14 Clone DotDotPwn từ Github máy…………………………………………………… 15 Kiểm tra cài đặt module thiếu với quyền root……………………………16 Mở giao diện công cụ DotDotPwn……………………………………………………17 Hướng dẫn sử dụng DotDotPwn………………………………………………………… 17 Ví dụ cụ thể…………………………………………………………………………………19 Chương 3: Demo……………………………………………………………………………….21 LAB 1: Tấn công Directory Traversal, traversal sequence loại bỏ trình giải mã URL thừa…………………………………………………………………………… ……… 21 LAB 2: File Inclusion/Directory Traversal………………………………………………… 28 DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT Từ viết tắt CMS Thuật ngữ tiếng Anh/Giải thích Content management system Thuật ngữ tiếng Việt/Giải thích Hệ quản trị nội dung website ERP Enterprise resource planning Phần mềm hoạch định nguồn lực doanh nghiệp FTP File Transfer Protocol Giao thức truyền tải tập tin HTTP Hypertext Transfer Protocol Giao thức Truyền tải Siêu Văn Bản LAB Laboratory Phịng thí nghiệm OS Operating System Hệ điều hành QA Quality Assurance Đảm bảo chất lượng STDOUT Standard output Chuẩn đầu TFTP Trivial File Transfer Protocol Giao thức truyền tập tin đơn giản URL Uniform Resource Locator Định vị tài nguyên thống DANH MỤC CÁC HÌNH ẢNH Hình 1: Kiến trúc DotDotPwn………………………………… ……………………………6 Hình 2: Quy trình Directory Traversal………………………………………………… 11 Hình 3: Quy trình kiểm thử Fuzzing…………………………………………………………… 13 Hình 4: Kết kiểm tra mơi trường Perl……………………………………………………….14 Hình 5: Kết sau tạo thư mục…………………………………………………………….15 Hình 6: Kết sau Clone DotDotPwn máy…………………………………………… 15 Hình 7: Kết sau cài đặt xong module thiếu………………………………….16 Hình 8: Giảo diện DotDotPwn………………………………………………………………… 17 Hình 9: Giao diện LAB………………………………………………………………………… 22 Hình 10: Mở hình ảnh tab để lấy URL……………………………………………… 23 Hình 11: Giao diện Proxy Burp Suite……………………………………………………….23 Hình 12: Giao diện Reepeater sau gửi thơng tin từ Proxy sang……………………….24 Hình 14: Nhập lệnh………………………………………………………………………………25 Hình 15: Lỗ hổng LAB tìm thấy…………………………………………………… 26 Hình 16: Nội dung File Passwd LAB 1…………………………………………………… 27 Hình 17: Giao diện LAB 2…………………………………………………………………….…28 Hình 18: Chuẩn bị cơng cụ DotDotPwn…………………………………………………………29 Hình 19: Nhập lệnh………………………………………………………………………………30 Hình 20: Phát lỗ hổng LAB 2………………………………………………………… 30 Hình 21: Nội dung file passwd LAB 2………………………………………………………31 LỜI MỞ ĐẦU DotDotPwn fuzzer linh hoạt thơng minh, phát lỗ hổng traversal directory phần mềm máy chủ HTTP / FTP / TFTP, tảng web CMS, ERP, Blog, v.v Kiểm thử Fuzz Fuzzing kỹ thuật kiểm tra phần mềm Hộp đen (Black box), việc tìm lỗi ứng dụng cách inject vào liệu sai định dạng (malformed) bán sai định dạng (semimalformed) cách tự động Ngồi ra, có module độc lập với giao thức để gửi payload mong muốn đến máy chủ cổng định Mặt khác, sử dụng theo kịch có trước cách sử dụng module STDOUT DotDotPwn viết ngơn ngữ lập trình perl chạy tảng OS X, Unix-like Windows Với tiểu luận với đề tài “ Tìm hiểu DotDotPwn Kali Linux” tìm hiểu công Traversal Directory, Fuzz, Fuzzing, ứng dụng để hiểu rõ tiến hành thử nghiệm kiểm chứng Chương Tổng quan DotDotPwn Dotdotpwn gì? Các thư mục ứng dụng dựa Web chứa nhiều thông tin khác chức trang web Một số thư mục loại thư mục thơng thường, số thư mục nhạy cảm chứa số thơng tin quan trọng Ví dụ thư mục /etc/passwd thơng tin Linux server Từ trở thành mục tiêu công Directory Traversal Duyệt thư mục việc khó với tester nào, công cụ tự động mang tên DotDotPwn phát triển DotDotPwn có số module như: - HTTP HTTP URL FTP TFTP Payload (Không phụ thuộc giao thức) STDOUT Hình 1: Kiến trúc DotDotPwn Lịch sử hình thành, trình phát triển Dotdotpwn DotDotPwn phiên 1.0 mắt vào ngày 21 tháng năm 2010, viết ngơn ngữ lập trình Pearl Tác giả phần mềm Christian Navarrete (chr1x) Alejandro Hernandez H (nitr0us) Được nghiên cứu phát triển CubilFelino Security Research Lab Chatsubo [(in)Security Dark] Labs Ngồi tác giả trên, cịn có đóng góp cá nhân khác code ý tưởng để phần mềm hồn thiện đầy đủ chức hơn, ví dụ Eldar Marcussen (Wireghoul): hỗ trợ SSL module http-url http, Roberto Salgado (LightOS) : ý tưởng thuật toán Bisection để phát độ sâu xác lỗ hổng truyền tải thư mục tìm thấy… Hiện phiên DotDotPwn 3.0.2, mắt ngày 10 tháng 11 năm 2016 Khái quát Tấn công Directory Traversal 3.1 Tấn công Directory Traversal gì? Kiểm sốt hợp lí truy cập nội dung trang web yếu tố định việc điều hành máy chủ bảo mật Tuy nhiên có dạng cơng cho phép tin tặc đọc file server chạy ứng dụng web đó, cơng Directory Traversal hay biết đến với tên khác file path traversal Trên server có phân quyền sở hữu file folder, admin sử dụng Access Control List để quy định sử dụng file nhằm mục đích (read, write, excute) Còn Directory Traversal thực hành vi truy cập vào file hay folder bị hạn chế truy cập Loại cơng ảnh hưởng tới mã nguồn ứng dụng, liệu, thông tin đăng nhập hệ thống back-end, tệp điều hành nhạy cảm Trong số trường hợp, kẻ cơng tiến hành ghi vào tệp cách tùy ý máy chủ, cho phép chúng sửa đổi liệu hành vi ứng dụng cuối kiểm sốt hồn tồn máy chủ 3.2 Directory Traversal xuất đâu? Tương tự OS Command Injection Path Traversal xuất đâu khơng thực biện pháp lọc kí tự mà người dùng nhập vào ràng buộc phân quyền rõ ràng cho file folder phép truy cập 3.3 Nguyên nhân gây Directory Traversal: Vẫn có nguyên nhân chủ yếu vơ tình cố tình Do lập trình viên chủ quan, không phân quyền thư mục rõ ràng không lọc kí tự mà người dùng nhập vào có an tồn hay khơng Từ kẻ cơng lợi dụng mà truy cập vào dấu phân cách thư mục mà truy cập chỉnh sửa file có hệ thống Hoặc cố tình build lab có lý sâu xa mà nhân viên cố tình làm 3.4 Cơ chế hoạt động cơng Directory Traversal: Hình thức công không cần sử dụng công cụ mà đơn thao tác biến với / (dot-dot-slash) để truy cập đến file, thư mục, bao gồm source code, file hệ thống, … Để nhận biết khả khai thác lỗi này, kẻ cơng thường quan sát kết có từ spider crawler mang lại Quan sát khả khai thác Path Traversal ? Ví dụ kết trả từ Spider hay Crawler có dạng sau: http://sinhvienptit.com/getUserProfile.jsp?page=main.html http:// sinhvienptit.com/index.php?file=help http:// sinhvienptit.com/main.cgi?home=index.htm Khi có kết từ việc spider Website với URL có dạng trên, kẻ cơng sử dụng “ /” để thử liệu có truy cập file thư mục khác khơng ? Ví dụ http:// sinhvienptit.com/getUserProfile.jsp?page= / / /etc/passwd Dựa vào thông báo lỗi từ Website kẻ công biết đường dẫn thực WebServer, từ kết hợp với / (dot-dot-slash) để truy cập đến file quan Website database, file cấu hình, … Lưu ý Path Traversal không xảy biến phương thức GET mà cịn xuất phương thức POST biến COOKIE Ví dụ: Một số website sử dụng COOKIE để lưu template động cho Website sau: Cookie: ID= 2ddd73ef3620afc62cd6942c31bb6003:TEMPLATE=xpstyle Cookie: USER=member1234: PSTYLE=LongPTIT Như kẻ cơng thay đổi COOKIE để thực Directory Traversal Attack sau Cookie: ID= 2ddd73ef3620afc62cd6942c31bb6003:TEMPLATE=xpstyle Cookie: USER=member1234: PSTYLE= / /etc/passwd Trong trình khai thác kẻ cơng encode double encode, sử dụng %00(null) để bypass filter mà Website áp dụng Ví dụ như: %2e%2e%2f mơ tả cho / %2e%2e/ mô tả cho / %2f mô tả cho / %2e%2e%5c mô tả cho \ %2e%2e\ mô tả cho \ %5c mô tả cho \ %252e%252e%255c mô tả cho \ %255c mô tả cho \ … Đối với UTF-8 %c0%af mô tả cho / %c1%9c mô tả cho \ Khi tiếp cận với ứng dụng Web, việc kiểm tra có khả bị lỗi Path Traversal thực hai loại: + Nếu kẻ cơng khơng thể có source chúng dùng spider, crawler để thực kiểm tra Website từ kết mà spider mang lại chúng kiểm tra biến phương thức GET, POST COOKIE mà có khả bị lỗi + Nếu kẻ cơng có source code tìm kiếm hàm ngơn ngữ lập trình Web mà có khả gây lỗi Path Traversal sau: PHP: include(), include_once(), require(), require_once(), fopen(), readfile(), JSP/Servlet: java.io.File(), java.io.FileReader(), ASP: include file, include virtual, Trong thực tế, có lỗ hổng để kẻ cơng khai thác Directory Traversal Năm 2019, nhà nghiên cứu phát lỗ hổng mức độ nghiêm trọng Jira Service Desk Atlassian cho phép kẻ cơng dễ dàng truy cập vào sở liệu toàn liệu khách hàng Cùng năm đó, Adobe phải cho mắt vá lỗi nghiêm trọng, có lỗi khai thác để cơng Directory Traversal, kẻ cơng vượt qua kiểm soát truy cập khai thác lỗ hổng Một số cách ngăn chặn Directory Traversal: Nên validate input người dùng trước xử lý Sử dụng whitelist cho giá trị cho phép Hoặc tên file kí tự số,chữ khơng nên chứa ký tự đặc biệt 10 -x Port để kết nối Mặc định: HTTP=80, FTP=21, TFTP=69 -t Thời gian lần test Mặc định: 300ms -b Dừng phát lỗ hổng -q Chế độ im lặng (Khơng in hình sau lần thử) Ví dụ cụ thể HTTP Module: dotdotpwn -m http -h 192.168.1.1 -x 8080 -f /etc/hosts -k "localhost" -d -t 200 -s Giải thích: Độ sâu tối đa fuzz 8, DotDotPwn gửi request giây (-t) tới Web server (-m) lắng nghe cổng 8080 (-x) có địa 192.168.1.1 (-h) DotDotPwn cố gắng truy xuất /etc/hosts (-f) để tránh xác thực sai, kiểm tra bổ sung thực phản hồi server để tìm từ khóa "localhost" bên trong, phát hiện, dấu hiệu lỗ hổng Ngồi ra, để biết thêm thơng tin, banner web server truy xuất (-s) DotDotPwn lưu kết quét tệp tên 192.168.1.1_ _ thư mục Reports HTTP URL Module 19 dotdotpwn -m http-url -u http://192.168.1.1:10000/unauthenticated/TRAVERSAL -O -k "root:" -r webmin.txt DotDotPwn tiến hành nhận diện Hệ điều hành chạy địa 192.168.1.1 (-O) sau phát hiện, Traversal Engine tạo fuzz dựa Hệ điều hành xác định Sau đó, DotDotpwn thay TRAVERSAL token URL định (-u) phần traversal tạo sau gửi fuzz request lên Web server lắng nghe cổng 10000 Sau đó, để kiểm tra thêm lần nữa, DotDotPwn tìm từ khóa “root” từ phản hồi Server, phát lỗ hổng Server FTP Module dotdotpwn -m ftp -h 192.168.1.1 -s -U nitr0us -P n1tr0u5pwnzj00 -o windows q -r ftp_server.txt Trước hết, DotDotPwn tiến hành lấy banner message (-s) FTP Server(-m) sau đó, đăng nhập tên người dùng (-U) mật (-P) định trường hợp máy chủ không cho phép truy cập ẩn danh Sau xác thực, lấy thơng tin tệp phổ biến hệ điều hành windows (-o) thư mục "get_files" Ngồi ra, DotDotPwn khơng in chi tiết lần thử, thay vào đó, hoạt động chế độ yên lặng (-q) in lỗ hổng tìm thấy 20 Chương Demo LAB 1: Tấn công Directory Traversal, traversal sequence loại bỏ trình giải mã URL thừa Sử dụng LAB online tại: https://portswigger.net/web-security/file-pathtraversal/lab-superfluous-url-decode Tại LAB này, phần hiển thị hình ảnh hàng hóa có chứa lỗ hổng khai thác cách cơng Directory Traversal LAB chặn toàn input có chứa Directory Traversal Sau đó, thực giải mã URL input trước sử dụng Công cụ sử dụng: - Burp Suite Community Editon - DotDotPwn Các bước thực hiện: Bước 1: Khởi chạy Burp Suite sau truy cập LAB trình duyệt: 21 Hình 9: Giao diện LAB Bước 2:Do phần hình hàng hóa có chứa lỗ hổng cơng Directory Traversal nên ta chọn ảnh hàng hóa chọn mở tab 22 Hình 10: Mở hình ảnh tab để lấy URL Bước 3: Sau thực xong bước 2, ta vào phần Proxy Burp Suite, chọn send to repeater Hình 11: Giao diện Proxy Burp Suite Bước 4: Trong Repeater, sửa “GET /image?filename=54.jpg HTTP/1.1” thành “GET /image?filename=/etc/passwd HTTP/1.1” Sau nhấn “Send”, ta kết hình Do LAB chặn tồn input có chứa Directory Traversal nên kết trả “No such file” Vì lí đó, ta cần dùng đến DotDotPwn để tìm lỗ hổng để cơng Directory Traversal 23 Hình 12: Giao diện Reepeater sau gửi thông tin từ Proxy sang Bước 5: Khởi chạy DotDotPwn máy Kali Linux lệnh “dotdotpwn -h” để xem chi tiết lệnh DotDotPwn Hình 13: Chuẩn bị công cụ DotDotPwn 24 Bước 6: Chạy lệnh sau: dotdotpwn -m http-url -u "https://acc01f9f1f6d0d0ec04f0505003500e3.websecurity-academy.net/image?filename=TRAVERSAL" -f "/etc/passwd" -k "root" -d -b Hình 14: Nhập lệnh Giải thích: -m: Lựa chọn module, ta chọn http-url -u: URL ảnh: https://acc01f9f1f6d0d0ec04f0505003500e3.web-securityacademy.net/image?filename=54.jpg Thay phần đằng sau file name TRAVERSAL để tiến hành fuzz -f: Tên file cụ thể, "/etc/passwd" -k: phần text để nối response, "root" -d: Độ sâu traversal, lựa chọn 25 -b: Dừng sau lỗ hổng tìm thấy Nhấn Enter để DotDotPwn bắt đầu test DotDotPwn dừng phát lỗ hổng: Hình 15: Lỗ hổng LAB tìm thấy Bước 7: Copy phần đánh dấu VULNERABLE: “ %252f %252f %252fetc%252fpasswd” sang Burp Suite, thay cho“/etc/passwd” chọn “Send” 26 Hình 16: Nội dung File Passwd LAB Sau thực thành công bước 7, ta công Directory Traversal thành công biết nột dung file passwd 27 LAB 2: File Inclusion/Directory Traversal Sử dụng LAB online tại: https://academy.hackthebox.com/ Tại LAB này, lỗ hổng khai thác cách công Directory Traversal tồn thẻ language Do ta click vào đổi language, phát có thay đổi URL, lỗ hổng để sử dụng cơng cụ DotDotPwn Cơng cụ sử dụng: - DotDotPwn Hình 17: Giao diện LAB Các bước thực hiện: Bước 1: Khởi chạy DotDotpwn 28 Hình 18: Chuẩn bị cơng cụ DotDotPwn Bước 2: Chạy lệnh: dotdotpwn -m http-url -h http://104.248.168.109:31310 -u http://104.248.168.109:31310/index.php?language=TRAVERSAL -f etc/passwd -k “root” -m: Lựa chọn module, ta chọn http-url -h : hostname: http://104.248.168.109:31310 -u: URL ảnh: http://104.248.168.109:31310/index.php?language=TRAVERSAL phần đằng sau language name TRAVERSAL để tiến hành fuzz -f: Tên file cụ thể, "/etc/passwd" -k: phần text để nối response, "root" 29 Hình 19: Nhập lệnh Nhấn Enter để thực quét Sau quét, ta kết sau: Hình 20: Phát lỗ hổng LAB 30 Bước 3:Do LAB khơng chặn input có chứa Directory Traversal nên ta truy cập trực tiếp cách copy dòng đánh dấu VULNERABLE, truy cập trình duyệt ta kết sau : Hình 21: Nội dung file passwd LAB Sau thực thành công, ta truy cập vào file /etc/passwd thành cơng vào có thơng tin từ file 31 Kết luận Các công Directory Traversal vào Web Server không đủ bảo mật gần có dấu hiệu tăng cao, cịn lỗ hổng nghiêm kẻ công khai thác lỗ hổng có khả xâm phạm tồn máy chủ web Dotdotpwn công cụ quét lỗ hổng Directory Traversal mạnh, cho phép tìm lỗ hổng bảo mật cưa Web Server để nhanh chóng khắc phục, tránh cố đáng tiếc trước thức vận hành, nhiên tồn điểm yếu khác Điểm mạnh: - Dễ cài đặt, yêu cầu Perl Nmap Dễ sử dụng Nhiều Module khác để lựa chọn tùy trường hợp Có thể cài nhiều tảng khác nhau: Linux, Windows, OS X Điểm yếu: - Tốc độ quét chậm - Chỉ hỗ trợ việc tìm lỗ hổng Directory Traversal 32 Tài liệu tham khảo [1] [2] [3] [4] [5] [6] [7] [8] [9] https://portswigger.net/web-security/file-path-traversal https://www.owasp.org/index.php/Path_Traversal Francik, Paul D Characterizing Vulnerabilities Associated with Connected Lighting: Exploring Authorization Protocols No PNNL-29518 Pacific Northwest National Lab.(PNNL), Richland, WA (United States), 2019 Li, Jun, Bodong Zhao, and Chao Zhang "Fuzzing: a survey." Cybersecurity 1.1 (2018): 1-13 https://en.wikipedia.org/wiki/Fuzzing https://dotdotpwn.blogspot.com/ https://github.com/wireghoul/dotdotpwn https://academy.hackthebox.com/module/details/23 https://en.wikipedia.org/wiki/Directory_traversal_attack 33 ... trước cách sử dụng module STDOUT DotDotPwn viết ngơn ngữ lập trình perl chạy tảng OS X, Unix-like Windows Với tiểu luận với đề tài “ Tìm hiểu DotDotPwn Kali Linux? ?? tìm hiểu công Traversal Directory,... cần dùng đến DotDotPwn để tìm lỗ hổng để cơng Directory Traversal 23 Hình 12: Giao diện Reepeater sau gửi thông tin từ Proxy sang Bước 5: Khởi chạy DotDotPwn máy Kali Linux lệnh ? ?dotdotpwn -h”... module thiếu 16 Mở giao diện cơng cụ DotDotPwn Sử dụng lệnh: /dotdotpwn. pl Hình 8: Giảo diện DotDotPwn Hướng dẫn sử dụng DotDotPwn Cú pháp lệnh DotDotPwn: /dotdotpwn. pl -m [module] -h [host] [additional_options]

Ngày đăng: 09/02/2022, 14:08

TỪ KHÓA LIÊN QUAN