Khám phá hệ thong và tìm kiếm lỗ hổng bao mật

Một phần của tài liệu Khóa luận tốt nghiệp An toàn thông tin:Bộ khung kiểm thử bảo mật tự động tích hợp cơ chế giăng bẫy và chia sẻ thông tin tình báo mối đe dọa (Trang 67 - 72)

KIỂM THỬ XÂM NHẬP

T- Pof?| là một nền tang honeypof| đa chức năng và linh hoạt, giúp mô phỏng

4.4 Khám phá hệ thong và tìm kiếm lỗ hổng bao mật

4.4.1 Khám phá hệ thống ở be mặt bên ngoài

Tiếp sau quá trình tìm kiếm tên mién con, bước tiếp theo chương trình cần xử lý

là khám phá hệ thống ở bề mặt bên ngoài và tìm kiếm tất cả các dịch vụ web đang chạy trong hệ thống.

Thttps:/ /crt.sh/

*https: //github.com/projectdiscovery /subfinder

Shttps: //github.com/tomnomnom/assetfinder

*https: //github.com/Findomain/Findomain

58

Chương 4. Phương pháp thực hiện

create job Host Scanning

SGLi, XSS, OS- injection, LFI, Nuclei Database

~->> Web scanning -~~” Host data

Check duplicate

Output Handler

SQLi, XSS, OS- injection, LFI, Nuclei uyewopqns 'uod ‘g]

SQLi, XSS, OS-

injection, LFI, Nuclei :

HÌNH 4.4: Khám phá hệ thống và tìm kiếm lỗ hổng bảo mật

Với mỗi địa chỉ IP, một job mới được tạo ra (gọi là Host Scanning). Trong job này, chương trình sử dụng công cụ nmap để tìm kiếm các cổng và dịch vụ đang chạy trên máy chủ có IP đó. Đồng thời, chương trình cũng sử dụng công cụ shodan để

bổ sung kết quả thu được từ công cu nmap.

4.4.2 Tìm kiếm lỗ hổng bảo mật

Sau khi các job Host Scanning đã thực thi xong, một job mới sẽ được kích hoạt có

tên là "Web Control". O đây, chương trình tổng hop dữ liệu trả về từ các job Host

Scanning, xóa các dữ liệu trùng lặp và lưu chúng xuống cơ sở dit liệu.

59

Chương 4. Phương pháp thực hiện

Tiếp theo, để tìm kiếm các đường dẫn URL của các dịch vụ web chương trình lấy các dữ liệu từ cơ sở dữ liệu bao gồm: tên miễn con, địa chỉ IP và cổng tương ứng. Nhờ những dữ liệu này, chương trình sử dụng công cụ HTTPX để lọc ra các dịch

vụ web trong số các dịch vụ đang mở. Từ đó có thể tạo ra một danh sách các URL

hoàn chỉnh.

Với mỗi đường dẫn URL, chương trình tạo năm job mới để tìm kiếm lỗ hổng

bảo mật như Hình|4.4|bao gồm:

* SQli: Job SQLi có nhiệm vụ tìm kiếm các lỗ hổng SQL Injection (SQLi).

© XSS: Job XSS có nhiệm vụ tìm kiếm các lỗ hổng Cross-Site Scripting (XSS).

* Command-Injection: Job OS-Injection có nhiệm vụ tìm kiếm các lỗ hổng

Command Injection.

¢ LFI: Job LFI có nhiệm vụ tìm kiếm các lỗ hổng local file inclusion (LFI).

* Nuclei: Job Nuclei sử dung công cu Nuclei để tìm kiếm các lỗ hổng CVE va

một số lỗ hổng khác.

Ngoài công cụ nuclei đã được giới thiệu ở phần cơ sở lý thuyết. Các job SOIi, XSS,

Command-Injection, và LFI có chung luồng hoạt động như sau (Hinh{4.5):

Bruteforce

hidden path Input:

URL | |

Find path from

Output:

Vulnerability details

javascript

HINH 4.5: Luéng hoạt động để tìm kiếm lỗ hổng bảo mật web

Với ý tưởng tìm kiếm lỗ hổng bảo mật dựa trên hành vi của máy chủ, tức là đưa các input (dữ liệu đầu vào) đặc biệt tới máy chủ và xem xét hành vi phản hồi của

60

Chương 4. Phương pháp thực hiện

máy chủ để xác định xem có lỗi bảo mật hay không. Hệ thống cần biết các thư mục và các tham số đầu vào tương ứng trong các thư mục đó trên các đường dẫn

URL.

Dé tìm kiếm các thư mục trong một đường dẫn URL, tác giả đã áp dung hai cách

sau:

¢ Bruteforce thu mục: Sử dung danh sách thư mục phổ biến, hệ thống thử lần

lượt gửi các yêu cầu HTTP tới các thư mục đó và xem xét mã phản hồi trả về

từ máy chủ để xác định thư mục đó có tồn tại hay không. Tác giả sử dung công cụ Dirsearch để thực hiện hóa tính năng này.

* Tìm các thư mục và đường dẫn có trong các tệp javascript và html: Việc

phân tích và tìm kiếm thư mục và đường dẫn trong các tệp javascript và html là không thể bỏ qua, với phương pháp này chương trình thậm chí tìm kiếm được những thư mục và các tham số đầu vào bí mật mà không thể tìm thấy trên giao diện người dùng. Để thực hiện tính năng này, tác giả sử dụng

công cụ Gospider.

Sau khi đã có danh sách các thư mục, hệ thống xóa các thành phần trùng lặp và loại bỏ một số tài nguyên tĩnh như các tệp png, jpeg, txt, pdf,... Sau đó hệ thống tìm kiếm các tham số đầu vào cho mỗi thư mục bằng hai phương pháp như sau:

se Tìm kiếm và phân tích dữ liệu trong các thẻ form: Chương trình tìm kiếm

các form có trong dữ liệu phản hồi của máy chủ.

© Tìm kiếm tham số đầu vào trong các thẻ <a>: Chương trình tìm kiếm tất cả

các thẻ <a> có trong dữ liệu phản hồi của máy chủ, từ đó phân tích và tim

ra các tham số đầu vào.

Sau khi đã có đầy đủ các thông tin về thư mục và các tham số đầu vào, bước tiếp theo đó chính là kiểm tra các lỗ hổng bảo mật. Với phương pháp kiểm thử dựa trên hành vi, hệ thống đưa các dữ liệu đặc biệt là các payloads vào các tham số đầu vào. Dựa vào việc phân tích hành vi phản hồi của máy chủ, hệ thống có thể xác định được máy chủ có đang tổn tại lỗ hổng bảo mật hay không. Đối với mỗi loại lỗ hổng bảo mật đều có các payloads và các hành vi tương ứng khác nhau

như sau:

61

Chương 4. Phương pháp thực hiện

° Lỗ hổng SQL Injection (SQLi): Hệ thống phát hiện lỗ hổng này bằng cách

xem xét hành vi thời gian phản hồi của máy chủ. Bằng cách chèn các mã SQL có tính năng khiến máy chủ bị trì hoãn trong một khoảng thời gian khi được thực thi, hệ thống kiểm tra xem liệu thời gian phản hồi của máy chủ

có vượt quá thời gian chờ đợi (thời gian mà trọng tải yêu cầu làm cho máy chủ bị trì hoãn) hay không. Nếu thời gian phản hồi vượt quá ngưỡng này, chương trình có thể kết luận rằng có lỗ hổng tiêm mã SQL. Ví dụ, hệ thống

sử dụng một payload như aa' and sleep(5)-- -. Nếu máy chủ thực sự tồn tại lỗ hổng và ham sleep được thực thi, thời gian phản hồi của máy chủ sẽ

vượt quá 5 giây.

© Lỗ hổng Cross-Site Scripting (XSS): Dé phát hiện lỗ hổng này, hệ thống gửi

các payloads là các đoạn mã HTML đặc biệt tới máy chủ. Với mỗi trọng tải được gửi đi, trong đó chứa một mã ID để định danh trọng tải. Nếu trọng tải được thực thi như một thành phần của trang, ta có thể phân tích phản hồi của máy chủ và gọi đồi tượng có ID là mã định danh đã truyền vào. Phương pháp này có độ chính xác cao khi kết quả cho ra không có dương tính giả.

¢ Lỗ hổng Command Injection: Để xác định lỗ hổng này ta có thể gây ra nhiều

loại hành vi trên máy chủ như: Đọc tệp hệ thống, khiến hệ thống trì hoãn, tạo một yêu cầu HTTP hoặc DNS tới một máy chủ ngoại vi và nhiều hành

vi khác. Hệ thống sử dung các payloads để tạo hành vi đọc tệp hệ thống kết hợp với tạo thời gian trễ trong hệ thống vì điều này dé nhận ra và không làm ảnh hưởng tới hệ thống. Ví dụ hệ thống sử dụng payload ;cat /etc/passvd, nếu máy chủ sử dụng hệ điều hành linux và có tổn tại lỗ hổng chèn lệnh hệ thống, rất có thé dữ liệu của tệp /etc/passwd sẽ được lộ ra trong phản hồi

của máy chủ.

© Lỗ hổng local file inclusion (LFI): Hệ thống sử dung các payloads để đọc

một tệp hệ thống nhất định và xem xét tệp đó có được đính kèm trong phản hồi của máy chủ hay không.

62

Chương 4. Phương pháp thực hiện

Một phần của tài liệu Khóa luận tốt nghiệp An toàn thông tin:Bộ khung kiểm thử bảo mật tự động tích hợp cơ chế giăng bẫy và chia sẻ thông tin tình báo mối đe dọa (Trang 67 - 72)

Tải bản đầy đủ (PDF)

(103 trang)