Martin Pavlis - KPCS CZ, s.r.o., www.kpcs.cz

konzultace a projekty v oblasti Microsoft technologií
posts - 787, comments - 240, trackbacks - 0

My Links

News

KONZULTANT.NET

KPCS CZ, s.r.o.

Subscribe with Bloglines

Article Categories

Archives

Odkazy

Remote Desktop

Terminal Server / Remote Desktop ve Windows Server 2003

Tento článek se snaží ve třech částech popsat některé novinky v RDP protokolu na platformě Windows Server 2003 a také popsat některé z útoků, které vůči němu mohou být vedeny.

I. Přihlášení se ke konzoli

Jednou z vynikajících novinek RDP ve Windows Serveru 2003, je možnost přihlášení se přímo na konzoli systému. Pokud netušíte přesně, o co se jedná, jenom krátký popis toho, jak je to v ostatních Microsoft operačních systémech.

Termíny:
Konzole = místní přihlášení k serveru
RDP (Remote Desktop Protocol) = vzdálené přihlášení pomocí TCP:3389 (default)

1) Za klienty zde máme pouze Windows XP Professional. Tento systém, jako první z klientů Microsoft, v sobě má zabudován RDP (Control Panels - System - Remote - Remote Desktop - Allow users to connect remotely to this computer), který ovšem podporuje pouze jednu licenci, jedno spojení. V praxi to znamená, že pokud je přihlášen nějaký uživatel lokálně, nikdo další se přes RDP již nemůže přihlásit. A to samé opačně. Pokud pracuji přes RDP, už se nikdo nemůže přihlásit lokálně. Stanice je zamknuta a jediná šance je použití administrátorských práv, kdy mohu aktuálně přihlášeného uživatele odhlásit a tak získat prostor pro vlastní přihlášení. Zajímavé tady je hlavně to, že vlastně stále pracuji na konzoli, že nevzniká žádné virtuální spojení. Pro představu: pokud odcházím z práce, zůstanu přihlášen (pouze zamknu stanici) a následně, pokud se (třeba z domova) přihlásím přes RDP, převezmu lokální relaci a pracuji přesně tam, kde jsem skončil.

2) Na systémech Windows 2000 je to ale úplně jinak. Pokud jste měli o RDP zájem, museli jste si doinstalovat Terminal Services v tzv. Remote Administration módu. Ten omezoval použití RDP na maximální počet dvou spojení s podmínkou, že uživatel musí mít administrátorská práva (ale zase nemusíte platit žádné další licence). Hlavní omezení, se kterým se stále setkávám, spočívá v tom, že nelze kombinovat lokální přihlášení na konzoli s virtuálním spojením. Takže pokud na konzoli rozpracujete nějakou práci (fyzicky u serveru) a odcházíte s tím, že zbytek dokončíte později přes RDP, je potřeba pamatovat na to, že přes RDP se už ke konzoli nikdy! nepřihlásíte, ve Windows 2000 to prostě nejde.

3) A to je právě novinka uvnitř Windows Serveru 2003, kde pomocí parametru /console, máte možnost přihlásit se na konzoli! Postup zapnutí RDP je stejný, jako ve Windows XP. Jak tedy na to? Máte dvě možnosti.

a) V příkazové řádce použijte tento parametr:
mstsc.exe /v:{jméno serveru nebo IP} /console

případně další užitečné parametry:
/f - full screen
/w:{width} - rozlišení RDP
/h:{height} - rozlišení RDP 
/v:{serverIP:port} – změna portu (pokud požíváte nestandardní port)

b) Druhou možností je použít nástroj "Remote Desktops", který je součástí Windows Server 2003 Administration Pack (na CD Windows Server 2003 i386\adminpack.msi – lze nainstalovat i na Windows XP). Zde, když definujte připojení k RDP, máte možnost zaškrtnout i volbu "Connect to console"

 

 

II. Změna portu, na kterém Terminal Server naslouchá

