
Canary Hunter soll ein schnelles PowerShell-Skript sein, um nach gängigen Canaries in verschiedenen Formaten zu suchen, die kostenlos auf canarytokens.org generiert wurden.
Bei der Durchführung mehrerer Red-Team-Einsätze in den letzten Jahren bin ich mehrfach auf Canary Tokens gestoßen, die das SOC möglicherweise auf ausgeführte Aktionen aufmerksam machen könnten. Aus diesem Grund habe ich mich auf die Suche begeben und herausgefunden, ob es Möglichkeiten gibt, diese Canaries in den in der Umgebung vorhandenen Dateien zu erkennen. Canary Hunter wurde entwickelt, um schnell nach gängigen Canaries in verschiedenen Formaten zu suchen, die kostenlos auf canarytokens.org erstellt werden.
Canary Tokens sind eine kostenlose, schnelle und schmerzlose Möglichkeit, Verteidigern zu helfen, einen Einbruch zu erkennen (indem Angreifer sich selbst ankündigen). Weitere Informationen darüber, was Canary Tokens sind und wie man sie kostenlos erstellt, finden Sie unter https://blog.thinkst.com/p/canarytokensorg-quick-free-detection.html
Derzeit kann das Skript Canaries in den folgenden Formaten erkennen:
PS C:\> Import-Module .\CanaryHunter.psd1
Kopiert die docx-Datei in eine zip-Datei und durchsucht dann den XML-Inhalt per Regex nach Canary-Token-Domains.
PS C:\> Invoke-DocxCheck -DocxPath gwfrr71nre84bk5gobf3h96ms.docx
Url Found:
http://canarytokens.com/feedback/traffic/gwfrr71nre84bk5gobf3h96ms/index.html
Kopiert die xlsx-Datei in eine zip-Datei und durchsucht dann den Inhalt der xml.rels-Datei per Regex nach Canary-Token-Domains.
PS C:\> Invoke-XlsxCheck -XlsxPath .\gwfrr71nre84bk5gobf3h96ms.xlsx
Url Found:
http://canarytokens.com/images/tags/articles/gwfrr71nre84bk5gobf3h96ms/contact.php
Führt PDFStreamDumper gegen die angegebene .pdf-Datei aus und durchsucht dann die .unk-Stream-Dateien nach dem Schlüsselwort Canary.
PS C:\> Invoke-PDFCheck -StreamDumperPath C:\PDFStreamDumper\PDFStreamDumper.exe -PDFPath .\gwfrr71nre84bk5gobf3h96ms.pdf
Url Found:
http://gwfrr71nre84bk5gobf3h96ms.canarytokens.net/RNGPLTCJSTEKJHOMLLYCQINNXOVOWCUVME
Prüft standardmäßig "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit" auf einen Prozess, der die Silent-Exit-Überwachung nutzt, und führt dann einen Regex-Abgleich gegen die Monitor-Process-Eigenschaft durch.
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\")"
Durchsucht AWS-Zugriffsschlüssel, die möglicherweise zum AWS-Konto des kostenlosen Canary-Token-Dienstes gehören, basierend auf Bobby Lins Blog.
PS C:\> Invoke-AWSCheck -AWSPath .\AWS.config
Possible Canary Config Found:
AWS.config:2:aws_access_key_id = AKIAYVP4CIPPJUYTRES
Durchsucht WireGuard-Konfigurationen nach bekannten Canary-Token-IP-Adressen.
PS C:\> Invoke-WireguardCheck -WireGuardPath .\WireguardConfig
Possible Canary Config Found:
Endpoint = 52.18.63.80
Durchsucht Kube-Konfigurationen nach bekannten Canary-Token-IP-Adressen.
PS C:\> Invoke-KubeCheck -KubeConfigPath .\KubeConfig
Possible Canary Config Found:
server: https://52.18.63.80:6443
Durchsucht MySQL-Dumps nach "SET @b=" und führt dann einen Regex-Abgleich durch, um festzustellen, ob MASTER HOST bekannte Canary-Token-IP-Adressen enthält.
PS C:\> Invoke-MySqlDumpCheck -MySQLDumpPath .\gwfrr71nre84bk5gobf3h96ms_mysql_dump.sql
Url Found:
MASTER_HOST='gwfrr71nre84bk5gobf3h96ms.canarytokens.com'
Blockiert bekannte Canary-IPs
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