Skip to content

Commit 9b887bb

Browse files
authored
Merge branch 'Pennyw0rth:main' into main
2 parents 3ba663d + b243ee8 commit 9b887bb

2 files changed

Lines changed: 17 additions & 7 deletions

File tree

nxc/protocols/ldap.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ def create_conn_obj(self):
173173
ldap_url = f"{proto}://{self.host}"
174174
self.logger.info(f"Connecting to {ldap_url} with no baseDN")
175175
try:
176-
self.ldap_connection = ldap_impacket.LDAPConnection(ldap_url, dstIp=self.host)
176+
self.ldap_connection = ldap_impacket.LDAPConnection(ldap_url, dstIp=self.host, signing=False)
177177
if self.ldap_connection:
178178
self.logger.debug(f"ldap_connection: {self.ldap_connection}")
179179
except SysCallError as e:
@@ -322,7 +322,7 @@ def kerberos_login(self, domain, username, password="", ntlm_hash="", aesKey="",
322322
proto = "ldaps" if self.port == 636 else "ldap"
323323
ldap_url = f"{proto}://{self.target}"
324324
self.logger.info(f"Connecting to {ldap_url} - {self.baseDN} - {self.host} [1]")
325-
self.ldap_connection = ldap_impacket.LDAPConnection(url=ldap_url, baseDN=self.baseDN, dstIp=self.host)
325+
self.ldap_connection = ldap_impacket.LDAPConnection(url=ldap_url, baseDN=self.baseDN, dstIp=self.host, signing=False)
326326
self.ldap_connection.kerberosLogin(username, password, domain, self.lmhash, self.nthash, aesKey, kdcHost=kdcHost, useCache=useCache)
327327
if self.username == "":
328328
self.username = self.get_ldap_username()
@@ -374,7 +374,7 @@ def kerberos_login(self, domain, username, password="", ntlm_hash="", aesKey="",
374374
self.logger.extra["port"] = "636"
375375
ldaps_url = f"ldaps://{self.target}"
376376
self.logger.info(f"Connecting to {ldaps_url} - {self.baseDN} - {self.host} [2]")
377-
self.ldap_connection = ldap_impacket.LDAPConnection(url=ldaps_url, baseDN=self.baseDN, dstIp=self.host)
377+
self.ldap_connection = ldap_impacket.LDAPConnection(url=ldaps_url, baseDN=self.baseDN, dstIp=self.host, signing=False)
378378
self.ldap_connection.kerberosLogin(username, password, domain, self.lmhash, self.nthash, aesKey, kdcHost=kdcHost, useCache=useCache)
379379
if self.username == "":
380380
self.username = self.get_ldap_username()
@@ -438,7 +438,7 @@ def plaintext_login(self, domain, username, password):
438438
proto = "ldaps" if self.port == 636 else "ldap"
439439
ldap_url = f"{proto}://{self.target}"
440440
self.logger.info(f"Connecting to {ldap_url} - {self.baseDN} - {self.host} [3]")
441-
self.ldap_connection = ldap_impacket.LDAPConnection(url=ldap_url, baseDN=self.baseDN, dstIp=self.host)
441+
self.ldap_connection = ldap_impacket.LDAPConnection(url=ldap_url, baseDN=self.baseDN, dstIp=self.host, signing=False)
442442
self.ldap_connection.login(self.username, self.password, self.domain, self.lmhash, self.nthash)
443443
self.check_if_admin()
444444
self.logger.debug(f"Adding credential: {domain}/{self.username}:{self.password}")
@@ -461,7 +461,7 @@ def plaintext_login(self, domain, username, password):
461461
self.logger.extra["port"] = "636"
462462
ldaps_url = f"ldaps://{self.target}"
463463
self.logger.info(f"Connecting to {ldaps_url} - {self.baseDN} - {self.host} [4]")
464-
self.ldap_connection = ldap_impacket.LDAPConnection(url=ldaps_url, baseDN=self.baseDN, dstIp=self.host)
464+
self.ldap_connection = ldap_impacket.LDAPConnection(url=ldaps_url, baseDN=self.baseDN, dstIp=self.host, signing=False)
465465
self.ldap_connection.login(self.username, self.password, self.domain, self.lmhash, self.nthash)
466466
self.check_if_admin()
467467
self.logger.debug(f"Adding credential: {domain}/{self.username}:{self.password}")
@@ -528,7 +528,7 @@ def hash_login(self, domain, username, ntlm_hash):
528528
proto = "ldaps" if self.port == 636 else "ldap"
529529
ldaps_url = f"{proto}://{self.target}"
530530
self.logger.info(f"Connecting to {ldaps_url} - {self.baseDN} - {self.host}")
531-
self.ldap_connection = ldap_impacket.LDAPConnection(url=ldaps_url, baseDN=self.baseDN, dstIp=self.host)
531+
self.ldap_connection = ldap_impacket.LDAPConnection(url=ldaps_url, baseDN=self.baseDN, dstIp=self.host, signing=False)
532532
self.ldap_connection.login(self.username, self.password, self.domain, self.lmhash, self.nthash)
533533
self.check_if_admin()
534534
self.logger.debug(f"Adding credential: {domain}/{self.username}:{self.hash}")
@@ -551,7 +551,7 @@ def hash_login(self, domain, username, ntlm_hash):
551551
self.logger.extra["port"] = "636"
552552
ldaps_url = f"ldaps://{self.target}"
553553
self.logger.info(f"Connecting to {ldaps_url} - {self.baseDN} - {self.host}")
554-
self.ldap_connection = ldap_impacket.LDAPConnection(url=ldaps_url, baseDN=self.baseDN, dstIp=self.host)
554+
self.ldap_connection = ldap_impacket.LDAPConnection(url=ldaps_url, baseDN=self.baseDN, dstIp=self.host, signing=False)
555555
self.ldap_connection.login(self.username, self.password, self.domain, self.lmhash, self.nthash)
556556
self.check_if_admin()
557557
self.logger.debug(f"Adding credential: {domain}/{self.username}:{self.hash}")

nxc/protocols/smb/database.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,16 @@ def reflect_tables(self):
177177
self.DpapiBackupkey = Table("dpapi_backupkey", self.metadata, autoload_with=self.db_engine)
178178
self.ConfChecksTable = Table("conf_checks", self.metadata, autoload_with=self.db_engine)
179179
self.ConfChecksResultsTable = Table("conf_checks_results", self.metadata, autoload_with=self.db_engine)
180+
181+
# Check if Database Schema is correct, due to hanging issues reported on discord introduced by https://github.com/Pennyw0rth/NetExec/pull/658
182+
from sqlalchemy.schema import UniqueConstraint
183+
ip_is_unique = False
184+
for constraint in self.HostsTable.constraints:
185+
if isinstance(constraint, UniqueConstraint) and constraint.columns[0].name == "ip":
186+
ip_is_unique = True
187+
break
188+
if not ip_is_unique:
189+
raise NoSuchTableError("ip is not unique in hosts table")
180190
except (NoInspectionAvailable, NoSuchTableError):
181191
print(
182192
f"""

0 commit comments

Comments
 (0)