Desktop la distanță prin ochii atacatorului

1. Introducere

Companiile care nu și-au organizat sistemele de acces de la distanță, le-au implementat în regim de urgență acum câteva luni. Nu toți administratorii au fost pregătiți pentru o astfel de "focă", iar în consecință - au apărut slăbiciuni în securitate: configurarea greșită a serviciilor sau chiar instalarea versiunilor învechite ale software-ului cu vulnerabilități cunoscute anterior. Unora dintre aceștia, aceste neatenții le-au revenit ca un bumerang, iar altora le-a mers mai bine, dar cu siguranță toată lumea ar trebui să tragă concluzii. Loialitatea față de munca la distanță a crescut exponential, iar tot mai multe companii acceptă telemunca ca un format acceptabil pe termen lung.

Așadar, există numeroase opțiuni pentru asigurarea accesului de la distanță: diverse VPN-uri, RDS și VNC, TeamViewer și altele. Administratorii au de unde alege, bazându-se pe specificul rețelei corporative și al dispozitivelor din aceasta. Cele mai populare rămân soluțiile VPN, totuși, multe companii mici aleg RDS (Servicii Desktop la Distanță), acestea fiind mai simple și rapide în implementare.

În acest articol vom discuta mai în detaliu despre securitatea RDS. Vom face un scurt rezumat al vulnerabilităților cunoscute, precum și vom analiza câteva scenarii de inițiere a atacurilor asupra infrastructurii de rețea bazate pe Active Directory. Sperăm că articolul nostru va ajuta pe cineva să-și corecteze greșelile și să îmbunătățească securitatea.

2. Vulnerabilități recente RDS/RDP

Orice software conține erori și vulnerabilități care sunt exploatate de către răufăcători, iar RDS nu face excepție. Recent, Microsoft a anunțat frecvent noi vulnerabilități, așa că am decis să facem un scurt rezumat al acestora:

Această vulnerabilitate pune în pericol utilizatorii care se conectează la un server compromis. Un atacator poate prelua controlul dispozitivului utilizatorului sau poate rămâne în sistem pentru a avea acces constant de la distanță.

Această grupă de vulnerabilități permite unui atacator neautorizat să execute cod arbitrar de la distanță pe un server cu RDS printr-o cerere special formulată. De asemenea, acestea pot fi utilizate pentru a crea viermi - software malițios care infectează de la sine dispozitivele adiacente din rețea. Astfel, aceste vulnerabilități pot pune în pericol întreaga rețea a companiei, iar singura protecție este actualizarea la timp.

Software for remote access has gained increased attention from both researchers and attackers, so we may soon hear about new vulnerabilities of this kind.

The good news is that not all vulnerabilities have publicly available exploits. The bad news is that an attacker with expertise can easily write an exploit for a vulnerability based on its description or using techniques such as Patch Diffing (which our colleagues have written about in pe care l-ați citit). Therefore, we recommend regularly updating the software and keeping an eye on the emergence of new vulnerability reports.

3. Attacks

We move on to the second part of the article, where we will show how attacks on network infrastructure based on Active Directory begin.

The described methods apply to the following attacker model: an attacker with a user account and access to the Remote Desktop Gateway—a terminal server (often accessible, for example, from the external network). By applying these methods, the attacker can continue the attack on the infrastructure and solidify their presence in the network.

The network configuration in each specific case may vary, but the described techniques are quite universal.

Examples of escaping from a restricted environment and escalating privileges

When accessing the Remote Desktop Gateway, the attacker will likely encounter some limited environment. When connecting to the terminal server, an application launches: a window for connecting via the Remote Desktop protocol to 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 sandbox escape techniques for Windows can help with this. Let's examine them further.

Opțiunea 1. The attacker has access to the Remote Desktop connection window within the Remote Desktop Gateway:

Desktop la distanță prin ochii atacatorului

The 'Show Options' menu is revealed. Options for manipulating the connection configuration files appear:

Desktop la distanță prin ochii atacatorului

From this window, it is possible to easily access the Explorer by clicking any of the 'Open' or 'Save' buttons:

Desktop la distanță prin ochii atacatorului

Se deschide Explorer. „Bara de adrese” a acestuia permite lansarea fișierelor executabile autorizate, precum și listarea sistemului de fișiere. Acest lucru poate fi util unui atacator în cazul în care discurile sistemului sunt ascunse și accesibilitatea lor directă nu este posibilă:

