☰

Kompromitēta domēna atpazīšana un atgūšanās pēc uzbrukuma

Kompromitēta domēna atpazīšana un  atgūšanās pēc uzbrukuma v1 (PDF)

CERT.LV ir konstatējusi veiksmīgus uzbrukumus Microsoft (MS) Exchange serveriem Latvijā. Uzbrukumos tika izmantotas ievainojamības CVE-2021-26855, CVE-2021-26857, CVE-2021-26858, CVE-2021-27065. Pastāv risks, ka uzbrucēji ne vien iegūst darbinieku e-pastu piekļuves datus, piekļuvi e-pastu sarakstēm un adrešu grāmatiņai, bet iet soli tālāk un veic darbības, kas var kompromitēt visu uzņēmuma tīkla infrastruktūru, ļaujot piekļūt domēna kontrolierim (Domain Controller) un aktīvajai direktorijai (Active Directory).

Apdraudētas ir visas aktuālās, lokālās (on-premises) MS Exchange versijas. CERT.LV aicina uzskatīt visus apdraudētos MS Exchange serverus, kam februāra beigās - aprīļa sākumā web interfeiss (owa, ecp, ews vai autodiscovery) ir bijis pieejams no interneta, par kompromitētiem, līdz brīdim, kad ir veiktas atbilstošas pārbaudes un tajās ir apstiprināts pretējais. Pārbaužu veikšanai CERT.LV iesaka izmantot sekojošus rīkus no Microsoft: https://github.com/microsoft/CSS-Exchange/tree/main/Security

CERT.LV ir apkopojusi vadlīnijas rīcībai gadījumā, ja gūts apstiprinājums tam, ka domēns ir kompromitēts. Jāpiezīmē, ka katra infrastruktūra ir atšķirīga un ne visiem gadījumiem šeit aprakstītais ir piemērojams, tāpēc aicinām izvērtēt un ņemt vērā šeit aprakstīto savu iespēju robežās.

Uzbrukumos izmantotās pamatmetodes un to atpazīšana

Pass The Hash (PTH) – šī ir metode, kas ļaundariem ļauj pārvietoties pa domēnu, autentificējoties kā konkrētam sistēmas lietotājam\servisam\iekārtai (sauksim to par upuri) bez tiešas piekļuves upura parolei (cleartext formā), jo tiek izmantota paroles hash vērtība, kas tiek izgūta no aktīvās direktorijas un/vai Local Security Accounts Manager SAM datubāzēm. Vairāk: https://download.microsoft.com/download/7/7/A/77ABC5BD-8320-41AF-863C-6ECFB10CB4B9/Mitigating-Pass-the-Hash-Attacks-and-Other-Credential-Theft-Version-2.pdf

PTH uzbrukumā tiek izmantotas uz iekārtas glabātās paroļu hash vērtības, kas parasti ir iegūtas no LSASS.EXE procesa atmiņas -  šis process ir atbildīgs par autentifikāciju. Incidenta konstatēšanai nepieciešams monitorēt Windows žurnālfailu EventID 4688 un skatīties, vai vecāka (parent) process ir, piemēram, cmd.exe vai powershell.exe, no kura ir palaists apakšprocess ar lsass.exe – šī būtu uzskatāma par anomāliju. Monitorēt visus pieslēgšanās mēģinājumus (logon) un piekļuves datu (credentials) izmantošanas novirzes no normas t.i. lietotājs pieslēdzas no darbstacijas, kuru nekad nav lietojis (EventID 4624) vai notiek vairākkārtīgi nesekmīgi pieslēgumi (EventID 4625); neparasts darba laiks, kurā notiek pieslēgumi. Pieslēgumi, kas korelē ar citiem notikumiem, piemēram, izpildāmo datņu (.exe) palaišanu vai servisu/reģistra vērtību/plānoto uzdevumu (scheduled tasks) izveidošanu un palaišanu – varētu norādīt uz ļaunprātību. Windows Security žurnālfailos redzot EventID 4624 un 4625 ar LogonType 3 autentifikācijas metodi, jāpievērš uzmanība tiem notikumiem, kas nav saistīti ar domēnu un nav kā Anonymous. Mimikatz ir populārākais rīks, kas tiek izmanto PTH uzbrukumos – ja redzat EventID 4624 ar LogonType 3 un SecurityID: xxxx\Administrator AccountName:YYYYY (respektīvi, AccountName nav tukšs `-` un nesakrīt ar SecurityID, un noteikti uzrādās kā Administrator) tas ir uzskatāms kā artifakts, ka šis rīks ir ticis izmantots.

