これは、UACをバイパスするためのPoCであり、DLLハイジャッキングを使用し、「信頼されたディレクトリ」検証を悪用します。
PythonスクリプトCsvToHeader.pyを使用して、ヘッダーファイルを生成できます。デフォルトでは、この場所にあるCSVファイルdll_hijacking_candidates.csvを使用します。
スクリプトは各ポータブル実行可能ファイル(PE)に対して以下の条件をチェックします:
asInvokerhighestAvailablerequireAdministrator<autoElevate>true</autoElevate>
-c引数を指定した場合、スクリプトはハイジャック対象のDLLがPEテーブルからインポートされたDLLのリストにあるかどうかをチェックします。> python .\CsvToHeader.py -h
usage: CsvToHeader.py -f [DLL_PATH] -c
CsvToHeader can be used to generate a header file from a CSV.
optional arguments:
-h, --help show this help message and exit
-f [DLL_PATH] Path of the csv to convert (default="dll_hijacking_candidates.csv")
-c Enable import dll in PE (default=False)
-v, --version Show program's version number and exit
以下のコマンドを使用してヘッダーファイルを生成できます:
python CsvToHeader.py > dll_hijacking_candidates.h
使用されるファイルはDLLHijacking.exeとtest.dllです。
DLLHijacking.exeは脆弱なPEのリストを生成するために使用されるファイルです。 以下の手順を実行します:
CreateFakeDirectory
C:\windows \system32にディレクトリを作成する関数。
新しいディレクトリにファイルをコピー
C:\windows\system32\[TARGET.EXE] から C:\windows \system32\[TARGET.EXE] へ[CUSTOM_DLL_PATH] から C:\windows \system32\[TARGET.DLL] へトリガー
C:\windows \system32\[TARGET.EXE]から実行可能ファイルを実行
CleanUpFakeDirectory
手順1で作成したディレクトリと手順2のファイルを削除する関数。
CheckExploit
ファイルC:\ProgramData\exploit.txtの内容を確認し、エクスプロイトが成功したかどうかをチェックします。
DLLHijacking.exeは常にログファイルexploitable.logを生成し、以下の内容を含みます:
例:
1,computerdefaults.exe,PROPSYS.dll
0,computerdefaults.exe,Secur32.dll
実行コマンド:
DLLHijacking.exe [DLL_PATH]
引数が渡されない場合、スクリプトはDLLHijacking.exeのリソースに格納されているDLLtest.dllを使用します。
Windows 10 Pro (10.0.19043 N/A Build 19043)でテスト済み。

test.dllはエクスプロイトが成功したかどうかを確認するために使用されるシンプルな動的ライブラリです。
このDLLはファイルC:\ProgramData\exploit.txtを作成し、以下の内容を含みます:
このファイルはエクスプロイトが完了したら削除されます。
このプロジェクトは教育および倫理的なテスト目的のみで作成されています。このソフトウェアを事前の相互同意なしにターゲットを攻撃するために使用することは違法です。
エンドユーザーは、該当するすべての地域、州、連邦法を遵守する責任があります。
開発者は一切の責任を負わず、このプログラムの誤用や損害についても責任を負いません。