Skip to content

Commit e80654f

Browse files
committed
Allow roasting computer accounts as well if specified
1 parent 027e520 commit e80654f

2 files changed

Lines changed: 9 additions & 9 deletions

File tree

nxc/protocols/ldap.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1039,23 +1039,23 @@ def kerberoasting(self):
10391039
f.write(line + "\n")
10401040
return
10411041

1042-
if self.args.kerberoast_users:
1043-
target_usernames = []
1044-
for item in self.args.kerberoast_users:
1042+
if self.args.kerberoast_account:
1043+
target_accounts = []
1044+
for item in self.args.kerberoast_account:
10451045
if os.path.isfile(item):
10461046
try:
10471047
with open(item, encoding="utf-8") as f:
1048-
target_usernames.extend(line.strip() for line in f if line.strip())
1048+
target_accounts.extend(line.strip() for line in f if line.strip())
10491049
except Exception as e:
10501050
self.logger.fail(f"Failed to read file '{item}': {e}")
10511051
else:
1052-
target_usernames.append(item.strip())
1052+
target_accounts.append(item.strip())
10531053

1054-
self.logger.info(f"Targeting specific users for kerberoasting: {', '.join(target_usernames)}")
1054+
self.logger.info(f"Targeting specific accounts for kerberoasting: {', '.join(target_accounts)}")
10551055

10561056
# build search filter for specific users
1057-
user_filter = "".join([f"(sAMAccountName={username})" for username in target_usernames])
1058-
searchFilter = f"(&(servicePrincipalName=*)(!(objectCategory=computer))(|{user_filter}))"
1057+
user_filter = "".join([f"(sAMAccountName={username})" for username in target_accounts])
1058+
searchFilter = f"(&(servicePrincipalName=*)(|{user_filter}))"
10591059
else:
10601060
# default to all
10611061
searchFilter = "(&(servicePrincipalName=*)(!(objectCategory=computer)))"

nxc/protocols/ldap/proto_args.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def proto_args(parser, parents):
1414
egroup = ldap_parser.add_argument_group("Retrieve hash on the remote DC", "Options to get hashes from Kerberos")
1515
egroup.add_argument("--asreproast", help="Output AS_REP response to crack with hashcat to file")
1616
kerberoasting_arg = egroup.add_argument("--kerberoasting", "--kerberoast", help="Output TGS ticket to crack with hashcat to file")
17-
kerberoast_users_arg = egroup.add_argument("--kerberoast-users", nargs="+", dest="kerberoast_users", action=get_conditional_action(_StoreAction), make_required=[], help="Target specific users for kerberoasting (usernames or file containing usernames)")
17+
kerberoast_users_arg = egroup.add_argument("--kerberoast-account", nargs="+", dest="kerberoast_account", action=get_conditional_action(_StoreAction), make_required=[], help="Target specific accounts for kerberoasting (sAMAccountNames or file containing sAMAccountNames)")
1818
egroup.add_argument("--no-preauth-targets", nargs=1, dest="no_preauth_targets", help="Targeted kerberoastable users")
1919

2020
# Make kerberoast-users require kerberoasting

0 commit comments

Comments
 (0)