1. Úvod
Firmy, které neměly zorganizované systémy vzdáleného přístupu, je v nouzovém režimu zaváděly před pár měsíci. Ne všichni administrátoři byli připraveni na takovou "horkou" situaci, což vedlo ke závažným bezpečnostním pochybením: nesprávná konfigurace služeb nebo dokonce instalace zastaralých verzí softwaru se dříve známými zranitelnostmi. Někteří už se s těmito pochybeními setkali, jiní měli více štěstí, ale závěry si určitě musí vzít k srdci všichni. Lojalita k práci na dálku výrazně vzrostla a stále více firem přijímá distanční práci jako trvalou možnost.
Existuje mnoho možností pro zajištění vzdáleného přístupu: různé VPN, RDS a VNC, TeamViewer a další. Administrátoři mají z čeho vybírat na základě specifikací podnikové sítě a zařízení v ní. Nejoblíbenějšími zůstávají řešení VPN, ale mnohé malé firmy si vybírají RDS (Remote Desktop Services), které jsou jednodušší a rychlejší na nasazení.
V tomto článku se podrobněji podíváme na bezpečnost RDS. Krátce přehledneme známé zranitelnosti a také prozkoumáme několik scénářů zahájení útoku na síťovou infrastrukturu založenou na Active Directory. Doufáme, že někomu naše článek pomůže identifikovat chyby a zvýšit bezpečnost.
2. Nedávné zranitelnosti RDS/RDP
Každý software obsahuje chyby a zranitelnosti, které zneužívají útočníci, a RDS není výjimkou. V poslední době Microsoft často oznamoval nové zranitelnosti, rozhodli jsme se udělat jejich stručný přehled:
Tato zranitelnost ohrožuje uživatele, kteří se připojují k kompromitovanému serveru. Útočník může převzít kontrolu nad uživatelským zařízením nebo se usadit v systému, aby měl trvalý vzdálený přístup.
- / /
Tato skupina zranitelností umožňuje neoprávněnému útočníkovi vzdáleně provádět libovolný kód na serveru s RDS prostřednictvím speciálně sestaveného požadavku. Lze je také využít k vytváření červů – malwaru, který sám infikuje sousední zařízení v síti. Tímto způsobem mohou tyto zranitelnosti ohrozit celou síť firmy, a zato je ochrání pouze včasná aktualizace.
Software for remote access has drawn increased attention from both researchers and attackers, so we may soon hear about new similar vulnerabilities.
The good news is that not all vulnerabilities have public exploits available. The bad news is that an attacker with expertise can easily write an exploit for a vulnerability based on its description or by using techniques like Patch Diffing (as our colleagues discussed in ). Therefore, we recommend regularly updating the software and keeping an eye out for new reports on discovered vulnerabilities.
3. Attacks
We move on to the second part of the article, where we will demonstrate how attacks on network infrastructure based on Active Directory begin.
The methods described are applicable to the following attacker model: an attacker with a user account who has access to the Remote Desktop Gateway — a terminal server (which is often accessible, for example, from the external network). By applying these methods, the attacker will be able to continue the attack on the infrastructure and establish their presence in the network.
The network configuration may vary in each specific case, but the techniques described are quite universal.
Examples of breaking out of a restricted environment and elevating privileges
When accessing the Remote Desktop Gateway, the attacker will likely encounter some limited environment. When connecting to the terminal server, an application launches: the Remote Desktop connection window for internal resources, a file explorer, office suites, or any other software.
The attacker's goal will be to gain access to command execution, that is, to launch cmd or PowerShell. Several classic techniques for breaking out of a Windows 'sandbox' can assist with this. Let's consider them further.
Možnost 1. The attacker has access to the Remote Desktop connection window within the Remote Desktop Gateway:

The “Show Options” menu opens. Options for manipulating the connection configuration files appear:

From this window, it is possible to access the Explorer without any hindrance by clicking any of the “Open” or “Save” buttons:

Otevírá se Průzkumník. Jeho „adresní řádek“ umožňuje spouštění povolených spustitelných souborů, stejně jako seznam souborového systému. To může být útočníkům užitečné v případě, kdy jsou systémové disky skryté a přístup k nim není přímo možný:

