
Canary Hunter pretende ser um script PowerShell rápido para verificar Canários Comuns em vários formatos gerados gratuitamente em canarytokens.org
Ao executar vários engajamentos de red team nos últimos anos, houve diversas vezes em que me deparei com Canary Tokens que poderiam alertar o SOC sobre as ações tomadas. Por isso, gastei algum tempo explorando o assunto para descobrir se havia maneiras de detectar esses canários dentro de arquivos presentes no ambiente. O Canary Hunter foi criado para verificar rapidamente canários comuns em vários formatos gerados gratuitamente em canarytokens.org.
Canary tokens são uma forma gratuita, rápida e indolor de ajudar defensores a descobrir que foram comprometidos (fazendo com que os atacantes se anunciem.) Para obter mais informações sobre o que são Canary tokens e como gerá-los gratuitamente, confira: https://blog.thinkst.com/p/canarytokensorg-quick-free-detection.html
Atualmente, o script pode detectar canários nos seguintes formatos:
PS C:\> Import-Module .\CanaryHunter.psd1
Copia o docx para zip e analisa o conteúdo xml para Regex contendo domínios de Canary Token.
PS C:\> Invoke-DocxCheck -DocxPath gwfrr71nre84bk5gobf3h96ms.docx
Url Found:
http://canarytokens.com/feedback/traffic/gwfrr71nre84bk5gobf3h96ms/index.html
Copia o xlsx para zip e analisa o conteúdo xml.rels para Regex contendo domínios de Canary Token.
PS C:\> Invoke-XlsxCheck -XlsxPath .\gwfrr71nre84bk5gobf3h96ms.xlsx
Url Found:
http://canarytokens.com/images/tags/articles/gwfrr71nre84bk5gobf3h96ms/contact.php
Executa o PDFStreamDumper contra o .pdf especificado e depois analisa os arquivos de stream .unk pela palavra-chave Canary.
PS C:\> Invoke-PDFCheck -StreamDumperPath C:\PDFStreamDumper\PDFStreamDumper.exe -PDFPath .\gwfrr71nre84bk5gobf3h96ms.pdf
Url Found:
http://gwfrr71nre84bk5gobf3h96ms.canarytokens.net/RNGPLTCJSTEKJHOMLLYCQINNXOVOWCUVME
Por padrão, verifica "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit" em busca de um processo que usa o monitoramento de saída silenciosa e então executa regex contra a propriedade 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\")"
Verifica as chaves de acesso da AWS que possam pertencer à conta AWS do serviço gratuito de Canary tokens, com base no blog de Bobby Lin.
PS C:\> Invoke-AWSCheck -AWSPath .\AWS.config
Possible Canary Config Found:
AWS.config:2:aws_access_key_id = AKIAYVP4CIPPJUYTRES
Verifica os configs do WireGuard em busca de endereços IP de Canary Token conhecidos.
PS C:\> Invoke-WireguardCheck -WireGuardPath .\WireguardConfig
Possible Canary Config Found:
Endpoint = 52.18.63.80
Verifica os configs do Kube em busca de endereços IP de Canary Token conhecidos.
PS C:\> Invoke-KubeCheck -KubeConfigPath .\KubeConfig
Possible Canary Config Found:
server: https://52.18.63.80:6443
Verifica dumps do MySQL para SET @b= e então executa regex para determinar se MASTER HOST contém endereços IP de Canary Token conhecidos.
PS C:\> Invoke-MySqlDumpCheck -MySQLDumpPath .\gwfrr71nre84bk5gobf3h96ms_mysql_dump.sql
Url Found:
MASTER_HOST='gwfrr71nre84bk5gobf3h96ms.canarytokens.com'
Bloqueia IPs de Canary conhecidos
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