Phát hiện lỗ hổng

Một phần của tài liệu Báo cáo bài tập lớn học phần an toàn Ứng dụng web và cơ sở dữ liệu mã học phần int14105 Đề tài tìm hiểu về lỗ hổng iis remote code execution (Trang 28 - 32)

CHƯƠNG 2. PHÂN TÍCH LỖ HỔNG RCE

2.5 Phát hiện lỗ hổng

Phát hiện lỗ hổng Remote Code Execution (RCE) trên IIS là một quá trình quan trọng để bảo vệ hệ thống khỏi các cuộc tấn công. Dưới đây là các phương pháp chi tiết để phát hiện lỗ hổng:

2.5.1 Kiểm tra cấu hình IIS

RCE thường xuất hiện do cấu hình sai. Việc kiểm tra cấu hình có thể giúp xác định các điểm yếu.

Các bước thực hiện:

 Xác minh quyền truy cập:

- Kiểm tra các thư mục hoặc tệp nhạy cảm có được bảo vệ bằng quyền truy cập phù hợp không.

- Đảm bảo IIS không chạy dưới tài khoản có quyền quá cao, như SYSTEM.

 Kiểm tra các mô-đun mở rộng (Extensions):

- Xác định xem các mô-đun như WebDAV, CGI, hoặc FastCGI có được kích hoạt không.

- Đảm bảo rằng các mô-đun không cần thiết đã bị vô hiệu hóa.

 Phân tích tệp cấu hình (web.config):

- Kiểm tra xem có bất kỳ cấu hình nào cho phép thực thi mã lệnh từ đầu vào của người dùng không.

- Đảm bảo các đường dẫn tệp tải lên được bảo vệ và xác thực.

 Công cụ hỗ trợ:

- IIS Manager: Kiểm tra và quản lý cấu hình.

- Powershell scripts: Chạy các script để kiểm tra trạng thái và quyền của IIS.

2.5.2 Quét lỗ hổng bằng công cụ tự động

Sử dụng các công cụ quét bảo mật để phát hiện lỗ hổng RCE tiềm ẩn.

Nessus:

- Phát hiện các lỗ hổng bảo mật trên IIS và các dịch vụ liên quan.

- Quét các phiên bản IIS để kiểm tra các lỗ hổng đã biết (CVE).

Acunetix:

- Kiểm tra các lỗ hổng Injection, bao gồm RCE.

- Phát hiện các lỗi trong cấu hình hoặc tệp tải lên.

Nikto:

Công cụ quét máy chủ web mã nguồn mở, phát hiện cấu hình không an toàn và lỗi bảo mật phổ biến.

Burp Suite:

Sử dụng để kiểm tra các điểm đầu vào (input fields) và các tham số truy vấn có khả năng bị khai thác.

Metasploit Framework:

Sử dụng các mô-đun khai thác (exploit modules) có sẵn để kiểm tra khả năng tồn tại của RCE trên IIS.

2.5.3 Kiểm tra thủ công (Manual Testing)

Thử nghiệm thủ công là một cách hiệu quả để phát hiện RCE, đặc biệt là trên các hệ thống có cấu hình đặc thù.

 Các bước kiểm tra:

- Gửi payload độc hại:

+ Gửi các chuỗi độc hại qua các trường nhập liệu, URL, hoặc headers http://example.com?cmd=whoami

+ Nếu máy chủ trả về kết quả thực thi lệnh whoami, có thể tồn tại lỗ hổng RCE.

- Kiểm tra tệp tải lên:

+ Tải lên một tập tin mã độc (ví dụ: một tệp .asp hoặc .php) và cố gắng truy cập trực tiếp vào tệp đó

+ Quan sát xem mã có được thực thi hay không.

- Quan sát phản hồi từ máy chủ:

+ Các phản hồi bất thường như lỗi máy chủ (500 Internal Server Error), hoặc thông tin nhạy cảm (như đường dẫn hệ thống) có thể là dấu hiệu của lỗ hổng.

