XORSearch(Scan Tech Report) | ScanNetSecurity
2026.03.03(火)

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. 他の保険会社からの出向者、共栄火災海上保険の顧客情報を出向元にメール送信

    他の保険会社からの出向者、共栄火災海上保険の顧客情報を出向元にメール送信

  3. ことし御年六十五歳のパスワード先輩、定年退職延期は確実の見込み

    ことし御年六十五歳のパスワード先輩、定年退職延期は確実の見込み

  4. 海外ショッピングサービス「セカイモン」に不正アクセス、安全配慮および調査実施の観点で公開を一時停止

    海外ショッピングサービス「セカイモン」に不正アクセス、安全配慮および調査実施の観点で公開を一時停止

  5. アサヒグループホールディングスへのランサムウェア攻撃、個人情報 115,513 件の漏えいを確認

    アサヒグループホールディングスへのランサムウェア攻撃、個人情報 115,513 件の漏えいを確認

ランキングをもっと見る
PageTop