Trang chủHướng dẫnKiểm tra VPS có bị xâm nhập không: xem lịch sử đăng nhập, tài khoản và tác vụ lạ (Windows, Linux)
Kiểm tra VPS có bị xâm nhập không: xem lịch sử đăng nhập, tài khoản và tác vụ lạ (Windows, Linux)
Hướng dẫn CloudNest Team 01 tháng 11, 2026 6 lượt xem
VPS chạy chậm bất thường, CPU lúc nào cũng 100%, mật khẩu tự dưng không đúng, hay nhà cung cấp báo máy của bạn đang tấn công nơi khác — đó là lúc cần kiểm tra xem VPS có bị người lạ vào không. Bài này đưa ra các lệnh kiểm tra cho cả Windows và Linux, chạy thật trên VPS ngày 01/11/2026, kèm cách đọc kết quả và việc cần làm khi thấy dấu hiệu xấu. Không cần cài phần mềm gì.
DẤU HIỆU NÊN KIỂM TRA NGAY
CPU 100% mà không chạy gì
thường là phần mềm đào tiền ảo được cài lén
Mạng tải lên ầm ầm
VPS bị dùng để tấn công, gửi thư rác
Tài khoản, tác vụ lạ
người lạ để lại đường vào lần sau
Mật khẩu bị đổi, tệp bị mã hoá
đã bị chiếm quyền — làm ngay mục 5
1. Windows: ai đã đăng nhập vào VPS?
Windows ghi mỗi lần đăng nhập vào nhật ký Security: sự kiện 4624 là thành công, 4625 là thất bại. Trước hết kiểm tra Windows có đang ghi hay không — mở PowerShell bằng quyền Administrator:
auditpol /get /subcategory:"Logon" — phải là Success and Failure.
Xem các lần đăng nhập sai trong 24 giờ qua (giờ, tên đăng nhập bị thử, IP):
Kết quả thật: 6 lần đăng nhập sai — do chính chúng tôi thử từ một VPS khác để tạo dấu vết mẫu.
Xem các lần đăng nhập Remote Desktop thành công (kiểu đăng nhập 10) — đây là câu hỏi quan trọng nhất: có ai ngoài mình đã vào được không?
PowerShell (Administrator) — Remote Desktop thành công (4624, kiểu 10)
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} -MaxEvents 400 | Where-Object { $_.Properties[8].Value -eq 10 } | Select-Object -First 10 @{n='Thoi gian';e={$_.TimeCreated}}, @{n='Tai khoan';e={$_.Properties[5].Value}}, @{n='IP';e={$_.Properties[18].Value}}Thoi gian Tai khoan IP01/11 16:57:16 Administrator [máy thử] ← IP của chúng tôi01/11 16:55:49 Administrator [máy thử]
Đối chiếu IP với IP nhà / công ty bạn (gõ "what is my ip" trên máy bạn). IP lạ, giờ lạ (bạn đang ngủ) mà đăng nhập thành công ⇒ đã bị vào — làm ngay mục 5. Còn đang có ai trong máy lúc này: query user.
2. Windows: tài khoản, tác vụ, chương trình tự chạy, kết nối lạ
Kẻ xâm nhập thường để lại "cửa sau": tài khoản mới, tác vụ hẹn giờ, chương trình tự chạy. Kết quả thật trên VPS thử (máy này chúng tôi có cài tool mẫu ở bài treo tool 24/7 — đúng là kiểu mục bạn phải nhận ra được):
tài khoản và nhóm quản trị
Get-LocalUser | Select-Object Name, Enabled, LastLogonAdministrator True 11/1/2026 5:13:42 PMDefaultAccount FalseGuest FalseWDAGUtilityAccount FalseGet-LocalGroupMember AdministratorsTEST-WIN\Administrator Local ← chỉ một quản trị viên là đúng
Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, LocationTool cua toi Tool cua toi.lnk StartupUniKey C:\Unikey\UniKeyNT.exe HKU\…\RunSecurityHealth %windir%\system32\SecurityHealthSystray.exe HKLM\…\RunVMware User Process "C:\Program Files\VMware\VMware Tools\vmtoolsd.exe" -n vmusr
Dòng tô vàng là tool mẫu chúng tôi tự cài — chạy PowerShell ẩn cửa sổ, đúng kiểu mà phần mềm độc hại hay dùng. Trên máy bạn, mục nào bạn không nhớ đã cài, chạy từ thư mục lạ (AppData, Temp, ProgramData), hoặc chạy powershell -WindowStyle Hidden / -EncodedCommand thì cần xem kỹ.
kết nối mạng đang mở + tiến trình ăn CPU
Get-NetTCPConnection -State Established | Select-Object LocalPort, RemoteAddress, RemotePort, @{n='Tien trinh';e={(Get-Process -Id $_.OwningProcess).ProcessName}}49761 57.155.142.113 443 MsMpEng ← Microsoft Defender cập nhật3389 [máy thử] 58464 svchost ← phiên Remote Desktop của chúng tôiGet-Process | Sort-Object CPU -Descending | Select-Object -First 6 Name, Id, CPUMsMpEng 39 s · System 24 s · svchost 13 s · explorer 10 s
Nghi một tệp lạ? Chuột phải → Properties → tab Digital Signatures (phần mềm đàng hoàng thường có chữ ký), hoặc quét bằng Microsoft Defender: Start-MpScan -ScanType FullScan.
3. Linux: đăng nhập SSH và dấu vết
Trên Ubuntu/Debian, mọi lần đăng nhập SSH nằm trong nhật ký của dịch vụ ssh. Kết quả thật trên VPS Ubuntu 24.04 (các lần sai do chúng tôi tự thử):
đăng nhập sai gần đây
journalctl -u ssh --since "1 hour ago" | grep -E "Failed|Invalid"09:29:34 sshd: Failed password for root from [máy thử] port 43524 ssh209:29:40 sshd: Invalid user admin from [máy thử] port 3431409:29:45 sshd: Invalid user ubuntu from [máy thử] port 34324lastb -n 6 # cùng thông tin, dạng bảngjournalctl -u ssh --since "1 hour ago" | grep -E "Failed password|Invalid user" | grep -oE "from [0-9.]+" | sort | uniq -c | sort -rn 6 from [máy thử] ← đếm số lần sai theo IP
ai đã vào được, ai đang ở trong máy
last -n 10 -iroot pts/0 [máy của chúng tôi] Sun Nov 1 08:50 - 08:51reboot system boot ... Sun Nov 1 08:52 still runningwho # đang đăng nhập lúc nàyjournalctl -u ssh | grep Accepted # mọi lần vào thành công, kèm cách xác thựcAccepted publickey for root from [máy của chúng tôi]
cửa sau hay gặp
awk -F: '$3==0 {print $1}' /etc/passwd # tài khoản có quyền root — chỉ nên có "root"rootawk -F: '$3>=1000 && $3<65534 {print $1}' /etc/passwd # tài khoản người dùng thường(trống)cat /root/.ssh/authorized_keys # khoá SSH được phép vào — khoá lạ là dấu hiệu nặngcrontab -l; ls /etc/cron.d # tác vụ hẹn giờno crontab for root | certbot e2scrub_all php sysstatss -tnp state established # kết nối mạng đang mở + tiến trìnhtop -o %CPU # tiến trình ăn CPU (đào coin hay có tên giả như kworkerds, xmrig)
4. Đọc kết quả thế nào?
Bình thường
Nhiều lần đăng nhập SAI từ IP lạ với tên admin, test, user… — bot dò mật khẩu tự động, máy công khai trên Internet nào cũng gặp. Mật khẩu mạnh thì chúng không vào được.
Cần chú ý
Hàng nghìn lần sai mỗi giờ từ vài IP — nên chặn IP, đổi cổng, bật fail2ban (Linux) để đỡ tốn tài nguyên và giảm rủi ro.
Nguy hiểm
Có lần đăng nhập THÀNH CÔNG từ IP / giờ bạn không nhận ra; tài khoản quản trị mới; khoá SSH lạ; tác vụ hoặc chương trình tự chạy bạn không cài; CPU 100% vì tiến trình lạ.
Lần thử này, trong khoảng 3 giờ đầu sau khi tạo, cả VPS Windows lẫn hai VPS Ubuntu không ghi nhận lượt dò mật khẩu nào từ bên ngoài — các dòng đăng nhập sai trong bài đều do chúng tôi tự tạo. Đừng vì vậy mà chủ quan: dò mật khẩu là chuyện thường ngày trên Internet, bài bảo mật VPS có lần bot tới sau 5 phút.
5. Thấy dấu hiệu bị vào được: làm gì?
1Đổi mật khẩu tài khoản quản trị (Windows: Administrator, Linux: root) ngay — dùng mật khẩu dài, mới hoàn toàn.
2Đá phiên lạ: Windows logoff <ID> (ID lấy từ query user); Linux pkill -KILL -t pts/N.
3Gỡ cửa sau: xoá tài khoản lạ, khoá SSH lạ, tác vụ và chương trình tự chạy lạ.
4Lấy dữ liệu quan trọng ra nơi khác — nhưng đừng mang theo tệp chạy (.exe, script) từ máy đã bị chiếm.
5Cách sạch nhất là cài lại hệ điều hành hoặc khôi phục bản sao lưu từ trước thời điểm bị vào. Kẻ xâm nhập giỏi có thể giấu thứ bạn không tìm ra.
Nhật ký đầy lần đăng nhập sai có nghĩa là đã bị hack?
Không. Đăng nhập sai là bot đang đoán mật khẩu — chưa vào được. Chỉ lo khi có lần đăng nhập THÀNH CÔNG bạn không nhận ra, hoặc thấy các cửa sau ở mục 2–3.
Kẻ xâm nhập có xoá được nhật ký không?
Có thể, nếu đã có quyền quản trị. Nhật ký Security bị xoá thì Windows ghi sự kiện 1102 ("audit log was cleared") — thấy sự kiện này mà bạn không tự xoá là dấu hiệu rất xấu.
Nhật ký Windows chỉ giữ được bao lâu?
Theo dung lượng (VPS Windows Server 2022 thử: tối đa 20 MB cho nhật ký Security), đầy thì ghi đè cái cũ. Máy bị dò nhiều có thể chỉ giữ được vài ngày — kiểm tra sớm khi nghi ngờ.
VPS bị tấn công thì nhà cung cấp có biết không?
Nhà cung cấp thường thấy khi máy của bạn gửi lưu lượng bất thường ra ngoài (tấn công nơi khác, thư rác) và có thể tạm chặn để bảo vệ hệ thống. Những gì xảy ra bên trong hệ điều hành thì chỉ bạn kiểm tra được.
Có công cụ nào quét giúp không?
Windows có sẵn Microsoft Defender (Start-MpScan). Linux có thể dùng rkhunter, chkrootkit. Công cụ chỉ là hỗ trợ — đối chiếu nhật ký đăng nhập như bài này vẫn là bước quan trọng nhất.
Bắt đầu lại sạch sẽ trong vài phút
Cài lại hệ điều hành ngay trên trang quản trị, khôi phục từ bản sao lưu hằng ngày, đổi cổng RDP/SSH miễn phí.