Vairāk par Windows žurnālfailu EventID, kurus monitorēt PTH un PTT (Pass The Ticket) uzbrukumos, skatīt dokumenta beigās (PIELIKUMS). Par to, kā ieslēgt visus svarīgākos EventID (jo pēc noklusējuma lielākā daļa no nepieciešamajiem EventID netiek monitorēti) varat lasīt CERT.LV sagatavotajā rakstā par MS Windows domēnu auditēšanu: https://cert.lv/uploads/iestadem/Rekomendacijas_audit_Win_2020.pdf

Papildus informāciju par Windows žurnālierakstu EventID vērtībām un to, kam pievērst uzmanību, lai pamanītu gan Mimikatz, gan citu populāru paroļu ‘zadzēju’ rīku, piemēram, Windows Credential Editor (WCE) mēģinājumus izgūt no iekārtas atmiņas lietotāju paroles un/vai hash vērtības, lasīt šeit: https://jpcertcc.github.io/ToolAnalysisResultSheet/ pie sadaļas `Password and Hash Dump`.

Pass The Ticket (PTT) – šī ir metode, kas uzbrucējam ļauj autentificēties domēnā kā sistēmas lietotājam, izmantojot Kerberos biļetenus (Kerberos tickets) bez piekļuves upura (šajā gadījumā tie ir servisu un darbstaciju/serveru konti) cleartext paroles formātam.

  • Silver Ticket – tiek izmantota servisu konta paroles hash vērtība, lai piekļūtu servisiem, kas izmanto Kerberos kā autentifikācijas protokolu gan konkrētam resursam, gan sistēmai, kas uztur šo resursu (piemēram, MSSQL, Sharepoint u.c.).
  • Golden Ticket – uzbrucējs, kuram ir piekļuve Key Distribution Service konta (KRBTGT) paroles hash vērtībai, var pats ģenerēt TicketGrantingTickets (TGT) t.i. uzbrucējs var veikt autentifikācijas domēnā kā jebkurš cits konts (piemēram, lietotājs, serviss, darbstacija/serveris), kas eksistē domēna aktīvajā direktorijā.

Arī pie šīs uzbrukuma metodes vispopulārākais rīks ir Mimikatz. Papildus informāciju par Windows EventID, kurus monitorēt, lai identificētu PTH un PTT uzbrukumus, meklējiet https://jpcertcc.github.io/ToolAnalysisResultSheet/ pie sadaļām `Pass-the-hash`; `Pass-theTicket`; `Capturing Domain Administrator Rights Account`.

Paroļu hash vērtību izgūšana no domēna kontroliera – ir vairāki paņēmieni, kā uzbrucējam iegūt visu domēna lietotāju hash vērtību kopiju. Visbiežāk mēģina izmantot jau iebūvētos sistēmas rīkus, lai nepievērstu sev lieku uzmanību.

  • Var izmantot, piemēram, iebūvēto ntdsutil (Active Directory domain services management utility), kas tiek izmantota arī leģitīmu AD rezerves kopiju izveidei, bet šajā gadījumā ļaundarim ir nepieciešamas jau Domēna Administratora tiesības. Papildus informāciju par Windows EventID, kurus monitorēt, lai pamanītu neparastas šīs rīka darbības, meklējiet https://jpcertcc.github.io/ToolAnalysisResultSheet/ pie sadaļas ` Information Collection`.
  • Vēl viena populāra metode ir DCSync, ar kuru var izgūt lietotāju paroles no aktīvās direktorijas (tai skaitā KRBGT; Administrators utt.), izliekoties par  vēl vienu kontrolieri domēnā. DCSync funkcionalitāte ir iekļauta arī plaši lietotajā Mimikatzs rīkā (nav obligāti jābūt domēna administratora tiesībām- var būt Enterpise Admin vai Administrators grupā, kā arī var izmantot DC darbstaciju/serveru kontus). Šeit aizdomīgus notikumus var pamanīt, ja tiek monitorēti DC žurnālieraksti, kas attencināmi uz ‘replication requests’ (it īpaši, ja šādi pieprasījumi nāk no IP adresēm, kas nepieder domēnu kontrolieriem).