Desktop la distanță prin ochii atacatorului

→ Videoclip demo

Un scenariu similar poate fi reprodus, de exemplu, folosind Excel din pachetul Microsoft Office ca software de acces de la distanță.

→ Videoclip demo

În plus, nu trebuie uitate macrocomenzile utilizate în acest pachet de birou. Colegii noștri au analizat problema de securitate a macrocomenzilor în această pe care l-ați citit.

Opțiunea 2. Folosind aceleași informații ca în varianta anterioară, atacatorul stabilește mai multe conexiuni la biroul de lucru de la distanță sub același cont. La reconectare, prima va fi închisă, iar pe ecran va apărea o fereastră cu un mesaj de eroare. Butonul de ajutor din această fereastră va deschide Internet Explorer pe server, după care atacatorul poate accesa Explorer.

→ Videoclip demo

Opțiunea 3. Dacă există restricții setate pentru lansarea fișierelor executabile, atacatorul se poate confrunta cu o situație în care politicile de grup interzic lansarea cmd.exe de către administrator.

Există o modalitate de a o ocoli prin lansarea unui fișier bat pe biroul de lucru la distanță cu conținut de tip cmd.exe /K . Eroarea la lansarea cmd și un exemplu de succes al execuției fișierului bat sunt prezentate în imaginea de mai jos.

Desktop la distanță prin ochii atacatorului

Opțiunea 4. Interzicerea lansării aplicațiilor prin liste negre bazate pe numele fișierelor executabile nu este o soluție universală, acestea pot fi ocolite.

Să luăm în considerare următorul scenariu: am interzis accesul la linia de comandă, am interzis lansarea Internet Explorer și PowerShell prin politici de grup. Atacatorul încearcă să apeleze ajutorul — nu există răspuns. Încercând să lanseze powershell prin meniul contextual al feronței modale, apelată cu tasta Shift apăsată — mesaj de interzicere a lansării de către administrator. Încercând să lanseze powershell prin bara de adrese — din nou nu există răspuns. Cum se poate o ocoli această restricție?

Este suficient să copiezi powershell.exe din folderul C:WindowsSystem32WindowsPowerShellv1.0 în folderul utilizatorului, să îi schimbi numele într-unul diferit de powershell.exe, iar posibilitatea de lansare va apărea.

Implicit, atunci când te conectezi la biroul de lucru de la distanță, se oferă acces la discurile locale ale clientului, din care atacatorul poate copia powershell.exe și, după redenumire, să-l lanseze.

→ Videoclip demo

Am prezentat doar câteva metode de ocolire a restricțiilor; se pot imagina multe altele, dar toate au în comun ieșirea în Explorer-ul Windows. Există multe aplicații care folosesc resursele standard ale Windows pentru a lucra cu fișiere, iar atunci când sunt plasate într-un mediu restricționat, se pot aplica tehnici similare.

4. Recomandări și concluzii

După cum vedem, chiar și într-un mediu restricționat există spațiu pentru dezvoltarea atacului. Totuși, putem îngreuna viața atacatorului. Oferim recomandări generale care sunt utile atât în variantele discutate, cât și în alte cazuri.

  • Restricționați execuția programelor prin liste negre/alimente, folosind politici de grup.
    Cu toate acestea, în majoritatea cazurilor rămâne posibilitatea de a rula cod. Vă recomandăm să consultați proiectul LOLBAS, pentru a avea o idee despre metodele nedocumentate de manipulare a fișierelor și de execuție a codului în sistem.
    Vă recomandăm să combinați ambele tipuri de restricții: de exemplu, puteți permite rularea fișierelor executabile semnate de Microsoft, dar să restricționați execuția cmd.exe.
  • Dezactivați tab-urile de setări din Internet Explorer (se poate face local în registry).
  • Dezactivați prin regedit apelarea ajutoarelor încorporate Windows.
  • Dezactivați posibilitatea de a monta discuri locale pentru conexiuni de la distanță, dacă această restricție nu este critică pentru utilizatori.
  • Restricționați accesul la discurile locale ale mașinii remote, lăsând acces doar la dosarele utilizatorilor.

Sperăm că v-a fost cel puțin interesant, iar în cel mai bun caz, acest articol va ajuta la securizarea muncii la distanță a companiei dumneavoastră.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster