From 1650c35213b644de8022dd4fd50febe8a16dbfc5 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 8 Jun 2017 21:30:38 -0400 Subject: [PATCH 1/2] Outputs IPs with SMB Signing False --- tools/RunFinger.py | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/tools/RunFinger.py b/tools/RunFinger.py index aeca581..9719964 100755 --- a/tools/RunFinger.py +++ b/tools/RunFinger.py @@ -27,7 +27,8 @@ parser = optparse.OptionParser(usage='python %prog -i 10.10.10.224\nor:\npython parser.add_option('-i','--ip', action="store", help="Target IP address or class C", dest="TARGET", metavar="10.10.10.224", default=None) parser.add_option('-g','--grep', action="store_true", dest="Grep", default=False, help="Output in grepable format") -options, args = parser.parse_args() +parser.add_option('-f','--false', action="store_true", dest="SigningFalse", default=False, help="Outputs IPs with SMB Signing False.") +options, args = parser.parse_args()s if options.TARGET is None: print "\n-i Mandatory option is missing, please provide a target or target range.\n" @@ -37,6 +38,7 @@ if options.TARGET is None: Timeout = 2 Host = options.TARGET Grep = options.Grep +SigningFalse = options.SigningFalse class Packet(): fields = OrderedDict([ @@ -264,6 +266,30 @@ def ShowSmallResults(Host): except: pass +def ShowSmbFalse(Host): + s = socket(AF_INET, SOCK_STREAM) + try: + s.settimeout(Timeout) + s.connect(Host) + except: + return False + + try: + Hostname, DomainJoined, Time = DomainGrab(Host) + Signing, OsVer, LanManClient = SmbFinger(Host) + Message = "['%s', Os:'%s', Domain:'%s', Signing:'%s', Time:'%s']"%(Host[0], OsVer, DomainJoined, Signing, Time[1]) + if Signing == False: + print(Host[0]) + except: + pass + + +def IsSigningFalse(): + if options.SigningFalse: + return True + else: + return False + def IsGrepable(): if options.Grep: return True @@ -282,13 +308,20 @@ def RunFinger(Host): p = multiprocessing.Process(target=ShowSmallResults, args=((host,445),)) threads.append(p) p.start() + elif IsSigningFalse(): + p = multiprocessing.Process(target=ShowSmbFalse, args=((host,445),)) + threads.append(p) + p.start() else: p = multiprocessing.Process(target=ShowResults, args=((host,445),)) threads.append(p) p.start() else: + if IsGrepable(): ShowSmallResults((Host,445)) + elif IsSigningFalse(): + ShowSmbFalse((Host,445)) else: ShowResults((Host,445)) From c5d080147096e98f448c2002a02f960287e204d7 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 8 Jun 2017 22:25:00 -0400 Subject: [PATCH 2/2] updated RunFinger.py --- tools/RunFinger.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/tools/RunFinger.py b/tools/RunFinger.py index 9719964..8c8115a 100755 --- a/tools/RunFinger.py +++ b/tools/RunFinger.py @@ -21,14 +21,17 @@ from socket import * from odict import OrderedDict import optparse -__version__ = "0.7" +__version__ = "0.8" parser = optparse.OptionParser(usage='python %prog -i 10.10.10.224\nor:\npython %prog -i 10.10.10.0/24', version=__version__, prog=sys.argv[0]) -parser.add_option('-i','--ip', action="store", help="Target IP address or class C", dest="TARGET", metavar="10.10.10.224", default=None) -parser.add_option('-g','--grep', action="store_true", dest="Grep", default=False, help="Output in grepable format") -parser.add_option('-f','--false', action="store_true", dest="SigningFalse", default=False, help="Outputs IPs with SMB Signing False.") -options, args = parser.parse_args()s +parser.add_option('-i','--ip', action="store", help="Target IP address or class C",\ + dest="TARGET", metavar="10.10.10.224", default=None) +parser.add_option('-g','--grep', action="store_true", dest="Grep", default=False, \ + help="Output in grepable format") +parser.add_option('-f','--false', action="store_true", dest="SigningFalse", default=False, \ + help="Displays IPs with SMB Signing False & saves to targets_(TimeStamp).txt") +options, args = parser.parse_args() if options.TARGET is None: print "\n-i Mandatory option is missing, please provide a target or target range.\n" @@ -266,7 +269,14 @@ def ShowSmallResults(Host): except: pass +def writeFile(Host): + with open('targets.txt', 'a') as f: + f.write(Host[0]) + def ShowSmbFalse(Host): + timeStamp = datetime.datetime.now().strftime("%m_%d_%y_%H_%M") + filename = 'targets_'+timeStamp+'.txt' + s = socket(AF_INET, SOCK_STREAM) try: s.settimeout(Timeout) @@ -277,9 +287,10 @@ def ShowSmbFalse(Host): try: Hostname, DomainJoined, Time = DomainGrab(Host) Signing, OsVer, LanManClient = SmbFinger(Host) - Message = "['%s', Os:'%s', Domain:'%s', Signing:'%s', Time:'%s']"%(Host[0], OsVer, DomainJoined, Signing, Time[1]) if Signing == False: print(Host[0]) + with open(filename, 'a') as f: + f.write(Host[0]+'\n') except: pass