88from re import sub , I
99from zipfile import ZipFile
1010from termcolor import colored
11+ from dns import resolver
1112
1213from Cryptodome .Hash import MD4
1314from OpenSSL .SSL import SysCallError
3233
3334from nxc .config import process_secret , host_info_colors
3435from nxc .connection import connection
35- from nxc .connection import resolver
3636from nxc .helpers .bloodhound import add_user_bh
3737from nxc .logger import NXCAdapter , nxc_logger
3838from nxc .protocols .ldap .bloodhound import BloodHound
@@ -702,7 +702,11 @@ def groups(self):
702702 def dc_list (self ):
703703 # Building the search filter
704704 resolv = resolver .Resolver ()
705- resolv .nameservers = [self .host ]
705+ if self .args .dns_server :
706+ resolv .nameservers = [self .args .dns_server ]
707+ else :
708+ resolv .nameservers = [self .host ]
709+ resolv .timeout = self .args .dns_timeout
706710
707711 search_filter = "(&(objectCategory=computer)(primaryGroupId=516))"
708712 attributes = ["dNSHostName" ]
@@ -721,7 +725,7 @@ def dc_list(self):
721725 break # If a record has been found, stop checking further
722726
723727 try :
724- answers = resolv .resolve (name , record_type )
728+ answers = resolv .resolve (name , record_type , tcp = self . args . dns_tcp )
725729 for rdata in answers :
726730 if record_type in ["A" , "AAAA" ]:
727731 ip_address = rdata .to_text ()
0 commit comments