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)

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:

Kết quả auditpol: Logon/Logoff, Logon: Success and Failure
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):

PowerShell (Administrator) — đăng nhập sai (4625)
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=(Get-Date).AddHours(-24)} | Select-Object @{n='Thoi gian';e={$_.TimeCreated}}, @{n='Ten dang nhap';e={$_.Properties[5].Value}}, @{n='IP';e={$_.Properties[19].Value}}
Bảng 6 lần đăng nhập sai lúc 16:31: tên test, user, admin, admin, administrator, administrator, cùng một IP (đã che)
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     IP
01/11 16:57:16 Administrator [máy thử]     ← IP của chúng tôi
01/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, LastLogon
Administrator         True 11/1/2026 5:13:42 PM
DefaultAccount       False
Guest                False
WDAGUtilityAccount   False
Get-LocalGroupMember Administrators
TEST-WIN\Administrator   Local        ← chỉ một quản trị viên là đúng
tác vụ hẹn giờ không phải của Microsoft
Get-ScheduledTask | Where-Object { $_.TaskPath -notlike '\Microsoft\*' } | Select-Object TaskName, State, @{n='Chay';e={$_.Actions.Execute + ' ' + $_.Actions.Arguments}}
MicrosoftEdgeUpdateTaskMachineCore  Ready    ...\EdgeUpdate\MicrosoftEdgeUpdate.exe /c
MicrosoftEdgeUpdateTaskMachineUA    Ready    ...\EdgeUpdate\MicrosoftEdgeUpdate.exe /ua
Tool chay nen                      Running  powershell.exe -WindowStyle Hidden -File C:\Tool\tool-nen.ps1
chương trình tự chạy khi đăng nhập
Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location
Tool cua toi         Tool cua toi.lnk                               Startup
UniKey               C:\Unikey\UniKeyNT.exe                          HKU\…\Run
SecurityHealth       %windir%\system32\SecurityHealthSystray.exe    HKLM\…\Run
VMware 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ật
3389   [máy thử]  58464  svchost      ← phiên Remote Desktop của chúng tôi
Get-Process | Sort-Object CPU -Descending | Select-Object -First 6 Name, Id, CPU
MsMpEng  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 ssh2
09:29:40 sshd: Invalid user admin from [máy thử] port 34314
09:29:45 sshd: Invalid user ubuntu from [máy thử] port 34324
lastb -n 6                          # cùng thông tin, dạng bảng
journalctl -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 -i
root  pts/0  [máy của chúng tôi]  Sun Nov  1 08:50 - 08:51
reboot  system boot  ...  Sun Nov  1 08:52   still running
who                                 # đang đăng nhập lúc này
journalctl -u ssh | grep Accepted    # mọi lần vào thành công, kèm cách xác thực
Accepted 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"
root
awk -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ặng
crontab -l; ls /etc/cron.d          # tác vụ hẹn giờ
no crontab for root  |  certbot  e2scrub_all  php  sysstat
ss -tnp state established           # kết nối mạng đang mở + tiến trình
top -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. 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. 2Đá phiên lạ: Windows logoff <ID> (ID lấy từ query user); Linux pkill -KILL -t pts/N.
  3. 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ạ.
  4. 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.
  5. 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.
  6. 6Bịt đường vào: đổi cổng RDP/SSH, chặn IP dò mật khẩu, làm đủ 10 việc bảo mật.

6. Câu hỏi thường gặp

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í.
ZaloGọi ngayTelegram