Situatie
Un mic instrument pentru detectarea conexiunilor suspecte NTLM privilegiate, în special atac Pass-The-Hash, pe baza jurnalelor de vizualizare a evenimentelor.
Cerinţe
Contul cu următoarele privilegii:
- Acces la jurnalele de evenimente de securitate ale mașinilor la distanță
- Permisii de citire ActiveDirectory (cont de domeniu standard)
- Calculatoare sincronizate cu același timp, altfel poate afecta rezultatele
- Minimum PowerShell 2.0
Prezentare generală
Ketshash este un instrument pentru detectarea conexiunilor NTLM privilegiate, bazate pe următoarele informații:
- Jurnalele de evenimente de securitate pe mașinile monitorizate (evenimente de conectare)
- Evenimente de autentificare din Active Directory
Solutie
Pasi de urmat
Utilizare de bază
- Deschideți PowerShell și rulați:
Import-Module .\Ketshash.ps1
sau copiați și lipiți conținutul Ketshash.ps1 în sesiunea PowerShellInvoke-DetectPTH <arguments>
Ketshash Runner
- Asigurați-vă că Ketshash.ps1 se află în același director din KetshashRunner.exe
- Faceți dublu clic pe KetshashRunner.exe, schimbați setările dacă aveți nevoie și apăsați Run.
Invocați-DetectPTH
Parametri:
- TargetComputers – computere țintă pentru a detecta conexiunile NTLM.
- TargetComputersFile – Calea către fișier cu lista de calculatoare țintă pentru a detecta conexiunile NTLM.
- StartTime – perioadă în care începe detectarea. Valoarea implicită este ora curentă.
- UseKerberosCheck – Verificări pentru logare TGT \ TGS pe DC-urile din organizație. Implicit este să căutați logon legitim pe mașina sursă. În orice caz, cu sau fără acest comutator, există încă o întrebare pentru ID-ul evenimentului 4648 pe aparatul sursă.
- UseNewCredentialsCheck – Verifică evenimentele de conectare cu tipul de logare 9 (cum ar fi Mimikatz). Acest lucru este opțional, algoritmul prestabilit îl acoperă deja. Există doar pentru a arăta o altă opțiune pentru a detecta conexiuni NTLM suspecte. Pe versiunile Windows 10 și Server 2016, “Microsoft-Windows-LSA / Operational” ar trebui să fie activată în vizualizatorul de evenimente. Pe Windows 10 și Server 2016, activarea “auditului obiectului kernel” va oferi informații mai precise, cum ar fi scrierea în LSASS.
- LogFile – Calea fișierului log pentru a salva rezultatele.
Exemplu (recomandat):
Invoke-DetectPTH - TargetComputers " MARS-7 " - LogFile " C: \ tmp \ log.txt "
Exemplu:
Invoke-DetectPTH - TargetComputers " ComputerName " - StartTime ([ datetime ] " 2017-12-14 12:50:00 PM " ) - LogFile " C: \ tmp \ log.txt " - UseKerberosCheck - UseNewCredentialsCheck
Debugging
Deoarece utilizează thread-uri, nu este posibilă debugarea blocului de scripturi al funcției principale. O soluție poate fi folosită Invoke-Command
înainte de Detect-PTHMultithreaded
:
Invoke-Command - ScriptBlock $ detectPTHScriptBlock - ArgumentList $ TargetComputere , $ startTime , $ LogFile , $ UseKerberosCheck , $ UseNewCredentialsCheck , $ MaxHoursOfLegitLogonPriorToNTLMEvent `
Detectați numai un singur computer țintă:
Invoke-DetectPTH - TargetComputers " <computer_name> " ...
Modificați $TargetComputer
să fie în [string]
loc [array]
. În acest fel, este posibil să se utilizeze puncte de blocare în interiorul blocului de script al funcției principale.
Leave A Comment?