
Canary Hunter vise à être un script PowerShell rapide pour vérifier la présence de canaris courants dans divers formats générés gratuitement sur canarytokens.org
Au fil de multiples engagements red team menés ces dernières années, je me suis heurté à plusieurs reprises à des Canary Tokens susceptibles d'alerter le SOC des actions effectuées. J'ai donc passé du temps à creuser la question pour découvrir s'il existait des moyens de détecter ces canaris dans les fichiers présents dans l'environnement. Canary Hunter a été créé pour vérifier rapidement la présence de canaris courants dans divers formats générés gratuitement sur canarytokens.org
Les Canary tokens sont un moyen gratuit, rapide et indolore d'aider les défenseurs à découvrir qu'ils ont été compromis (en obligeant les attaquants à s'annoncer). Pour plus d'informations sur ce que sont les Canary tokens et comment les générer gratuitement, vous pouvez consulter https://blog.thinkst.com/p/canarytokensorg-quick-free-detection.html
Actuellement, le script peut détecter les canaris dans les formats suivants :
PS C:\> Import-Module .\CanaryHunter.psd1
Copie le docx en zip, puis analyse le contenu XML à la recherche d'une regex contenant les domaines de Canary Tokens.
PS C:\> Invoke-DocxCheck -DocxPath gwfrr71nre84bk5gobf3h96ms.docx
Url Found:
http://canarytokens.com/feedback/traffic/gwfrr71nre84bk5gobf3h96ms/index.html
Copie le xlsx en zip, puis analyse le contenu xml.rels à la recherche d'une regex contenant les domaines de Canary Tokens.
PS C:\> Invoke-XlsxCheck -XlsxPath .\gwfrr71nre84bk5gobf3h96ms.xlsx
Url Found:
http://canarytokens.com/images/tags/articles/gwfrr71nre84bk5gobf3h96ms/contact.php
Exécute PDFStreamDumper sur le .pdf spécifié, puis analyse les fichiers de flux .unk à la recherche du mot-clé Canary.
PS C:\> Invoke-PDFCheck -StreamDumperPath C:\PDFStreamDumper\PDFStreamDumper.exe -PDFPath .\gwfrr71nre84bk5gobf3h96ms.pdf
Url Found:
http://gwfrr71nre84bk5gobf3h96ms.canarytokens.net/RNGPLTCJSTEKJHOMLLYCQINNXOVOWCUVME
Par défaut, vérifie "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit" pour un processus utilisant la surveillance de sortie silencieuse, puis exécute une regex sur la propriété Monitor Process.
PS C:\> Invoke-RegistryCheck
Sensitive Command Canary Found For:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\net.exe
Monitor Process Canary Value Found:
cmd.exe /c start /min powershell.exe -windowstyle hidden -command "$($u=$(\"u$env:username\"
-replace('[^\x00-\x7f]|\s', ''))[0..63] -join '';$c=$(\"c$env:computername\" -replace('[^\x00-\x7f]|\s', ''));
Resolve-DnsName -Name \"$c.UN.$u.CMD.gwfrr71nre84bk5gobf3h96ms.canarytokens.com\")"
Analyse les clés d'accès AWS susceptibles d'appartenir au compte AWS du service gratuit de Canary tokens, d'après le blog de Bobby Lin.
PS C:\> Invoke-AWSCheck -AWSPath .\AWS.config
Possible Canary Config Found:
AWS.config:2:aws_access_key_id = AKIAYVP4CIPPJUYTRES
Analyse les configs WireGuard à la recherche d'adresses IP connues de Canary Tokens.
PS C:\> Invoke-WireguardCheck -WireGuardPath .\WireguardConfig
Possible Canary Config Found:
Endpoint = 52.18.63.80
Analyse les configs Kube à la recherche d'adresses IP connues de Canary Tokens.
PS C:\> Invoke-KubeCheck -KubeConfigPath .\KubeConfig
Possible Canary Config Found:
server: https://52.18.63.80:6443
Analyse les dumps MYSQL à la recherche de SET @b=, puis exécute une regex pour déterminer si MASTER HOST contient des adresses IP connues de Canary Tokens.
PS C:\> Invoke-MySqlDumpCheck -MySQLDumpPath .\gwfrr71nre84bk5gobf3h96ms_mysql_dump.sql
Url Found:
MASTER_HOST='gwfrr71nre84bk5gobf3h96ms.canarytokens.com'
Bloque les IP de canaris connues
PS C:\> Invoke-BlockCanaries
DisplayName : Block All Known Canary IP Addresses
Enabled : True
Profile : Any
Direction : Outbound
Action : Block
Firewall Rule to Block Canary IP Addresses Succesffully Created