Lihat dan analisis log koneksi RDP di Windows

Pada artikel ini kita akan mempertimbangkan fitur audit / analisis log koneksi RDP di Windows. Biasanya, metode yang dijelaskan dapat berguna dalam menyelidiki berbagai insiden pada terminal Windows / RDS server, ketika administrator sistem diminta untuk memberikan informasi: pengguna yang masuk ke server RDS, ketika pengguna tertentu masuk dan mengakhiri sesi, di mana / dari perangkat mana (nama atau IP) alamat) pengguna RDP terhubung. Saya pikir informasi ini akan berguna baik untuk administrator pertanian RDS perusahaan dan untuk pemilik server RDP di Internet (Windows VPS ternyata cukup populer).

Artikel ini berlaku untuk studi log RDP baik di Windows Server 2008 R2, 2012 / R2, 2016, dan di versi desktop Windows yang sesuai (Windows 7, 8.1, 10).

Seperti acara lainnya, log koneksi RDP di Windows disimpan dalam log peristiwa. Buka konsol Peraga Peristiwa. Ada beberapa majalah berbeda di mana Anda dapat menemukan informasi mengenai koneksi RDP..

Log Windows berisi banyak informasi, tetapi dengan cepat menemukan acara yang tepat bisa sangat sulit. Ketika pengguna terhubung ke server RDS atau Remote Desktop (RDP) dari jarak jauh, banyak peristiwa dihasilkan di log Windows. Kami akan mempertimbangkan log dan acara pada tahap utama koneksi RDP, yang mungkin menarik bagi administrator:

  1. Koneksi jaringan
  2. Otentikasi
  3. Log masuk
  4. Session Putus / Hubungkan kembali
  5. Logoff

Koneksi jaringan: - membuat koneksi jaringan ke server dari pengguna klien RDP. Acara dengan EventID - 1149 (Layanan Desktop Jarak Jauh: Otentikasi pengguna berhasil). Kehadiran acara ini tidak menunjukkan otentikasi pengguna yang berhasil. Log ini ada di bagian Aplikasi dan Log Layanan -> Microsoft -> Windows -> Terminal-Services-RemoteConnectionManager -> Operasional. Nyalakan filter untuk acara ini (RMB di log-> Filter Log Saat Ini -> EventId 1149).

Akibatnya, Anda akan mendapatkan daftar dengan riwayat semua koneksi RDP jaringan ke server ini. Seperti yang Anda lihat, log menunjukkan nama pengguna, domain (otentikasi NLA digunakan, dengan NLA dinonaktifkan, teks acara terlihat berbeda) dan alamat IP komputer dari mana koneksi RDP dibuat.

Otentikasi: - otentikasi berhasil atau tidak berhasil dari pengguna di server. Windows Journal -> Security. Karenanya, kami mungkin tertarik dengan acara dengan EventID - 4624 (otentikasi berhasil - Akun berhasil masuk) atau 4625 (kesalahan otentikasi - Akun gagal masuk). Catat nilai LogonType dalam acara tersebut. Saat masuk melalui layanan terminal RDP - LogonType = 10 atau 3. Jika LogonType = 7, kemudian dihubungkan kembali ke sesi RDP yang ada.

Anda dapat menggunakan acara dengan kesalahan otentikasi untuk melindungi dari tebak kata sandi jarak jauh ke RDP. Anda dapat secara otomatis memblokir alamat IP tersebut di firewall dengan skrip PowerShell sederhana (lihat artikel).

Nama pengguna terkandung dalam deskripsi acara di lapangan Nama akun, nama komputer di Nama workstation, dan nama pengguna di Sumber alamat jaringan.

Perhatikan nilai bidang. TargetLogonID - ini adalah pengidentifikasi unik untuk sesi pengguna yang dengannya Anda dapat melacak aktivitas lebih lanjut dari pengguna ini. Namun, saat memutuskan koneksi dari sesi RDP (disconnect) dan menghubungkan kembali ke sesi, pengguna akan diberikan TargetLogonID baru (meskipun sesi RDP tetap sama).

Anda bisa mendapatkan daftar acara otorisasi RDP yang berhasil (event 4624) dengan perintah PowerShell ini.

Get-EventLog keamanan -setelah (Get-date -jam 0 -menit 0 -detik 0) | ? $ _. eventid -eq 4624 -dan $ _. Pesan -match 'tipe logon: \ s + (10) \ s' | Out-gridview

Log masuk: - Login RDP, peristiwa yang terjadi setelah otentikasi pengguna berhasil. Acara dengan EventID - 21 (Layanan Desktop Jarak Jauh: Sesi masuk berhasil). Log ini ada di dalam Log Aplikasi dan Layanan -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> bagian Operasional. Seperti yang Anda lihat di sini, Anda dapat menemukan pengidentifikasi sesi RDP untuk pengguna - ID Sesi.

Acara dengan EventID - 21 (Layanan Desktop Jarak Jauh: Pemberitahuan mulai shell diterima) berarti peluncuran shell Explorer yang berhasil (tampilan jendela desktop dalam sesi RDP).

