Ogled in analiza dnevnikov povezav RDP v sistemu Windows

V tem članku bomo preučili značilnosti revizije / analize dnevnikov povezav RDP v sistemu Windows. Običajno so opisane metode koristne pri preiskovanju različnih incidentov na strežnikih Windows terminal / RDS, ko mora sistemski administrator posredovati informacije: kateri uporabniki so se prijavili na strežnik RDS, ko se je določen uporabnik prijavil in končal sejo, kje / iz katere naprave (ime ali IP naslov) Uporabnik RDP je bil povezan. Mislim, da bodo te informacije koristne tako za skrbnike korporativnih kmetij RDS kot za lastnike strežnikov RDP na internetu (Windows VPS se je izkazal za zelo priljubljenega).

Članek je uporaben za preučevanje dnevnikov RDP tako v sistemih Windows Server 2008 R2, 2012 / R2, 2016 kot v ustreznih namiznih različicah sistema Windows (Windows 7, 8.1, 10).

Tako kot drugi dogodki se tudi podatki o povezavi RDP v sistemu Windows shranijo v dnevnike dogodkov. Odprite konzolo Pregledovalnik dogodkov. Obstaja več različnih revij, v katerih najdete informacije o povezavah RDP..

Dnevniki Windows vsebujejo veliko informacij, vendar je hitro iskanje pravega dogodka lahko precej težavno. Ko se uporabnik na daljavo poveže s strežnikom RDS ali oddaljenim namizjem (RDP), se v dnevnikih Windows ustvari veliko dogodkov. Dnevnike in dogodke bomo preučili v glavnih fazah povezave RDP, ki bi lahko zanimali skrbnika:

  1. Omrežna povezava
  2. Preverjanje pristnosti
  3. Vložek
  4. Seja Prekini / Ponovno povezavo
  5. Odjava

Omrežna povezava: - vzpostavitev omrežne povezave s strežnikom od uporabnika odjemalca RDP. Dogodek z EventID - 1149 (Oddaljene namizne storitve: avtentikacija uporabnika je uspela). Prisotnost tega dogodka ne kaže na uspešno preverjanje pristnosti uporabnika. Ta dnevnik je v razdelku Dnevniki aplikacij in storitev -> Microsoft -> Windows -> Terminal-Services-RemoteConnectionManager -> Operativni. Vklopite filter za ta dogodek (RMB v dnevniku-> Filter trenutnega dnevnika -> EventId 1149).

Kot rezultat boste dobili seznam z zgodovino vseh omrežnih povezav RDP s tem strežnikom. Kot lahko vidite, dnevniki označujejo uporabniško ime, domeno (uporablja se overjanje NLA, ko je NLA onemogočen, je besedilo dogodka videti drugače) in IP naslov računalnika, s katerim je povezava RDP.

Preverjanje pristnosti: - uspešna ali neuspešna avtentikacija uporabnika na strežniku. Windows Journal -> Varnost. V skladu s tem nas bodo morda zanimali dogodki z EventID-om - 4624 (uspešna avtentikacija - račun je bil uspešno prijavljen) ali 4625 (napaka pri preverjanju pristnosti - račun se ni uspel prijaviti). Upoštevajte vrednost LogonType v primeru. Pri prijavi preko storitve RDP terminala - LogonType = 10 ali 3. Če LogonType = 7, nato se ponovno poveže z obstoječo sejo RDP.

Dogodke z napakami pri preverjanju pristnosti lahko uporabite za zaščito pred oddaljenim ugibanjem gesla do RDP. Takšne naslove IP lahko požarni zid samodejno blokirate s preprostim skriptom PowerShell (glejte članek).

Uporabniško ime je vsebovano v opisu dogodka v polju Ime računa, ime računalnika v Ime delovne postaje, in uporabniško ime v Naslov omrežnega vira.

Bodite pozorni na vrednost polja. TargetLogonID - to je edinstven identifikator za sejo uporabnika, s katerim lahko spremljate nadaljnjo aktivnost tega uporabnika. Ko pa prekinete sejo RDP (prekinite povezavo) in se ponovno povežete s sejo, bo uporabnik dobil nov TargetLogonID (čeprav seja RDP ostane enaka).

S tem ukazom PowerShell lahko dobite seznam uspešnih dogodkov avtorizacije RDP (dogodek 4624).

Varnost Get-EventLog -after (Get-date -hour 0 -minut 0 -sekunda 0) | ? $ _. eventid -eq 4624 -and $ _. Sporočilo -match 'prijava tipa: \ s + (10) \ s' | Pogled zunaj omrežja

Prijava: - Prijava v RDP, dogodek, ki se zgodi po uspešni avtentikaciji uporabnika. Dogodek z EventID - 21 (Oddaljene namizne storitve: prijava v sejo je uspela). Ta dnevnik je v dnevnikih aplikacij in storitev -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> Operativni del. Kot lahko vidite tukaj, lahko najdete identifikator seje RDP za uporabnika - ID seje.

Dogodek z EventID - 21 (Oddaljene namizne storitve: prejeto obvestilo o zagonu lupine) pomeni uspešno zagon lupine Explorerja (pojav okna na namizju v seji RDP).