Diemžēl, ir daudz un dažādi paņēmieni, kā izgūt šo informāciju arī neizmantojot ntdsutil vai DCSync metodi, un visus gadījumus nav iespējams aprakstīt, tāpēc šeit var lasīt apkopojumu arī par citām metodēm un rīkiem - https://pentestlab.blog/tag/ntds-dit/

Vairāk par Microsoft Windows rekomendēto žurnālfailu EventID, kurus ieteicams monitorēt PTH un PTT uzbrukumos, skatīt dokumenta beigās (PIELIKUMS).

Risku mazināšana un atgūšanās pēc uzbrukuma (Mitigation/Hardening)

Parasti pie Pass-The-Hash uzbrukumu identifikācijas nav konkrētu indikatoru, uz kuriem var balstīties, jo tiek izpildīta tradicionālā SMB protokola autentifikācija (bet ar zagtām hash vērtībām), tāpēc nepieciešams meklēt neparastas administratoru/lietotāju darbības t.i. pētīt lietotāju uzvedību (User and Entity Behavioral Anlytics – piemēram, šis ir atvērtā koda rīks, kas var palīdzēt ar UEBA analīzi https://github.com/JPCERTCC/LogonTracer ); Izmaiņas sistēmu konfigurācijā (piemēram, veido jaunus lietotājus un/vai pievieno tos Administrator grupai (net user /add xyz  un net localgroup administrators xyz /add )); Viens lietotāja konts vienlaicīgi pieslēdzies vairākām sistēmām; Lietotāju aktivitāte brīvdienās/naktīs; No vienas iekārta tiek ģenerēti vairākkārtīgi neveiksmīgi piekļuves mēģinājumi uz dažādiem kontiem (EventID 4625); Neparastas machine-to-machine konekcijas (piemēram, darbinieki mēģina piemontēt tīkla diskus (share), kas iepriekš nav lietoti vai nav pat tiesību, un mēģina administrēt citas sistēmas (izveidotās sesijas uz gala iekārtas var pārbaudīt ar net sessions komandu); Server-to-server konekcijas.

Ja ir pamats uzskatīt, ka paroļu hash vērtības ir noplūdušas un ir iespējams identificēt konkrētus kontus, tad nepieciešams tos atslēgt (Disable) un noņemt visas grupu tiesības. Nepieciešams nomainīt  visas (gan lietotājiem, gan servisu kontiem, gan darbstaciju/serveru kontiem) paroles pēc iespējas ātrāk uz visām ietekmētajām sistēmām, un tikai tad atjaunot uzlauztos kontus, protams, vēl labāk, ja tos var izveidot no jauna ar citu lietotājvārdu. Savukārt, ja kompromitēts ir DC, jāatceras nomainīt KRBTGT konta paroli divas reizes pēc kārtas (jāpiezīmē, ka šī darbība var izraisīt sistēmas nepieejamību (down time), piemēram, Sharepoint, Skype for Business un citai ar domēna AD autentifikāciju saistītai programmatūrai). Šeit pieejams Microsoft radītais skripts Krbtgt konta atiestatīšanai (reset). https://www.microsoft.com/security/blog/2015/02/11/krbtgt-account-password-reset-scripts-now-available-for-customers/

Ja ir pieejama aktīvās direktorijas rezerves kopija, tad nepieciešams atjaunoties uz versiju, par kuru esat droši, ka tajā laikā nebija kompromitācijas pazīmju, jo pēc uzbrukuma var būt pievienoti jauni lietotāju/servisu/iekārtu konti. Pēc kopijas uzstādīšanas noteikti nomainīt visas paroles lietotāju/servisu/iekārtu kontiem un ar uzsvaru uz KRBTGT kontu, kuram paroli mainām 2x.

P.S. Aicinām pievērst uzmanību Wndows EventID 4769 ( pēc tam, kad KRBTGT konta parole ir 2x atiestatīta), kas tiek ģenerēts uz domēna kontroliera. Ja šis notikums tiek ģenerēts ar statusa kodu 0x1F "Integrity check on decrypted field failed" - šis ir potenciāls indikators, ka iepriekš ģenerētu Golden ticket mēģina izmantot arī pēc konta Krbtgt atiestatīšanas.

Papildus informācijas avoti par Pass-the-Hash/Pass-the-Ticket  un ar tiem saistītiem uzbrukumiem – aizsardzību, auditēšanu un atkopšanos:

Pass the Hash/Pass the Ticket:

https://www.microsoft.com/en-us/download/details.aspx?id=36036

https://cert.europa.eu/static/WhitePapers/UPDATED%20-%20CERT-EU_Security_Whitepaper_2014-007_Kerberos_Golden_Ticket_Protection_v1_4.pdf

https://adsecurity.org/?p=1515

DCSync uzbrukums: https://adsecurity.org/?p=1729

SidHistory https://adsecurity.org/?p=1772

Vairāk par Protected Users Group:
https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/manage/how-to-configure-protected-accounts

Reset Computer Account:
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc753596(v=ws.11)?redirectedfrom=MSDN

Par to, kāpēc nepieciešams atslēgt SMBv1:
https://techcommunity.microsoft.com/t5/storage-at-microsoft/stop-using-smb1/ba-p/425858

Rekomendācijas auditēšanas iestatījumiem Windows domēna infrastruktūrā:
https://cert.lv/uploads/iestadem/Rekomendacijas_audit_Win_2020.pdf

Rīki

LogonTracer:
https://github.com/JPCERTCC/LogonTracer

DPAT (Domain Password Audit Tool):
https://github.com/clr2of8/DPAT

CISA Hunt and Incident Response Program (CHIRP):
https://github.com/cisagov/CHIRP

PIELIKUMS: Windows EventID, kas potenciāli varētu būt saistīti ar PTH/PTT uzbrukumiem

 [Šī informācija apkopota no Microsoft izstrādātā materiāla par PTH -  https://www.microsoft.com/en-us/download/confirmation.aspx?id=36036 ]

Application

     Event ID 4688 - A new process has been created.

Authentication

     Event ID 4648 - A logon was attempted using explicit credentials.
     Event ID 4624 - An account was successfully logged on.

Kerberos events - domain controllers

     Event ID 4769 - A Kerberos service ticket was requested.
     Event ID 4768 - A Kerberos authentication ticket (TGT) was requested.
     Event ID 4776 - The domain controller attempted to validate the credentials for an account.

Authentication - domain controllers

In Applications and Services logs at Microsoft\Windows\Authentication.
Under ProtectedUserFailures-DomainController
Events generated when an account that is a member of the Protected Users security group tries to use blocked authentication options.

Event ID 100 – NLTM usage attempted.
Event ID 104 – DES or RC4 attempted for Kerberos Authentication.

Trustworthy Computing 23
Under AuthenticationPolicyFailures-DomainController
Events that are generated when an account is used outside of the allowed authentication policy silos.

Event ID 101 – NTLM usage attempted.
Event ID 105 – Kerberos authentication from a particular device was not permitted.
Event ID 106 – The user or device was not allowed to authenticate to the server.
Event ID 305 – Kerberos TGT request did not meet access control restrictions.
Event ID 306 – User, device or both do not meet the access control restrictions.

Detect LSA plug-ins and drivers that fail to run as a protected process

If audit mode is enabled for the Local Security Authority Subsystem (LSASS), an event will be generated when Lsass.exe attempts to load an unauthorized driver.
Applications and Services Logs\Microsoft\Windows\CodeIntegrity

Event ID 3065: Code integrity check determined that a process attempted to load a particular driver that did not meet the security requirements for Shared
Sections. However, due to the system policy that is set, the image was allowed to load.

Event ID 3066: This event records a code integrity check that determined that a process (usually lsass.exe) attempted to load a particular driver that did not
meet the Microsoft signing level requirements. However, due to the system policy that is set, the image was allowed to load.