@@ -318,7 +318,7 @@ def print_host_info(self):
318318 smbv1 = colored (f"SMBv1:{ self .smbv1 } " , host_info_colors [2 ], attrs = ["bold" ]) if self .smbv1 else colored (f"SMBv1:{ self .smbv1 } " , host_info_colors [3 ], attrs = ["bold" ])
319319 self .logger .display (f"{ self .server_os } { f' x{ self .os_arch } ' if self .os_arch else '' } (name:{ self .hostname } ) (domain:{ self .targetDomain } ) ({ signing } ) ({ smbv1 } )" )
320320
321- if self .args .generate_hosts_file :
321+ if self .args .generate_hosts_file or self . args . generate_krb5_file :
322322 from impacket .dcerpc .v5 import nrpc , epm
323323 self .logger .debug ("Performing authentication attempts..." )
324324 isdc = False
@@ -328,9 +328,31 @@ def print_host_info(self):
328328 except DCERPCException :
329329 self .logger .debug ("Error while connecting to host: DCERPCException, which means this is probably not a DC!" )
330330
331- with open (self .args .generate_hosts_file , "a+" ) as host_file :
332- host_file .write (f"{ self .host } { self .hostname } { self .hostname } .{ self .targetDomain } { self .targetDomain if isdc else '' } \n " )
333- self .logger .debug (f"{ self .host } { self .hostname } { self .hostname } .{ self .targetDomain } { self .targetDomain if isdc else '' } " )
331+ if self .args .generate_hosts_file :
332+ with open (self .args .generate_hosts_file , "a+" ) as host_file :
333+ host_file .write (f"{ self .host } { self .hostname } { self .hostname } .{ self .targetDomain } { self .targetDomain if isdc else '' } \n " )
334+ self .logger .debug (f"{ self .host } { self .hostname } { self .hostname } .{ self .targetDomain } { self .targetDomain if isdc else '' } " )
335+ elif self .args .generate_krb5_file and isdc :
336+ with open (self .args .generate_krb5_file , "w+" ) as host_file :
337+ data = f"""
338+ [libdefaults]
339+ dns_lookup_kdc = false
340+ dns_lookup_realm = false
341+ default_realm = { self .domain .upper () }
342+
343+ [realms]
344+ { self .domain .upper () } = {{
345+ kdc = { self .hostname .lower () } .{ self .domain }
346+ admin_server = { self .hostname .lower () } .{ self .domain }
347+ default_domain = { self .domain }
348+ }}
349+
350+ [domain_realm]
351+ .{ self .domain } = { self .domain .upper () }
352+ { self .domain } = { self .domain .upper () }
353+ """
354+ host_file .write (data )
355+ self .logger .debug (data )
334356
335357 return self .host , self .hostname , self .targetDomain
336358
0 commit comments