CyberChef は、GCHQ によって作成された自称「サイバー スイス アーミー ナイフ」です。これは、Web ブラウザーでデータの変換、抽出、操作を行うための素晴らしいツールです。
ツールの作成については @GCHQ に全面的に感謝します。参照: https://gchq.github.io/CyberChef/
正規表現をマスターすることは、CyberChef (またはあらゆる DFIR 作業) でのデータ操作を最大限に活用するための鍵となります。以下は、私が頻繁に利用する正規表現です。
Base64 を抽出: [a-zA-Z0-9+/=]{30,}
16 進数を抽出: [a-fA-F0-9]{10,}
文字コードの抽出: [d]{2,3}(,|')
(?<=foo)(.*)
^.*(?=bar)
(?<=')(.*?)(?=')
CyberChef は、外部リソースへの HTTP リクエストを許可するオペレーション HTTP リクエスト (レシピ 22 を参照) を提供します。 Same Origin Policy (SOP) またはクロスオリジン リソース共有設定の欠如により、多くの機能が機能しません。 SOP は、CORS 経由で明示的に許可していないサーバーからのクロスサイト応答の読み取りを防止する、最新のブラウザーのセキュリティ対策です。 CyberChef に関する @GlassSec のトークをチェックしてください。これには、Web セキュリティなしで Chrome を起動して、制限されている API (Virus Total など) への HTTP リクエストを有効にするためのヒントが含まれています。
CyberChef レシピの例:
レシピ 1: Base64 を抽出し、生でインフレートして美化する
レシピ 2: 難読化を呼び出す
レシピ 3: CharCode から
レシピ 4: グループ ポリシー設定のパスワードの復号化
レシピ 5: ループとラベルの使用
レシピ 6: Google ei タイムスタンプ
レシピ 7: マルチステージ COM スクリプトレットから x86 アセンブリへ
レシピ 8: 16 進数を抽出し、埋め込み PE ファイル用の 16 進ダンプに変換する
レシピ 9: Base64 からの文字列の反転、文字置換
レシピ 10: Squid プロキシ キャッシュからオブジェクトを抽出する
レシピ 11: GPS 座標を Google マップ URL に抽出する
レシピ 12: 大きな数の処理
レシピ 13: レジスタを使用して DNS PTR レコードを解析する
レシピ 14: POSHC2 実行可能ファイルをデコードする
レシピ 15: $MFT $SI タイムスタンプを解析する
レシピ 16: PHP gzinflate と Base64 WebShell をデコードする
レシピ 17: Powershell Meterpreter リバース TCP スクリプトからシェルコードを抽出する
レシピ 18: サブセクションとマージを使用したごみ箱パーサー
レシピ 19: 正規表現の強調表示を使用して難読化された Base64 を識別する
レシピ 20: 難読化された悪意のあるスクリプトで Yara ルールを使用する
レシピ 21: 悪意のある LNK ファイルに添付された 16 進数でエンコードされた VBE スクリプトのインライン難読化解除
レシピ 22: HTTP リクエストとレジスタを使用した JA3 API 検索
レシピ 23: 正規表現キャプチャ グループを使用して、悪意のある DOC ファイルに埋め込まれた DOSfuscation を無効にする
レシピ 24: 6 バイト文字列からランダムな文字を選択する
レシピ 25: Wi-Fi QR コードを作成する
レシピ 26: 多段階 PHP Webshell の抽出とデコード
レシピ 27: Auto Visitor PHP スクリプトをデコードする
レシピ 28: 条件付きジャンプを使用してシェルコードを取得する Cobalt Strike Beacon の難読化を解除する
レシピ 29: サブセクションとレジスタを使用したログ ファイルのタイムスタンプの操作
レシピ 30: Cobalt Strike ビーコン用の CharCode 難読化 PowerShell ローダー
レシピ 31: .NET バイナリ内のエンコードされた文字列の難読化を解除する
レシピ 32: 難読化されたレジストリ データから悪意のある Gootkit DLL を抽出する
レシピ 33: Emotet PowerShell スクリプトに埋め込まれた URL を特定する
レシピ 34: OOXML ファイルの URL を分析する
レシピ 35: REvil PowerShell ランサムウェア サンプルの復号化
レシピ 36: CyberChef パスワード ジェネレーターを作成する
レシピ 37: サンドボックスの zip メールから悪意のある URL へ
レシピ 38: 飛行機、頭蓋骨、封筒 - PowerShell を使用して実行する
レシピ 39: GoldMax 別名 Sunshutte 暗号化設定ファイルを復号化する
レシピ 40: モールス信号の狂気
レシピ 41: PHP の 16 進数と 8 進数の混合エンコーディング
レシピ 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 への Olevba 出力
レシピ 54: Windows イベント ID 1029 ハッシュ
レシピ 55: BazarLoader 別名 TA551 maldoc の難解化を解除する
レシピ 56: PCAP から JA3 または JA3S ハッシュ値を計算して検索する
レシピ 57: CyberChef でミームを作成する
レシピ 58: Maldoc から IcedID の第 2 段階 URL を抽出する
レシピ 59: Cobalt Strike ビーコン構成を解析する
レシピ 60: Microsoft セーフリンクで保護された URL をデコードする
レシピ 61: Qakbot Excel maldocs から第 2 段階の URL を抽出する
レシピ 62: Emotet Maldoc から PowerShell へ
レシピ 63: Dridex 難読化された VBS から URL を抽出する
レシピ 64: 文字列を VirusTotal Grep クエリに変換する
レシピ 65: MSF Venom PowerShell リバース シェル ペイロードの難読化を解除する
レシピ 66: ネストされたサブセクションの例
レシピ 67: MSI ProductCode をレジストリ インストーラー ProductID に変換する
レシピ 68: Java 符号付きバイト配列の変換
レシピ 69: Bumblebee Powershell スクリプトから DLL ペイロードを抽出する
レシピ 70: Android ネットワーク セキュリティ構成からエンドポイントを抽出する
非常に一般的なシナリオ: Base64 を抽出し、コードを拡張し、コードを美しくします。次の段階に応じて、さらに処理や動的分析を行う必要がある場合があります。
ファイル名: ahack.bat
ZIP ファイル: cc9c6c38840af8573b8175f34e5c54078c1f3fb7c686a6dc49264a0812d56b54_183SnuOIVa.bin.gz
サンプル: SHA256 cc9c6c38840af8573b8175f34e5c54078c1f3fb7c686a6dc49264a0812d56b54
https://www.hybrid-analysis.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 はすべての種類の呼び出し難読化を処理できるわけではありませんが、デコードできるものは次のとおりです。
ファイル名: 確認書 NUT-95-52619.eml
ZIP ファイル: 1240695523bbfe3ed450b64b80ed018bd890bfa81259118ca2ac534c2895c835.bin.gz
サンプル: SHA256 1240695523bbfe3ed450b64b80ed018bd890bfa81259118ca2ac534c2895c835
https://www.hybrid-analysis.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"]}]
マルウェアやスクリプトは、AV および EDR ソリューションを回避するために、文字を表すために Charcode を使用することがよくあります。 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 が作成されると、関連する構成データを含む関連付けられた XML ファイルが SYSVOL に作成されます。パスワードが指定されている場合、ファイルは AES-256 ビットで暗号化されます。 Microsoft は、\SYSVOL<DOMAIN>Policies に保存されているパスワードを復号化するために使用できる AES キーを公開しました。
クレジット: @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 はラベルを使用してレシピの一部を識別し、ループバックして操作を複数回実行できます。この例では、抽出およびデコードされる Base64 エンコーディングのラウンドが 29 ラウンドあります。
クレジット: @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 は独自のタイムスタンプ (私は ei time と呼びます) を使用し、これを 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)"]}]
これは、Base64、Gunzip、RegEx、および 逆アセンブル x86 命令を使用する 11 段階のデコードされた COM スクリプトレットです。
クレジット: @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 を使用すると、16 進数を正規表現し、より簡単に表示できる 16 進ダンプに変換できます。
ソース 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 の BLOB。オリジナルのデコードは @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 (出力は SHA256 e95eca399dfe95500c4de569efc4cc77b75e2b66a864d467df37733ec06a0ff2 の TrueCrypt_Setup_7.1a.exe となるはずです)
[{"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 の緯度と経度が埋め込まれている場合は、このレシピを使用して、場所を特定するために使用可能な Google マップ URL をすばやく作成します。
[{"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 を、それに相当する 16 進数の X.509 証明書のシリアル番号に変更できます。次に、16 進数を正規表現し、コロンを挿入して正しい形式に変換します。
クレジット: @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]}]
DNS PTR レコード内の IP アドレスは、最下位オクテットから順に格納されます。たとえば、167.139.44.10.in-addr.arpa は 10.44.139.167 の IP アドレスに関連します。 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 は、Powershell を利用してペネトレーション テスターのレッド チーム化、エクスプロイト後、水平移動を支援するプロキシ対応 C2 フレームワークです。ドロッパーは PowerShell に基づいており、二重 Base64 エンコードおよび圧縮された PowerShell スクリプトで構成されます。文字列の抽出は、以下で詳しく説明するように 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 エントリの生の 16 進バイトを次に示します。特定のバイトを選択し、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]}]
Webシェルにはあらゆる形とサイズがあります。 PHP Webシェルの場合、gzinflateとbase64の組み合わせを使用してevalデータを難読化できます。この例では、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]}]
@pmelson の Pastbin ボット @scumbots でよく見られるもので、これはエンコードされた 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 は、CyberChef を使用して Windows ごみ箱パーサーを作成した素晴らしい作品で、これらの機能の可能性が無限であることを示しています。
ソース: 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]}]
このレシピは、Microsoft ショートカット ファイル (LNK) から VBE ペイロードを抽出し、サブセクションを使用して 16 進文字列をインラインでデコードします。
ソース:悪意のある.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 または外部リソースからのデータを使用してデータを強化できます。ここでは、3 つの 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 から直接ダウンロードされます。これをgunzip で解凍し、正規表現で dosfuscation を選択してから、「set」関数で使用されているクリティカル セクションを選択します。このセクションは、ステップ 3 の逆 for ループで難読化が解除されています。したがって、選択したら文字列を反転し、正規表現キャプチャ グループを使用して 3 文字おきに選択します。これは YouTube の Hack eXPlorer の素晴らしい作品です。そこに行って見てください!
出典: 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 リクエスト、および正規表現を使用して 6 バイトの文字列からランダムな文字を選択するこのレシピが作成されました。
クレジット: Steve Thompson より引用
[{"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 デバイスが Wifi にログオンできるようにします。
クレジット: 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 によって文書化された Webshell を、正規表現、ROT13、HTTP リクエスト、レジスタなどを使用して Cyberchef 内で完全にデコードします。
クレジット: 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]}]
Cyberchef 内で正規表現、ROT13、複数の解凍アルゴリズム、およびサブセクションを使用して、PHP で記述された自動訪問者スクリプトをデコードします。考慮すべき重要な点は、異なる難読化ラウンドを使用する変数が 2 つあるということです。いくつかのオプションがあります。複数の CyberChef ウィンドウで作業して最終結果を取得するか、以下のように、各変数のサブセクションと greg を使用してそれぞれを個別に操作し、1 つのスクリプトで両方の難読化解除された出力を取得します。ループを使用して Raw Inflate の複数のラウンドをジャンプすることで、レシピをさらに短縮できます。
クレジット: @NtSetDefault によって提供されたオリジナルのスクリプト、@thebluetoob によって作成されたオリジナルの Cyberchef レシピ、そして @mattnotmax によって 1 つのレシピに洗練されました。
[{"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」を検索して、レシピの適切なセクションにジャンプします。それ以外の場合は、2 番目のタイプを解析します。 CyberChef の「タブ」を使用すると、2 つの異なるスクリプトをロードしてデータを取得できます。同僚やフレンドリーなレッドチーム、または地元の 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 ではなく UTC +1 です。サブセクション、レジスタ、および日付と時刻の転置を使用すると、タイムスタンプの書式設定を変更し、列を移動して他のデータと結合できるようになります。素晴らしい!
クレジット: @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]}]
Cobalt Strike の標準 PowerShell ローダーのバリアント。ここで、難読化の最初の層は、2 つの CharCode 配列に分割された GZipped BLOB です。逆アセンブリ、文字列、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]}]
SolarWinds の悪意のある .dll には、圧縮と 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 の便利なレシピでは、レジスタの強力な操作を使用して、PowerShell から Emotet の悪意のあるドキュメントから難読化された URL を抽出します。ここでは、キャプチャ グループを使用して、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]}]
Didier Stevens は、OOXML ドキュメント (.docx ファイルなど) から URL を抽出することで、CyberChef の驚くべきシンプルさと有用性を実証しています。ファイルを解凍し、「既知の正常な」URL を除外することで、残りの 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"]}]
AES で暗号化された PowerShell ランサムウェア スクリプトは、CyberChef には匹敵しません。ここでは、Base64 を 16 進数に変換し、IV とキーをレジスタに抽出し、それらを使用して BLOB を復号化できます。復号化したら、データを調べて、復号化された BLOB の 1925 バイトにある PE ファイルを特定できます。これを抽出すると、他のツールを使用して爆発や静的解析などの動作を特定できます。
出典: @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]}]
ほとんどのサンドボックスは、一般的なパスワード「infected」を持つ zip ファイルを配信します。 CyberChef でコンテンツを抽出できるのに、デスクトップに抽出する危険を冒す必要はありません。ここには、OLE2 ファイル添付ファイルを含む電子メール.eml
ファイルがあります。 Strings
Base64 を識別し、抽出およびデコードされて第 2 段階が抽出されます。
ソース: 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 の標準的な 1 日の作業です。最初のセクションを逆にして 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 は、実行時に暗号化された構成ファイルをドロップします。 Microsoft と Fireeye による RE 分析では、アルゴリズムとキーが特定されて公開されたため、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]}]
私たちは何が欲しいのでしょうか? 1 つのセットで 16 進数と 8 進数の両方を混合したエンコーディング!いつ欲しいですか?今!
出典: 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"]}]
この多層 Web シェルは、サブセクションやジャンプに適しています。複数の部分に分割することも、(以下のように) 1 つの 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