DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt Thuật ngữ tiếng Anh/Giải thích Thuật ngữ tiếng Việt/Giải thích IIS Internet Information Services Dịch vụ thông tin Internet giống như một Web Serv
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA AN TOÀN THÔNG TIN
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
Các sinh viên thực hiện:
B21DCAT188 Hồ Thị Kiều Trinh B21DCAT033 Nguyễn Đức Anh B21DCAT085 Bùi Thanh Hiếu
Tên nhóm: 08 Tên lớp: 04
Giảng viên hướng dẫn: ThS Vũ Minh Mạnh
HÀ NỘI 2024
Trang 2PHÂN CÔNG NHIỆM VỤ NHÓM THỰC HIỆN
hoàn thành
1 Tìm hiểu khái quát IIS, DEMO Phòng
Thủ, cách khắc phục, tìm thông tin tài liệu
liên quan
Nguyễn Đức Anh 15/11/2024
2 Tìm hiểu CVE-2021-31166,Tìm POC ,
Tấn Công, làm slide ,báo cáo
Hồ Thị Kiều Trinh 15/11/2024
3 Tìm hiểu cách khai thác lỗ hổng, viết báo
cáo, làm slide Tìm hiểu
Mức hoàn thành CV
Kỹ năng giao tiếp
Kỹ năng hợp tác
Kỹ năng lãnh đạo
Trang 3MỤC LỤC
MỤC LỤC 3
DANH MỤC CÁC HÌNH VẼ 5
MỞ ĐẦU 7
CHƯƠNG 1 GIỚI THIỆU VỀ IIS VÀ LỖ HỔNG REMOTE CODE EXECUTION 8
1.1 Tổng quan về IIS 8
1.2 Kiến trúc và thành phần của IIS 7
1.3 Lỗ hổng Remote Code Execution 13
1.4 Tầm quan trọng của IIS và nguy cơ từ lỗ hổng RCE 15
1.5 Mục tiêu của báo cáo 16
CHƯƠNG 2 PHÂN TÍCH LỖ HỔNG RCE 17
2.1 Cơ chế hoạt động 17
2.2 Các loại tấn công phổ biến 17
2.2.1 Injection (SQL, Command Injection): 17
2.2.2 Deserialization Attack 21
2.2.3 File upload vulnerabilities 23
2.3 Tác động 25
2.4 Nguyên nhân gây ra lỗ hổng 26
2.4.1 Thiếu kiểm tra và xác thực đầu vào: 27
2.4.2 Lỗ hổng trong cấu hình máy chủ: 27
2.4.3 Lỗi trong việc xử lý yêu cầu từ người dung 27
2.4.4 Lỗ hổng trong các thành phần bên ngoài và thư viện 27
2.4.5 Quản lý và bảo mật phiên làm việc kém 28
2.5 Phát hiện lỗ hổng 28
2.5.1 Kiểm tra cấu hình IIS 28
2.5.2 Quét lỗ hổng bằng công cụ tự động 28
2.5.3 Kiểm tra thủ công (Manual Testing) 29
2.5.4 Phân tích nhật ký (Logs) 30
2.5.5 So sánh phiên bản IIS với danh sách CVE 30
2.5.6 Kiểm tra các lỗ hổng của tệp tải lên 31
2.5.7 Phân tích bằng kỹ thuật fuzzing 31
2.5.8 Tấn công thử nghiệm (Penetration Testing) 31
2.6 Các biện pháp ngăn ngừa và khắc phục 32
2.6.1 Cập nhật và vá lỗi thường xuyên 32
Trang 42.6.2 Cấu hình IIS an toàn 32
2.6.3 Bảo vệ đầu vào người dung 33
2.6.4 Quản lý tệp tải lên 34
2.6.5 Giám sát và phân tích nhật ký IIS 34
2.7 Kết chương 35
CHƯƠNG 3 THỬ NGHIỆM VÀ DEMO CVE-2021-31166 36
3.1 Tổng quan về CVE-2021-31166 3
3.2 Chuẩn bị môi trường 34
3.3 Proof of Concept 36
3.4 Cách diễn ra lỗi 37
KẾT LUẬN 39
Tài liệu kham khảo
Trang 5DANH MỤC CÁC HÌNH VẼ
Hình 1 – Các chức năng của IIS 18
Hình 2 – Các phiên bản Microsoft IIS và phiên bản Windows Server tương ứng 19
Hình 3 – Dịch vụ WWW trên IIS Error! Bookmark not defined. Hình 4 – Màn hình Application Pools của IIS 23
Hình 5 – Xử lý dữ liệu ASP của IIS 26
Hình 6 – Cách thức hoạt động của IIS 34
Hình 7 – Quá trình kẻ tấn công khai thác lỗ hổng và thực hiện RCE 36
Hình 8 – Tiến trình của giao thức SSL trên IIS 36
Hình 9 – Dịch vụ Logging trong IIS 37
Hình 10 – Mã độc lợi dụng lỗ hổng web server IIS tấn công vào trang web 37
Hình 11 – Mô tả tấn công SQL injection 37
Hình 12 – Tấn công Command Injection 37
Hình 13 – Tấn công RCE thông qua lỗ hổng Deserialization 37
Hình 14 – Lỗ hổng file upload 31
Hình 15 – Tấn công từ chối dịch vụ 32
Hình 16 – Danh sách các cve mới liên quan đến web server IIS 33
Hình 17 – Chỉnh sửa tệp web.config để chặn các loại file cụ thể 34
Hình 18 – Chỉnh sửa tệp web.config 35
Hình 19 – Tông quan về CVE 37
Hình 20 – POC của CVE-2021-31166 37
Hình 21 – Server bị crash 38
Hình 22 – Thực hiện cấu hình cài đặt IDS và add rule 39
Trang 6
DANH MỤC CÁC TỪ VIẾT TẮT
Từ
viết tắt Thuật ngữ tiếng Anh/Giải thích Thuật ngữ tiếng Việt/Giải thích
IIS Internet Information Services
Dịch vụ thông tin Internet giống như một Web Server đa năng dành cho Microsoft có nhiệm vụ tiếp nhận và phản hồi các yêu cầu của máy khách
RCE Remote Code Execution
Loại lỗ hổng nguy hiểm nhất, cho phép hacker chiếm quyền điều khiển máy chủ ứng dụng
POC Proof Of Concept
Được sử dụng để chứng minh rằng một ý tưởng, giải pháp, hoặc công nghệ có thể thực hiện được và có tiềm năng hoạt động trong thực tế
W3SVC World Wide Web Publishing Service
Một dịch vụ trong Internet Information Services (IIS) của Windows, đóng vai trò quan trọng trong việc quản lý các chức năng liên quan đến web server
CVE Common Vulnerabilities and Exposures
Một hệ thống tiêu chuẩn hóa để nhận dạng và theo dõi các lỗ hổng bảo mật trong phần mềm hoặc phần cứng Mỗi
lỗ hổng hoặc điểm yếu được phát hiện
sẽ được gán một CVE ID duy nhất,
giúp các tổ chức, nhà phát triển, và chuyên gia bảo mật có thể theo dõi và
xử lý các vấn đề bảo mật một cách hiệu quả và có hệ thống
NTFS New Technology File System
Một hệ thống tập tin (file system) được Microsoft phát triển, được sử dụng chủ yếu trên các hệ điều hành Windows để tổ chức, lưu trữ và quản
lý dữ liệu trên ổ đĩa
Trang 7MỞ ĐẦU
Trong thời đại số hóa hiện nay, Internet Information Services (IIS) đóng vai trò vô cùng quan trọng trong việc cung cấp dịch vụ web Ước tính có hàng triệu website trên toàn cầu đang sử dụng IIS để phục vụ người dùng Tuy nhiên, bên cạnh những ưu điểm vượt trội, IIS cũng tiềm ẩn nhiều rủi ro bảo mật, đặc biệt là lỗ hổng Remote Code Execution (RCE) Lỗ hổng này cho phép kẻ tấn công thực thi mã độc hại trên máy chủ, từ đó chiếm quyền điều khiển hệ thống, đánh cắp dữ liệu nhạy cảm hoặc thậm chí là phá hủy hoàn toàn hệ thống Báo cáo này tập trung tìm hiểu về lỗ hổng IIS Remote Code Execution thông qua ví dụ
vê CVE-2021-31166, cách thức tin tặc khai thác, tấn công và trình bày một số giải pháp khắc phục lỗ hổng này Bằng cách đó, chúng ta có thể nâng cao nhận thức về tầm quan trọng của bảo mật thông tin và bảo vệ Web Server IIS khỏi các cuộc tấn công mạng
Báo cáo bài tập lớn gồm 3 chương với nội dung chính như sau:
- Chương 1: Nghiên cứu tổng quan giới thiệu về web server IIS các thành phần kiến trúc và một số tính năng bảo mật trên IIS và lỗ hổng remote code execution
- Chương 2: Phân tích lỗ hổng RCE chi tiết và các biến thể để có thể thực hiện tấn công
và khai thác lỗ hổng
- Chương 3: Thực hiện việc thử nghiệm tấn công phòng thủ cve-2021-31166 đưa ra biện pháp phòng ngừa
Trang 8CHƯƠNG 1 GIỚI THIỆU VỀ IIS VÀ LỖ HỔNG REMOTE CODE EXECUTION 1.1 Tổng quan về Web Server IIS
Internet Information Services (IIS) là một nền tảng máy chủ web được phát triển bởi Microsoft, cho phép lưu trữ và phân phối các nội dung web như trang HTML, ứng dụng web ASP.NET, và API RESTful Là một thành phần của hệ điều hành Windows Server, IIS cung cấp môi trường tích hợp để quản lý các dịch vụ web hiệu quả, với khả năng hỗ trợ các giao thức phổ biến như HTTP, HTTPS, FTP và SMTP
IIS được sử dụng phổ biến nhất bởi các doanh nghiệp IT vì nó có thể được quản lý tập trung và mở rộng quy mô để tạo ra các web server lớn, đáp ứng nhu cầu cho các trang web
có lưu lượng truy cập cao IIS lưu trữ ứng dụng, trang web và các dịch vụ tiêu chuẩn khác
mà người dùng cần và cho phép các nhà phát triển tạo trang web, ứng dụng và thư mục ảo
để chia sẻ với người dùng của họ
Đặc điểm nổi bật của IIS:
Tích hợp sâu với hệ điều hành Windows: IIS tận dụng các tính năng bảo mật và
quản lý của Windows, như Active Directory và Windows Authentication, để đảm bảo tính an toàn và hiệu suất cao
Hỗ trợ đa dạng công nghệ: Ngoài ASP.NET, IIS còn hỗ trợ PHP, Node.js, và các
ứng dụng khác thông qua các module mở rộng
Khả năng quản lý nâng cao: IIS Manager cung cấp giao diện đồ họa và dòng lệnh
để quản trị các dịch vụ web, đi kèm với khả năng theo dõi hiệu năng và ghi nhật ký (logging)
Khả năng mở rộng và tích hợp đám mây: IIS dễ dàng tích hợp với các dịch vụ đám
mây của Microsoft như Azure, giúp doanh nghiệp triển khai ứng dụng một cách linh hoạt
Hình 1: các chức năng của IIS
Trang 9Lịch sử phát triển:
IIS được ra mắt lần đầu vào năm 1995 cùng với Windows NT 3.51 Qua nhiều phiên bản, IIS đã phát triển thành một trong những nền tảng web phổ biến nhất, với phiên bản mới nhất (IIS 10) tích hợp sẵn trong Windows Server 2016 và 2019, hỗ trợ các giao thức hiện đại như HTTP/2 và khả năng lưu trữ container
Hình 2: Các phiên bản Microsoft IIS và phiên bản Windows Server tương ứng
Ứng dụng thực tế:
IIS thường được sử dụng để:
Lưu trữ các ứng dụng web nội bộ của doanh nghiệp
Phân phối nội dung tĩnh và động trên Internet
Cung cấp các dịch vụ API cho hệ thống lớn
Với khả năng tích hợp mạnh mẽ và tính năng phong phú, IIS đã trở thành lựa chọn phổ biến trong các tổ chức sử dụng nền tảng Microsoft
1.2 Kiến trúc, thành phần cơ chế hoạt động của IIS
IIS bao gồm nhiều thành phần để quản lý và triển khai các dịch vụ web: [1]
World Wide Web Publishing Service (W3SVC)
Dịch vụ W3SVC trong IIS chịu trách nhiệm quản lý và điều phối các website và ứng dụng web Dịch vụ này xử lý yêu cầu từ các máy khách, định tuyến chúng đến các
Trang 10ứng dụng web trên máy chủ và trả về kết quả dưới dạng các trang web Cụ thể hơn, W3SVC đảm bảo rằng các ứng dụng web được triển khai đúng cách, quản lý các yêu cầu HTTP và HTTPS, theo dõi các kết nối, và duy trì nhật ký hoạt động của các ứng dụng Nếu W3SVC ngừng hoạt động, các trang web và ứng dụng web chạy trên máy chủ sẽ không thể truy cập được
Hình 3: Dịch vụ WWW trên IIS
Application Pools
Application Pools trong IIS là các môi trường độc lập mà trong đó các ứng dụng web chạy Mỗi Application Pool có thể chứa một hoặc nhiều ứng dụng web, và chúng được tách biệt với nhau nhằm đảm bảo rằng lỗi hoặc sự cố trong một ứng dụng không ảnh hưởng đến các ứng dụng khác Ngoài ra, Application Pools giúp cải thiện hiệu suất và bảo mật:
- Hiệu suất: Các ứng dụng có thể được phân chia trên nhiều Application Pool khác nhau để tận dụng tối đa tài nguyên hệ thống
- Bảo mật: Các ứng dụng có thể chạy dưới các tài khoản người dùng khác nhau hoặc cấu hình bảo mật riêng, đảm bảo rằng một ứng dụng bị xâm phạm sẽ không ảnh hưởng đến toàn bộ hệ thống
Trang 11Hình 4: Màn hình Application Pools của IIS
ISAPI Extensions & Filters
Cung cấp cách mở rộng chức năng của IIS, cho phép thực hiện các tác vụ như nén dữ liệu hoặc xác thực người dùng
- ISAPI Extensions: Đây là các thành phần có thể thực thi trong IIS để mở rộng tính năng cho các ứng dụng web Ví dụ, các ứng dụng như ASP.NET sử dụng ISAPI Extensions để xử lý các yêu cầu cụ thể Khi trình duyệt gửi một yêu cầu đến máy chủ web, IIS sẽ gọi ISAPI Extension tương ứng để xử lý và trả về kết quả cho người dùng
- ISAPI Filters: ISAPI Filters được sử dụng để theo dõi và xử lý các yêu cầu HTTP đến và đi từ IIS Chúng có thể thực hiện các tác vụ như nén dữ liệu để giảm băng thông, thay đổi thông tin tiêu đề của HTTP, hoặc xác thực người dùng trước khi yêu cầu được chuyển đến ứng dụng web Các filter này hoạt động ở mức hệ thống, có thể tương tác với tất cả các yêu cầu vào và ra
Trang 12Hình 5: Xử lý dữ liệu ASP của IIS
ASP.NET
ASP.NET [4] là phần mở rộng của nền tảng NET Framework, cho phép các nhà phát triển tạo ra các ứng dụng web và dịch vụ web một cách dễ dàng ASP.NET cung cấp một mô hình lập trình mạnh mẽ, hướng đối tượng, và hỗ trợ nhiều ngôn ngữ lập trình phổ biến như C#, VB.NET, và F# ASP.NET giúp xây dựng các ứng dụng
từ cơ bản đến phức tạp, có thể xử lý lượng lớn dữ liệu và hỗ trợ đồng thời lượng lớn người dùng Các thành phần chính của ASP.NET bao gồm:
- ASP.NET Web Forms: Là mô hình lập trình ban đầu của ASP.NET, cung cấp giao diện trực quan để xây dựng các trang web có khả năng tương tác mạnh
mẽ Web Forms sử dụng event-driven model (mô hình điều khiển sự kiện), giúp nhà phát triển tạo các trang web với các thành phần giao diện người dùng phong phú mà không cần phải sử dụng nhiều mã JavaScript hay HTML
- ASP.NET MVC (Model-View-Controller): ASP.NET MVC chia ứng dụng thành ba phần chính: Model, View, và Controller Mô hình MVC giúp quản lý
mã dễ dàng hơn, tách biệt các khía cạnh logic và giao diện, và làm cho các ứng dụng dễ bảo trì, mở rộng
- ASP.NET Web API: ASP.NET Web API giúp phát triển dịch vụ web RESTful, cho phép các ứng dụng trao đổi dữ liệu thông qua giao thức HTTP Web API
là một phần quan trọng trong việc xây dựng các dịch vụ cho các ứng dụng di động, ứng dụng web hoặc hệ thống liên kết khác nhau
Cơ chế hoạt động của web server IIS
Trang 13IIS hoạt động dựa trên 2 giao thức mạng chính là HTTP và FPT Nhờ đó, IIS đóng vai trò tiếp nhận các yêu cầu và truyền tải những thông tin trên Internet đi kèm với nhiều định dạng khác nhau
Hình 6: cách thức hoạt động của IIS
Trong số các dịch vụ của IIS, dịch vụ World Wide Web (WWW) là dịch vụ phổ biến nhất dùng Để tiếp nhận các yêu cầu từ trình duyệt, dịch vụ Web sử dụng giao thức mạng HTTP với thông tin có dạng địa chỉ URL Sau đó, IIS sẽ gửi nội dung của website tương ứng về Web Browser để phản hồi lại những yêu cầu ban đầu
1.3 Lỗ hổng Remote Code Execution
Lỗ hổng Remote Code Execution (RCE) [2] là một loại lỗ hổng bảo mật nghiêm trọng cho phép kẻ tấn công thực thi mã độc hại từ xa trên một hệ thống máy tính Khi một hệ thống có lỗ hổng RCE, kẻ tấn công có thể gửi một yêu cầu đặc biệt đến hệ thống đó, và hệ thống sẽ thực thi đoạn mã độc hại mà kẻ tấn công gửi đi, giống như thể đoạn mã đó là một phần của hệ thống hợp pháp
Các lỗ hổng RCE có thể xuất hiện trong bất kỳ loại phần mềm máy tính nào, trong hầu hết mọi ngôn ngữ lập trình và trên mọi nền tảng Có các lỗ hổng RCE, ví dụ, trong các ứng dụng Windows độc lập được viết bằng C#, các ứng dụng web và API được viết bằng PHP, các ứng dụng di động được viết bằng Java và ngay cả trong chính các hệ điều hành
Trang 14Hình 7: quá trình kẻ tấn công khai thác lỗ hổng và thực hiện RCE
Các lỗ hổng khác có thể dẫn đến thực thi mã tùy ý từ xa Ví dụ, các lỗ hổng tràn bộ đệm (buffer overflow) trong các ngôn ngữ như C/C ++ có thể cho phép kẻ tấn công thực thi mã tùy ý trong ứng dụng Lỗ hổng Deserialization cũng có thể cho phép những kẻ tấn công cung cấp một payload mà khi được giải mã, kẻ tấn công có thể chèn thêm vào cho ứng dụng thực thi Thậm chí có những trường hợp được biết đến là sử dụng lỗ hổng SQL Injection và Cross-site Scripting (XSS) dẫn đến thực thi mã từ xa trong một ứng dụng dễ bị tổn thương
Tính năng bảo mật của IIS
Trang 15Hình 8: Tiến trình của giao thức SSL trên IIS
Logging và Monitoring
IIS cung cấp các tính năng ghi nhật ký và giám sát hoạt động của máy chủ, giúp phát hiện các hoạt động bất thường
Hình 9 Dịch vụ Logging trong IIS
1.4 Tầm quan trọng của IIS và nguy cơ từ lỗ hổng RCE
Với vai trò quan trọng trong việc cung cấp dịch vụ web, IIS trở thành mục tiêu hấp dẫn của các cuộc tấn công mạng Hệ thống IIS bị khai thác lỗ hổng RCE, kẻ tấn công có thể:
Trang 16 Chiếm quyền điều khiển hệ thống: Kẻ tấn công có thể thực thi mã độc hại để chiếm quyền kiểm soát hoàn toàn máy chủ, từ đó thực hiện các hoạt động độc hại khác
Đánh cắp dữ liệu: Kẻ tấn công có thể truy cập và đánh cắp các dữ liệu nhạy cảm lưu trữ trên máy chủ, chẳng hạn như thông tin khách hàng, thông tin tài chính, v.v
Phá hủy dữ liệu: Kẻ tấn công có thể xóa hoặc làm hỏng dữ liệu trên máy chủ, gây ra thiệt hại lớn cho tổ chức
Sử dụng máy chủ làm điểm trung chuyển: Kẻ tấn công có thể sử dụng máy chủ bị xâm nhập để thực hiện các cuộc tấn công khác, chẳng hạn như tấn công từ chối dịch
vụ (DoS), tấn công vào các hệ thống khác
Hình 10 Mã độc lợi dụng lỗ hổng web server IIS tấn công vào trang web
1.5 Mục tiêu của báo cáo
Báo cáo này nhằm mục tiêu phân tích sâu về lỗ hổng RCE trên IIS, bao gồm:
Cơ chế hoạt động: Giải thích chi tiết cách thức kẻ tấn công khai thác lỗ hổng
Các loại tấn công phổ biến: Trình bày các hình thức tấn công thường gặp liên quan đến lỗ hổng RCE
Nguyên nhân gây ra lỗ hổng: Phân tích các yếu tố dẫn đến sự xuất hiện của lỗ hổng
Các yếu tố rủi ro: Xác định các yếu tố làm tăng nguy cơ bị tấn công
Phát hiện lỗ hổng: Hướng dẫn cách phát hiện lỗ hổng
Các biện pháp phòng ngừa và khắc phục: Đề xuất các giải pháp để bảo vệ hệ thống khỏi lỗ hổng RCE
Trang 17CHƯƠNG 2 PHÂN TÍCH LỖ HỔNG RCE 2.1 Cơ chế hoạt động
Lỗ hổng thực thi mã từ xa (Remote Code Execution - RCE) là một trong những loại lỗ hổng bảo mật nghiêm trọng nhất, cho phép kẻ tấn công chạy mã tùy ý trên hệ thống mục
tiêu từ xa Điều này dẫn đến việc mất kiểm soát hoàn toàn hệ thống bị khai thác
Cơ chế hoạt động cơ bản của RCE bao gồm:
Xác định lỗ hổng: Kẻ tấn công tìm kiếm các điểm yếu trong phần mềm, chẳng hạn như lỗi logic, lỗ hổng tràn bộ đệm, hoặc các module không được vá lỗi
Chèn mã độc: Mã độc được truyền qua giao diện đầu vào không an toàn, chẳng hạn như form nhập liệu, HTTP request, hoặc file upload
Thực thi mã độc: Mã độc được xử lý bởi ứng dụng mục tiêu và thực thi trực tiếp trên hệ thống
Kiểm soát hệ thống: Sau khi thực thi mã độc, kẻ tấn công có thể:
- Tải xuống các payload bổ sung
- Chiếm quyền điều khiển hệ thống
- Tấn công mạng lưới nội bộ
2.2 Các loại tấn công phổ biến
2.2.1 Injection (SQL, Command Injection):
Kẻ tấn công chèn mã độc vào đầu vào không được kiểm soát Phổ biến là tấn công SQL Injection Ngoài ra còn có một số kiểu tấn công chèn mã khác như Command Injection, CRLF Injection hay NoSQL Injection
2.2.1.1 SQL Injection (SQLi)
SQL injection (SQLi) là một lỗ hổng bảo mật web cho phép kẻ tấn công can thiệp vào các truy vấn mà ứng dụng thực hiện đối với cơ sở dữ liệu của ứng dụng Điều này có thể cho phép kẻ tấn công xem dữ liệu mà thông thường chúng không thể truy xuất được Dữ liệu này có thể bao gồm dữ liệu thuộc về người dùng khác hoặc bất kỳ dữ liệu nào khác mà ứng dụng có thể truy cập
Trong nhiều trường hợp, kẻ tấn công có thể sửa đổi hoặc xóa dữ liệu này, gây ra những thay đổi liên tục đối với nội dung hoặc hành vi của ứng dụng Ngoài ra, kẻ tấn công có thể leo thang tấn công SQL injection để xâm phạm máy chủ cơ sở hoặc cơ sở hạ tầng phụ trợ khác Nó cũng có thể cho phép chúng thực hiện các cuộc tấn công từ chối dịch vụ
Trang 18Hình 11 Mô tả tấn công SQL injection
Có 2 nguyên nhân của lỗ hổng trong ứng dụng cho phép thực hiện tấn công chèn mã SQL:
Dữ liệu đầu vào từ người dùng hoặc từ các nguồn khác không được kiểm tra hoặc kiểm tra không kỹ lưỡng
Sử dụng các câu lệnh SQL động trong ứng dụng, trong đó có thao tác nối dữ liệu người dùng với mã lệnh SQL gốc
Một cuộc tấn công tiêm SQL thành công có thể dẫn đến truy cập trái phép vào dữ liệu nhạy cảm, chẳng hạn như:
- Mật khẩu
- Chi tiết thẻ tín dụng
- Thông tin cá nhân của người dùng
Tấn công SQL Injection (SQLi) có thể dẫn đến Remote Code Execution (RCE) trong các trường hợp cụ thể, đặc biệt khi cơ sở dữ liệu có khả năng thực thi mã hệ thống hoặc giao tiếp trực tiếp với hệ thống máy chủ Dưới đây là một số ví dụ chi tiết về cách SQLi có thể
bị lợi dụng để thực hiện RCE
Lợi dụng hàm xp_cmdshell trong SQL Server: Trong Microsoft SQL Server, hàm xp_cmdshell cho phép thực thi lệnh hệ thống từ cơ sở dữ liệu Nếu tính năng này được kích hoạt và kẻ tấn công có quyền truy cập SQL thông qua SQLi, họ có thể thực thi mã tùy ý trên máy chủ
Trang 19 Chèn mã độc qua LOAD_FILE và INTO OUTFILE: Trong MySQL, các hàm như LOAD_FILE và INTO OUTFILE có thể được sử dụng để đọc hoặc ghi tệp trên máy chủ, dẫn đến thực thi mã độc
2.2.1.2 Command Injection
OS command injection còn được gọi là shell injection Nó cho phép kẻ tấn công thực thi các lệnh hệ điều hành (OS) trên máy chủ đang chạy ứng dụng và thường xâm phạm hoàn toàn ứng dụng và dữ liệu của ứng dụng
Kẻ tấn công thường có thể lợi dụng lỗ hổng tiêm lệnh hệ điều hành để xâm phạm các phần khác của cơ sở hạ tầng lưu trữ và khai thác các mối quan hệ tin cậy để chuyển hướng cuộc tấn công sang các hệ thống khác trong tổ chức
Hình 12 – Tấn công Command Injection
OS Command Injection (Tấn công chèn lệnh hệ điều hành) xảy ra do các nguyên nhân liên quan đến lỗi lập trình, thiết kế hệ thống hoặc kiểm soát an ninh không chặt chẽ trong việc xử lý đầu vào từ người dùng Dưới đây là các nguyên nhân phổ biến dẫn đến loại lỗ hổng này:
Xử lý đầu vào không an toàn: Ứng dụng không kiểm tra và lọc dữ liệu đầu vào từ người dùng, dẫn đến việc các ký tự hoặc chuỗi nguy hiểm có thể được truyền vào các hàm thực thi lệnh hệ điều hành
Sử dụng trực tiếp hàm thực thi lệnh: Các hàm như system(), exec(), shell_exec() (PHP), Runtime.exec() (Java), hoặc os.system() (Python) cho phép chạy lệnh hệ điều hành từ ứng dụng
Trang 20 Lạm dụng dữ liệu từ bên thứ ba: Ứng dụng sử dụng dữ liệu từ các nguồn không đáng tin cậy (như API, tệp nhật ký, hoặc thông tin từ cơ sở dữ liệu) để thực thi lệnh mà không xác minh độ an toàn
Tấn công OS Command Injection có thể gây ra những hậu quả nghiêm trọng đối với hệ thống, dữ liệu, và thậm chí cả uy tín của tổ chức:
Chiếm quyền điều khiển hệ thống: Kẻ tấn công có thể chiếm toàn bộ quyền kiểm soát hệ thống, bao gồm khả năng
- Tạo, sửa đổi, hoặc xóa tệp hệ thống
- Cấp quyền truy cập cho tài khoản mới để duy trì sự xâm nhập
- Chạy mã độc hại hoặc triển khai các công cụ tấn công khác
Rò rỉ dữ liệu nhạy cảm: Lỗ hổng có thể bị khai thác để truy cập và đánh cắp dữ liệu quan trọng
Phá hủy dữ liệu: Kẻ tấn công có thể xóa toàn bộ dữ liệu trên máy chủ hoặc làm hỏng
- Lệnh ping sẽ được thực thi và kết quả trả về cho người dùng
- Tuy nhiên, lệnh rm -rf / sẽ xóa toàn bộ dữ liệu trên máy chủ (hoặc hủy hoại hệ
thống)
Tấn công Command Injection thông qua form nhập liệu: Ứng dụng cho phép người dùng nhập thông tin tên và gửi đến máy chủ để hiển thị thông tin trên giao diện người dùng
- Ứng dụng web thực hiện lệnh để in thông tin người dùng:
echo $username
- Tấn công: Kẻ tấn công có thể nhập vào trường "tên" như sau: