XORSearch(Scan Tech Report) | ScanNetSecurity
2024.05.12(日)

XORSearch(Scan Tech Report)

XORSearchとは、Didier Stevens氏によって開発された「XORSearch」は、XOR, ROL, ROT演算を利用して暗号化されたファイルに対して、ブルートフォースで復号化を試みることができるコマンドラインツールです。

脆弱性と脅威 エクスプロイト
1.XORSearchとは
Didier Stevens氏によって開発された「XORSearch」は、XOR, ROL, ROT演算を利用して暗号化されたファイルに対して、ブルートフォースで復号化を試みることができるコマンドラインツールです。XORSearchは、2007年から公開されているツールですが、MAC OSX版もリリースされてWindows、Linux、MAC OSX上と複数のOS上で動作させることができます。

これら演算を使用した暗号は比較的簡単なものでありますが、マルウェア作者にはデータを難読化する方法として依然人気がある手口です。例えば、マルウェア感染ホスト内にある不正ファイルやWebフィルタリングソフトのHTTP POSTのログ、パケットキャプチャデータの解析時など、マルウェア解析や不正通信の調査時に難読化データに遭遇する機会は増えてきてますので、実際にこのようなデータに遭遇したような場合、復号を諦めている読者の方も多いと思いますが、XORSearchのような比較的すぐ簡単にチェックできるツールも存在しますので、一度試してみると良いと思います。


2.ダウンロード
XORSearchは次のURLよりダウンロードできます。執筆時点での最新バージョン
は1.7.0となっています。

XORSearch:
http://blog.didierstevens.com/programs/xorsearch/


3.インストール
インストールは標準のgccでコンパイルを実行して完了です。
ここではOSはUbuntu Desktop 12.10を使用しています。

$ gcc -o xorsearch XORSearch.c -v
組み込み spec を使用しています。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper
ターゲット: x86_64-linux-gnu
configure 設定: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
スレッドモデル: posix
gcc バージョン 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
COLLECT_GCC_OPTIONS='-o' 'xorsearch' '-v' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/4.6/cc1 -quiet -v -imultilib . -imultiarch x86_64-linux-gnu XORSearch.c -quiet -dumpbase XORSearch.c -mtune=generic -march=x86-64 -auxbase XORSearch -version -fstack-protector -o /tmp/cc00s83j.s
GNU C (Ubuntu/Linaro 4.6.3-1ubuntu5) version 4.6.3 (x86_64-linux-gnu)
compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
存在しないディレクトリ "/usr/local/include/x86_64-linux-gnu" を無視します
存在しないディレクトリ "/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../x86_64-linux-gnu/include" を無視します
#include "..." の探索はここから始まります:
#include <...> の探索はここから始まります:
/usr/lib/gcc/x86_64-linux-gnu/4.6/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/4.6/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
探索リストの終わりです。
GNU C (Ubuntu/Linaro 4.6.3-1ubuntu5) version 4.6.3 (x86_64-linux-gnu)
compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 75e879ed14f91af504f4150eadeaa0e6
COLLECT_GCC_OPTIONS='-o' 'xorsearch' '-v' '-mtune=generic' '-march=x86-64'
as --64 -o /tmp/ccr9VpgW.o /tmp/cc00s83j.s
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-o' 'xorsearch' '-v' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/4.6/collect2 --sysroot=/ --build-id --no-add-needed --as-needed --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o xorsearch /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.6/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. /tmp/ccr9VpgW.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.6/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crtn.o


4.テスト準備
(Web非公開)

5.実行する
(Web非公開)

6.XORSearch使い方、オプション
(Web非公開)

(執筆:株式会社ラック サイバー脅威分析センター

※Web非公開該当コンテンツ閲覧をご希望の方はScan Tech Reportにご登録(有料)下さい。

Scan Tech Report
http://scan.netsecurity.ne.jp/archives/51916302.html

《吉澤 亨史( Kouji Yoshizawa )》

関連記事

特集

PageTop

アクセスランキング

  1. 護衛艦いなづまの艦長、資格のない隊員を特定秘密取扱職員に指名し懲戒処分

    護衛艦いなづまの艦長、資格のない隊員を特定秘密取扱職員に指名し懲戒処分

  2. デジサートのEV証明書の記載フォーマットに誤り、再発行とサーバへの入れ替え呼びかけ

    デジサートのEV証明書の記載フォーマットに誤り、再発行とサーバへの入れ替え呼びかけ

  3. 東京電力エナジーパートナー、電力・ガス取引監視等委員会からの報告徴収に対する報告書提出

    東京電力エナジーパートナー、電力・ガス取引監視等委員会からの報告徴収に対する報告書提出

  4. ランサムウェア被害の原因はスターティア社の UTM テストアカウント削除忘れ

    ランサムウェア被害の原因はスターティア社の UTM テストアカウント削除忘れ

  5. 豊島のサーバにランサムウェア攻撃、復旧済みで業務に影響なし

    豊島のサーバにランサムウェア攻撃、復旧済みで業務に影響なし

  6. テレビ宮崎グループ会社にランサムウェア攻撃、請求書発行システムを停止

    テレビ宮崎グループ会社にランサムウェア攻撃、請求書発行システムを停止

  7. 新日本プロレスリングオフィシャルファンクラブ会員情報を保存した USB メモリ紛失

    新日本プロレスリングオフィシャルファンクラブ会員情報を保存した USB メモリ紛失

  8. AI とドローン利活用最悪事例 ~ 米保険会社 住宅空撮し保険契約 猛烈却下

    AI とドローン利活用最悪事例 ~ 米保険会社 住宅空撮し保険契約 猛烈却下

  9. 北 中華製AIを攻撃活用/北 DMARC不正利用/北 日本のアニメ制作関与か ほか [Scan PREMIUM Monthly Executive Summary 2024年4月度]

    北 中華製AIを攻撃活用/北 DMARC不正利用/北 日本のアニメ制作関与か ほか [Scan PREMIUM Monthly Executive Summary 2024年4月度]

  10. ホビー・キャラクター関連商品販売 アルジャーノンプロダクトのホームページで不正アクセスが原因の表示トラブル

    ホビー・キャラクター関連商品販売 アルジャーノンプロダクトのホームページで不正アクセスが原因の表示トラブル

ランキングをもっと見る