Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
12,54 MB
Nội dung
u HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG ******** BÁO CÁO BÀI TẬP CUỐI KỲ AN TOÀN MẠNG Đề tài: Sinh viên: Tìm hiểu cơng cụ Gobuster Bùi Tuấn Anh – B18DCAT003 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 HÌNH VẼ LỜI NÓI ĐẦU KHÁI QUÁT VỀ GOBUSTER I Giới thiệu Gobuster II Lịch sử đời CÀI ĐẶT, TRIỂN KHAI VÀ SỬ DỤNG GOBUSTER I Cài đặt Gobuster Cài đặt cách biên dịch trực tiếp từ mã nguồn Cài đặt thơng qua gói phần mềm Kali Linux 10 II Hệ thống tập lệnh Gobuster 11 Chế độ dns 13 Chế độ dir 14 Chế độ s3 15 Chế độ vhost 16 Chế độ fuzz 17 III Cách sử dụng Gobuster 18 Chế độ dir 18 Chế độ dns 20 Chế độ vhost 23 Chế độ s3 23 Chế độ fuzz 23 THỬ NGHIỆM TẤN CÔNG BẰNG GOBUSTER 24 I Thu thập thông tin 26 Lý thuyết 26 Chi tiết bước kiểm thử thu thập kết 26 Thu nhập thông tin website deploy 27 II Dò quét hệ thống 35 Lý thuyết 35 Dò quét trang web sử dụng thành phần chứa lỗ hổng 35 III Brue Force lấy mật đăng nhập 38 DEMO 40 KẾT LUẬN 41 TÀI LIỆU THAM KHẢO 42 DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT Từ viết tắt AWS Thuật ngữ tiếng Anh/Giải thích Thuật ngữ tiếng Việt/Giải thích Amazon Web Services DNS HTTP IP PoC thuộc công ty Amazon Basic Auth Xác thực truy cập Bucket Các khối liệu thuộc AWS Tấn cơng bẻ khóa phương Brute force CVE Nền tảng điện toán đám pháp vét cạn Command Câu lệnh hệ thống Common Vulnerabilities and Các lỗ hổng phơi nhiễm Exposures phổ biến Cookie Chuỗi xác thực phiên website Domain Name System Hệ thống phân giải tên miền Domain Tên miền HyperText Transfer Protocol Giao thức truyền tải siêu văn Method Phương thức Internet Protocol Giao thức Internet Password Mật Private key Khóa bí mật Proof of Content Chứng minh khái niệm Máy chủ làm nhiệm vụ chuyển Proxy tiếp thông tin Dữ liệu gửi từ người dùng đến Request máy chủ Researcher Người nghiên cứu Dữ liệu phản hồi từ máy chủ Response cho người dùng Status code Mã trạng thái TLS Transport Layer Security Bảo mật tầng giao vận URL Uniform Resource Locator Định vị tài nguyên thống Chuỗi nhận diện trình duyệt User-agent web Wildcard Đại diện Wordlist Danh sách từ khóa DANH MỤC HÌNH VẼ Hình 1-1: Mã nguồn Gobuster Github Hình 2-1: Cài đặt Gobuster thông qua Golang Github Hình 2-2: Cài đặt Gobuster cách biên dịch trực tiếp mã nguồn Golang 10 Hình 2-3: Cài đặt Gobuster thơng qua apt-get 11 Hình 2-4: Lệnh gobuster help 12 Hình 2-5: Lệnh gobuster help dns 13 Hình 2-6: Lệnh gobuster help dir 14 Hình 2-7: Lệnh gobuster help s3 15 Hình 2-8: Lệnh gobuster help vhost 16 Hình 2-9: Lệnh gobuster help fuzz 17 Hình 2-10: Kết chạy gobuster chế độ dir với tùy chọn cấu hình mặc định 18 Hình 2-11: Kết gobuster chế độ dir với tùy chọn không hiển thị status code 19 Hình 2-12: Kết chạy gobuster chế độ dir với tùy chọn hiển thi chi tiết kết 19 Hình 2-13: Kết chạy gobuster chế độ dir với tùy chọn hiển thị kết đầu 20 Hình 2-14: Kết chạy gobuster chế độ dns với tùy chọn cấu hình mặc định 21 Hình 2-15: Kết chạy gobuster chế độ dns với tùy chọn hiển thị địa IP kết 22 Hình 2-16: Kết chạy gobuster chế độ dns xuất cảnh báo phân giải base domain 22 Hình 2-17: Kết chạy gobuster chế độ dns wildcard DNS phát cách 23 Hình 2-18: Kết chạy gobuster chế độ dns người dùng muốn buộc xử lý domain có wildcard 23 Hình 3-1: Machine Geisha sau import từ file ovf 24 Hình 3-2: Machine Geisha sau khởi động 25 Hình 3-3: Mơ hình chung để thực lab 25 Hình 3-4: Kiểm tra IP máy ảo Kali Linux command ip a 26 Hình 3-5: Xác định IP machine Geisha nmap 27 Hình 3-6: Quét cổng machine Geisha nmap 28 Hình 3-7: Sử dụng wapplyzer với trang web http://192.168.242.133:80 29 Hình 3-8: Sử dụng wapplyzer với trang web http://192.168.242.133:7080 29 Hình 3-9: Sử dụng wapplyzer với trang web http://192.168.242.133:7125 30 Hình 3-10: Sử dụng wapplyzer với trang web http://192.168.242.133:8088 30 Hình 3-11: Sử dụng wapplyzer với trang web https://192.168.242.133:9198 31 Hình 3-12: Danh sách CVE Apache version 2.4.38 32 Hình 3-13: Danh sách CVE Nngix server version 1.14.2 33 Hình 3-14: Danh sách CVE PHP version 7.2.10 34 Hình 3-15: Thực chạy Gobuster với trang web http://192.168.242.133:80 36 Hình 3-16: Thực chạy Gobuster với trang web http://192.168.242.133:7125 36 Hình 3-17: File index.html trang web http://192.168.242.133:80 36 Hình 3-18: File info.php trang web http://192.168.242.133:80 37 Hình 3-19: File index.php trang web http://192.168.242.133:7125 37 Hình 3-20: File passwd trang web http://192.168.242.133:7125/passwd 38 Hình 3-21: Brute force mật ssh user geisha Hydra 39 Hình 3-22: Đăng nhập vào Machine Geisha 39 LỜI NÓI ĐẦU Hiện nay, Internet dịch vụ số ngày bùng nổ có bước phát triển vượt bậc Tính đến tháng năm 2021, có khoảng 4,66 tỷ người giới sử dụng Internet dịch vụ cung cấp trực tuyến1 thông qua Internet nhờ vào thân thiện sử dụng khả tiếp cận dễ dàng lúc, nơi Vì vậy, hầu hết tổ chức hay đơn vị cung cấp dịch vụ cơng ty, doanh nghiệp, ngân hàng, phủ, giáo dục, y tế, … muốn cung cấp dịch vụ cho bên liên quan thơng qua hệ thống trực tuyến Tuy nhiên, bên cạnh tiện lợi, hệ thống trực tuyến phải đối mặt với mối nguy lớn từ công mạng Hiện nay, công mạng trở thành rủi ro lớn cho chuyển đổi kỹ thuật số toàn giới Sự bất cẩn khâu lập trình thiếu kiến thức bảo mật nguyên nhân cho tồn loại lỗ hổng tồn hệ thống Chính vậy, vấn đề liên quan đến bảo mật kiểm thử xâm nhập dần trở thành mối quan tâm thiết yếu với công ty hay tổ chức có hệ thống trực tuyến Nhận thấy thiết yếu đó, có nhiều cơng cụ hỗ trợ việc kiểm thử xâm nhập, đánh giá an tồn thơng tin đời Được bắt đầu phát triển vào năm 2015, công cụ Gobuster trở thành công cụ hữu hiệu trình thực thu thập thơng tin thực kiểm thử xâm nhập Gobuster cộng đồng đón nhận rộng rãi tích hợp vào gói phần mềm phân phối Kali Linux - phân phối Linux chuyên biệt hóa cho hacker chuyên gia bảo mật Trong báo cáo này, em trình bày kết tìm hiểu Metasploit Framework Báo cáo em chia làm chương Trong đó: https://www.statista.com/statistics/617136/digital-population-worldwide/ • Chương trình bày khái qt Gobuser • Chương trình bày cách cài đặt, triển khai sử dụng Gobuster • Chương lab để thử nghiệm thực công Gobuster Trong q trình tìm hiểu khơng thể tránh khỏi thiếu sót Mong thầy góp ý để em hồn thiện báo cáo cách tốt Em xin chân thành cảm ơn thầy! KHÁI QUÁT VỀ GOBUSTER I Giới thiệu Gobuster Trong trình kiểm thử website hay web service, bước mà chuyên viên kiểm thử cần thực Information Gathering - thu thập thông tin Tại bước này, mục tiêu cần tìm thấy nhiều thơng tin mục tiêu kiểm thử tốt Để tăng hiệu quả, mức độ xác đồng thời giúp tiết kiệm thời gian cơng sức việc sử dụng cơng cụ có sẵn tự viết bắt buộc Để đáp ứng nhu cầu này, công cụ gobuster tích hợp vào phân phối Kali Linux với mục tiêu thực công brute-force vào mục tiêu: • Các URL (đường dẫn thư mục) website • Các DNS subdomain (có hỗ trợ wildcard DNS) • Tên máy chủ áo máy chủ web mục tiêu • Các bucket thuộc Amazon S3 II Lịch sử đời Gobuster công cụ mã nguồn mở, viết Golang bắt đầu phát triển vào năm 2015 Hai tác giả dự án OJ Reeves Christian Mehlmauer Mã nguồn gobuster lưu trữ cập nhật https://github.com/OJ/gobuster Hình 1-1: Mã nguồn Gobuster Github Mục tiêu OJ Reeves bắt đầu phát triển Gobuster: • Xây dựng cơng cụ khơng địi hỏi giao diện nặng Java dirbuster OWASP Vì vậy, Gobuster hoạt động chủ yếu giao diện dịng lệnh • Hạn chế việc đệ quy công brute-force để tăng tốc độ thực việc thu thập thơng tin • Tạo công cụ cho phép công brute-force vào nhiều thư mục với nhiều loại mở rộng lúc • Cơng cụ biên dịch thành ứng dụng gốc nhiều nên tảng khác • Đồng thời, phải chạy nhanh tập lệnh thơng dịch (ví dụ Python) • Và cơng cụ đáp ứng tính đồng thời, tăng khả xử lý nhiều tác vụ lúc Vì vậy, OJ Reeves lựa chọn Golang để phát triển Gobuster Hiện Gobuster phát triển đến phiên 3.1 Trong bao gồm phiên nhỏ 3.1-dev - phiên dành cho lập trình viên tiếp tục đóng góp để phát triển Gobuster 3.1 - phiên dành cho đa số người dùng thông thường Các cập nhật với phiên 3.1-dev: • Sử dụng Golang phiên 1.6 • Tăng xác sử dụng context • Loại bỏ cờ ký tự đại diện (ngoại trừ chế độ DNS) Các cập nhật với phiên 3.1 thơng thường: • Hỗ trợ liệt kê bucket AWS S3 cơng khai • Bổ sung chế độ fuzzing • Có thể định phương thức HTTP cần sử dụng • Hỗ trợ sử dụng pattern Người dùng định file chứa pattern sử dụng cho từ, dòng Mọi xuất thuật ngữ {GOBUSTER} đượcs thay với wordlist sử dụng • Bổ sung thêm cờ p, viết tắt cho proxy sử dụng cờ pattern CÀI ĐẶT, TRIỂN KHAI VÀ SỬ DỤNG GOBUSTER I Cài đặt Gobuster Như trình bày trên, Gobuster viết Golang tích hợp sẵn gói phần mềm phân phối Kali Linux Vì vậy, Gobuster cài đặt thơng qua hai cách: • Cài đặt cách biên dịch trực tiếp từ mã nguồn • Cài đặt thơng qua gói phần mềm Kali Linux lệnh apt-get install Cài đặt cách biên dịch trực tiếp từ mã nguồn Cách cài đặt yêu cầu người dùng có sẵn mơi trường Golang (tối thiểu phiên 1.16) Người dùng cần chạy lệnh sau: • go install github.com/OJ/gobuster/v3@latest Hình 2-1: Cài đặt Gobuster thơng qua Golang Github Hình 3-6: Quét cổng machine Geisha nmap Kết thu được: • IP machine: 192.168.242.133 • Các cổng mở: 21, 22, 80, 7080, 7125, 8088, 9198 • Các dịch vụ sử dụng: o SSH cổng 22 o Apache server cổng 80, 8080 o Nginx server cổng 3389, 7125 o LiteSpeed server cổng 7080, 8088 o SimpleHTTPServer cổng 9198 • Hệ điều hành sử dụng: Linux Dựa vào thơng tin thu thập được, thấy machine Geisha máy chủ web có nhiều website triển khai dịch vụ web server Apache, Nginx, LiteSpeed SimpleHTTPServer Thu thập thông tin website deploy Công cụ sử dụng: • Extension Wappalyzer • Trang web: https://www.cvedetails.com/ • Trang web: https://nvd.nist.gov/ Các bước thực hiện: 28 Bước 1: Truy cập đến trang web triển khai machine Sử dụng extension Wappalyzer để xác định loại server, ngôn ngữ, framework mà trang web sử dụng Hình 3-7: Sử dụng wapplyzer với trang web http://192.168.242.133:80 Hình 3-8: Sử dụng wapplyzer với trang web http://192.168.242.133:7080 29 Hình 3-9: Sử dụng wapplyzer với trang web http://192.168.242.133:7125 Hình 3-10: Sử dụng wapplyzer với trang web http://192.168.242.133:8088 30 Hình 3-11: Sử dụng wapplyzer với trang web https://192.168.242.133:9198 Bước 2: Sử dụng thông tin thu thập trang web https://www.cvedetails.com/ https://nvd.nist.gov/ để tìm kiếm lỗ hổng, CVE tồn thành phần mà trang web sử dụng 31 Hình 3-12: Danh sách CVE Apache version 2.4.38 32 Hình 3-13: Danh sách CVE Nngix server version 1.14.2 33 Hình 3-14: Danh sách CVE PHP version 7.2.10 Kết quả: • Machine sử dụng phân phối Debian Linux • Trang web cổng 80 sử dụng Apache server version 2.4.38 • Trang web cổng 7080 sử dụng LiteSpeed server • Trang web cổng 7125 sử dụng Nginx server version 1.17.10 ngôn ngữ PHP version 7.2.10 34 • Trang web cổng 8088 sử dụng LiteSpeed server • Trang web cổng 9198 sử dụng SimpleHTTPServer version 0.6 ngôn ngữ Python version 2.7.16 Sau tiến hành thu thập thông tin website deploy machine Geisha ta nhận thấy thành phần Apache server version 2.4.38, Nginx server version 1.14.2 PHP version 7.2.10 chứa lỗ hổng cơng bố II Dị qt hệ thống Lý thuyết Sau có thơng tin thành phần tồn lỗ hổng, mục tiêu em khai thác lỗ hổng tồn để chiếm quyền điều khiển server Tuy nhiên, có nhiều thành phần chứa lỗ hổng Và số lượng lỗ hổng công bố ứng với thành phần nhiều Vì vậy, bước cần thực dò quét trang web sử dụng thành phần có chứa lỗ hổng để tìm đường dẫn, file trang web Từ đó, kết hợp với thơng tin có bước để chọn lỗ hổng khai thác Mục tiêu cần thực dò quét: • Trang web cổng 80 sử dụng Apache server version 2.4.38 • Trang web cổng 7125 sử dụng Nginx server version 1.17.10 ngôn ngữ PHP version 7.2.10 Dò quét trang web sử dụng thành phần chứa lỗ hổng Cơng cụ sử dụng: • Gobuster Các bước thực hiện: Bước 1: Sử dụng công cụ gobuster với command Trong đó: • -u {target-url}: }: địa trang web cần dị qt • -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt: wordlist sử dụng • -x php,.inc.php,.jsp,.jsf,.asp,.aspx,.do,.action,.cgi,.pl,.html,.htm,.js,.css,.j 35 son,.txt,.tar.gz,.tgz: qt tồn phần mở rộng bao gồm php, inc.php, jsp, jsf, asp, aspx, do, action, cgi, pl, html, htm, js, css, json, txt, tar.gz, tgz • -t 30: sử dụng 30 thread Hình 3-15: Thực chạy Gobuster với trang web http://192.168.242.133:80 Hình 3-16: Thực chạy Gobuster với trang web http://192.168.242.133:7125 Bước 2: Phân tích kết dị qt: • Các đường dẫn file có response code 200 dung lượng lớn 0B đường dẫn file truy cập Chúng ta truy cập đường dẫn file để kiểm tra Hình 3-17: File index.html trang web http://192.168.242.133:80 36 Hình 3-18: File info.php trang web http://192.168.242.133:80 Hình 3-19: File index.php trang web http://192.168.242.133:7125 37 Hình 3-20: File passwd trang web http://192.168.242.133:7125/passwd III Brute Force lấy mật đăng nhập Cơng cụ sử dụng: • Hydra • Trang web https://gtfobins.github.io/ • Cơng cụ xóa log covermyass https://github.com/sundowndev/covermyass Cách thực hiện: Sử dụng công cụ hydra để công brute force mật ssh user geisha command: Trong đó: • -l geisha: thực brute force với user geisha • -P /home/kali/wordlist/rockyou.txt: wordlist sử dụng để brute force, trường hợp sử dụng wordlist rockyou.txt • ssh://192.168.92.129: dịch vụ cần brute force 38 Hình 3-21: Brute force mật ssh user geisha Hydra Sau có mật khẩu, ssh vào machine với user geisha password letmein Hình 3-22: Đăng nhập vào Machine Geisha 39 DEMO Vì phần demo em dài nặng nên em không gửi kèm video trực tiếp mà em gửi link video online: https://drive.google.com/file/d/1Yn95in84oZdgGhWf8LyuQ3svGcVHOFyF/view? usp=sharing 40 KẾT LUẬN Như vậy, qua phần tìm hiểu lab thử nghiệm, thấy Gobuster 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 thơng tin hữu ích q trình thực kiểm thử xâm nhập Bên cạnh đó, Gobuster 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 chế độ tùy chọn cấu hình đơn giả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 41 TÀI LIỆU THAM KHẢO [1] OJ Reeves, Christian Mehlmauer, "Gobuster," 19 10 2020 [Online] Available: https://github.com/OJ/gobuster [2] C Fol, "Laravel