Ngoài ra DIRB đôi khi cóthể được sử dụng như một máy quét CGI cổ điển, nhưng hãy nhớ rằng nó là một trìnhquét nội dung không phải là một trình quét lỗ hổng bảo mật.. Điều đó đồng nghĩa v
Trang 1HỌ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 TOÀN MẠNG BÀI BÁO CÁO TÌM HIỂU CÔNG CỤ DIRB
Giảng viên hướng dẫn: TS Đặng Minh Tuấn Sinh viên thực hiện: Trần Thị Hằng
Mã sinh viên: B18DCAT075
Nhóm môn học: 02
Hà Nội, tháng 12 năm 2021
Trang 2Mục lục
Mở đầu
Công nghệ thông tin đang mang tới những hướng phát triển mới và giúp ích rấtnhiều trong cuộc sống, với sự phát triển nhanh chóng của công nghệ thông tin, phần mềmđang đóng một vai trò quan trọng trong nhiều khía cạnh của cuộc sống như kinh tế, quân
sự, y tế, xã hội,… Cùng với đó sự gia tăng lớn về số lượng các ứng dụng web và ngườidùng cũng tăng lên đáng kể Do đó, những nguy cơ mất an toàn thông tin cho phần mềmnói chung và ứng web nói riêng cũng tăng theo, gây ra những thiệt hại không hề nhỏ cho
cả người sử dụng và nhà phát triển
Một trong những bước trong quy trình kiểm thử ứng dụng web là quét và phân tíchnội dung máy chủ web (tìm kiếm các đối tượng web) Về cơ bản, chúng tôi cần khởi chạymột cuộc tấn công dựa trên từ điển chống lại một máy chủ và phân tích phản hồi Bạnnên quét máy chủ web để xem loại tệp và thư mục nào nằm trên đó Điều quan trọng làphải xem một số tệp ẩn hoặc tệp có thể chứa một số tùy chọn cấu hình Bất kỳ lỗi cấuhình hoặc tệp nào có quyền truy cập đọc không nên có trên máy chủ đều có thể sử dụngthông tin đó để thực hiện các kiểm tra thêm hoặc có được quyền truy cập trái phép vào dữliệu hoặc máy chủ
Hiện nay có rât nhiều công cụ để quét nội dung web hiệu quả Trong bài báo cáonày, em xin được giới thiệu về công cụ Dirb, một công cụ cụ quét nội dung web, một
Trang 3công cụ trên Kali Linux nó tìm kiếm các các đối tượng Web hiện có (và / hoặc ẩn) Từ đógiảm thiểu nguy cơ và thiệt hại do những cuộc tấn công mạng gây ra.
Do kiến thức của em vẫn còn nhiều hạn chế nên trong quá trình tìm hiểu và viếtbáo cáo có gì sai sót em mong thầy góp ý để giúp bài báo cáo này của em được hoànthiện hơn ạ
Em xin chân thành cảm ơn Thầy ạ!
Trang 4I Giới thiệu
1. Giới thiệu về Dirb
DIRB là một công cụ quét nội dung web Nó tìm kiếm các các đối tượng Web hiện có(và / hoặc ẩn) Về cơ bản, nó hoạt động bằng cách khởi chạy một cuộc tấn công dựatrên từ điển chống lại máy chủ web và phân tích phản hồi
DIRB đi kèm với một bộ danh sách từ tấn công được định cấu hình sẵn để dễ sử dụngnhưng bạn có thể sử dụng danh sách từ tùy chỉnh của mình Ngoài ra DIRB đôi khi cóthể được sử dụng như một máy quét CGI cổ điển, nhưng hãy nhớ rằng nó là một trìnhquét nội dung không phải là một trình quét lỗ hổng bảo mật
Mục đích chính của DIRB là giúp kiểm tra ứng dụng web chuyên nghiệp Đặc biệttrong thử nghiệm liên quan đến bảo mật Nó che một số lỗ hổng không được các máyquét lỗ hổng web cổ điển che phủ DIRB tìm kiếm các đối tượng web cụ thể mà cácmáy quét CGI thông thường khác không thể tìm kiếm Nó không tìm kiếm các lỗhổng cũng như không tìm kiếm các nội dung web có thể dễ bị tấn công
Công cụ DIRB được tích hợp sẵn Kali Linux
2. Tệp tin/ thư mục ẩn của trang web là gì (web hidden files/directories)
Web server giống như một ổ cứng lưu trữ dữ liệu trên máy tính Dữ liệu lưu trữ cóthể bao gồm files, directories, v.v Những dữ liệu được lưu trữ trên web server cóthể là dữ liệu công khai (public) ví dụ như trang chủ của một website, những đườnglink dẫn đến những chuyên mục khác nhau (catergories) hoặc bài viết khác nhau của
Trang 5website đó,…; hoặc cũng có thể là dữ liệu riêng tư (private) ví dụ như trang đăngnhập, file robots, files hay directories chia sẻ thông tin nội bộ,…
Những thông tin riêng tư này đôi khi sẽ cung cấp cho chúng ta chìa khóa dẫn đếnviệc xâm nhập thành công Vì lẽ đó, nếu đối tượng chúng ta pentest là một web app,việc cần làm sau khi Nmap đó là tìm xem trên web có files hay directories ẩn haykhông?
- Web URL trên Linux web server
Để dễ hiểu hơn, chúng ta sẽ thử phân tích một URL (Uniform Resource Locator)
ở cấp độ căn bản, chúng ta sẽ sử dụng URL của website sau:
nmap-va-netcat/
https://tuhocnetworksecurity.business.blog/2020/12/17/kali-linux-can-ban-bai-1-Chúng ta sẽ cùng phân tích URL trên:
• https: Giao thức được dùng để truy cập website
• tuhocnetworksecurity.business.blog: Tên miền của website Khi bạn sử dụng
một trình duyệt web để truy cập vào tên miềntuhocnetworksecurity.business.blog, bạn đang truy cập vào một directorytrên web server Khi web server phát hiện có một yêu cầu truy cập, nó sẽchạy một vài tác vụ để tạo nên giao diện trang chủ của website và tìm nộidung của website được lưu trong directory hiện tại để tải lên website Filechứa nội dung của website thường có tên là index.html
• 2020 là directory con của directory chứa file index.html
• 12 là directory con của directory 2020
• kali-linux-can-ban-bai-1-nmap-va-netcat: Tên của bài viết
Tổng kết lại chúng ta có URL mang ý nghĩa là: Bài viết 1-nmap-va-netcat nằm bên trong directory 17; directory 17 nằm bên trongdirectory 12; directory 12 nằm bên trong directory 2020 và directory 2020 nằmbên trong directory chứa file index.html của web server
kali-linux-can-ban-bai-tuhocnetworksecurity.business.blog.
Nói một cách dễ hiểu hơn nó cũng giống như PATH (đường dẫn/địa chỉ) trên hệthống Linux, chúng ta có thể xem lại bài 10 của series Linux Căn Bản, ở mụctìm password cho account shiba4 Chúng ta đã tìm ra file shiba4 ở PATH sau:/otp/secret/shiba4
PATH trên có nghĩa là file shiba4 nằm bên trong directory secret, directorysecret lại nằm bên trong directory opt, directory opt, nằm bên trong directoryroot (/)
Thì trên web server nó cũng giống y như thế, nghĩa là để truy cập được vào một
Trang 6- Web hidden directories
Giao diện web khác với giao diện dòng lệnh Trên giao diện dòng lệnh, chúng ta
sẽ tương tác với hệ thống bằng các câu lệnh, tuy nhiên trên giao diện web, chúng
ta lại tương tác với hệ thống chủ yếu thông qua URL
Thật vậy, nếu chúng ta thử bấm vào bất cứ một mục nào trên thanh menu củawebsite sẽ thấy URL sẽ thay đổi theo Điều đó đồng nghĩa với việc, nếu chúng ta
là một người dùng bình thường và không hiểu về cấu trúc URL, chúng ta sẽ chỉ
có thể truy cập được vào những nội dung có sẵn trên trang chủ và trong thanhmenu của web
Những nội dung (files và directories) không được đề cập và không có đường dẫnđến trên trang chủ và thanh menu chính là những nội dung ẩn
Nếu biết về URL, chúng ta có thể thử làm những điều sau trên websitetuhocnetworksecurity.business.blog Nếu tinh ý sẽ thấy cụm /2020/12/17/ giốngnhư là năm, tháng và ngày của bài viết Vậy chúng ta thử vài ví dụ sau:
• Ví dụ 1: thử thay đổi URL một tí để show ra tất cả nội dung của website vàonăm 2020
https://tuhocnetworksecurity.business.blog/2020/
Chúng ta đã xem được danh sách trang liệt kê tất cả nội dung đã được xuấtbản vào năm 2020 Đây là một trang nội dung không hề có trên trang chủ củatrang web
• Ví dụ 2: Chúng ta sẽ sử dụng URL để kiểm tra các bài viết được viết vào năm 2019 có được liệt kê không
https://tuhocnetworksecurity.business.blog/2019/
Trang 7Chúng ta sẽ thấy nội dung không tồn tại, do website được phát triển từ tháng 6/2020.
• Ví dụ 3: cũng có thể tiếp tục thử nghiệm với URL bên dưới để tìm các trang liệt kê bài viết của website trong tháng 11:
https://tuhocnetworksecurity.business.blog/2020/11/
Các ví dụ trên chính là ví dụ điển hình của việc sử dụng URL để tìm những nộidung không có trên trang chủ và menu của web Khi pentest, thay vì phải thay đổiURL để tìm files và directories ẩn thủ công, chúng ta sẽ có các công cụ chuyên biệt đểlàm việc đó
Công cụ này được cung cấp với nhiều danh sách từ, bao gồm big.txt và common.txt(danh sách từ mặc định của nó) Dirb cũng được cung cấp với hai tiện ích:html2dictương đương với cewl và gendicttương đương với crunch, cả hai đều được sửdụng để tạo danh sách từ
III Hướng dẫn cài đặt DIRB,hướng dẫn sử dụng
1. Cài đặt Dirb
Công cụ DIRB được tích hợp sẵn Kali Linux nên việc cài đặt khá đơn giản Có bacách để cài đặt DIRB trên Kali Linux Chúng ta có thể sử dụng apt-get, apt vàaptitude
- Cài đặt DIRB bằng apt-get
• Cập nhật cơ sở dữ liệu apt apt-get bằng lệnh sau:
Trang 8• Sau khi cập nhật cơ sở dữ liệu apt, ta có thể cài đặt DIRB bằng apt-get cách chạy lệnh sau:
- Cách cài đặt DIRB bằng apt
• Cập nhật cơ sở dữ liệu apt bằng lệnh sau:
• Sau khi cập nhật cơ sở dữ liệu apt, ta có thể cài đặt DIRB bằng apt bằng cách chạy lệnh sau:
- Cài đặt dirb bằng aptitude
• Nếu bạn muốn làm theo phương pháp này, bạn có thể cần phải cài đặt aptitudetrước vì aptitude thường không được cài đặt theo mặc định trên Kali Linux.Cập nhật cơ sở dữ liệu apt aptitude bằng lệnh sau
• Sau khi cập nhật cơ sở dữ liệu apt, chúng tôi có thể cài đặt dirb bằng aptitude bằng cách chạy lệnh sau:
2. Cách hoạt động của Dirb
Để sử dụng Dirb ta cần thực hiện theo các bước sau:
- Bước 1: Mở Terminal
- Bước 2: Khởi động Dirb
Trang 9Khi đã mở Terminal, hãy tiếp tục và nhập dirb đẻ nhận được màn hình trợ giúp.
- Bước 3: Xác định mục tiêu của bạn
Để quét hãy sử dụng lệnh: dirb URL
Ví dụ: ở đây quét trang google.com
Trang 103. Các option trong Dirb
• a <agent_string>: Chỉ định USER_AGENT tùy chỉnh của bạn
• -c <cookie_string>: Đặt cookie cho yêu cầu HTTP
• -f: Phát hiện NOT_FOUND (404) tinh vi
• -H <header_string>: Thêm tiêu đề tùy chỉnh vào yêu cầu HTTP
• -i: Sử dụng tìm kiếm không phân biệt chữ hoa chữ thường
• -l: In tiêu đề “Vị trí” khi tìm thấy
• -N <nf_code>: Bỏ qua các phản hồi với mã HTTP này
• -o <output_file>: Lưu đầu ra vào đĩa
• -p <proxy [: port]>: Sử dụng proxy này (Cổng mặc định là 1080)
• -P <proxy_username: proxy_password>: Xác thực proxy
• -r: Không tìm kiếm đệ quy
• -R: Đệ quy tương tác (Yêu cầu cho từng thư mục)
• -S: Chế độ im lặng Không hiển thị các từ đã được kiểm tra (Đối với thiết bị đầu cuối câm)
• -t: Không buộc phải kết thúc bằng '/' trên các URL
• -u <tên người dùng: mật khẩu>: Xác thực HTTP
• -v: Cũng hiển thị các trang NOT_FOUND
• -w: Không dừng lại ở các tin nhắn CẢNH BÁO
• -X <extensions> / -x <exts_file>: Nối mỗi từ với phần mở rộng này
• -z: Thêm độ trễ mili giây để không gây ra Flood quá mức
4. Sử dụng wordlist để duyệt qua thư mục
Trang 11Cuộc tấn công ở trên hoạt động bằng cách sử dụng wordlist_files common.txtmặc định, nhưng chúng ta có thể thay đổi wordlist này và có thể chọn mộtwordlist khác để duyệt thư mục Để xem tất cả wordlist có sẵn ta sử dụng lệnhsau:
cd /usr/share/wordlist/dirb
ls –la
cd /usr/share/wordlist/vulns
ls –la
Trang 12IV Các bài LAB
1. Tìm các tệp và thư mục ẩn trong máy chủ web với Dirb
Sử dụng Dirb để tìm các tệp và thư mục ẩn trong máy chủ web certifiedhacker.com
Ta chạy lệnh sau:
dirb https://certifiedhacker.com
Trang 14Ta truy cập URL:
https://certifiedhacker.com/controlpanel
Ta truy cập URL:
Trang 15https://certifiedhacker.com/docs
Trang 16- Sử dụng lệnh sau để quét nội dung
Trang 17Sử dụng wordlist để duyệt thư mục
Trang 18- Liệt kê Thư mục với Danh sách mở rộng
Extension (-X option)
Có rất nhiều tình huống mà chúng ta cần trích xuất các thư mục của một tiện ích
mở rộng cụ thể qua máy chủ đích và sau đó chúng ta có thể sử dụng tham số -Xcủa quá trình quét dirb Tham số này chấp nhận tên phần mở rộng tệp và sau đótìm kiếm các tệp phần mở rộng đã cho trên máy chủ hoặc máy mục tiêu
Thực hiện câu lệnh sau:
Trang 20- Bỏ qua mã trạng thái không cần thiết
Phần tử Mã trạng thái là một số nguyên có 3 chữ số trong đó chữ số đầu tiên của
Mã trạng thái xác định loại phản hồi và hai chữ số cuối cùng không có bất kỳ vaitrò phân loại nào Trong cuộc tấn công này, chúng tôi đang sử dụng tham số –Ntrên mã 200 như hình dưới đây
Ta thực hiện câu lệnh
dirb URL –N 200
Trang 21- Không buộc kết thúc '/' trên URL (-t)
Từ các cuộc tấn công được sử dụng trong các tình huống trước, để chạy công cụdirb, chúng ta sẽ phải thêm dấu gạch chéo (/) vào cuối URL để được chấp nhậntrong dirb Để kiểm tra xem chúng tôi cần thử một cuộc tấn công vào URL kếtthúc mà không có bất kỳ dấu gạch chéo nào
- Đệ quy tương tác hoặc không tìm kiếm đệ quy (-R or –r option)
Quét dirb, theo mặc định, quét các thư mục một cách đệ quy Nó có nghĩa là nóquét một thư mục và sau đó đi qua bên trong thư mục đó để quét các thư mục conkhác Nhưng trong một số trường hợp, khi thời gian không đủ, chúng tôi đặt dirb
để không quét đệ quy Điều này có thể đạt được bằng cách sử dụng tham số -r
Trang 22- Thông báo cảnh báo (-w parameter)
Trong quá trình quét dirb bình thường như được hiển thị bên dưới, một số trangtạo ra cảnh báo; quá trình quét dirb bỏ qua những thư mục mà nó gặp bất kỳ cảnhbáo nào
Trong khi thực hiện quá trình quét phải được thực hiện rất sâu và dài, chúng tôimuốn rằng quá trình quét dirb không tránh những cảnh báo này và thực hiện quétchuyên sâu, do đó chúng tôi sử dụng tham số -w của quá trình quét dirb
- Hiển thị các trang không tồn tại hoặc chế độ im lặng (-v or –S option)
Trang 23Lỗi 404 là mã trạng thái HTTP có nghĩa là không thể tìm thấy trang bạn đang cố truycập trên một trang web trên máy chủ của họ Thông báo lỗi 404 Không tìm thấythường được tùy chỉnh bởi các trang web riêng lẻ Trong một số trường hợp, chúng tôicũng cần tìm các trang 404, trang này sẽ bỏ qua theo mặc định Để tìm các trang đó,chúng tôi sẽ sử dụng tham số -v.
Trang 24
- Độ trễ tốc độ
Trong khi làm việc trong các tình huống khác nhau, có một số môi trường chúngtôi gặp phải không thể xử lý lũ tạo ra bởi quá trình quét dirb, vì vậy trong nhữngmôi trường đó, điều quan trọng là chúng tôi phải trì hoãn quá trình quét một thờigian Điều này có thể được thực hiện dễ dàng với tham số -z của quá trình quétdirb Trong tham số này, thời gian được cung cấp trên quy mô mili giây Giốngnhư được hiển thị trong ví dụ đã cho của chúng tôi, chúng tôi đã đưa ra độ trễ 500giây cho dirb
- Lưu đầu ra vào đĩa
Với mục đích duy trì hồ sơ, khả năng đọc tốt hơn và các tài liệu tham khảo trongtương lai, chúng tôi lưu kết quả quét dirb vào một tệp Đối với điều này, chúng tôi
sẽ sử dụng tham số -o của quá trình quét dirb, chúng tôi có thể lưu đầu ra của quátrình quét dirb trong một tệp văn bản
Trang 25Lệnh trên sẽ tạo một tệp output.txt trên màn hình nền của các thư mục được liệt kê.
V So sánh, đánh giá, kết luận
1. So sánh, đánh giá
Dirb là một trong những công cụ khám phá web lâu đời nhất, nó đề xuất hầu hết cáctùy chọn nâng cao như tiêu đề tùy chỉnh, tiện ích mở rộng tùy chỉnh, proxy được xácthực và thậm chí cả đệ quy tương tác Tuy nhiên, công cụ này là một trong nhữngcông cụ hiếm nhất không cung cấp khả năng đa luồng
- Ưu điểm
• Chỉ định nhiều danh sách từ (phân tách bằng dấu phẩy)
• Chế độ đệ quy (theo mặc định hoặc sử dụng –R tùy chọn cho chế độ tương tác)
2. Các công cụ thay thế Dirb
Hiện nay có khá nhiều công cụ quét web hiệu quả hơn Dirb Một số công cụđược sử dụng phổ biến như: Dirbuster, Dirsearch, FFUF, GoBuster, Wfuzz,Rustbuster, FinalRecon
- Dirbuster
Trang 26được cung cấp hiện là một phần của OWASP ZAP Proxy Bản phát hành cuốicùng của công cụ là phiên bản 1.0-RC1 vào năm 2008 DirBuster có đặc điểm làcung cấp GUI.
Công cụ này được đóng gói với 8 wordlist bao gồm directory-list-1.0.txtvàapache-user-enum-2.0.txt
• Ưu điểm
Gỡ bỏ WebSite (trích xuất các thư mục từ srcvà hrefcác thuộc tính)
Hỗ trợ xác thực quyền truy cập thông báo
Chỉ định điểm Fuzzing trong URL
Báo cáo bằng XML, CSV hoặc TXT
Là một công cụ giàu tính năng, dirsearch mang đến cho người dùng cơ hội thựchiện khám phá nội dung web phức tạp, với nhiều vectơ cho danh sách từ, độ chínhxác cao, hiệu suất ấn tượng, cài đặt kết nối / yêu cầu nâng cao, kỹ thuật brute-forcehiện đại và đầu ra đẹp