
Canary Hunter si propone di essere un rapido script PowerShell per verificare la presenza di Canary comuni in vari formati generati gratuitamente su canarytokens.org
Mentre negli ultimi anni ho eseguito numerosi engagement di red team, mi sono imbattuto più volte nei Canary Tokens, che avrebbero potuto potenzialmente allertare il SOC sulle azioni intraprese. Per questo motivo ho dedicato del tempo ad addentrarmi nella tana del coniglio per scoprire se esistessero modi per rilevare questi canary all'interno dei file presenti nell'ambiente. Canary Hunter è stato creato per verificare rapidamente la presenza di Canary comuni in vari formati generati gratuitamente su canarytokens.org
I Canary tokens sono un modo gratuito, rapido e indolore per aiutare i difensori a scoprire di essere stati violati (facendo in modo che siano gli attaccanti a rivelarsi). Per maggiori informazioni su cosa sono i Canary tokens e su come generarli gratuitamente, puoi consultare https://blog.thinkst.com/p/canarytokensorg-quick-free-detection.html
Attualmente lo script è in grado di rilevare canary nei seguenti formati:
PS C:\> Import-Module .\CanaryHunter.psd1
Copia il file docx in zip, quindi analizza il contenuto xml tramite Regex alla ricerca di domini di Canary Token.
PS C:\> Invoke-DocxCheck -DocxPath gwfrr71nre84bk5gobf3h96ms.docx
Url Found:
http://canarytokens.com/feedback/traffic/gwfrr71nre84bk5gobf3h96ms/index.html
Copia il file xlsx in zip, quindi analizza il contenuto di xml.rels tramite Regex alla ricerca di domini di Canary Token.
PS C:\> Invoke-XlsxCheck -XlsxPath .\gwfrr71nre84bk5gobf3h96ms.xlsx
Url Found:
http://canarytokens.com/images/tags/articles/gwfrr71nre84bk5gobf3h96ms/contact.php
Esegue PDFStreamDumper sul file .pdf specificato, quindi analizza i file stream .unk alla ricerca della parola chiave Canary.
PS C:\> Invoke-PDFCheck -StreamDumperPath C:\PDFStreamDumper\PDFStreamDumper.exe -PDFPath .\gwfrr71nre84bk5gobf3h96ms.pdf
Url Found:
http://gwfrr71nre84bk5gobf3h96ms.canarytokens.net/RNGPLTCJSTEKJHOMLLYCQINNXOVOWCUVME
Per impostazione predefinita, controlla "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit" per individuare un processo che utilizza il monitoraggio della chiusura silenziosa (silent exit), quindi esegue una regex sulla proprietà 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\")"
Analizza le chiavi di accesso AWS che potrebbero appartenere all'account AWS del servizio gratuito di Canary token, come descritto nel blog di Bobby Lin.
PS C:\> Invoke-AWSCheck -AWSPath .\AWS.config
Possible Canary Config Found:
AWS.config:2:aws_access_key_id = AKIAYVP4CIPPJUYTRES
Analizza le config WireGuard alla ricerca di indirizzi IP noti di Canary Token.
PS C:\> Invoke-WireguardCheck -WireGuardPath .\WireguardConfig
Possible Canary Config Found:
Endpoint = 52.18.63.80
Analizza le config Kube alla ricerca di indirizzi IP noti di Canary Token.
PS C:\> Invoke-KubeCheck -KubeConfigPath .\KubeConfig
Possible Canary Config Found:
server: https://52.18.63.80:6443
Analizza i dump MYSQL per SET @b=, quindi esegue una regex per determinare se MASTER HOST contiene indirizzi IP noti di Canary Token.
PS C:\> Invoke-MySqlDumpCheck -MySQLDumpPath .\gwfrr71nre84bk5gobf3h96ms_mysql_dump.sql
Url Found:
MASTER_HOST='gwfrr71nre84bk5gobf3h96ms.canarytokens.com'
Blocca gli IP Canary noti
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