CyberChef — это самопровозглашенный «Кибер-швейцарский армейский нож», созданный GCHQ. Это фантастический инструмент для преобразования, извлечения и манипулирования данными в вашем веб-браузере.
Полная благодарность @GCHQ за создание этого инструмента. См.: https://gchq.github.io/CyberChef/.
Освоение регулярных выражений является ключом к максимально эффективному манипулированию данными в CyberChef (или любой другой работе DFIR). Ниже приведены некоторые регулярные выражения, к которым я постоянно возвращаюсь.
Извлеките Base64: [a-zA-Z0-9+/=]{30,}
Извлечь шестнадцатеричный код: [a-fA-F0-9]{10,}
Извлечь коды символов: [d]{2,3}(,|')
(?<=foo)(.*)
^.*(?=bar)
(?<=')(.*?)(?=')
CyberChef предоставляет операцию HTTP-запрос (см. рецепт 22), которая разрешает HTTP-запросы к внешним ресурсам. Из-за политики одинакового происхождения (SOP) или отсутствия конфигурации совместного использования ресурсов между источниками многие из них не работают. SOP — это мера безопасности в современных браузерах, которая не позволяет вам читать межсайтовые ответы с серверов, которые явно не разрешают это через CORS. Ознакомьтесь с выступлением @GlassSec о CyberChef, в котором содержатся советы по загрузке Chrome без веб-безопасности, чтобы включить HTTP-запросы к API-интерфейсам с ограниченным доступом (например, Virus Total).
Несколько примеров рецептов CyberChef:
Рецепт 1: извлеките base64, раздуйте и украсьте
Рецепт 2: вызвать обфускацию
Рецепт 3: Из CharCode
Рецепт 4: Расшифровка пароля предпочтений групповой политики
Рецепт 5: Использование циклов и меток
Рецепт 6: Временные метки Google ei
Рецепт 7: Многоэтапный COM-скриптлет для сборки x86
Рецепт 8. Извлеките шестнадцатеричный код и преобразуйте его в шестнадцатеричный дамп для встроенного PE-файла.
Рецепт 9: Обратные строки, замена символов из base64
Рецепт 10: Извлеките объект из кэша прокси-сервера Squid
Рецепт 11: Извлеките координаты GPS из URL-адресов Google Maps
Рецепт 12: Обработка больших чисел
Рецепт 13. Анализ DNS-записей PTR с помощью регистров
Рецепт 14: Декодирование исполняемых файлов POSHC2
Рецепт 15: Анализ временных меток $MFT $SI
Рецепт 16. Декодирование веб-оболочек PHP gzinflate и base64
Рецепт 17. Извлечение шеллкода из обратного TCP-скрипта Powershell Meterpreter
Рецепт 18: Анализатор корзины с подразделами и слияниями
Рецепт 19. Идентификация запутанного Base64 с помощью подсветки регулярными выражениями
Рецепт 20. Использование правил Yara с деобфусцированными вредоносными скриптами
Рецепт 21. Встроенная деобфускация шестнадцатеричного сценария VBE, прикрепленного к вредоносному файлу LNK.
Рецепт 22. Поиск JA3 API с помощью HTTP-запроса и регистров
Рецепт 23. Победа над DOSfuscation, встроенной во вредоносный файл DOC, с помощью групп захвата регулярных выражений
Рецепт 24: Выбор случайной буквы из шестибайтовой строки
Рецепт 25: Создание QR-кода Wi-Fi
Рецепт 26. Извлечение и декодирование многоэтапной веб-оболочки PHP
Рецепт 27. Декодирование PHP-скрипта автоматического посетителя
Рецепт 28: Деобфускация Cobalt Strike Beacon с помощью условных переходов для получения шеллкода
Рецепт 29: Манипулирование временными метками файла журнала с помощью подразделов и регистров
Рецепт 30: обфусцированный загрузчик PowerShell с помощью CharCode для маяка Cobalt Strike
Рецепт 31. Деобфускация закодированных строк в двоичном формате .NET
Рецепт 32. Извлеките вредоносную DLL Gootkit из запутанных данных реестра
Рецепт 33. Определите встроенные URL-адреса в скрипте Emotet PowerShell
Рецепт 34. Анализ файлов OOXML на наличие URL-адресов
Рецепт 35. Расшифровка образца программы-вымогателя REvil PowerShell
Рецепт 36: Создайте генератор паролей CyberChef
Рецепт 37. Из заархивированного электронного письма в песочнице на вредоносный URL-адрес
Рецепт 38. Самолеты, черепа и конверты — Live and Let PowerShell
Рецепт 39. Расшифруйте зашифрованные файлы конфигурации GoldMax (он же Sunshutte)
Рецепт 40: Безумие по азбуке Морзе
Рецепт 41: смешанная шестнадцатеричная и восьмеричная кодировка PHP
Рецепт 42: PHP Webshell с многоуровневой обфускацией
Рецепт 43: Деобфускация скиммера Magento
Рецепт 44: Расшифровка программы-вымогателя JobCrypter
Рецепт 45: Преобразование временной метки журнала прокси-сервера Sqiud
Рецепт 46: Адаптация регулярного выражения к ситуации
Рецепт 47: Скрипт Trickbot на Visual Basic
Рецепт 48: vjw0rm Эмодзи-безумие
Рецепт 49: Дизассемблирование тестового файла EICAR
Рецепт 50. Анализ вывода языка определения дескриптора безопасности
Рецепт 51: Декодер Base-45
Рецепт 52: Случайный список предметов
Рецепт 53: Вывод Олевбы в Powershell
Рецепт 54: Хэши событий Windows с идентификатором 1029
Рецепт 55: Дебофускация BazarLoader aka TA551maldoc
Рецепт 56. Вычисление и поиск хэш-значений JA3 или JA3S из PCAP
Рецепт 57: Сделайте мем с помощью CyberChef
Рецепт 58: Извлеките URL-адрес второго этапа IcedID из Maldoc
Рецепт 59: Анализ конфигурации маяка Cobalt Strike
Рецепт 60. Декодируйте URL-адреса, защищенные безопасными ссылками Microsoft
Рецепт 61. Извлеките URL-адреса второго этапа из Maldocs Excel Qakbot
Рецепт 62: Emotet Maldoc в PowerShell
Рецепт 63: Извлеките URL-адреса из запутанного VBS Dridex
Рецепт 64. Преобразование строк в запросы VirusTotal Grep
Рецепт 65. Деобфускация полезной нагрузки обратной оболочки MSF Venom PowerShell
Рецепт 66: Пример вложенного подраздела
Рецепт 67. Преобразование кода продукта MSI в ProductID установщика реестра
Рецепт 68: Преобразование знаковых байтовых массивов Java
Рецепт 69. Извлечение полезных данных DLL из сценария Powershell Bumblebee
Рецепт 70. Извлечение конечных точек из конфигурации сетевой безопасности Android
Очень распространенный сценарий: извлеките Base64, раздуйте, украсьте код. В зависимости от следующего этапа вам может потребоваться дальнейшая обработка или динамический анализ.
Имя файла: ahack.bat
Заархивированный файл: cc9c6c38840af8573b8175f34e5c54078c1f3fb7c686a6dc49264a0812d56b54_183SnuOIVa.bin.gz
Пример: SHA256 cc9c6c38840af8573b8175f34e5c54078c1f3fb7c686a6dc49264a0812d56b54
https://www.hybrid-anaанализ.com/sample/cc9c6c38840af8573b8175f34e5c54078c1f3fb7c686a6dc49264a0812d56b54?environmentId=120
[{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]},{"op":"Generic Code Beautify","args":[]}]
CyberChef не сможет обрабатывать все типы Invoke-Obfuscation, но вот один из них можно декодировать.
Имя файла: Благодарность NUT-95-52619.eml
Заархивированный файл: 1240695523bbfe3ed450b64b80ed018bd890bfa81259118ca2ac534c2895c835.bin.gz
Пример: SHA256 1240695523bbfe3ed450b64b80ed018bd890bfa81259118ca2ac534c2895c835
https://www.hybrid-anaанализ.com/sample/1240695523bbfe3ed450b64b80ed018bd890bfa81259118ca2ac534c2895c835?environmentId=120
[{"op":"Find / Replace","args":[{"option":"Regex","string":"\^|\\|-|_|\/|\s"},"",true,false,true,false]},{"op":"Reverse","args":["Character"]},{"op":"Generic Code Beautify","args":[]},{"op":"Find / Replace","args":[{"option":"Simple string","string":"http:"},"http://",true,false,true,false]},{"op":"Extract URLs","args":[false]},{"op":"Defang URL","args":[true,true,true,"Valid domains and full URLs"]}]
Вредоносные программы и сценарии часто используют Charcode для представления символов, чтобы избежать решений AV и EDR. CyberChef съедает это.
Имя файла: 3431818-f71f60d10b1cbe034dc1be242c6efa5b9812f3c6.zip
Источник: https://gist.github.com/jonmarkgo/3431818.
[{"op":"Regular expression","args":["User defined","([0-9]{2,3}(,\s|))+",true,true,false,false,false,false,"List matches"]},{"op":"From Charcode","args":["Comma",10]},{"op":"Regular expression","args":["User defined","([0-9]{2,3}(,\s|))+",true,true,false,false,false,false,"List matches"]},{"op":"From Charcode","args":["Space",10]}]
При создании нового GPP в SYSVOL создается связанный XML-файл с соответствующими данными конфигурации, и если указан пароль, он шифруется по алгоритму AES-256. Microsoft опубликовала ключ AES, который можно использовать для расшифровки хранилища паролей в: \SYSVOL<DOMAIN>Policies.
Кредит: @cyb3rops
Источник 1: https://twitter.com/cyb3rops/status/1036642978167758848.
Источник 2: https://adsecurity.org/?p=2288.
[{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"To Hex","args":["None"]},{"op":"AES Decrypt","args":[{"option":"Hex","string":"4e9906e8fcb66cc9faf49310620ffee8f496e806cc057990209b09a433b66c1b"},{"option":"Hex","string":""},"CBC","Hex","Raw",{"option":"Hex","string":""}]},{"op":"Decode text","args":["UTF16LE (1200)"]}]
CyberChef может использовать метки для идентификации частей рецепта, а затем возвращаться для многократного выполнения операций. В этом примере извлекается и декодируется 29 раундов кодирования Base64.
Кредит: @pmelson
Исходный файл: hmCPDnHs.txt
Источник 1: https://pastebin.com/hmCPDnHs.
Источник 2: https://twitter.com/pmelson/status/1078776229996752896.
Также см. дополнительные примеры циклов в Base64: https://twitter.com/QW5kcmV3/status/1079095274776289280 (Фото: @QW5kcmV3)
[{"op":"Label","args":["top"]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]},{"op":"Jump","args":["top",28]},{"op":"Generic Code Beautify","args":[]}]
Google использует свою собственную временную метку, я называю ее временем, которую он встраивает в URL-адрес.
Источник: https://bitofhex.com/2018/05/29/cyberchef/
[{"op":"From Base64","args":["A-Za-z0-9-_=",true]},{"op":"To Hex","args":["None"]},{"op":"Take bytes","args":[0,8,false]},{"op":"Swap endianness","args":["Hex",4,true]},{"op":"From Base","args":[16]},{"op":"From UNIX Timestamp","args":["Seconds (s)"]}]
Это одиннадцатиэтапный декодированный COM-скриптлет, использующий инструкции Base64, Gunzip, RegEx и Disassemble x86.
Кредит: @JohnLaTwC
Имя файла: 41a6e22ec6e60af43269f4eb1eb758c91cf746e0772cecd4a69bb5f6faac3578.txt
Источник 1: https://gist.githubusercontent.com/JohnLaTwC/aae3b64006956e8cb7e0127452b5778f/raw/f1b23c84c65 4b1ea60f0e57a860c74385915c9e2/43cbbbf93121f3644ba26a273ebdb54d8827b25eb9c754d3631be395f06d8cff
Источник 2: https://twitter.com/JohnLaTwC/status/1062419803304976385.
[{"op":"Regular expression","args":["","[A-Za-z0-9=/]{40,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Remove null bytes","args":[]},{"op":"Regular expression","args":["User defined","[A-Za-z0-9+/=]{40,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Gunzip","args":[]},{"op":"Regular expression","args":["User defined","[A-Za-z0-9+/=]{40,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"To Hex","args":["Space"]},{"op":"Remove whitespace","args":[true,true,true,true,true,false]},{"op":"Disassemble x86","args":["32","Full x86 architecture",16,0,true,true]}]
Этот файл имеет встроенный PE-файл (SHA 256: 26fac1d4ea12cdceac0d64ab9694d0582104b3c84d7940a4796c1df797d0fdc2, R5Sez8PH.exe, VT: 54/70). Используя CyberChef, мы можем выполнить регулярное выражение в шестнадцатеричном формате и преобразовать его в более удобный для просмотра шестнадцатеричный дамп.
Источник 1: https://pastebin.com/R5Sez8PH (извините, больше не доступен!)
Источник 2: https://twitter.com/ScumBots/status/1081949877272276992.
[{"op":"Regular expression","args":["User defined","[a-fA-F0-9]{200,}",true,true,false,false,false,false,"List matches"]},{"op":"From Hex","args":["Auto"]},{"op":"To Hexdump","args":[16,false,false]}]
Большой двоичный объект base64 с несколькими младшими байтами, которые нужно заменить. Исходное декодирование выполнено @pmelson на Python и преобразовано в CyberChef.
Кредит: @pmelson
Источник 1: https://pastebin.com/RtjrweYF/RtjrweYF.txt
Источник 2: https://twitter.com/pmelson/status/1076893022758100998.
[{"op":"Reverse","args":["Character"]},{"op":"Find / Replace","args":[{"option":"Regex","string":"%"},"A",true,false,true,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"×"},"T",true,false,false,false]},{"op":"Find / Replace","args":[{"option":"Simple string","string":"÷"},"V",true,false,false,false]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"To Hexdump","args":[16,false,false]}]
Не вырезайте вручную объекты кэша Squid. Просто загрузите файл в CyberChef. Этот рецепт будет искать магические байты 0x0D0A0D0A, а затем извлекать все. Затем gzip распаковывает объект для загрузки.
Источник: 00000915 (выход должен быть TrueCrypt_Setup_7.1a.exe с SHA256 e95eca399dfe95500c4de569efc4cc77b75e2b66a864d467df37733ec06a0ff2)
[{"op":"To Hex","args":["None"]},{"op":"Regular expression","args":["User defined","(?<=0D0A0D0A).*$",true,false,false,false,false,false,"List matches"]},{"op":"From Hex","args":["Auto"]},{"op":"Gunzip","args":[]}]
Если вам нужно быстро определить, где была сделана фотография, и вам повезло, что у вас есть встроенная широта и долгота GPS, воспользуйтесь этим рецептом, чтобы быстро создать удобный URL-адрес Google Maps для определения местоположения.
[{"op":"Extract EXIF","args":[]},{"op":"Regular expression","args":["User defined","((?<=GPSLatitude:).*$)|((?<=GPSLongitude: ).*$)",true,true,false,false,false,false,"List matches"]},{"op":"Find / Replace","args":[{"option":"Extended (\n, \t, \x...)","string":"\n"},",",true,false,true,false]},{"op":"Find / Replace","args":[{"option":"Simple string","string":" "},"https://maps.google.com/?q=",true,false,true,false]}]
CyberChef может обрабатывать огромные количества данных. Здесь мы можем использовать простой рецепт для изменения 38-значного X509SerialNumber на его шестнадцатеричный эквивалент серийного номера сертификата X.509. Затем мы можем повторно выразить шестнадцатеричное выражение и вставить двоеточие, чтобы преобразовать его в правильный формат.
Кредит: @QW5kcmV3
Источник: https://twitter.com/QW5kcmV3/status/949437437473968128
[{"op":"To Base","args":[16]},{"op":"Regular expression","args":["User defined","[a-f0-9]{2,2}",true,true,false,false,false,false,"List matches"]},{"op":"Find / Replace","args":[{"option":"Extended (\n, \t, \x...)","string":"\n"},":",true,false,true,false]}]
IP-адреса в записях DNS PTR сохраняются как наименее значимый октет. Например: 167.139.44.10.in-addr.arpa будет относиться к IP-адресу 10.44.139.167. Используя регистры CyberChef, мы можем назначить каждый октет регистру памяти (или переменной, если так проще думать). Затем их можно поменять местами, чтобы изменить порядок IP-адресов. Поиск/замена приводит в порядок остальную часть записи. Это можно изменить, если вы хотите преобразовать «обычные» IP-адреса для поиска в записях DNS PTR.
[{"op":"Fork","args":["\n","\n",false]},{"op":"Register","args":["(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})",true,false,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"$R0.$R1.$R2.$R3"},"$R3.$R2.$R1.$R0",true,false,true,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":".in-addr.arpa"},"",true,false,true,false]}]
PoshC2 — это платформа C2 с поддержкой прокси, которая использует Powershell для помощи тестерам на проникновение в красной команде, пост-эксплуатации и горизонтальном движении. Дроппер основан на PowerShell и состоит из сценария PowerShell, дважды закодированного и сжатого Base64. Извлечение строк можно выполнить с помощью CyberChef, как описано ниже. В зависимости от настроек и настройки исполняемого файла вам может потребоваться изменить рецепт.
Кредит: @a_tweeter_user
Источник: https://twitter.com/a_tweeter_user/status/1100751236687642624
Источник: posh.zip
[{"op":"Strings","args":["All",4,"Alphanumeric + punctuation (A)",false]},{"op":"Remove null bytes","args":[]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+=]{200,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Remove null bytes","args":[]},{"op":"Regular expression","args":["User defined","[a-z0-9/\\+=]{100,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]}]
CyberChef может делать с данными практически все, что угодно. Вот необработанные шестнадцатеричные байты из записи $MFT. Выбирая определенные байты и используя различные функции CyberChef, я могу анализировать любую часть данных по мере необходимости. Этот рецепт извлечет и проанализирует временные метки $SI. Больше не заключайте!
[{"op":"Take bytes","args":[160,64,false]},{"op":"Regular expression","args":["User defined",".{16}",true,true,true,false,false,false,"List matches with capture groups"]},{"op":"Fork","args":["\n","\n",false]},{"op":"Swap endianness","args":["Hex",10,true]},{"op":"Remove whitespace","args":[true,true,true,true,true,false]},{"op":"Windows Filetime to UNIX Timestamp","args":["Nanoseconds (ns)","Hex"]},{"op":"From UNIX Timestamp","args":["Nanoseconds (ns)"]},{"op":"Merge","args":[]},{"op":"Register","args":["(.*)\n(.*)\n(.*)\n(.*)",true,false,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"$R0"},"$SI Creation Time: $R0",true,false,true,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"$R1"},"$SI Modified Time: $R1",true,false,true,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"$R2"},"$SI MFT Change Time: $R2",true,false,true,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"$R3"},"$SI Access Time: $R3",false,false,true,false]}]
Веб-шеллы бывают всех форм и размеров. Для веб-оболочек PHP комбинация gzinflate и base64 может использоваться для запутывания данных оценки. В этом примере имеется 21 раунд сжатия и base64, которые мы можем быстро проанализировать, используя метки и циклы.
Источник: https://github.com/LordWolfer/webshells/blob/b7eefaff64049e3ff61e90c850686135c0ba74c4/from_the_wild1.php
[{"op":"Label","args":["start"]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9=/+]{10,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Raw Inflate","args":[0,0,"Block",false,false]},{"op":"Jump","args":["start",21]}]
Часто встречающийся в боте @scumbots @pmelson's Pastbin, он удаляет несколько слоев закодированного сценария Powershell для отображения шелл-кода. Отсюда вы можете извлечь операторы PUSH, чтобы попытаться определить IP-адрес и порт, но вы получите слишком много ложных срабатываний. Поэтому вам лучше использовать такой инструмент, как scdbg (см.: http://sandsprite.com/blogs/index.php?uid=7&pid=152).
Источник: https://twitter.com/ScumBots/status/1121854255898472453
Источник: https://pastebin.com/9DnD6t6W/9DnD6t6W.txt
[{"op":"Regular expression","args":["User defined","[a-zA-Z0-9=/+]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Remove null bytes","args":[]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9=/+]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Gunzip","args":[]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9=/+]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"To Hex","args":["None"]},{"op":"Disassemble x86","args":["32","Full x86 architecture",16,0,true,true]}]
Подразделы и слияния — это мощные инструменты CyberChef, которые позволяют применять ингредиенты к выбранным данным, а не ко всему входному файлу. Затем этот раздел можно объединить, чтобы продолжить весь ввод. В своей потрясающей работе @GlassSec создал анализатор корзины Windows с использованием CyberChef, указывая на то, что возможности этих функций безграничны.
Источник: https://gist.github.com/glassdfir/f30957b314ec39a8aa319420a29ffc76.
Кредит: https://twitter.com/GlassSec
[{"op":"Conditional Jump","args":["^(\x01|\x02)",true,"Error",10]},{"op":"Find / Replace","args":[{"option":"Regex","string":"^(\x02.{23})(....)"},"$1",false,false,false,false]},{"op":"Subsection","args":["^.{24}(.*)",true,true,false]},{"op":"Decode text","args":["UTF16LE (1200)"]},{"op":"Find / Replace","args":[{"option":"Regex","string":"^(.*)."},"\nDeleted File Path: $1",false,false,false,false]},{"op":"Merge","args":[]},{"op":"Subsection","args":["^.{16}(.{8})",false,true,false]},{"op":"Swap endianness","args":["Raw",8,true]},{"op":"To Hex","args":["None"]},{"op":"Windows Filetime to UNIX Timestamp","args":["Seconds (s)","Hex"]},{"op":"From UNIX Timestamp","args":["Seconds (s)"]},{"op":"Find / Replace","args":[{"option":"Regex","string":"^(.* UTC)"},"\nFile Deletion Time: $1",true,false,true,false]},{"op":"Merge","args":[]},{"op":"Subsection","args":["^.{8}(.{8})",true,true,false]},{"op":"To Hex","args":["None"]},{"op":"Swap endianness","args":["Hex",8,true]},{"op":"From Base","args":[16]},{"op":"Find / Replace","args":[{"option":"Regex","string":"^(.*)"},"\nDeleted File Size: $1 bytes",true,false,true,true]},{"op":"Merge","args":[]},{"op":"Find / Replace","args":[{"option":"Regex","string":"^.{8}"},"******** WINDOWS RECYCLE BIN METADATA ********",true,false,false,false]},{"op":"Jump","args":["Do Nothing",10]},{"op":"Label","args":["Error"]},{"op":"Find / Replace","args":[{"option":"Regex","string":"^.*$"},"This doesn't look like a Recycle Bin file to me ",true,false,true,false]},{"op":"Label","args":["Do Nothing"]}]
Меньше рецепта и больше техники. Использование функции выделения ингредиента регулярного выражения может четко определить, где данные base64 были разбиты с помощью нетрадиционного набора символов base64. Здесь последовательность '@<!' используется для запутывания и нарушения автоматического преобразования кодирования. Если посмотреть дальше по сценарию, последовательность заменяется буквой «A», которую затем можно вставить с помощью команды «Найти/Заменить» перед извлечением. Это продолжается в течение нескольких раундов, пока не будет обнаружен интересующий домен (вместе с исполняемым файлом).
Источник: https://pastebin.com/TmJsB0Nv и https://twitter.com/pmelson/status/1167065236907659264.
[{"op":"Find / Replace","args":[{"option":"Simple string","string":"@<!"},"A",true,false,true,false]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{20,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{50,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Find / Replace","args":[{"option":"Simple string","string":"@<!"},"A",true,false,true,false]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{50,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]}]
Хотя это и не самый удобный способ, CyberChef предоставляет возможность запускать правило Yara для вывода рецепта. Вы можете объединить это, используя функцию нескольких входов для сканирования большего количества файлов.
Источник: https://twitter.com/ScumBots/status/1168528510681538560 и https://pastebin.com/r40SXe7V.
[{"op":"Regular expression","args":["User defined","\(.*\);",true,false,false,false,false,false,"List matches"]},{"op":"Find / Replace","args":[{"option":"Regex","string":",|\(|\);"}," ",true,false,true,false]},{"op":"From Charcode","args":["Space",10]},{"op":"YARA Rules","args":["rule SuspiciousPowerShell {n meta:n description = "Testing Yara on Cyberchef for Powershell"n strings:n $a1 = "[System.Reflection.Assembly]" asciin $a2 = "IEX" ascii nocasen $a3 = "powershell.exe -w hidden -ep bypass -enc" asciin condition:n 2 of themn}",true,true,true,true]}]
Этот рецепт извлекает полезную нагрузку VBE из файла ярлыков Microsoft (LNK), а затем декодирует шестнадцатеричные строки в строке, используя подразделы.
Источник: вредоносный.lnk.bin
[{"op":"Microsoft Script Decoder","args":[]},{"op":"Subsection","args":["(?<=\(\")(.*?)(?=\"\))",true,true,false]},{"op":"Fork","args":["\n","\n",false]},{"op":"From Hex","args":["Auto"]}]
Используя функцию HTTP-запроса и регистры, мы можем дополнять данные данными из API или внешнего ресурса. Здесь мы ищем по трем хешам JA3 любые известные ошибки.
Источник: Входные хэши: 1aa7bf8b97e540ca5edd75f7b8384bfa, 1be3ecebe5aa9d3654e6e703d81f6928 и b386946a5a44d1ddcc843bc75336dfce.
[{"op":"Comment","args":["https://ja3er.com/search/hash"]},{"op":"Fork","args":["\n","\n",false]},{"op":"Register","args":["(.*)",true,false,false]},{"op":"HTTP request","args":["GET","https://ja3er.com/search/$R0","","Cross-Origin Resource Sharing",false]},{"op":"JSON Beautify","args":[" ",false]}]
Этот вредоносный файл DOC загружается прямо из Hybrid-Analysis. Мы распаковываем его, выбираем дофускацию с помощью регулярного выражения, затем выбираем критический раздел, который используется с функцией set. Этот раздел деобфускирован с помощью обратного цикла for с шагом три. Поэтому после выбора мы переворачиваем строку и используем группы захвата регулярных выражений для выбора каждого третьего символа. Это отличная работа от Hack eXPlorer на YouTube. Иди туда и смотри!
Источник: Untitled-11232018-659370.doc.bin.gz
Авторы и права: адаптировано из видео Hack eXPlorer. Скрытие вредоносного кода с помощью Windows CMD — Dosfuscation.
[{"op":"Gunzip","args":[]},{"op":"Regular expression","args":["User defined","c:\\.*"",true,true,false,false,false,false,"List matches"]},{"op":"Find / Replace","args":[{"option":"Simple string","string":"^"},"",true,false,true,false]},{"op":"Regular expression","args":["User defined","(?<=9ojB\=)(.*?)(?=\) )",true,true,false,false,false,false,"List matches"]},{"op":"Reverse","args":["Character"]},{"op":"Regular expression","args":["User defined","(.)..",true,true,false,false,false,false,"List capture groups"]},{"op":"Find / Replace","args":[{"option":"Regex","string":"\n"},"",true,false,true,false]},{"op":"Extract URLs","args":[false]},{"op":"Extract domains","args":[true]}]
Просьба о помощи привела к этому рецепту, который использует регистры, HTTP-запрос и некоторые регулярные выражения для выбора случайного символа из шестибайтовой строки.
Фото: Адаптировано из книги Стива Томпсона.
[{"op":"Register","args":["(.*)",true,false,false]},{"op":"HTTP request","args":["GET","https://www.random.org/integers/?num=1&min=1&max=6&col=1&base=10&format=plain&rnd=new","","Cross-Origin Resource Sharing",false]},{"op":"Register","args":["(.)",true,false,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"(.)"},"$R0",true,false,true,false]},{"op":"Regular expression","args":["User defined","(.){$R1}",true,true,false,false,false,false,"List capture groups"]},{"op":"Head","args":["Line feed",1]}]
Либо для облегчения предоставления вашим друзьям доступа к гостевому Wi-Fi, либо для любой красной команды, которой необходимо добавить заманчивое удобство к несанкционированной точке доступа! Использование функции создания QR-кода позволяет устройствам Android или iOS подключаться к вашему Wi-Fi.
Кредит: https://twitter.com/mattnotmax/status/1242031548884369408
Справочная информация: https://github.com/zxing/zxing/wiki/Barcode-Contents#wi-fi-network-config-android-ios-11
Generate_QR_Code('PNG',5,2,'Medium')
Декодирование веб-шелла, документированного SANS, полностью в Cyberchef с использованием регулярных выражений, ROT13, HTTP-запросов, регистров и многого другого!
Кредит: https://twitter.com/thebluetoob
[{"op":"Regular expression","args":["User defined","(?<=')(.*?)(?=')",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"ROT13","args":[true,true,13]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]},{"op":"ROT13","args":[true,true,13]},{"op":"Extract URLs","args":[false]},{"op":"Register","args":["(.*)",true,false,false]},{"op":"HTTP request","args":["GET","$R0","","Cross-Origin Resource Sharing",false]},{"op":"Strings","args":["Single byte",4,"Alphanumeric + punctuation (A)",false]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+=/]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Regular expression","args":["User defined","(?<=')(.*?)(?=')",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]},{"op":"ROT13","args":[true,true,13]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+=/]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]}]
Декодирование сценария автоматического посетителя, написанного на PHP, в Cyberchef с использованием регулярных выражений, ROT13, нескольких алгоритмов декомпрессии и подразделов ! Ключевой момент, который следует учитывать, заключается в том, что существуют две переменные, использующие разные этапы запутывания. У вас есть несколько вариантов: работать в нескольких окнах CyberChef, чтобы получить конечный результат, или, как показано ниже, использовать подразделы и greg для каждой переменной, чтобы манипулировать каждой из них независимо и получать оба деобфусцированных вывода в одном скрипте. Вы можете еще больше сократить рецепт, используя циклы для перехода через несколько раундов Raw Inflate.
Авторы и права: оригинальный сценарий предоставлен @NtSetDefault, оригинальные рецепты Cyberchef, созданные @thebluetoob и уточненные @mattnotmax в один рецепт.
[{"op":"Regular expression","args":["User defined","(?<=')(.*?)(?=')",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"ROT13","args":[true,true,13]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]},{"op":"ROT13","args":[true,true,13]},{"op":"Subsection","args":["(?<=\$Fadly.*?")(.*?)(?=\")",true,true,false]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"URL Decode","args":[]},{"op":"From HTML Entity","args":[]},{"op":"Merge","args":[]},{"op":"Subsection","args":["(?<=\$Gans.*?")(.*?)(?=\")",true,true,false]},{"op":"Reverse","args":["Character"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Label","args":["jump"]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]},{"op":"Jump","args":["jump",2]},{"op":"Zlib Inflate","args":[0,0,"Adaptive",false,false]},{"op":"Zlib Inflate","args":[0,0,"Adaptive",false,false]}]
Выберите свой яд с помощью этого гениального скрипта от @0xtornado, который определяет, какой тип обфускации имеет ваш скрипт-маяк, с помощью условных переходов CyberChef для анализа шелл-кода. Сначала код ищет простое регулярное выражение «bxor», а затем переходит к соответствующему разделу рецепта. В противном случае он анализирует второй тип. Используя вкладки CyberChef, вы можете загрузить два разных сценария и получить свои данные. Произведите впечатление на своих коллег и дружную красную команду или местную команду APT!
Кредит: https://twitter.com/0xtornado/status/1255866333545316352
[{"op":"Conditional Jump","args":["bxor",false,"Decode_Shellcode",10]},{"op":"Label","args":["Decode_beacon"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Decode text","args":["UTF-16LE (1200)"]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Gunzip","args":[]},{"op":"Label","args":["Decode_Shellcode"]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"XOR","args":[{"option":"Decimal","string":"35"},"Standard",false]}]
Не все думают о CyberChef как об инструменте для анализа файлов журналов. Но это удобно, если вам нужно транспонировать, переформатировать или изменить файл журнала в соответствии с вашими целями. Здесь у нас есть файл журнала Apache с отметкой времени, которая не позволяет провести полезный временной анализ с другими файлами журналов: формат даты не поддается сортировке, он заключен в квадратные скобки и указан в формате UTC +1, а не в стандартном формате UTC. Используя подразделы, регистры и транспонирование даты и времени, мы можем изменить форматирование метки времени и переместить столбец, чтобы иметь возможность объединить его с другими данными. Потрясающий!
Кредит: @gazambelli и @mattnotmax
[{"op":"Fork","args":["\n","\n",false]},{"op":"Subsection","args":["\[.*\+0100\]",true,true,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"\[|\]"},"",true,false,true,false]},{"op":"Translate DateTime Format","args":["Standard date and time","DD/MMM/YYYY:HH:mm:ss ZZ","Etc/GMT-1","YYYY-MM-DDTHH:mm:ss ZZ","UTC"]},{"op":"Merge","args":[]},{"op":"Fork","args":["\n","\n",false]},{"op":"Register","args":["(.*)(\d{4}-.*\+0000)(.*)",true,false,false]},{"op":"Find / Replace","args":[{"option":"Simple string","string":"$R0$R1$R2"},"$R1 $R0 $R2",true,false,true,false]}]
Вариант стандартного загрузчика PowerShell для Cobalt Strike. Здесь первый уровень обфускации представляет собой GZIP-объект, разделенный на два массива CharCode. Конечный результат зависит от вас: дизассемблирование, строки, извлечение IP или анализ UserAgent. Выберите свое собственное приключение.
Источник: @scumbots и https://pastebin.com/raw/mUFM4fcQ.
[{"op":"Regular expression","args":["User defined","\d{1,3}",true,true,false,false,false,false,"List matches"]},{"op":"From Charcode","args":["Line feed",10]},{"op":"Gunzip","args":[]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"XOR","args":[{"option":"Decimal","string":"35"},"Standard",false]},{"op":"Strings","args":["Single byte",5,"All printable chars (A)",false]}]
Вредоносный .dll SolarWinds содержал запутанные строки с использованием сжатия и base64. Вместо того, чтобы терять контекст в вашем анализе, мы можем выполнить быструю деобфускацию, выбрав строки с помощью подраздела и затем преобразовав их. В результате получается функция, которая становится читаемой в контексте и позволяет избежать потенциально подверженного ошибкам вырезания и вставки.
Кредит: @cybercdh и @Shadow0pz
Источник: https://twitter.com/cybercdh/status/1338885244246765569 и https://twitter.com/Shadow0pz/status/1338911469480661000
[{"op":"Subsection","args":["(?<=\(\")(.*)(?=\"\))",true,true,false]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]}]
Gootkit хранит DLL внутри реестра в закодированном виде PowerShell. CyberChef делает фарш из так называемого «безфайлового» вредоносного ПО. Удобный рецепт, предоставленный @StefanKelm, возвращает «файл» в «безфайловый» (да, я сам думал об этом, мы готовы к рецепту 32, мои друзья...).
Источник: https://github.com/StefanKelm/cyberchef-recipes.
[{"op":"Decode text","args":["UTF-16LE (1200)"]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Decode text","args":["UTF-16LE (1200)"]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Raw Inflate","args":[0,0,"Adaptive",false,false]}]
Используя мощные возможности регистров, удобный рецепт от @Cryptolaemus1 извлекает запутанные URL-адреса из PowerShell из вредоносного документа Emotet. Здесь группы захвата используются для захвата строки поиска/замены, которая деобфусцирует URL-адреса. Потрясающая штука.
Кредит: @Cryptolaemus и @NtRaiseException()
Источник: https://twitter.com/Cryptolaemus1/status/1319357369902649344
[{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Decode text","args":["UTF-16LE (1200)"]},{"op":"Find / Replace","args":[{"option":"Regex","string":"'\)?\+\(?'"},"",true,false,true,false]},{"op":"Register","args":["\(+'(=[\w\d]*)'\)+,'/'\)",true,false,false]},{"op":"Find / Replace","args":[{"option":"Simple string","string":"$R0"},"/",true,false,true,false]},{"op":"Register","args":["\/(.)http",true,false,false]},{"op":"Find / Replace","args":[{"option":"Simple string","string":"$R1"},"\n",true,false,true,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"'"},"\n",true,false,true,false]},{"op":"Extract URLs","args":[false]}]
Дидье Стивенс демонстрирует удивительную простоту и полезность CyberChef, извлекая URL-адреса из документов OOXML (например, файлов .docx). Разархивировав файл и отфильтровав «заведомо хорошие», можно проверить оставшиеся URL-адреса. Не забудьте выполнить очистку, чтобы избежать ненужных щелчков или ошибок операционной безопасности. В сочетании с функциональностью вкладок CyberChef вы сможете анализировать пакет файлов.
Кредит: @DidierStevens
Источник: https://isc.sans.edu/diary/27020
[{"op":"Unzip","args":["",false]},{"op":"Extract URLs","args":[false]},{"op":"Filter","args":["Line feed","http://schemas\.openxmlformats\.org/",true]},{"op":"Filter","args":["Line feed","http://schemas\.microsoft\.com/",true]},{"op":"Filter","args":["Line feed","http://purl\.org/",true]},{"op":"Filter","args":["Line feed","http://www\.w3\.org/",true]},{"op":"Defang URL","args":[true,true,true,"Valid domains and full URLs"]}]
Скрипт-вымогатель PowerShell с шифрованием AES не подходит для CyberChef. Здесь можно преобразовать Base64 в шестнадцатеричный формат, извлечь IV и ключ в регистры и использовать их для расшифровки большого двоичного объекта. После расшифровки мы можем изучить данные и идентифицировать PE-файл размером 1925 байт в расшифрованном блоке. Извлекая это, мы можем затем использовать другие инструменты для определения его поведения, включая детонацию или статический анализ.
Источник: @mattnotmax
Дополнительная информация: Powershell удаляет программу-вымогатель REvil
[{"op":"Subsection","args":["(?<=\")([a-zA-Z0-9+/=]{20,})(?=\")",true,true,false]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"To Hex","args":["None",0]},{"op":"Merge","args":[]},{"op":"Register","args":["(?<=\")([a-fA-F0-9]{32})(?=\")",true,false,false]},{"op":"Register","args":["(?<=\")([a-fA-F0-9]{64})(?=\")",true,false,false]},{"op":"Regular expression","args":["User defined","[a-f0-9]{100,}",true,true,false,false,false,false,"List matches"]},{"op":"AES Decrypt","args":[{"option":"Hex","string":"$R1"},{"option":"Hex","string":"$R0"},"CBC","Hex","Raw",{"option":"Hex","string":""},""]},{"op":"Regular expression","args":["User defined","[a-f0-9]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Hex","args":["Auto"]},{"op":"Drop bytes","args":[0,1925,false]},{"op":"SHA2","args":["256",64,160]}]
Хорошо, я здесь немного жульничаю, поскольку основная часть работы выполняется API. Но это хороший пример, напоминающий вам, что операция HTTP-запросы может быть очень мощным способом расширения CyberChef. Здесь я создал небольшую «форму ввода» на панели ввода CyberChef и использую регулярные выражения для записи ключевых параметров для вызова API в регистры. Немного текстового массажа, и вы сможете получить быстрый и простой генератор по мере необходимости. Сохранено как рецепт на случай, если вам понадобится быстро передать новый пароль новому пользователю.
Источник: @mattnotmax
[{"op":"Register","args":["(?<=number:\s)(.*)",true,false,false]},{"op":"Register","args":["(?<=words:\s)(.*)",true,false,false]},{"op":"Register","args":["(?<=length:\s)(.*)",true,false,false]},{"op":"HTTP request","args":["GET","https://makemeapassword.ligos.net/api/v1/passphrase/plain?pc=$R0&wc=$R1&sp=y&maxCh=$R2","","Cross-Origin Resource Sharing",false]},{"op":"Find / Replace","args":[{"option":"Regex","string":" "},"-",true,false,true,false]}]
Большинство песочниц предоставляют заархивированный файл с общим паролем «зараженный». Зачем рисковать, извлекая содержимое на рабочий стол, если вы можете извлечь содержимое в CyberChef? Здесь у нас есть файл электронной почты .eml
, который включает вложение файла OLE2. Strings
идентифицирует Base64, который затем извлекается и декодируется для получения второго этапа.
Источник: Any.run
[{"op":"Unzip","args":["infected",false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"\n"},"",true,false,true,false]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{400,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Strings","args":["16-bit littleendian",400,"Null-terminated strings (U)",false]},{"op":"Decode text","args":["UTF-16LE (1200)"]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{2000,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Decode text","args":["UTF-16LE (1200)"]},{"op":"Extract URLs","args":[false]},{"op":"Defang URL","args":[true,true,true,"Valid domains and full URLs"]}]
Замена есть замена. Это может быть буква за буквой, буква за цифрой или буква за... череп? Здесь запутывание может поначалу выглядеть более запутанным, но на самом деле оно ничем не отличается от других типов. Найти/Заменить, Подраздел, Из Base64... все это стандартный день для CyberChef. Я перевернул первый раздел, чтобы включить извлечение URL-адреса, а затем продолжил деобфускацию.
Источник: Any.run
Кредит: https://twitter.com/neonprimetime/status/1365351048525791232
[{"op":"Find / Replace","args":[{"option":"Regex","string":"☠"},"B",true,false,true,false]},{"op":"Subsection","args":["[a-zA-Z0-9+/=]{300,}",true,true,false]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Decode text","args":["UTF-16LE (1200)"]},{"op":"Reverse","args":["Character"]},{"op":"Merge","args":[]},{"op":"Find / Replace","args":[{"option":"Simple string","string":"_✉✈_"},"A",true,false,true,false]},{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{300,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]}]
GoldMax, он же Sunshuttle, при выполнении удаляет зашифрованный файл конфигурации. В ходе анализа RE, проведенного Microsoft и Fireeye, алгоритм и ключи были идентифицированы и опубликованы, что упростило расшифровку с помощью CyberChef.
Источник 1: https://www.microsoft.com/security/blog/2021/03/04/goldmax-goldfinder-sibot-analyzing-nobelium-malware/
Источник 2: https://www.fireeye.com/blog/threat-research/2021/03/sunshuttle- Second-stage-backdoor-targeting-us-based-entity.html.
[{"op":"From Base64","args":["A-Za-z0-9-_",true]},{"op":"AES Decrypt","args":[{"option":"UTF8","string":"hz8l2fnpvp71ujfy8rht6b0smouvp9k8"},{"option":"Hex","string":"00000000000000000000000000000000"},"CFB","Raw","Raw",{"option":"Hex","string":""}]},{"op":"Subsection","args":["[a-zA-Z0-9+/=]{50,}",true,true,false]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Merge","args":[]},{"op":"Drop bytes","args":[0,16,false]},{"op":"Take bytes","args":[0,120,false]},{"op":"Register","args":["(^.*?)\|(.*?)\|(.*?)\|(.*)\|(.*)",true,false,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":".*"},"MD5 of Execution Time:\t\t\t$R0\nLower/Upper Limit for Sleep Time:\t$R1\nUtilize “blend-in” traffic requests:\t$R2\nEnd execution timestamp:\t\t$R2\nUser-agent for HTTPS requests:\t\t$R4",false,false,false,false]}]
Да, в CyberChef есть операция с азбукой Морзе. Да, возможно, однажды вам придется им воспользоваться. К сожалению, это не было вредоносное ПО, но CyberChef все равно справляется со своей задачей. Спасибо @pmelson и @cyber__sloth за эту запись.
Источник: https://pastebin.com/raw/PvLuparz
Рецепт: https://twitter.com/cyber__sloth/status/1367904890157211654
[{"op":"From Binary","args":["Space",8]},{"op":"From Morse Code","args":["Space","Forward slash"]},{"op":"Reverse","args":["Character"]},{"op":"ROT13","args":[true,true,false,13]}]
Чего мы хотим? Смешанная кодировка с шестнадцатеричной и восьмеричной кодировкой в одном наборе! Когда мы этого хотим? Сейчас!
Источник: https://twitter.com/JCyberSec_/status/1368963598475739137
[{"op":"Fork","args":["\n","\n",false]},{"op":"Subsection","args":["\\x[a-fA-F0-9]{2}",true,true,false]},{"op":"From Hex","args":["\x"]},{"op":"Merge","args":[]},{"op":"Subsection","args":["\\\d{3}",true,true,false]},{"op":"Find / Replace","args":[{"option":"Regex","string":"\\"},"",true,false,true,false]},{"op":"From Octal","args":["Space"]}]
Эта многослойная веб-оболочка является хорошим примером для подразделов и переходов. Вы можете разбить его на части или завершить (как показано ниже) в одном рецепте CyberChef.
Источник: https://twitter.com/mattnotmax/status/1377829935780274176
[{"op":"Regular expression","args":["User defined","[a-zA-Z0-9+/=]{30,}",true,true,false,false,false,false,"List matches"]},{"op":"From Base64","args":["A-Za-z0-9+/=",true]},{"op":"Subsection","args":["(?<=\\x)([a-fA-F0-9]{2})",true,true,false]},{"op":"From Hex","args":["\x"]},{"op":"Merge","args":[]},{"op":"Find / Replace","args":[{"option":"Regex","string":"\\x"},"",true,false,true,false]},{"op":"Subsection","args":["[a-zA-Z0-9+/=]{30,}=",true,true,false]},{"op":"From