
Canary Hunter pretende ser un script rápido de PowerShell para comprobar canarios comunes en varios formatos generados gratuitamente en canarytokens.org
Durante la ejecución de múltiples compromisos de red team en los últimos años, me he encontrado en varias ocasiones con Canary Tokens que podrían alertar al SOC de las acciones realizadas. Por ello, dediqué tiempo a investigar a fondo si existían formas de detectar estos canarios en los archivos presentes dentro del entorno. Canary Hunter se creó para comprobar rápidamente la presencia de Canaries comunes en varios formatos generados gratuitamente en canarytokens.org
Los canary tokens son una forma gratuita, rápida e indolora de ayudar a los defensores a descubrir que han sido comprometidos (al hacer que los atacantes se delaten). Para obtener más información sobre qué son los canary tokens y cómo generarlos gratis, puedes consultar https://blog.thinkst.com/p/canarytokensorg-quick-free-detection.html
Actualmente el script puede detectar canarios en los siguientes formatos:
PS C:\> Import-Module .\CanaryHunter.psd1
Copia el docx a zip y luego analiza el contenido xml con expresiones regulares que contienen dominios de Canary Tokens.
PS C:\> Invoke-DocxCheck -DocxPath gwfrr71nre84bk5gobf3h96ms.docx
Url Found:
http://canarytokens.com/feedback/traffic/gwfrr71nre84bk5gobf3h96ms/index.html
Copia el xlsx a zip y luego analiza el contenido de xml.rels con expresiones regulares que contienen dominios de Canary Tokens.
PS C:\> Invoke-XlsxCheck -XlsxPath .\gwfrr71nre84bk5gobf3h96ms.xlsx
Url Found:
http://canarytokens.com/images/tags/articles/gwfrr71nre84bk5gobf3h96ms/contact.php
Ejecuta PDFStreamDumper sobre el .pdf especificado y luego analiza los archivos de flujo .unk en busca de la palabra clave Canary.
PS C:\> Invoke-PDFCheck -StreamDumperPath C:\PDFStreamDumper\PDFStreamDumper.exe -PDFPath .\gwfrr71nre84bk5gobf3h96ms.pdf
Url Found:
http://gwfrr71nre84bk5gobf3h96ms.canarytokens.net/RNGPLTCJSTEKJHOMLLYCQINNXOVOWCUVME
Por defecto comprueba "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit" en busca de un proceso que utilice la supervisión de salida silenciosa y luego ejecuta una expresión regular contra la propiedad 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\")"
Analiza las claves de acceso de AWS que pueden pertenecer a la cuenta de AWS del servicio gratuito de Canary tokens, según el blog de Bobby Lin.
PS C:\> Invoke-AWSCheck -AWSPath .\AWS.config
Possible Canary Config Found:
AWS.config:2:aws_access_key_id = AKIAYVP4CIPPJUYTRES
Analiza las configuraciones de WireGuard en busca de direcciones IP conocidas de Canary Tokens.
PS C:\> Invoke-WireguardCheck -WireGuardPath .\WireguardConfig
Possible Canary Config Found:
Endpoint = 52.18.63.80
Analiza las configuraciones de Kube en busca de direcciones IP conocidas de Canary Tokens.
PS C:\> Invoke-KubeCheck -KubeConfigPath .\KubeConfig
Possible Canary Config Found:
server: https://52.18.63.80:6443
Analiza los volcados de MySQL en busca de SET @b= y luego ejecuta una expresión regular para determinar si MASTER HOST contiene direcciones IP conocidas de Canary Tokens.
PS C:\> Invoke-MySqlDumpCheck -MySQLDumpPath .\gwfrr71nre84bk5gobf3h96ms_mysql_dump.sql
Url Found:
MASTER_HOST='gwfrr71nre84bk5gobf3h96ms.canarytokens.com'
Bloquea las IP de canarios conocidas.
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