Seja Prekini / Ponovno povezavo - dogodki za prekinitev povezave / ponovno povezavo s sejo imajo različne kode, odvisno od tega, kaj je uporabnika povzročilo prekinitev povezave (prekinite povezavo zaradi neaktivnosti, izberite Prekini povezavo v seji, konec seje RDP drug uporabnik ali skrbnik itd.). Ti dogodki se nahajajo v dnevnikih aplikacij in storitev -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> operativni dnevniki. Razmislite o dogodkih RDP, ki so lahko zanimivi:

  • EventID - 24 (Storitve oddaljenega namizja: seja je bila prekinjena) - uporabnik prekinjen iz seje RDP.
  • EventID - 25 (Oddaljene namizne storitve: Ponovna povezava seje je uspela) - uporabnik se je ponovno povezal s svojo obstoječo sejo RDP na strežniku.
  • EventID - 39 (seja je bila prekinjena s sejo ) - uporabnik sam prekine sejo svoje RDP z izbiro ustrezne postavke menija (in ne samo zapre okna odjemalca RDP). Če so identifikatorji seje drugačni, je uporabnika prekinila druga uporabnica (ali skrbnik).
  • EventID - 40 (seja je bila prekinjena, koda vzroka ) Tu morate pogledati kodo za razlog za prekinitev povezave v primeru. Na primer:
    • koda vzroka 0 (Dodatne informacije niso na voljo) - običajno pomeni, da je uporabnik preprosto zaprl okno RDP za stranke.
    • koda vzroka 5 (Odjemalčevo povezavo je zamenjala druga povezava) - uporabnik se je ponovno povezal s svojo staro sejo.
    • koda vzroka 11 (Uporabniška aktivnost je sprožila prekinitev povezave) - uporabnik sam je v meniju kliknil gumb Prekini.

Dogodek z EventID - 4778 v dnevniku Windows -> Varnost (seja je bila ponovno povezana z okensko postajo). Uporabnik se je ponovno povezal s sejo RDP (uporabniku je dodeljen nov LogonID).

Dogodek z EventID 4799 v dnevniku Windows -> Varnost (seja je bila prekinjena z okensko postajo). Prekinite povezavo s sejo RDP.

Odjava: - odjava uporabnika. Hkrati se dogodek z dogodkom EventID zabeleži v dnevnikih aplikacij in storitev -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> Operativni dnevnik 23 (Oddaljene namizne storitve: odjava po seji je uspela).

Hkrati morate v dnevniku Varnost gledati dogodek EventID 4634 (Račun je bil odjavljen).

Dogodek 9009 (Upravitelj namiznih oken je zapustil kodo () v sistemskem dnevniku pravi, da je uporabnik sprožil konec seje RDP, okno in grafična lupina uporabnika pa sta bila dokončana.

Spodaj je majhen PowerShell, ki prenese dnevnike vseh RDP povezav za tekoči dan iz dnevnikov terminalskega strežnika RDS. V dobljeni tabeli je prikazan čas povezave, IP naslov odjemalca in uporabniško ime RDP (če je potrebno, lahko v poročilo vključite tudi druge vrste vhodov).

Get-EventLog -LogName Varnost -naprej (Get-date -hour 0 -minut 0 -sekunda 0) | ? (4624,4778) vsebuje $ _. EventID - in $ _. Sporočilo - podjemanje "prijava: \ s + (10) \ s ' | %
(nov objekt -tip PSObject-lastnost @
TimeGenerated = $ _
ClientIP = $ _. Sporočilo -mesto '(? Smi). * Vir omrežnega naslova: \ s + ([^ \ s] +) \ s +. *', '$ 1'
Uporabniško ime = $ _. Sporočilo -mesto '(? Smi). * Ime računa: \ s + ([^ \ s] +) \ s +. *', '$ 1'
UserDomain = $ _. Sporočilo-nadomestite '(? Smi). * Domena računa: \ s + ([^ \ s] +) \ s +. *', '$ 1'
LogonType = $ _. Sporočilo-Zamenjaj '(? Smi). * Vrsta prijave: \ s + ([^ \ s] +) \ s +. *', '$ 1'
)
| razvrsti TimeGenerated -Descending | Izberite TimeGenerated, ClientIP '
, @ N = 'Uporabniško ime'; E = '0 \ 1' -f $ _. Uporabniška domena, $ _. Uporabniško ime '
, @ N = 'LogType'; E =
stikalo ($ _. LogonType)
2 'Interaktivna - lokalna prijava'
3 'Omrežje povezave z mapo v skupni rabi)'
4 "Batch"
5 'Storitev'
7 'Odkleni (po ohranjevalniku zaslona)'
8 'NetworkCleartext'
9 'NewCredentials (postopek lokalnega lažnega predstavljanja v obstoječi povezavi)'
10 'RDP'
11 'CachedInteractive'
privzeto "LogType ni prepoznan: $ ($ _. LogonType)"

Včasih je priročno z dnevniki v razpredelnici Excel, v tem primeru lahko kateri koli dnevnik Windows iztaknete v besedilno datoteko in uvozite v Excel. Dnevnik lahko izvozite s konzole pregledovalnika dogodkov (seveda pod pogojem, da dnevniki niso počiščeni) ali prek ukazne vrstice:

WEVTUtil poizvedb-dogodkov Varnost> c: \ ps \ security_log.txt

Ali pa tako:

get-winevent -logname "Microsoft-Windows-TerminalServices-LocalSessionManager / Operative" | Export-Csv c: \ ps \ rdp-log.txt -Skodiranje UTF8

Seznam trenutnih sej RDP na strežniku se lahko prikaže z ukazom:

Qwinsta

Ukaz vrne identifikator seje (ID), uporabniško ime (USERNAME) in stanje (Active / Disconnect). Ta ukaz je priročen za uporabo, ko morate s senčno povezavo določiti ID RDP uporabniške seje..

Seznam izvajanih procesov v določeni seji RDP (naveden je ID seje):

qprocess / id: 157

Na odjemalcu RDP dnevniki niso tako informativni, glavna stvar, ki se pogosto uporablja, so podatki o zgodovini povezav RDP v registru.