Sử dụng tool tìm kiếm thư mục web

Tram Ho

1. Giớ thiệu

Không phải lúc nào các đường dẫn của một trang web cũng hiện ra để người dùng có thể truy cập, việc tìm kiếm các đường dẫn web cũng là một trong những phần quan trọng của việc pentest. Tìm kiếm các đường dẫn web bị ẩn đi sẽ tăng thêm thông tin cũng như các giá trị cho người kiểm thử. Có hàng loạt các công cụ giúp cho việc này trở nên dễ dàng hơn như Dirbuster, Dirb, Gobuster… nhưng mỗi cái đều có hạn chế riêng.

DirBuster được viết bằng Java và chỉ có giao diện GUI.

Dirb cũng là một công cụ scan khá phổ biến nhưng không hỗ trợ đa luồng, việc scan không hỗ trợ đa luồng gặp rất nhiều bất tiện.

Gobuster cũng là một công cụ rất mạnh được viết bằng Go, nhưng việc cài đặt khó khăn hơn trên win hay ubuntu so với Dirsearch.

Dirsearch là một công cụ mã nguồn mở được viết bằng Python hoạt động theo kiểu brute-forcing cấu trúc thư mục, file của web. Nó có thể chạy trên Windows, Linux, macOS. Dirsearch sử dụng các dòng lệnh đơn giản mà hiệu quả, nó hỗ trợ rất nhiều options như đa luồng, tìm kiếm theo list extensions, delay giữa các request, set cookie, user-agent, headers, proxy… Chính vì thế dirsearch trở thành công cụ phổ biến mà hầu hết các hacker hay pentester đều sử dụng.

2. Cài đặt

Đầu tiên chúng ta cần clone dirsearch từ GitHub

3. Cấu hình

Có rất nhiều các chạy dirsearch như chạy bằng python, bash, Symbolic Link, cấu hình alias, bạn có thể chọn một trong số cách sau đây.

1. Chạy bằng Python

Như ở trên mình đã nói dirsearch được viết bằng Python, nên chỉ cần chạy file dirsearch.py với Python3.

2. Chạy bằng Bash

3. Sử dụng alias

Mở .bashrc và add alias dirsearch='python3 ~/dirsearch/dirsearch.py'

Xong các bạn chỉ cần chạy lệnh dirsearch trên terminal khi các bạn đứng ở bất cứ thư mục nào.

4. Sử dụng Symbolic Link

Có thể tạo một liên kết tới thư mục /bin. Nó cũng giống như ở trên bạn cũng có thể chạy lệnh dirsearch trên terminal khi các bạn đứng ở bất cứ thư mục nào.

4. Sử dụng dirsearch

Để xem các chi tiết các options cũng như tác dụng của mỗi option thì chỉ cần thêm option -h:

Có thể thấy options của dirsearch rất đa dạng phong phú, nhưng chúng ta nên chú trọng vào những options quan trọng như -u, -e, -r, -t, -w, -x.

Ví dụ có target là trang http://testphp.vulnweb.com/

Để scan được chúng ta bắt buộc phải truyền vào 2 đối số à -u, -e, trong đó -u là url mà ta muốn scan, -e là extensions mà chúng ta muốn tìm kiếm, cũng có thể tìm kiếm nhiều extensions một lúc, mỗi extension cách nhau một dấu phẩy.

Example:

Như các bạn thấy phần phía trên là những tham số mà chương trình đã set để chạy, phía dưới là kết quả của việc thực hiện quét, nó được chia ra thành từng cột nhìn rất rõ ràng. Cột đầu tiên là thời gian, cột thứ 2 là status code của response, cột thứ 3 là size, và cột cuối cùng là thư mục hay file thực hiện quét.

Vậy làm sao để tạm dừng khi nó đang chạy, chỉ cần ấn <Ctrl>+C chương trình sẽ tạm dừng và có 2 lựa chọn là ec, trong đó e là exit để thoát hẳn chương trình và c continue để tiếp tục quét ngay tại chỗ bạn đã tạm dừng.