Session Putus / Hubungkan kembali - putuskan / sambungkan kembali peristiwa ke sesi memiliki kode yang berbeda tergantung pada apa yang menyebabkan pengguna untuk memutuskan sambungan (putuskan karena tidak aktif, pilih item Putus dalam sesi, akhiri sesi RDP oleh pengguna atau administrator lain, dll). Peristiwa ini terletak di Aplikasi dan Log Layanan -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> bagian Log operasional. Pertimbangkan acara RDP yang mungkin menarik:

  • EventID - 24 (Layanan Desktop Jarak Jauh: Sesi telah diputus) - pengguna terputus dari sesi RDP.
  • EventID - 25 (Layanan Desktop Jarak Jauh: Sambungan ulang sesi berhasil) - pengguna tersambung kembali ke sesi RDP yang ada di server.
  • EventID - 39 (Sesi telah diputus oleh sesi ) - pengguna sendiri terputus dari sesi RDP dengan memilih item menu yang sesuai (dan tidak hanya menutup jendela klien RDP). Jika pengidentifikasi sesi berbeda, maka pengguna telah terputus oleh pengguna lain (atau administrator).
  • EventID - 40 (Sesi telah diputus, kode alasan ) Di sini Anda perlu melihat kode untuk alasan pemutusan dalam acara tersebut. Sebagai contoh:
    • kode alasan 0 (Tidak ada informasi tambahan tersedia) - biasanya berarti bahwa pengguna cukup menutup jendela RDP klien.
    • kode alasan 5 (Koneksi klien digantikan oleh koneksi lain) - pengguna terhubung kembali ke sesi lamanya.
    • kode alasan 11 (Aktivitas pengguna telah memulai putuskan hubungan) - pengguna sendiri mengklik tombol Putus pada menu.

Acara dengan EventID - 4778 di log Windows -> Keamanan (Sesi dihubungkan kembali ke Stasiun Window). Pengguna terhubung kembali ke sesi RDP (pengguna diberi LogonID baru).

Acara dengan EventID 4799 di log Windows -> Keamanan (Sesi terputus dari Stasiun Window). Putuskan sambungan dari sesi RDP.

Logoff: - logout pengguna. Pada saat yang sama, acara dengan EventID dicatat dalam Log Aplikasi dan Layanan -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> Log operasional 23 (Layanan Desktop Jarak Jauh: Logoff sesi berhasil).

Pada saat yang sama, di log Keamanan Anda harus menonton acara EventID 4634 (Akun sudah keluar).

Acara 9009 (Desktop Window Manager telah keluar dengan kode () di log Sistem mengatakan bahwa pengguna memulai akhir sesi RDP, dan jendela pengguna serta cangkang grafis telah selesai.

Di bawah ini adalah PowerShell kecil yang mengunduh riwayat semua koneksi RDP untuk hari ini dari log server RDS terminal. Tabel yang dihasilkan menunjukkan waktu koneksi, alamat IP klien dan nama RDP pengguna (jika perlu, Anda dapat memasukkan jenis input lain dalam laporan).

Get-EventLog -LogName Security -after (Get-date -jam 0 -menit 0 -second 0) | ? (4624.478) -berisi $ _. EventID -dan $ _. Pesan -match 'tipe logon: \ s + (10) \ s' | %
(new-object -Type PSObject -Property @
TimeGenerated = $ _. TimeGenerated
ClientIP = $ _. Pesan-ganti '(? Smi). * Alamat Jaringan Sumber: \ s + ([^ \ s] +) \ s +. *', '$ 1'
UserName = $ _. Pesan-ganti '(? Smi). * Nama Akun: \ s + ([^ \ s] +) \ s +. *', '$ 1'
UserDomain = $ _. Pesan-ganti '(? Smi). * Domain Akun: \ s + ([^ \ s] +) \ s +. *', '$ 1'
Jenis Logon = $ _. Pesan-ganti '(? Smi). * Jenis Masuk: \ s + ([^ \ s] +) \ s +. *', '$ 1'
)
| sort TimeGenerated -Descending | Pilih TimeGenerated, ClientIP '
, @ N = 'Nama Pengguna'; E = '0 \ 1' -f $ _. UserDomain, $ _. UserName '
, @ N = 'LogType'; E =
switch ($ _. LogonType)
2 'Interaktif - masuk lokal'
3 'Koneksi jaringan ke folder bersama)'
4 'Batch'
5 'Layanan'
7 'Buka kunci (setelah screensaver)'
8 'NetworkCleartext'
9 'Kredensial Baru (proses peniruan lokal di bawah koneksi yang ada)'
10 'RDP'
11 'CachedInteractive'
default "LogType Not Diakui: $ ($ _. LogonType)"

Kadang-kadang lebih nyaman dengan log dalam lembar bentang Excel, dalam hal ini Anda dapat membongkar log Windows apa pun ke file teks dan mengimpor ke Excel. Anda dapat mengekspor log dari konsol Peraga Peristiwa (tentu saja, asalkan log tidak dihapus) atau melalui baris perintah:

WEVTUtil permintaan-peristiwa Keamanan> c: \ ps \ security_log.txt

Atau lebih:

get-winevent -logname "Microsoft-Windows-TerminalServices-LocalSessionManager / Operational" | Ekspor-Csv c: \ ps \ rdp-log.txt -Encoding UTF8

Daftar sesi RDP saat ini di server dapat ditampilkan dengan perintah:

Qwinsta

Perintah mengembalikan pengidentifikasi sesi (ID), nama pengguna (USERNAME) dan status (Aktif / Putus). Perintah ini nyaman digunakan ketika Anda perlu menentukan ID RDP dari sesi pengguna dengan koneksi bayangan..

Daftar proses yang berjalan dalam sesi RDP tertentu (ID sesi ditunjukkan):

qprocess / id: 157

Pada klien RDP, log tidak begitu informatif, hal utama yang sering digunakan adalah informasi tentang sejarah koneksi RDP dalam registri.