From 12b796a292b87be15ef8eec31cb276c447b9e8c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laban=20Sk=C3=B6llermark?= <65019367+LabanSkollerDefensify@users.noreply.github.com> Date: Wed, 30 Sep 2020 13:17:34 +0200 Subject: [PATCH 1/4] Fix typos in README * Missing "is" in description of the tool * s/an unique/a unique/ since it starts with a consonant sound * Move a word to its correct place --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 285178d..ea85da9 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Author: Laurent Gaffie https://g-laurent.blogspot.c ## Intro ## -Responder an LLMNR, NBT-NS and MDNS poisoner. It will answer to *specific* NBT-NS (NetBIOS Name Service) queries based on their name suffix (see: http://support.microsoft.com/kb/163409). By default, the tool will only answer to File Server Service request, which is for SMB. +Responder is an LLMNR, NBT-NS and MDNS poisoner. It will answer to *specific* NBT-NS (NetBIOS Name Service) queries based on their name suffix (see: http://support.microsoft.com/kb/163409). By default, the tool will only answer to File Server Service request, which is for SMB. The concept behind this is to target our answers, and be stealthier on the network. This also helps to ensure that we don't break legitimate NBT-NS behavior. You can set the -r option via command line if you want to answer to the Workstation Service request name suffix. @@ -74,7 +74,7 @@ This module allows you to see NBT-NS, BROWSER, LLMNR, DNS requests on the networ ## Hashes ## -All hashes are printed to stdout and dumped in an unique file John Jumbo compliant, using this format: +All hashes are printed to stdout and dumped in a unique John Jumbo compliant file, using this format: (MODULE_NAME)-(HASH_TYPE)-(CLIENT_IP).txt From 7b47c8fe4edcb53b035465985d92500b96fb1a84 Mon Sep 17 00:00:00 2001 From: ThePirateWhoSmellsOfSunflowers Date: Tue, 13 Oct 2020 11:47:33 +0200 Subject: [PATCH 2/4] fix custom challenge in python3 --- settings.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/settings.py b/settings.py index 1314f11..8176a63 100644 --- a/settings.py +++ b/settings.py @@ -210,12 +210,16 @@ class Settings: print(utils.color("[!] The challenge must be exactly 16 chars long.\nExample: 1122334455667788", 1)) sys.exit(-1) - self.Challenge = "" + self.Challenge = b'' if self.NumChal.lower() == 'random': pass - else: - for i in range(0, len(self.NumChal),2): - self.Challenge += self.NumChal[i:i+2].decode("hex") + else: + if self.PY2OR3 == 'PY2': + for i in range(0, len(self.NumChal),2): + self.Challenge += self.NumChal[i:i+2].decode("hex") + else: + self.Challenge += bytes.fromhex(self.NumChal) + # Set up logging logging.basicConfig(filename=self.SessionLogFile, level=logging.INFO, format='%(asctime)s - %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p') From f581d4dd0e7aa709367636c17b32e7956d6909b5 Mon Sep 17 00:00:00 2001 From: ThePirateWhoSmellsOfSunflowers Date: Tue, 13 Oct 2020 13:08:45 +0200 Subject: [PATCH 3/4] small fix --- settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.py b/settings.py index 8176a63..03457fc 100644 --- a/settings.py +++ b/settings.py @@ -218,7 +218,7 @@ class Settings: for i in range(0, len(self.NumChal),2): self.Challenge += self.NumChal[i:i+2].decode("hex") else: - self.Challenge += bytes.fromhex(self.NumChal) + self.Challenge = bytes.fromhex(self.NumChal) # Set up logging From fb10d20ea387448ad084a57f5f4441c908fc53cc Mon Sep 17 00:00:00 2001 From: Khiem Doan Date: Thu, 26 Nov 2020 14:19:06 +0700 Subject: [PATCH 4/4] Fix wrong syntax --- settings.py | 2 +- tools/MultiRelay.py | 4 ++-- tools/RunFingerPackets.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/settings.py b/settings.py index 1314f11..5ec5f46 100644 --- a/settings.py +++ b/settings.py @@ -206,7 +206,7 @@ class Settings: if self.NumChal.lower() == 'random': self.NumChal = "random" - if len(self.NumChal) is not 16 and not "random": + if len(self.NumChal) != 16 and self.NumChal != "random": print(utils.color("[!] The challenge must be exactly 16 chars long.\nExample: 1122334455667788", 1)) sys.exit(-1) diff --git a/tools/MultiRelay.py b/tools/MultiRelay.py index ac34d3d..db4416d 100755 --- a/tools/MultiRelay.py +++ b/tools/MultiRelay.py @@ -412,12 +412,12 @@ class SMBRelay(BaseRequestHandler): data = self.request.recv(4096) ## Make sure it's not a Kerberos auth. - if data.find("NTLM") is not -1: + if data.find("NTLM") != -1: ## Start with nego protocol + session setup negotiate to our target. data, smbdata, s, challenge = GrabNegotiateFromTarget(data, s, Pivoting) ## Make sure it's not a Kerberos auth. - if data.find("NTLM") is not -1: + if data.find("NTLM") != -1: ##Relay all that to our client. if data[8:10] == "\x73\x00": head = SMBHeader(cmd="\x73",flag1="\x98", flag2="\x43\xc8", errorcode="\x16\x00\x00\xc0", pid=pidcalc(data),mid=midcalc(data)) diff --git a/tools/RunFingerPackets.py b/tools/RunFingerPackets.py index e5ce645..d6ab48b 100644 --- a/tools/RunFingerPackets.py +++ b/tools/RunFingerPackets.py @@ -11,7 +11,7 @@ else: def StructWithLenPython2or3(endian,data): #Python2... - if PY2OR3 is "PY2": + if PY2OR3 == "PY2": return struct.pack(endian, data) #Python3... else: