
Un petit outil pour détecter les connexions NTLM privilégiées suspectes, en particulier l'attaque Pass-The-Hash, basé sur les journaux de l'observateur d'événements.
Un petit outil pour détecter les connexions NTLM privilégiées suspectes, en particulier l'attaque Pass-The-Hash, basé sur les journaux de l'Observateur d'événements.
Cet outil a été publié dans le cadre de la recherche « Détection de Pass-The-Hash » – plus de détails sur la détection de Pass-The-Hash sont disponibles dans l'article de blog : https://www.cyberark.com/threat-research-blog/detecting-pass-the-hash-with-windows-event-viewer
L'intégralité de la recherche est disponible dans le livre blanc : https://www.cyberark.com/resource/pass-hash-detection-using-windows-events/ (lien direct : http://lp.cyberark.com/rs/cyberarksoftware/images/wp-Labs-Pass-the-hash-research-01312018.pdf)
Compte disposant des privilèges suivants :
Ketshash est un outil permettant de détecter les connexions NTLM privilégiées suspectes, basé sur les informations suivantes :
Deux options sont disponibles :
Import-Module .\Ketshash.ps1 ou copiez/collez le contenu de Ketshash.ps1 dans la session PowerShellInvoke-DetectPTH <arguments>alt text
Invoke-DetectPTH -TargetComputers "MARS-7" -LogFile "C:\tmp\log.txt"
alt text
Invoke-DetectPTH -TargetComputers "ComputerName" -StartTime ([datetime]"2017-12-14 12:50:00 PM") -LogFile "C:\tmp\log.txt" -UseKerberosCheck -UseNewCredentialsCheck
alt text
Étant donné qu'il utilise des threads, il n'est pas possible de déboguer le bloc de script de la fonction principale.
Une solution de contournement peut consister à utiliser Invoke-Command avant Detect-PTHMultithreaded :
Invoke-Command -ScriptBlock $detectPTHScriptBlock -ArgumentList $TargetComputers, $startTime, $LogFile, $UseKerberosCheck, $UseNewCredentialsCheck, $MaxHoursOfLegitLogonPriorToNTLMEvent`
Détecter un seul ordinateur cible :
Invoke-DetectPTH -TargetComputers "<computer_name>" ...
Modifiez $TargetComputer pour qu'il soit de type [string] au lieu de [array].
Ainsi, il est possible d'utiliser des points d'arrêt à l'intérieur du bloc de script de la fonction principale.
Pour plus de commentaires et de questions, vous pouvez contacter Eviatar Gerzi (@g3rzi) et CyberArk Labs.