→
Podobný scénář lze reprodukovat například při použití jako vzdáleného softwaru Excel z balíčku Microsoft Office.
→
Kromě toho bychom neměli zapomínat na makra používaná v tomto kancelářském balíčku. Naši kolegové se zabývali problémem bezpečnosti maker v této .
Možnost 2. Použitím stejných vstupů jako v předchozí variantě útočník spouští několik připojení k vzdálené pracovní ploše pod stejným účtem. Při opětovném připojení bude první připojení uzavřeno a na obrazovce se objeví okno s chybovou zprávou. Tlačítko nápovědy v tomto okně vyvolá Internet Explorer na serveru, po čemž se útočník může přesměrovat do Průzkumníka.
→
Varianta 3. Při nastavených omezeních na spouštění spustitelných souborů se může útočník setkat se situací, kdy skupinové politiky zakazují spuštění cmd.exe administrátorem.
Existuje způsob, jak to obejít pomocí spuštění bat souboru na vzdálené pracovní ploše s obsahem ve formátu cmd.exe /K
. Chyba při spuštění cmd a úspěšný příklad provedení bat souboru je uveden na obrázku níže.

Varianta 4. Zákaz spuštění aplikací pomocí černých seznamů podle názvu spustitelných souborů není všelék, dá se obejít.
Zvažme následující scénář: zakázali jsme přístup k příkazovému řádku, zakázali jsme spuštění Internet Exploreru a PowerShellu pomocí skupinových politik. Útočník se snaží vyvolat nápovědu – žádná odpověď. Snaží se spustit powershell prostřednictvím kontextového menu modálního okna vyvolaného stiskem klávesy Shift – zpráva o zákazu spuštění administrátorem. Snaží se spustit powershell prostřednictvím adresního řádku – znovu žádná odpověď. Jak obejít toto omezení?
Stačí zkopírovat powershell.exe z adresáře C:\Windows\System32\WindowsPowerShell\v1.0 do uživatelské složky, změnit název na odlišný od powershell.exe a možnost spuštění se objeví.
Ve výchozím nastavení při připojení k vzdálené pracovní ploše je poskytován přístup k místním diskům klienta, odkud může útočník zkopírovat powershell.exe a po přejmenování ho spustit.
→
Uvedli jsme pouze několik způsobů, jak obcházet omezení; scénářů by se dalo vymyslet ještě mnoho, ale všechny je spojuje výstup do Průzkumníka Windows. Aplikací využívajících standardní prostředky Windows pro práci se soubory je mnoho a při jejich umístění do omezeného prostředí je možné využívat podobné techniky.
4. Doporučení a závěr
Jak vidíme, i v omezeném prostředí existuje prostor pro rozvoj útoku. Nicméně lze útočníkovi ztížit život. Uvádíme obecná doporučení, která se hodí jak v našich uvedených případech, tak v dalších situacích.
- Omezte spouštění programů pomocí černých/bílých seznamů pomocí skupinových politik.
Přitom v mnoha případech zůstává možnost spouštění kódu. Doporučujeme se seznámit s projektem , abyste měli představu o nedokumentovaných způsobech manipulace se soubory a provádění kódu v systému.
Doporučujeme kombinovat oba typy omezení: například můžete povolit spouštění spustitelných souborů podepsaných společností Microsoft, ale omezit spouštění cmd.exe. - Deaktivujte záložky nastavení Internet Exploreru (můžete to provést lokálně v registru).
- Deaktivujte pomocí regedit vyvolání vestavěné nápovědy Windows.
- Deaktivujte možnost připojování místních disků pro vzdálené připojení, pokud toto omezení není kritické pro uživatele.
- Omezte přístup k místním diskům vzdáleného stroje, ponechte přístup pouze k uživatelským složkám.
Doufáme, že jste našli alespoň něco zajímavého a v nejlepším případě, že vám tento článek pomůže učinit vzdálenou práci vaší společnosti bezpečnější.
Zdroj: habr.com
