
يهدف Canary Hunter إلى أن يكون سكربت PowerShell سريعًا للتحقق من Canaries الشائعة بتنسيقات مختلفة يتم إنشاؤها مجانًا على canarytokens.org
خلال تنفيذ عدة مهام للفريق الأحمر (Red Team) على مدى السنوات القليلة الماضية، واجهت في أكثر من مناسبة Canary Tokens قد تنبّه مركز العمليات الأمنية (SOC) إلى الإجراءات المتخذة. لذلك أمضيت بعض الوقت في الغوص في هذا الموضوع لاكتشاف ما إذا كانت هناك طرق لكشف هذه الـ Canary داخل الملفات الموجودة في البيئة. تم تطوير Canary Hunter للتحقق بسرعة من رموز Canary الشائعة بالتنسيقات المختلفة التي يتم إنشاؤها مجانًا على canarytokens.org
تُعد Canary Tokens طريقة مجانية وسريعة وسهلة لمساعدة المدافعين على اكتشاف تعرضهم للاختراق (من خلال جعل المهاجمين يعلنون عن وجودهم بأنفسهم). لمزيد من المعلومات حول ماهية Canary Tokens وكيفية إنشائها مجانًا، يمكنك الاطلاع على: https://blog.thinkst.com/p/canarytokensorg-quick-free-detection.html
حاليًا يمكن للسكربت اكتشاف رموز Canary بالتنسيقات التالية:
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 للبحث عن الكلمة المفتاحية 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" بحثًا عن أي عملية تستخدم مراقبة الخروج الصامت (Silent Process Exit)، ثم يشغّل 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 Access Keys) التي قد تعود إلى حساب AWS من خدمة Canary token المجانية، استنادًا إلى مدونة 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