
NTAPI 함수만 사용하여 lsass를 덤프하고, 3개의 JSON 파일과 1개의 ZIP 파일을 생성합니다... 그리고 나중에 MiniDump 파일을 생성합니다!
TrickDump는 Minidump 파일을 생성하지 않고 lsass 프로세스를 덤프하며, 대신 메모리 영역 덤프가 포함된 3개의 JSON 파일과 1개의 ZIP 파일을 생성합니다. 세 단계로 진행됩니다:
Lock: RtlGetVersion을 사용하여 OS 정보를 가져옵니다.
Shock: NtOpenProcessToken 및 NtAdjustPrivilegeToken을 사용하여 SeDebugPrivilege 권한을 획득하고, NtGetNextProcess 및 NtQueryInformationProcess로 핸들을 연 다음, NtQueryInformationProcess 및 NtReadVirtualMemory를 사용하여 모듈 정보를 가져옵니다.
Barrel: SeDebugPrivilege 권한을 획득하고, 핸들을 연 다음, NtQueryVirtualMemory 및 NtReadVirtualMemory를 사용하여 정보를 가져오고 메모리 영역을 덤프합니다.

공격 시스템에서는 create_dump.py 스크립트를 사용하여 Minidump 파일을 생성합니다:
python3 create_dump.py [-l LOCK_JSON] [-s SHOCK_JSON] [-b BARREL_JSON] [-z BARREL_ZIP] [-o OUTPUT_FILE]
이 기술의 장점은 다음과 같습니다:
디스크, 메모리 또는 네트워크 트래픽에 유효한 Minidump 파일이 절대 존재하지 않습니다.
전체 공격을 실행하는 단일 프로그램이나 프로세스가 아닌 세 개의 개별 프로그램이 있어 플래그가 적게 발생할 수 있습니다.
프로그램은 NTAPI만 사용합니다 (이 프로젝트는 NativeDump의 변형입니다).
PROCESS_VM_OPERATION 및 PROCESS_VM_WRITE 액세스 권한으로 lsass 프로세스 핸들을 얻기 위해 OpenProcess나 NtOpenProcess를 사용하지 않습니다.
각 프로그램은 API 후킹을 우회하기 위해 ntdll.dll 라이브러리의 ".text" 섹션을 덮어쓸 수 있습니다:
다양한 언어로 사용 가능합니다:
PPL이 활성화되어 있거나, PEB 구조를 읽을 수 없거나, 바이너리가 64비트로 컴파일되지 않은 경우 작동하지 않습니다. 업데이트: 이제 PEB를 읽지 않고도 프로그램을 실행할 수 있습니다. peb-unreadable 브랜치를 확인하세요 :)
이 기술은 최신 Windows 버전에서 잘 작동하며 일반적인 AV 및 EDR 솔루션에 대해 테스트되었지만, 은밀성은 선택한 "flavour"에 따라 달라집니다: 최상의 결과를 위해 드문 언어를 사용하고 바이너리를 커스터마이징하세요!
프로그램은 피해자 시스템에서 실행되며, 세 개의 JSON 파일(메모리 영역 정보 포함)과 하나의 zip 파일(각 메모리 영역 덤프 포함)을 생성합니다.
Lock.exe [disk/knowndlls/debugproc]
Shock.exe [disk/knowndlls/debugproc]
Barrel.exe [disk/knowndlls/debugproc]
ntdll.dll 라이브러리를 덮어쓰지 않고 프로그램을 직접 실행할 수 있습니다:

또는 세 가지 덮어쓰기 기술 중 하나를 사용할 수 있습니다:

그런 다음 Minidump 파일이 생성됩니다:

하나의 바이너리만 실행하려면 Trick.exe가 3개의 JSON 파일과 메모리 영역이 포함된 ZIP 파일을 생성합니다:
Trick.exe [disk/knowndlls/debugproc] [IP_ADDRESS] [PORT]
ZIP 파일을 로컬에서 생성할 수 있으며, 선택적으로 Ntdll 덮어쓰기 방법을 사용할 수 있습니다:

또는 두 번째 및 세 번째 매개변수를 IP 주소와 포트로 사용하여 원격 포트로 전송할 수 있습니다:

두 경우 모두 다음과 같은 ZIP 파일을 얻고, 압축을 풀고 Minidump 파일을 생성합니다:
