From 9f780a347938fcbef1279ac2eb65406b12e07b3d Mon Sep 17 00:00:00 2001 From: shiva108 Date: Fri, 12 Dec 2025 13:29:45 +0100 Subject: [PATCH 1/2] feat: Implement TLS cipher option retrieval --- ADenum.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/ADenum.py b/ADenum.py index 7ff1c5e..6f55feb 100644 --- a/ADenum.py +++ b/ADenum.py @@ -171,10 +171,16 @@ def ConnectServerLdap(self,domain_name:str,ip_address:str, username:str, passwor connect = ldap.initialize('ldaps://' + ip_address) connect.start_tls_s() log.info("SSL connect:\t"+highlightGreen("TRUE")) - # TODO: - # con.get_option(ldap.OPT_X_TLS_CIPHER) - # con.get_option(ldap.OPT_X_TLS_CIPHER_SUITE) - # con.get_option(ldap.OPT_X_TLS_PROTOCOL_MIN) # -> 0x303 for TLS 1.2 / 0x304 for TLS 1.3 + + # Retrieve TLS Info safely + try: + # Some older ldap versions might not support these options + cipher = connect.get_option(ldap.OPT_X_TLS_CIPHER) + suite = connect.get_option(ldap.OPT_X_TLS_CIPHER_SUITE) + proto = connect.get_option(ldap.OPT_X_TLS_PROTOCOL_MIN) + log.debug(f"TLS Cipher: {cipher}, Suite: {suite}, Proto: {proto}") + except Exception as e: + log.debug(f"Could not retrieve extended TLS info: {e}") # con.get_option(ldap.OPT_X_TLS_VERSION) else: connect = ldap.initialize('ldap://' + ip_address) From c2130d45f4bfab11c6b7c85e16715ee29406ff30 Mon Sep 17 00:00:00 2001 From: shiva108 Date: Fri, 12 Dec 2025 13:30:59 +0100 Subject: [PATCH 2/2] chore: Add compiled Python bytecode for the ADenum module. --- __pycache__/ADenum.cpython-311.pyc | Bin 0 -> 46247 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 __pycache__/ADenum.cpython-311.pyc diff --git a/__pycache__/ADenum.cpython-311.pyc b/__pycache__/ADenum.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c581e03faaaa8ebe01c7dfe6e3cd76f9f45f23e2 GIT binary patch literal 46247 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 literal 0 HcmV?d00001