Sau khi chiếm được quyền truy cập và thành công trong việc leo thang đặc quyền, hacker sẽ cố gắng duy trì quyền truy cập của mình để khai thác mục tiêu hoặc biến hệ thống bị xâm nhập thành công cụ để tấn công các hệ thống khác. Hacker sẽ sử dụng keylogger, spyware, … để duy trì quyền truy cập vào mục tiêu đồng thời che giấu các chương trình độc hại bằng cách sử dụng rootkit, steganography, NTFS data streams, … để duy trì quyền truy cập.
Keylogger
Keyloggers là các chương trình phần mềm hoặc thiết bị phần cứng ghi lại các phím được nhấn trên bàn phím máy tính. Khi cài lên ta có thể xem tất cả các phím được đánh trên máy tính của nạn nhân bất cứ lúc. Nó ghi lại gần như tất cả các phím được đánh trên bàn phím và lưu thông tin đã ghi lại trong một file text. Keyloggers không có giao diện đồ họa cũng như chúng ẩn các tiến trình của mình nên người dùng không phát hiện được.
Keylogger khi kết hợp với spyware có thể giúp truyền thông tin đến một bên thứ ba. Dữ liệu mã hóa được truyền qua cũng dễ bị tấn công keylogging, vì keylogger theo dõi các phím được đánh trước khi mã hóa.
Phân loại keylogger
Tấn công keylogger bằng Metasploit
Trên máy Windows bị khai thác, hacker thiết lập một phiên Meterpreter và thực hiện các bước sau:
Sử dụng lệnh ps
để lấy danh sách các tiến trình đang chạy và các PID của chúng. Để tránh close và khởi động lại quá trình khai thác đang diễn ra, hacker di chuyển PID hiện tại của chúng sang PID của một tiến trình đang chạy.
getpid
migrate <PID>
Sử dụng lệnh keyscan_start
để khởi động quá trình keylogging. Sau đó sử dụng lệnh keyscan_dump
để theo dõi các phím được ấn.
metepreter> keyscan_start
Started keystroke capture...
metepreter> keyscan_dump
Keystrokes
==========
[ENTER]
password123
[ENTER]
Sử dụng lệnh keyscan_stop
để dừng việc theo dõi các phím.
Hacker cũng có thể tự động hóa toàn bộ quá trình theo dõi và lưu trữ dữ liệu bằng cách sử dụng lockout_keylogger của Metasploit.
meterpreter > run post/windows/gather/credentials/lockout_keylogger
[*] Started keylogger...
[*] Waiting for keystrokes...
[*] Dumping captured data...
[*] User: user1
[*] Password: P@ssw0rd123
[*] URL: www.example.com
[*] Credit card number: 1234-5678-9012-3456
[*] Social security number: 123-45-6789
[*] Finished dumping captured data.
[*] Keylogger has been stopped.
Hardware Keyloggers
Ngoài ra còn có nhiều loại keylogger phần cứng có sẵn trên thị trường. Những keylogger này được cắm vào giữa bàn phím và máy tính.
- PS/2 keylogger
- USB keylogger
- Wi-Fi keylogger
- Keylogger embedded inside the keyboard
- Bluetooth keylogger
- Hardware keylogger
Spyware
Spyware (phần mềm gián điệp) là phần mềm giám sát máy tính cho phép ghi lại tất cả các hoạt động của người dùng trên mục tiêu. Nó sẽ tự động gửi nhật ký cho hacker từ xa bằng cách sử dụng Internet (qua email, FTP, HTTP, DNS, …). Các nhật ký gửi đi bao gồm thông tin về tất cả các hoạt động, kể cả email, lịch sử duyệt web, … Nó cũng có thể chụp ảnh màn hình ở các khoảng thời gian được thiết lập từ trước. Spyware tương tự như một con Trojan. Nó ẩn tiến trình, file và các đối tượng khác để tránh phát hiện.
Spyware có thể làm được gì?
Như tên gọi của nó, phần mềm gián điệp không có sự cho phép hay sự nhận thức của người dùng, chúng được “đóng gói” vào các ứng dụng khác. Spyware có thể tự cài đặt khi truy cập và nhấp vào một cái gì đó trên một trang web – gọi là “auto downloading” làm cho hệ thống vô tình bị nhiễm spyware.
- Đánh cắp thông tin cá nhân và gửi đến nơi khác
- Theo dõi hoạt động người dùng
- Hiển thị các pop-up phiền phức
- Chuyển hướng trình duyệt đến các trang quảng cáo
- Thay đổi các thiết lập mặc định của trình duyệt và ngăn người dùng khôi phục
- Thêm nhiều bookmark vào danh sách yêu thích của trình duyệt
- Giảm mức độ bảo mật tổng thể của hệ thống
- Giảm hiệu suất hệ thống và gây ra sự không ổn định của phần mềm
- Kết nối đến các trang web khiêu dâm
- Đặt các đường dẫn tới các trang web nguy hiểm trên màn hình desktop
- Thay đổi homepage và ngăn người dùng khôi phục
- Sửa đổi các thư viện liên kết động (DLLs) và làm chậm trình duyệt
- Thay đổi các thiết lập tường lửa
- Theo dõi và báo cáo các trang web mà bạn truy cập
Spyware Tools
Spytech SpyAgent
Spytech SpyAgent là một phần mềm gián điệp cho phép giám sát mọi hoạt động của người dùng trên máy tính của bạn một cách hoàn toàn bí mật. SpyAgent cung cấp một loạt các tính năng giám sát máy tính cũng như chặn truy cập vào trang web, ứng dụng và trò chuyện trực tuyến, lập lịch ghi log và gửi log từ xa qua email hoặc FTP.
Như hình bên trên là giao diện của SpyAgent.
Power Spy
Power Spy là phần mềm giám sát hoạt động của người dùng trên PC. Nó chạy nền và giám sát một cách bí mật. Nó ghi nhật ký tất cả user trên hệ thống và user sẽ không nhận ra sự tồn tại của nó.
Phân loại Spyware
Hiện nay, các chương trình gián điệp khác nhau thực hiện nhiều nhiệm vụ tấn công khác nhau. Sau đây là một số loại spyware phổ biến:
Desktop Spyware
Desktop spyware cho phép hacker thực hiện các hành động sau:
- Ghi lại phiên làm việc từ xa
- Ghi lại và giám sát các hoạt động trên Internet
- Ghi lại việc sử dụng phần mềm và thời gian sử dụng
- Ghi lại một nhật ký hoạt động và lưu trữ tại một vị trí tập trung
- Ghi lại các phím được nhấn
Dưới đây là danh sách các phần mềm gián điệp để giám sát máy tính và giám sát trẻ em:
- Spytech SpyAgent
- Power Spy
- FlexiSPY
- WebWatcher
- PC Tattletale
- Refog Keylogger
- iKeyMonitor
- Norton Family Premier
- Qustodio
- Net Nanny
Email Spyware
Email Spyware là một chương trình giám sát, ghi hoặc chuyển tiếp tất cả các email đến và đi. Sau khi được cài đặt trên máy tính mà bạn muốn giám sát, loại spyware này ghi lại các bản sao của tất cả các email đến và đi sau đó gửi đến một email được chỉ định hoặc lưu thông tin trên ổ đĩa cục bộ. Chương trình này hoạt động ở chế độ ẩn danh; nạn nhân sẽ không nhận ra email spyware đang chạy trên máy tính.
Internet Spyware
Internet Spyware là một công cụ giám sát tất cả các trang web được truy cập bởi trên máy tính trong thời gian vắng mặt. Nó tạo ra một bản ghi chronological của tất cả các URL đã được truy cập và tự động tải khi khởi động hệ thống và chạy ở chế độ ẩn danh, có nghĩa là nó chạy trong nền mà không bị phát hiện. Công cụ này ghi lại tất cả các URL đã truy cập vào một file log và gửi đến một email được chỉ định. Nó còn có thể cung cấp báo cáo tóm tắt tổng quan việc sử dụng web, các trang web truy cập và thời gian dành cho mỗi trang web, cũng như tất cả các ứng dụng được mở cùng với thời gian ngày/giờ. Nó cũng cho phép chặn quyền truy cập vào một trang web cụ thể hoặc toàn bộ trang web bằng cách chỉ định các URL hoặc từ khóa mà bị chặn.
Rootkits
Sau khi hacker đạt được đặc quyền, chúng ta sẽ nhúng và giấu các malware bằng cách sử dụng các kỹ thuật như rootkit, NTFS stream hay steganography, … để tránh phần mềm diệt virus phát hiện.
Rootkit là gì?
Rootkits là các chương trình được thiết kế để truy cập vào một máy tính mà không bị phát hiện. Mục tiêu của một rootkit là đạt được đặc quyền root và nó hoạt động bằng cách khai thác những lỗ hổng trong hệ điều hành và các ứng dụng. Rootkit có thể che giấu các dấu vết truy cập của mình bằng cách sửa đổi các controller hoặc các module kernel và ẩn các tiến trình. Rootkit còn có thể làm suy yếu tính bảo mật của hệ thống mục tiêu. Một rootkit điển hình bao gồm backdoor, DDoS, theo dõi gói tin, xóa log, các bot IRC và các chức năng khác.
Tất cả các file đều chứa một tập hợp các thuộc tính (properties) dùng để xác định định dạng của file, mô tả thời gian tạo file, thời gian truy cập, độ dài ban đầu, … Các hàm GetFileAttributesExA()
và GetFilelnformationByHandle()
được sử dụng cho các mục đích đã đề cập ở trên. ATTRIB.exe hiển thị hoặc thay đổi các thuộc tính của file. Hacker có thể ẩn hoặc thay đổi các thuộc tính của các file của máy mục tiêu để truy cập chúng.
Hacker đặt rootkit bằng cách:
- Quét các máy tính có lỗ hổng
- Bọc rootkit trong một package đặc biệt như game, ứng dụng bình thường
- Cài đặt lên máy mục tiêu thông qua kỹ thuật xã hội
- Tấn công zero-day (nâng cao đặc quyền, khai thác kernel Windows, …)
Mục tiêu của một rootkit:
- Lấy quyền root trên mục tiêu và có thể truy cập từ xa thông qua backdoor
- Ẩn dấu vết của hacker và sự hiện diện của các ứng dụng hoặc tiến trình độc hại
- Thu thập dữ liệu nhạy cảm, lưu lượng mạng hệ thống mà các hacker bị hạn chế hoặc không có quyền truy cập
- Lưu trữ các chương trình độc hại khác trên hệ thống
Phân loại Rootkit
- Hypervisor-Level Rootkit: Hacker tạo ra các rootkit hypervisor bằng cách khai thác các tính năng phần cứng như Intel VT và AMD-V. Những rootkit này chạy ở Ring-1 và lưu trữ hệ điều hành của mục tiêu dưới dạng máy ảo, do đó nó chặn lại tất cả các lời gọi phần cứng được thực hiện bởi hệ điều hành mục tiêu. Loại rootkit này hoạt động bằng cách sửa đổi boot sequence của hệ thống.
- Hardware/Firmware Rootkit: Rootkit phần cứng/firmware sử dụng các thiết bị hoặc firmware nền tảng để tạo ra phần mềm độc hại trong phần cứng, chẳng hạn như đĩa cứng, BIOS hoặc card mạng. Rootkit ẩn trong firmware do người dùng không kiểm tra mã nguồn của nó.
- Kernel-Level Rootkit: Kernel là nhân tố cốt lõi của một hệ điều hành. Rootkit cấp kernel chạy ở Ring-0 với đặc quyền cao nhất của hệ điều hành. Bao gồm các lỗ hổng trên máy tính và được tạo ra bằng cách viết thêm code hoặc thay thế một phần code kernel bằng code khác thông qua các device controller trên Windows hoặc các module kernel có thể tải được trên Linux. Nếu code của rootkit chứa lỗi hoặc bugs, rootkit cấp kernel ảnh hưởng đến tính ổn định của hệ thống. Chúng có các đặc quyền giống như hệ điều hành do đó chúng khó phát hiện và chúng có thể chặn hoặc lấy quyền điều khiển của một hệ điều hành.
- Boot-Loader-Level Rootkit: Rootkit boot-loader (bootkit) hoạt động bằng cách sửa đổi boot loader hợp lệ hoặc thay thế nó bằng một cái khác. Bootkit có thể kích hoạt ngay trước khi hệ điều hành bắt đầu. Do đó, bootkit là mối đe dọa nghiêm trọng đối với an ninh vì chúng có thể dễ dàng hack các khóa mã hóa và mật khẩu.
- Application-Level/User-Mode Rootkit: Rootkit này chạy ở Ring-3 như một user cùng với các ứng dụng khác trong hệ thống. Nó khai thác hành vi tiêu chuẩn của các API và hoạt động bên trong máy của nạn nhân bằng cách thay thế các file nhị phân bằng rootkit hoặc bằng cách sửa đổi hành vi của các ứng dụng hiện có bằng các patch, mã độc, …
- Library-Level Rootkits: Hoạt động ở cấp cao của hệ điều hành và thường sửa đổi, kết nối hoặc thay thế các lời gọi hệ thống bằng các phiên bản backdoor để ẩn thông tin về hacker.
Rootkit hoạt động như thế nào?
System hooking là quá trình thay đổi và thay thế con trỏ của các hàm gốc bằng các con trỏ được cung cấp bởi rootkit trong chế độ ẩn danh. Inline function hooking là một kỹ thuật trong đó rootkit thay đổi một số byte của một hàm bên trong các DLL cốt lõi của hệ thống (kernel32.dll và ntdll.dll), đặt một lệnh để khi bất kỳ tiến trình nào gọi đến đều phải đi qua rootkit trước.
Rootkit DKOM (Direct Kernel Object Manipulation) có thể định vị và thao tác với tiến trình “system” trong cấu trúc bộ nhớ kernel và patch nó giúp ẩn các tiến trình và port, thay đổi đặc quyền và làm sai lệch Windows Event Viewer mà không gặp vấn đề, từ đó thay đổi dữ liệu bên trong các cấu trúc định danh tiến trình. Nó có thể thu được quyền truy cập đọc/ghi vào đối tượng \Device\Physical Memory. DKOM ẩn một tiến trình bằng cách tách nó khỏi danh sách tiến trình.
Một số Rootkit nổi tiếng để duy trì quyền truy cập
Purple Fox Rootkit
Purple Fox cho phép hacker giấu mã độc, làm cho việc phát hiện và loại bỏ mã độc trở nên khó khăn đối với các giải pháp bảo mật. Đây là kiểu tấn công malware tinh vi nhắm vào các máy tính Windows và lây lan từ một máy tính này sang nhiều máy tính khác. Rootkit Purple Fox có thể được phân phối thông qua một bản cài đặt Telegram giả mạo. Các hoạt động được thực hiện bởi rootkit Purple Fox như sau:
- Mục đích chính của malware là tạo ra một điểm neo trên các máy tính Windows mục tiêu.
- Mỗi giai đoạn của cuộc tấn công được cô lập trong môi trường, giúp hacker tránh bị phát hiện.
- Tệp “Telegram Desktop.exe” được sử dụng để ẩn giấu Purple Fox, đó là một tập lệnh tự động cài đặt Telegram và một chương trình khác độc hại được đặt tên là “Textlnputh.exe.”
- “Textlnputh.exe” là malware installer phổ biến nhất. Sau khi thực thi, nó kết nối đến máy hacker và hacker kiểm soát nó.
- Rootkit này cung cấp quyền truy cập vào mục tiêu thông qua một backdoor.
MoonBounce
MoonBounce là mã độc được giấu trong firmware UEFI trên SPI flash và được lên lịch thực thi vào một thời điểm cụ thể. Vì hệ thống bảo mật có sự nhận thức hạn chế về các implant như vậy, nên chúng rất khó phát hiện và loại bỏ. So với các bootkit firmware UEFI được biết trước đó thì MoonBounce có một luồng tấn công phức tạp và đáng chú ý hơn.
Mục đích của MoonBounce là inject một controller độc hại vào Windows kernel trong quá trình khởi động, nó là rootkit đặc biệt đáng lo ngại cho các chuyên gia bảo mật vì MoonBounce tấn công trực tiếp vào phân vùng EFI System Partition (ESP).
Dubbed Demodex Rootkit
Rootkit Demodex rất tinh vi và cho phép hacker giữ nguyên quyền truy cập ngay cả khi cài lại hệ điều hành. Mục đích chính của rootkit này ẩn dấu vết, ẩn file, key trong registry và network traffic, … Rootkit Demodex có các tính năng sau:
- Nó bao gồm một dự án mã nguồn mở Cheat Engine giúp tránh bị phát hiện.
- Nó vượt qua các tính năng bảo mật và cơ chế kiểm soát của Windows.
- Ngăn chặn việc tải các device controller chưa được ký.
Ngoài ra còn có một số loại rootkit khác như:
- Moriya
- iLOBIeed
- Netfilter
- Skidmap
Các bạn có thể tìm đọc bài trước [CEH v12] Module 6 – Phần 5: Leo thang đặc quyền.
Comments 1