- Kiểm tra injection trong các tham số URL hoặc form:

+ Ví dụ kiểm tra sử dụng ký tự đặc biệt: & dir &

+ Nếu máy chủ thực thi lệnh, đó là dấu hiệu của RCE.

Công cụ hỗ trợ kiểm tra thủ công:

- cURL: Gửi các yêu cầu HTTP để kiểm tra. Burp Suite (Manual Repeater): Tùy chỉnh các yêu cầu HTTP.

2.5.4 Phân tích nhật ký (Logs)

Xem xét các nhật ký của IIS để tìm kiếm các hoạt động bất thường, chẳng hạn như:

- Các yêu cầu chứa các chuỗi nguy hiểm (payload độc hại).

- Tần suất cao của lỗi 500 hoặc 404, có thể chỉ ra các thử nghiệm tấn công.

- Các truy vấn đến các mô-đun hoặc URL bất thường.

Công cụ phân tích nhật ký:

- Splunk: Phân tích nhật ký tập trung

- ELK Stack (Elasticsearch, Logstash, Kibana): Theo dõi và phân tích các nhật ký trong thời gian thực.

2.5.5 So sánh phiên bản IIS với danh sách CVE

Các lỗ hổng bảo mật đã biết thường được liệt kê trong cơ sở dữ liệu CVE (Common Vulnerabilities and Exposures).

 Các bước thực hiện:

- Xác định phiên bản IIS đang sử dụng.

+ Chạy lệnh sau trên máy chủ để kiểm tra:

Get-WindowsFeature -Name Web-Server - Tìm kiếm trên cơ sở dữ liệu CVE:

+ Ví dụ, nếu sử dụng IIS 7.5, tìm kiếm các lỗ hổng liên quan như: CVE IIS 7.5 + Đặc biệt chú ý đến các lỗ hổng liên quan đến RCE.

Hình 16: danh sách các cve mới liên quan đến web server IIS 2.5.6 Kiểm tra các lỗ hổng của tệp tải lên

Nếu ứng dụng web trên IIS cho phép tải lên tệp, hãy kiểm tra xem cơ chế xử lý tệp tải lên có an toàn hay không.

 Các dấu hiệu nguy hiểm:

- Tệp tải lên không bị kiểm tra loại tệp (file type).

- Không có cơ chế kiểm tra nội dung tệp tải lên (content sniffing).

- Thư mục chứa tệp tải lên cho phép thực thi tệp.

 Payload kiểm tra:

- Tải lên một tập tin .asp hoặc .php chứa nội dung:

<%eval request(“cmd”)%>

- Nếu có thể truy cập tệp và thực thi lệnh thông qua URL, đây là một lỗ hổng RCE.

2.5.7 Phân tích bằng kỹ thuật fuzzing

Fuzzing là phương pháp tự động gửi các đầu vào ngẫu nhiên hoặc độc hại đến ứng dụng để tìm lỗ hổng.

 Công cụ fuzzing:

- Wfuzz: Dùng để kiểm tra các điểm đầu vào của ứng dụng web.

- OWASP ZAP: Dò tìm các lỗi bảo mật thông qua kỹ thuật fuzzing.

2.5.8 Tấn công thử nghiệm (Penetration Testing)

Thử nghiệm tấn công mô phỏng (Pen Test) là phương pháp toàn diện nhất để phát hiện lỗ hổng RCE trên IIS.

 Các mô-đun khai thác phổ biến:

- Metasploit: Sử dụng các exploit modules liên quan đến IIS để kiểm tra khả năng khai thác. Ví dụ:

- Exploit Database: Tìm kiếm các khai thác tùy chỉnh cho phiên bản IIS cụ thể.

Một phần của tài liệu Báo cáo bài tập lớn học phần an toàn Ứng dụng web và cơ sở dữ liệu mã học phần int14105 Đề tài tìm hiểu về lỗ hổng iis remote code execution (Trang 28 - 32)

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

(41 trang)