Nâng cao hơn là các bạn có thể loại bỏ những status code mà không mong muốn tránh cho việc quá nhiều thông tin thừa gây rối loạn. Ví dụ cần loại bỏ những thư mục hay file nào có status code không mong muốn chỉ cần thêm option -x <status code cần loại bỏ>, cũng có thể loại bỏ nhiều status code cùng một lúc, mỗi status code cách nhau bởi dấu phẩy. Ví dụ cần loại bỏ những thư mục hay file có status code là 400 và 403 thì ta cần thêm options -x 403,400.

Example:

So với kết quả ở trên, trông nó đã gọn hơn rất nhiều phải không, việc loại bỏ status code tùy thuộc vào mỗi trường hợp khác nhau, tùy vào nhu cầu của người cần quét để việc loại bỏ trở nên hiệu quả hơn.

Scan theo kiểu brute-forcing này phụ thuộc rất nhiều vào thư việc các từ mà chúng ta cần thử nó gọi là wordlist, vậy nên chúng ta không muốn dùng wordlist mặc định của dirsearch mà chúng ta dùng thư viện riêng khác để việc scan trở nên hiệu quả hơn, dirsearch hỗ trợ một option để làm điều này cực kỳ hữu ích đó là -w. Bạn có thể tham khảo qua wordlist của kali. Một số lưu ý bạn cần đảm bảo rằng đường dẫn đến wordlist của bạn phải đúng, nên sử dụng đường dẫn tuyệt đối là một cách tốt vời nhất để tránh không tìm thấy wordlist gây ra lỗi không thể load wordlist.
Ví dụ như -w /home/justx/common.txt.

Example:

Nhìn kết quả có vẻ rất ít, thu thập được ít thông tin hơn và các bạn cho rằng tool này không ngon, nhưng không như mình đã nói kiểu scan này phụ thuộc rất nhiều vào thư viện mà ta sử dụng, vậy nên chọn wordlist sao cho hợp lý cũng sẽ giúp cho việc thu thập thông tin trở nên hiệu quả hơn.

Để quét sâu hơn vào trong các thư mục thì dirsearch hỗ trợ một option -r, ví dụ các bạn quét được http://testphp.vulnweb.com/admin/ nhưng các bạn muốn chương trình quét tiếp trong thư mục đấy có gì thì các bạn có thể sử dụng option này thay vì phải quét thủ công bằng cách thay đổi url.

Example:

Sau khi tìm thấy các file hay thư mục ở cấp độ một chúng tiếp tục quét vào từng thư mục mà nó đã tìm thấy, như vậy việc quét thu được kết quả sâu hơn các mức quét bình thường

Và option tiếp theo mình muốn giới thiệu là -t, một trong nhưng sức mạnh của dirsearch, option này giúp cho chương trình chạy đa luồng làm tăng tốc độ quét, một chương trình kiểu brute-forcing với việc chạy đa luồng sẽ giúp giảm đi thời gian chạy rất nhiều lần, với những wordlist có size lớn bạn sẽ thấy rõ hiệu quả của việc chạy đa luồng là như thế nào.

Example:

Nhìn kết quả và so với kết quả của phần trước cùng thời điểm quét mọi options quét đều giống nhau chỉ khác ở phần sau có thêm thread thì hiệu quả về mặt thời gian tăng đáng kể, điều đó thể hiện là cùng quét tại thời điểm 15:35 thì chỉ với 10 threads thì kết thúc vào lúc 15:49, nghĩa là mất khoảng 14 phút nhưng với 100 threads thì chỉ mất đến 3 phút để quét hết wordlist cùng size, thật tuyệt vời khi có thread phải không.

Ngoài ra còn một số options như xuất report, set cookie, set headers, timeout… cũng là những options rất hữu ích các bạn có thể tham khảo thêm. Hy vọng tool này sẽ giúp ích cho các bạn trong việc tìm các thư mục hay file bị ẩn của một trang web.

5. Tài liệu

https://medium.com/@irfaanshakeel/dirsearch-to-find-hidden-web-directories-d0357fbe47b0

https://github.com/maurosoria/dirsearch

https://gitlab.com/kalilinux/packages/wordlists

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo