Web Pentest - Bài 2: Sử dụng kỹ thuật Brute force để dò tìm đường dẫn và password

bobby13689

VIP Members
27/04/2017
44
46 bài viết
Web Pentest - Bài 2: Sử dụng kỹ thuật Brute force để dò tìm đường dẫn và password
Chào các bạn,

Tiếp theo nội dung của bài 1, hôm nay mình sẽ giới thiệu cho các bạn cách áp dụng kỹ thuật Brute force vào các nhiệm vụ cơ bản khi pentest, như tìm các thư mục ẩn, mò password, ...

Như các bạn biết, việc thu thập thông tin (Information Gathering) của một ứng dụng là một việc rất quan trọng trong việc pentest, cho chúng ta có một cái nhìn tổng quan hơn về ứng dụng, từ đó nhận dạng được các điểm có thể tồn tại lỗ hổng (attack surface) trong ứng dụng và đi đến việc nên tấn công theo các lỗ hổng nào, nên đi theo hướng nào đầu tiên. Một số thông tin có thể thu thập được như:

  • Các công nghệ đang được sử dụng.
  • Phiên bản của các công nghệ đang được sử dụng
  • Ngôn ngữ lập trình làm nên ứng dụng
  • Các cơ chế bảo vệ ứng dụng
  • Có các trang quản trị ứng dụng cho phép người dùng truy cập không
  • Các đường dẫn bị ẩn đi (không có giao điện cho người dùng gọi).
  • ...
Hôm nay mình sẽ cùng các bạn tìm hiểu cách brute force để tìm các đường dẫn bị ẩn đi, và brute force mật khẩu admin của hệ thống.

  1. Yêu cầu:

    a. Cài đặt Gobuster
    • Đầu tiên các bạn cài đặt Gobuster (ở Kali mới đã có sẵn Gobuster, các bạn không cần cài), riêng các bạn sử dụng các hệ điều hành chưa có sẵn (Mac, Ubuntu, Windows) thì các bạn tiến hành cài đặt nó theo trang chủ của Gobuster trên github tại (https://github.com/OJ/gobuster/releases/tag/v3.1.0)
      • Các bạn tải bản cài tương ứng với hệ điều hành của mình và giải nén ra.

      • Sau khi giải nén xong, nạn lấy đường dẫn của Gobuster đã giải nén, thêm vào biến PATH cho Linux, và Mac như sau:

        Mã:
        export PATH=$PATH:<đường dẫn đến gobuster trên máy bạn>

        Lưu ý là các bạn cần phân quyền cho file gobuster có quyền thực thi
        Mã:
        chmod +x gobuster
      • Đối với Windows, thì bạn sử dụng lệnh set

        Mã:
        set PATH=%PATH%;C:\\đường\\dẫn\\đến\\gobuster
      • Để test việc cài đặt Gobuster đã thành công hay chưa, bạn có thể sử dụng lệnh sau để kiểm tra.

        Mã:
        gobuster --help
        upload_2021-5-13_13-42-21.png


        Nếu ra kết quả tương tự, thì đã cài đặt thành công Gobuster.
b. Tải một bộ từ điển thư mục
c. Tải bộ từ điển password
Tải ở đây: https://github.com/danielmiessler/S...tials/10-million-password-list-top-100000.txt
Lưu ý đây là bộ từ điển password đơn giản, đối với các ứng dụng đặc thù, bạn sẽ cần tự tạo một bộ từ điển mật khẩu riêng nếu cần thiết.

2. Chạy Bruteforce
Sau khi đã cài đặt xong Gobuster, và tải từ điển, chúng ta sẽ bắt đầu chạy để tìm kiếm.

Ban đầu, chúng ta sẽ sử dụng những tham số mặc định của Gobuster, để xem kết quả tìm được ra sao.

Ở đây, mình sử dụng target được cho phép việc test này (http://demo.testfire.net/). Các bạn lưu ý chạy các tool này trên những ứng dụng cho phép việc này nhé, để tránh các vấn đề về pháp lý.
  • Cú pháp mặc định
Mã:
gobuster dir  --url <http://demo.testfire.net/> -w directory-list-2.3-medium.txt
Đây là kết quả sau khoảng 2 phút tìm chạy ứng dụng:

upload_2021-5-13_13-43-48.png


Với hiện trạng process, chúng ta có thể thấy rằng, sẽ mất khoảng vài giờ đồng hồ để chạy xong việc brute force này.

Vậy có cách nào để đẩy nhanh quá trình này lên không? Câu trả lời là có.

Điểm mạnh của Gobuster so với các công cụ khác, là nó được viết trên Go, được tối ưu cho việc multithread, do đó kết quả chạy sẽ rất nhanh. Đồng thời Gobuster cũng cho phép chúng ta có thể thay đổi số threads.

Đối với các máy tính với cấu hình mạnh, chúng ta có thể nâng số threads mặc định thừ 10 lên 70, thử xem kết quả như thế nào nhé:

Mã:
gobuster dir  --url <http://demo.testfire.net/> -w directory-list-2.3-medium.txt -t 70

Sau chưa đến 1 phút, kết quả của chúng ta đã khá hơn rất nhiều so với mặc định

upload_2021-5-13_13-44-3.png


Các bạn thử thay đổi số threads này (thông qua tham số -t) để tìm xem bao nhiêu sẽ nhanh nhất nhé.

Đợi một chút (khoảng 5-10 phút), gobuster sẽ chạy xong bộ từ điển này (các bạn có thể thấy nó là nó nhanh hơn nhiều so với 10 threads mặc định) .

Để ý thấy có đường dẫn admin, chúng ta thử vào đó xem sao

Khi truy cập /admin, chúng ta được redirect về /login.jsp

upload_2021-5-13_13-44-16.png


Ở đây chúng ta thử một số tài khoản phổ biến, như admin, root, bob, ...

Chúng ta đi tìm mật khẩu cho tài khoản admin

Thử đăng nhập bằng tài khoản admin, và mật khẩu là (có cấu hình gửi request sang Burp Suite).

Ta có request như sau được ghi nhận trong Burp Proxy History

upload_2021-5-13_13-44-29.png


Bây giờ, chúng ta sẽ sử dụng request này, để tận dụng Brute force password của user admin.

Ở request này, bạn nhấn chuột phải, chọn Sent to Intruder (hoặc nhấn Control + I trên Windows, hoặc Command + I trên Mac).
upload_2021-5-13_13-44-40.png


Sau đó chúng ta chuyển sang tab Intruder trên Burp để vào giao diện cấu hình Intruder

Mặc định, Intruder sẽ xử lý request này như sau

upload_2021-5-13_13-45-38.png



Ở đây, Intruder đã detect một số trường cần chạy, do chúng ta chỉ cần brute force trường Password, do đó sẽ clear toàn bộ, và add trường passw mà thôi, bằng cách nhấn Clear $, phía bên tay phải của hình, sau đó bôi đen giá trị 1 (phía sau passw) và nhấn Add $

upload_2021-5-13_13-46-36.png


Tiếp theo, chúng ta chuyển qua tab Payload (ở trong tab Intruder)

Ở đây, chúng ta sẽ thêm các giá trị cần brute force, vào bên trong ô Payload Options.

Hoặc các bạn có thể chọn file đã tải ban đầu và chọn Add file

Sau đó chọn Start attack
Kết quả scan sau một thời gian chạy sẽ tương tự như sau

upload_2021-5-13_13-46-56.png

Các bạn có thể để ý thấy, là đa số các request đều có length trả về là 145 (như trên hình), duy chỉ có một request duy nhất, trả về length khác với số đó.

Đó chính là request có mật khẩu đúng của chúng ta.

(Tip cho các bạn: Khi nhấn 2 lần vào cột Length, Burp sẽ thực hiện sắp xếp theo thứ tự giảm dần/tăng dần theo length), chúng ta sẽ tìm thấy nó nhanh hơn.

upload_2021-5-13_13-48-29.png
Và cuối cùng thì chúng ta cũng đã tìm được mật khẩu của tài khoản admin, chính là admin.
Để kiểm tra, ở trên trình duyệt, bạn login với tài khoản này và vào được bên trong ứng dụng.

upload_2021-5-13_13-51-4.png


Có thể bạn sẽ nhập admin:admin ngay từ đầu và tìm ra, tuy nhiên bài này của mình hướng đến một cách làm chung cho nhiều trường hợp khác nhau, bao gồm trường hợp mật khẩu không phải là admin.​
Và thế là chúng ta đã xong bài 2 này rồi.
Hy vọng là nội dung trong bài này sẽ giúp ích phần nào đó trong công việc của các bạn, đặc biệt là những bạn mới bước chân vào con đường pentest này.

Các bài khác trong cùng chủ đề:
Bài 1: https://whitehat.vn/threads/web-pentest-bai-1-burp-academy-va-gioi-thieu-ve-burp-suite.14724/
Bài 3: https://whitehat.vn/threads/web-pentest-bai-3-thu-thap-thong-tin-cua-ung-dung.14792/
Bài 4: https://whitehat.vn/threads/web-pen...hia-client-cac-co-che-bao-ve-va-bypass.14817/

Các bạn có câu hỏi gì cần giải đáp thì cứ hỏi vào bài viết này nhé. Hẹn gặp lại các bạn ở bài 3.

Happy Hacking.

Thank you.
 
Chỉnh sửa lần cuối:
Very good
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
great !!!!
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Một tuần qua khá là bận, do đó mình xin phép delay bài 3 đến ngày 22/05 nhé mọi người.

Cảm ơn mọi người.
 
Comment
Một tuần qua khá là bận, do đó mình xin phép delay bài 3 đến ngày 22/05 nhé mọi người.

Cảm ơn mọi người.
22/5 em đợi để đọc, mà đợi mãi không thấy đâu :)))
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Thẻ
bruteforce burpsuite gobuster pentest
Bên trên