Windows 2000 Server, XP Pro a Windows Server 2003, ty všechny při povolení RDP naslouchají standardně na TCP portu 3389. Někdy se hodí znát informaci o tom, že je možné tento port změnit. Máte například pouze jednu statickou veřejnou adresu (na routeru/firewallu) a potřebujete se připojit ke třem serverům/klientům ve vnitřní síti. Řešením je právě změna portu, na kterém RDP naslouchá.

Spusťte nástroj Regedit:
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

A v tomto klíči změňte hodnotu záznamu PortNumber z výchozích 3389 na jinou (decimal), kterou potřebujete. Na klientovi potom musíte tento port zadat při spojení. Například "mstsc.exe /v:server:4000"

Poznámka na závěr:
RDP protokol je sice šifrován, a přenos dat skrze něj lze tedy považovat za bezpečný, nicméně není odolný proti různým DOS (Denial od Service) a MIMT (Man In The Middle) útokům. Proto bych RDP servery v LAN síti nikdy nedoporučil publikovat přímo do internetu, raději bych postupoval tak, že bych si nejprve ustanovil VPN spojení do vnitřní sítě a teprve v tomto VPN spojení bych přistoupil pomocí RDP k serveru.

 

 

III. MIMT (Man In The Middle) útok na RDP a změny plánované ve Windows Serveru 2003 SP1

Jak jsem se zmínil v předchozí poznámce, na RDP protokol se dá velice efektivně zaútočit pomocí MIMT (Man In The Middle) útoku. Pro představu, útok by mohl vypadat asi takto:

1) Klient se připojuje k serveru. Díky různým metodám (DNS spoofing, arp poisoning, atd.), aniž by o tom tušil, dojde k jeho přesměrování na úplně jiný server (budeme mu říkat MITM), který předá požadavek originálnímu RDP serveru.

2) RDP server odpovídá a posílá klientovi nešifrovaně svůj veřejný klíč a "náhodně přidanou hodnotu" (random salt), klientem je pro něj ovšem MITM! Ten předá tento paket původním klientovi, ovšem zamění veřejný klíč RDP serveru za vlastní (od kterého má privátní klíč).
 
3) Klient zasílá serveru svoji "náhodně přidanou hodnotu" (random salt), zašifrovanou pomocí veřejného klíče, který obdržel v předchozím paketu, ale tento klíč není klíč RDP serveru, ale MITM serveru!
 
4) MITM server pomocí svého privátního klíče dešifruje paket od klienta, a znovu jej šifruje, tentokrát pomocí "správného" veřejného klíče RDP serveru (viz. bod 2) a předává ho RDP serveru.

5) Na základě tohoto postupu, má MITM server veškeré potřebné informace k tomu, aby mohl vytvořit "session keys", které se používají k šifrování dalších paketů, které si klient s RDP serverem vyměňuje.

Díky tomu, je tedy vše, co je přenášeno mezi klientem a RDP serverem, pro MITM server zcela čitelné. Hlavně tedy hesla, kterými se klienti přihlašují. Jelikož třeba na Windows 2000 musí mít klient pro přihlášení administrátorská práva, je dopad stoprocentní.

Pokud jste někdo zkusil nainstalovat připravovaný SP1 na Windows Server 2003, možná jste si všimli zajímavé novinky, která by měla tento útok eliminovat. Jedná se o autentizaci na bázi SSL pro terminálové (RDP) servery. Toto je na straně serveru implementováno pomocí chystaného SP1, bude potřeba rovněž nainstalovat nového klienta, který je v SP1 také obsažen.

Pro podrobné info, jak vše patřičně nastavit doporučuji následují adresu.
How to Enable Windows 2003 Terminal Server to use SSL for server Authentication:
http://support.microsoft.com/default.aspx?scid=kb;en-us;555188

Print | posted on Thursday, March 24, 2005 12:11 AM |

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET