V tomto článku se budeme zabývat funkcemi auditu / analýzy protokolů připojení RDP v systému Windows. Popsané metody mohou být obvykle užitečné při vyšetřování různých incidentů na terminálových serverech Windows / RDS, když je správce systému povinen poskytovat informace: kteří uživatelé se přihlásili k serveru RDS, když se konkrétní uživatel přihlásil a ukončil relaci, odkud a ze kterého zařízení (jméno nebo IP) adresa) Uživatel RDP byl připojen. Myslím si, že tyto informace budou užitečné jak pro správce firemních farem RDS, tak pro majitele serverů RDP na internetu (ukázalo se, že Windows VPS je docela populární).
Tento článek je použitelný pro studium protokolů RDP v systému Windows Server 2008 R2, 2012 / R2, 2016 a v odpovídajících verzích desktopů systému Windows (Windows 7, 8.1, 10)..Stejně jako jiné události jsou protokoly připojení RDP ve Windows uloženy v protokolech událostí. Otevřete konzolu Prohlížeče událostí. Existuje několik různých časopisů, kde najdete informace týkající se připojení RDP..
Protokoly systému Windows obsahují spoustu informací, ale rychlé nalezení správné události může být docela obtížné. Když se uživatel vzdáleně připojí k serveru RDS nebo vzdálené ploše (RDP), generuje se v protokolech systému Windows mnoho událostí. Budeme brát v úvahu protokoly a události v hlavních fázích připojení RDP, které mohou být pro správce zajímavé:
- Síťové připojení
- Ověřování
- Přihlášení
- Odpojení / opětovné připojení relace
- Odhlášení
Síťové připojení: - navázání síťového připojení k serveru od uživatele klienta RDP. Událost s EventID - 1149 (Služby vzdálené plochy: Ověřování uživatelů proběhlo úspěšně). Přítomnost této události neznamená úspěšné ověření uživatele. Tento protokol je v sekci Protokoly aplikací a služeb -> Microsoft -> Windows -> Terminal-Services-RemoteConnectionManager -> Provozní. Zapněte filtr pro tuto událost (RMB v protokolu -> Filtrovat aktuální protokol -> EventId 1149).
Díky tomu získáte seznam s historií všech síťových připojení RDP k tomuto serveru. Jak vidíte, protokoly označují uživatelské jméno, doménu (používá se autentizace NLA, když je NLA deaktivována, text události vypadá odlišně) a IP adresu počítače, ze kterého je navázáno RDP připojení..
Ověřování: - úspěšné nebo neúspěšné ověření uživatele na serveru. Windows Journal -> Zabezpečení. Podle toho by nás mohly zajímat události s EventID - 4624 (úspěšné ověření - účet byl úspěšně přihlášen) nebo 4625 (chyba ověření - Účet se nepodařilo přihlásit). Všimněte si hodnoty LogonType v události. Při přihlášení prostřednictvím terminálové služby RDP - Typ přihlášení = 10 nebo 3. Pokud Typ přihlášení = 7, poté se znovu připojil k existující relaci RDP.
Události s chybami ověřování můžete použít k ochraně před vzdáleným hádáním hesel pro RDP. Takové IP adresy na firewallu můžete automaticky blokovat pomocí jednoduchého skriptu PowerShell (viz článek).Uživatelské jméno je obsaženo v popisu události v poli Název účtu, název počítače v Název pracovní stanice, a uživatelské jméno v Zdrojová síťová adresa.
Věnujte pozornost hodnotě pole. TargetLogonID - jedná se o jedinečný identifikátor pro relaci uživatele, se kterou můžete sledovat další aktivitu tohoto uživatele. Při odpojení od relace RDP (odpojení) a opětovném připojení k relaci však bude uživateli přidělen nový TargetLogonID (ačkoli relace RDP zůstává stejná).Pomocí tohoto příkazu PowerShell můžete získat seznam úspěšných autorizačních událostí RDP (událost 4624).
Get-EventLog security -after (Get-date -hour 0 -minute 0-sekund 0) | ? $ _. eventid -eq 4624 - a $ _. Message -match 'typ přihlašovacího jména: \ s + (10) \ s' | Out-gridview
Přihlášení: - Přihlášení RDP, událost, která nastane po úspěšném ověření uživatele. Událost s EventID - 21 (Služby vzdálené plochy: Přihlášení k relaci proběhlo úspěšně). Tento protokol je v protokolech aplikací a služeb -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> Provozní část. Jak můžete vidět zde, najdete identifikátor relace RDP pro uživatele - ID relace.
Událost s EventID - 21 (Služba Vzdálená plocha: Bylo přijato oznámení o spuštění prostředí) znamená úspěšné spuštění shellu Explorer (vzhled okna na ploše v relaci RDP).
Odpojení / opětovné připojení relace - události odpojení / opětovné připojení k relaci mají různé kódy v závislosti na tom, co způsobilo, že se uživatel odpojil (odpojení nečinností, vyberte Odpojit v relaci, ukončit relaci RDP jiným uživatelem nebo správcem atd.). Tyto události jsou umístěny v části Protokoly aplikací a služeb -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> Provozní protokoly. Zvažte události RDP, které mohou být zajímavé:
- EventID - 24 (Služby vzdálené plochy: relace byla odpojena) - uživatel byl odpojen od relace RDP.
- EventID - 25 (Služby vzdálené plochy: Opětovné připojení relace proběhlo úspěšně) - uživatel se znovu připojil ke své existující relaci RDP na serveru.
- EventID - 39 (Relace byla relací odpojena ) - uživatel se sám odpojil od své relace RDP výběrem příslušné položky nabídky (a ne jen uzavřením okna klienta RDP). Pokud jsou identifikátory relace odlišné, byl uživatel odpojen jiným uživatelem (nebo správcem).
- EventID - 40 (relace byla odpojena, kód příčiny ) Zde se musíte podívat na kód z důvodu odpojení v události. Například:
- kód příčiny 0 (Nejsou k dispozici žádné další informace) - obvykle to znamená, že uživatel jednoduše zavřel okno klienta RDP.
- kód příčiny 5 (Připojení klienta bylo nahrazeno jiným připojením) - uživatel se znovu připojil ke své staré relaci.
- kód příčiny 11 (Aktivita uživatele zahájila odpojení) - uživatel sám klikl na tlačítko Odpojit v nabídce.
Událost s EventID - 4778 v protokolu Windows -> Zabezpečení (relace byla znovu připojena k Window Station). Uživatel se znovu připojil k relaci RDP (uživateli je přidělen nový LogonID).
Událost s EventID 4799 v protokolu Windows -> Zabezpečení (relace byla odpojena od Window Station). Odpojte se od relace RDP.
Odhlášení: - odhlášení uživatele. Současně je v protokolech aplikací a služeb -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> Provozní protokol zaznamenána událost s EventID 23 (Služby vzdálené plochy: Odhlášení relace proběhlo úspěšně).
Zároveň v protokolu zabezpečení musíte sledovat událost EventID 4634 (Účet byl odhlášen).
Událost 9009 (Správce oken na ploše ukončil s kódem () v systémovém protokolu říká, že uživatel zahájil konec relace RDP a okno uživatele a grafický shell byly dokončeny.
Níže je uveden malý PowerShell, který stahuje historii všech připojení RDP pro aktuální den z protokolů terminálového serveru RDS. Výsledná tabulka ukazuje dobu připojení, IP adresu klienta a jméno RDP uživatele (v případě potřeby můžete do sestavy zahrnout i jiné typy vstupů).
Get-EventLog -LogName Security -after (Get-date -hour 0 -minute 0-sekund 0) | ? (4624,4778) - obsahuje $ _. EventID - a $ _. Message -match 'typ přihlašovacího jména: \ s + (10) \ s' | %
(new-object -Type PSObject -Property @
TimeGenerated = $ _. TimeGenerated
ClientIP = $ _. Message -replace '(? Smi). * Zdrojová síťová adresa: \ s + ([^ \ s] +) \ s +. *', '$ 1'
UserName = $ _. Message -replace '(? Smi). * Název účtu: \ s + ([^ \ s] +) \ s +. *', '$ 1'
UserDomain = $ _. Message -replace '(? Smi). * Doména účtu: \ s + ([^ \ s] +) \ s +. *', '$ 1'
Typ přihlášení = $ _. Message -replace '(? Smi). * Typ přihlášení: \ s + ([^ \ s] +) \ s +. *', '$ 1'
)
| řazení TimeGenerated -Descending | Vyberte TimeGenerated, ClientIP '
, @ N = 'Uživatelské jméno'; E = '0 \ 1' -f $ _. UserDomain, $ _. UserName '
, @ N = 'LogType'; E =
switch ($ _. LogonType)
2 'Interaktivní - místní přihlášení'
3 'Síťové připojení ke sdílené složce)'
4 'Dávka'
5 'Service'
7 'Odemknout (po spořiči obrazovky)'
8 'NetworkCleartext'
9 'NewCredentials (proces lokální zosobnění při existujícím připojení)'
10 'RDP'
11 'CachedInteractive'
výchozí "LogType nebyl rozpoznán: $ ($ _. LogonType)"
Někdy je to vhodné s protokoly v tabulce aplikace Excel. V takovém případě můžete libovolný protokol systému Windows načíst do textového souboru a importovat do Excelu. Protokol můžete exportovat z konzoly Prohlížeč událostí (samozřejmě za předpokladu, že protokoly nebudou vymazány) nebo z příkazového řádku:
WEVTUžádání událostí dotazu Zabezpečení> c: \ ps \ security_log.txt
Nebo tak:
get-winevent -logname "Microsoft-Windows-TerminalServices-LocalSessionManager / Operational" | Export-Csv c: \ ps \ rdp-log.txt -Kódování UTF8
Seznam aktuálních relací RDP na serveru lze zobrazit příkazem:
Qwinsta
Příkaz vrátí jak identifikátor relace (ID), uživatelské jméno (USERNAME), tak stav (aktivní / odpojit). Tento příkaz se hodí, když potřebujete určit RDP ID relace uživatele se stínovým připojením..
Seznam běžících procesů v konkrétní relaci RDP (je uvedeno ID relace):
qprocess / id: 157
V klientovi RDP nejsou protokoly tak informativní, často se používá hlavně informace o historii připojení RDP v registru.