[P2] Cách mà mã độc hiện đại hoạt động
Mở bài
Chúng ta đã tìm hiểu cách mã độc duyệt file và tìm những file nhạy cảm như: .log, .env, .png, .jpeg, .jpg,... Hôm nay mình sẽ giúp mọi người hiểu cách mà một mã độc có thể tồn tại được trên hệ thống, duy trì sự hiện diện và tái kích hoạt hành vi.
LƯU Ý: Bài viết này chỉ để hướng dẫn cho mục đích học tập và sẽ không chịu trách nhiệm cho bất cứ hành vi vi phạm pháp luật nào cả.
Tổng quan về Persistence trong mã độc
-
Persistence là hành vi duy trì kiểm soát hệ thống thông tin sau sau khi đã xâm nhập thành công, nó cho phép Attacker hoạt động trên phần mềm bị xâm nhập trong một thời gian dài ngay cả khi hệ thống bị khởi động lại, bị đăng xuất hay là khi cuộc tấn công ban đầu đã bị fix .
-
Mục tiêu của Persistence là giúp Attacker duy trì cuộc tấn công lâu nhất có thể, tiếp tục các hành vi đánh cắp thông tin, giám điệp hoặc tấn công mạng mà không bị phát hiện
-
Lấy ví dụ khi mình tấn công vào một máy chủ đang chạy dịch vụ web có khả năng bị RCE, thì sau khi tiến hành xâm nhập có nhiều khả năng mình sẽ tạo một backdoor nhằm duy trì cuộc tấn công ngay kể sau khi admin đã fix lỗi :3 Điều này cũng thường thấy, Attacker sẽ viết Webshell rồi chèn vào các file như: 404.php, 405.aspx, error.jsp,... nhằm đánh lừa người dùng rằng đây là các file sạch
Một số kĩ thuật persistence
- Create account
- Như mình nói, miễn Attacker có khả năng duy trì việc tấn công của họ thì đều có thể gọi là persistence. Sau khi tiến hành xâm nhập, kẻ tấn công có thể tạo một tài khoản giả gần giống với tài khoản thật, đồng thời cấp các quyền cho phép truy cập từ xa như tạo khóa ssh, thêm vào localgroup "Remote Desktop User",... tùy thuộc vào quyền hạn mà kẻ tấn công có.
Example: net user Admon Adm@n@123 /add
net localgroup "Remote Desktop Users" Admon /add
-
Registry Run Key và Startup Program
-
Startup program
-
Attacker sẽ thêm file độc hại đã được cài đặt sẵn vào Startup để tự khởi chạy khi chúng ta đăng nhập thông qua đường dẫn
C:\Users\<Username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
-
-
Registry Run Key
-
Run và RunOnce Keys: Mã độc có thể tạo mục trong registry để tự khởi động cùng với hệ điều hành.
Các key thường gặp: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
- Class Extension: Mã độc có thể thay đổi thông tin để mặc định sẽ được chạy khi người dùng mở tệp.
- Services: Mã độc có thể tạo các service giả mạo hoặc thay đổi thông tin registry của các service hiện tại.
-
-
-
Schedule Task/Job
- Trên Windows thì có Task Scheduler còn trên Linux có Cronjob để thực thi file vào 1 điểm điểm đã được thiết lập, mã độc có thể tự thiết lập bản thân vào đây thể có thể chạy theo lịch, đặc biệt là trên các máy chủ thì thường sẽ không tắt nên hành vi sẽ luôn được duy trì cố định.
- Trên Windows thì có Task Scheduler còn trên Linux có Cronjob để thực thi file vào 1 điểm điểm đã được thiết lập, mã độc có thể tự thiết lập bản thân vào đây thể có thể chạy theo lịch, đặc biệt là trên các máy chủ thì thường sẽ không tắt nên hành vi sẽ luôn được duy trì cố định.
-
Software Extension
- Chúng ta thường để ý đến mã độc dạng .exe hay là những con Webshell thông thường, tuy nhiên mã độc còn có thể là các đoạn script độc hại đánh cắp cookie và thông tin đăng nhập được đính kèm trên các extension trôi nổi. Chúng chỉ hoạt động trên trình duyệt web nên rất khó để xác định được hành vi gián điệp
-
Process/DLL Injection
-
Mã độc sẽ tiêm chúng vào các process hợp pháp như:
- explorer.exe, svchost.exe, lsass.exe,...: Đây là các tiến trình hệ thống có quyền hạn rất cao, luôn chạy nền và ít bị nghi ngờ
- chrome.exe, msedge.exe, discord.exe, steam.exe: Dễ dàng qua firewall và gửi requests đến C2 vì traffic trông hoàn toàn hợp pháp
- notepad.exe, calc.exe, winword: Các tiến trình phổ biến dễ dàng qua mặt AV,...
- Ngoài ra còn có một số kĩ thuật khác như dùng Wmi, Pre OS Boot,... nhưng mình sẽ nói ở những bài kế tiếp
Kết luận:
- Bài trên là một số tóm tắt cũng như hiểu biết của mình về quá trình Persistence của mã độc. Nếu mình nhớ không nhầm con CVE-2025-8088 của Winrar cũng sử dụng Path Traversal để ghi vào Startup cho phép đạt quyền RCE :33 Mọi người cũng có thể nghiên cứu về nó, còn giờ thì tạm biệt, hẹn gặp lại vào những bài sắp tới, và nếu thấy hay thì cho mình xin một upvote nhé :3
All Rights Reserved