
Canary Hunter — это быстрый PowerShell-скрипт для проверки распространённых канареек (Canaries) в различных форматах, создаваемых бесплатно на canarytokens.org.
За время выполнения множества red team-заданий за последние несколько лет я неоднократно сталкивался с Canary Tokens, которые могли бы предупредить SOC о выполненных действиях. Поэтому я потратил некоторое время на изучение этого вопроса, пытаясь выяснить, существуют ли способы обнаружения этих канареек в файлах, присутствующих в окружении. Canary Hunter был создан для быстрой проверки распространённых канареек в различных форматах, бесплатно генерируемых на canarytokens.org
Canary tokens — это бесплатный, быстрый и безболезненный способ помочь защитникам обнаружить факт взлома (заставляя атакующих самих себя обнаружить). Дополнительную информацию о том, что такое Canary tokens и как сгенерировать их бесплатно, вы можете найти на https://blog.thinkst.com/p/canarytokensorg-quick-free-detection.html
В настоящее время скрипт может обнаруживать канарейки в следующих форматах:
PS C:\> Import-Module .\CanaryHunter.psd1
Копирует docx в zip, затем анализирует xml-содержимое на предмет regex, содержащего домены Canary Token.
PS C:\> Invoke-DocxCheck -DocxPath gwfrr71nre84bk5gobf3h96ms.docx
Url Found:
http://canarytokens.com/feedback/traffic/gwfrr71nre84bk5gobf3h96ms/index.html
Копирует xlsx в zip, затем анализирует содержимое xml.rels на предмет regex, содержащего домены Canary Token.
PS C:\> Invoke-XlsxCheck -XlsxPath .\gwfrr71nre84bk5gobf3h96ms.xlsx
Url Found:
http://canarytokens.com/images/tags/articles/gwfrr71nre84bk5gobf3h96ms/contact.php
Выполняет PDFStreamDumper для указанного .pdf, затем анализирует .unk stream-файлы на предмет ключевого слова Canary.
PS C:\> Invoke-PDFCheck -StreamDumperPath C:\PDFStreamDumper\PDFStreamDumper.exe -PDFPath .\gwfrr71nre84bk5gobf3h96ms.pdf
Url Found:
http://gwfrr71nre84bk5gobf3h96ms.canarytokens.net/RNGPLTCJSTEKJHOMLLYCQINNXOVOWCUVME
По умолчанию проверяет "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit" на наличие процесса, использующего мониторинг тихого завершения, затем выполняет regex по свойству 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\")"
Сканирует ключи доступа AWS, которые могут принадлежать учётной записи AWS из бесплатного сервиса Canary tokens, на основе блога Bobby Lin.
PS C:\> Invoke-AWSCheck -AWSPath .\AWS.config
Possible Canary Config Found:
AWS.config:2:aws_access_key_id = AKIAYVP4CIPPJUYTRES
Сканирует WireGuard-конфиги на предмет известных IP-адресов Canary Token.
PS C:\> Invoke-WireguardCheck -WireGuardPath .\WireguardConfig
Possible Canary Config Found:
Endpoint = 52.18.63.80
Сканирует Kube-конфиги на предмет известных IP-адресов Canary Token.
PS C:\> Invoke-KubeCheck -KubeConfigPath .\KubeConfig
Possible Canary Config Found:
server: https://52.18.63.80:6443
Сканирует дампы MySQL на наличие SET @b=, затем выполняет regex для определения, содержит ли MASTER HOST известные IP-адреса Canary Token.
PS C:\> Invoke-MySqlDumpCheck -MySQLDumpPath .\gwfrr71nre84bk5gobf3h96ms_mysql_dump.sql
Url Found:
MASTER_HOST='gwfrr71nre84bk5gobf3h96ms.canarytokens.com'
Блокирует известные Canary IP-адреса
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