Tải bản đầy đủ (.docx) (30 trang)

Bài tập lớn môn an toàn mang, học viện bưu chính viễn thông (33)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.31 MB, 30 trang )

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 CÔNG CỤ DIRB
Giảng viên hướng dẫn:
Sinh viên thực hiện:
Mã sinh viên:
Nhóm mơn học:

TS. Đặng Minh Tuấn
Trần Thị Hằng
B18DCAT075
02

Hà Nội, tháng 12 năm 2021

1


Mụ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ất
nhiề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ười
dùng cũng tăng lên đáng kể. Do đó, những nguy cơ mất an tồn thơng tin cho phần mềm
nó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ích
nộ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ạy
mộ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ạn
nê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ấu
hì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ụng
thơ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áo
nà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
2


cơ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 q trình tìm hiểu và viết
bá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àn
thiện hơn ạ.
Em xin chân thành cảm ơn Thầy ạ!

3


I. Giới thiệu
1. Giới thiệu về Dirb

DIRB là một công cụ qt 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ựa
trê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ụng

nhưng bạn có thể sử dụng danh sách từ tùy chỉnh của mình. Ngồ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ình
qt nội dung khơng phải là một trình qt 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ệt
trong 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áy
qué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ác
máy qt 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 đường
link dẫn đến những chuyên mục khác nhau (catergories) hoặc bài viết khác nhau của
4


website đó,…; hoặc cũng có thể là dữ liệu riêng tư (private) ví dụ như trang đăng
nhậ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 đến
việ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 hay
khơ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:

g/2020/12/17/kali-linux-can-ban-bai-1nmap-va-netcat/
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ền
tuhocnetworksecurity.business.blog, bạn đang truy cập vào một directory
trê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ội
dung của website được lưu trong directory hiện tại để tải lên website. File
chứ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 kali-linux-can-ban-bai1-nmap-va-netcat nằm bên trong directory 17; directory 17 nằm bên trong
directory 12; directory 12 nằm bên trong directory 2020 và directory 2020 nằm
bên
trong
directory
chứa
file
index.html

của
web
server
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ục
tì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, directory
secret lại nằm bên trong directory opt, directory opt, nằm bên trong directory
root (/).
Thì trên web server nó cũng giống y như thế, nghĩa là để truy cập được vào một
file (bài viết), bạn phải biết chính xách PATH của file đó.
5


-

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ủa
website 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 thanh
menu 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 website

tuhocnetworksecurity.business.blog. Nếu tinh ý sẽ thấy cụm /2020/12/17/ giống
như 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ào
năm 2020
g/2020/
Chúng ta đã xem được danh sách trang liệt kê tất cả nội dung đã được xuất
bản vào năm 2020. Đây là một trang nội dung khơng hề có trên trang chủ của
trang 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
g/2019/
6


Chú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:
g/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ội
dung khơng có trên trang chủ và menu của web. Khi pentest, thay vì phải thay đổi
URL để tìm files và directories ẩn thủ cơng, chúng ta sẽ có các cơng cụ chun biệt để
làm việc đó.
II. Lịch sử hình thành DIRB

DIRB là một trình quét nội dung web được viết bằng C và được cung cấp bởi The
Dark Raver từ năm 2005.

Lần phát hành cuối cùng của công cụ này là vào năm 2014, với phiên bản 2.22. Gói
này được cung cấp bởi hầu hết các bản phát hành Linux áp dụng như Black Arch và
Kali Linux.
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ó ba
cá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:

7




-

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-get cách
chạy 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 aptitude
trướ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
8


Khi đã 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

9


3. 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 : Sử dụng proxy này. (Cổng mặc định là 1080)
• -P : Xác thực proxy.
• -r: Khơng tìm kiếm đệ quy.
• -R: Đệ quy tương tác. (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

10


Cuộc tấn công ở trên hoạt động bằng cách sử dụng wordlist_files common.txt
mặc định, nhưng chúng ta có thể thay đổi wordlist này và có thể chọn một
wordlist khác để duyệt thư mục. Để xem tất cả wordlist có sẵn ta sử dụng lệnh
sau:
cd /usr/share/wordlist/dirb
ls –la

cd /usr/share/wordlist/vulns
ls –la

11


IV. 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

12


13


Ta truy cập URL:
/>
Ta truy cập URL:
14


/>
/>
2. Sử dụng Dirb để quét nội dung web: bWAPP
- bWAPP là gì?
15


-

Sử dụng lệnh sau để quét nội dung

16


Sử dụng wordlist để duyệt thư mục


17


-

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ố -X
của q trình qt 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:
18


dirb URL –X .php
Lệnh trên sẽ trích xuất tất cả đường dẫn thư mục liên quan đến phần mở rộng php
như hình sau.

-

Extension file (-x option)

19


-

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ỳ vai
trị 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ố –N
trên mã 200 như hình dưới đây.
Ta thực hiện câu lệnh
dirb URL –N 200

20


-

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ận
trong dirb. Để kiểm tra xem chúng tôi cần thử một cuộc tấn cơng vào URL kết
thú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 con
khá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 .

21


-


Thơng báo cảnh báo (-w parameter)
Trong q trình qt dirb bình thường như được hiển thị bên dưới, một số trang
tạ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ảnh
bá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ơi
muốn rằng q trình qt dirb không tránh những cảnh báo này và thực hiện qt
chun sâu, do đó chúng tơi sử dụng tham số -w của q trình qt dirb.

-

Hiển thị các trang khơng tồn tại hoặc chế độ im lặng (-v or –S option)
22


Lỗ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ố truy
cậ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ấy
thườ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ơi
cũ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.

23


-

Độ 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úng
tơi gặp phải không thể xử lý lũ tạo ra bởi quá trình qt dirb, vì vậy trong những
mơi trường đó, điều quan trọng là chúng tơi phải trì hỗn q trình quét một thời

gian. Đ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ét
dirb. Trong tham số này, thời gian được cung cấp trên quy mơ mili giây. Giống
như được hiển thị trong ví dụ đã cho của chúng tôi, chúng tôi đã đưa ra độ trễ 500
giâ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 trong
tươ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 q trình qt 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.

24


Lệ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ác
tù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ác
thực và thậm chí cả đệ quy tương tác. Tuy nhiên, công cụ này là một trong những
cô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)
- Nhược điểm

• Khơng có tùy chọn đa luồng
• Chỉ phương thức GET
• Khơng có bộ lọc ưa thích
• Chỉ một tùy chọn đầu ra
2. Các công cụ thay thế Dirb
Hiện nay có khá nhiều cơng cụ qt 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
DirBuster là một trình quét nội dung web viết bằng Java được OWASP Foundation
cung cấp từ năm 2007. Dự án khơng cịn được OWASP duy trì và các tính năng
-

25


×