From 3dfff03dd254b8ec4c2ec645f55d14adac43a3cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6khan=20ALKAN?= Date: Wed, 1 Oct 2014 21:10:14 +0300 Subject: [PATCH] Crowbar Crowbar --- lib/main.py | 78 ++++++++++++++++++++++++++++++++++++++++------------- lib/nmap.py | 2 +- 2 files changed, 60 insertions(+), 20 deletions(-) diff --git a/lib/main.py b/lib/main.py index b8768dd..00d788f 100644 --- a/lib/main.py +++ b/lib/main.py @@ -124,7 +124,6 @@ def __init__(self): print >> sys.stderr, err sys.exit(1) - self.ip_list = [] if self.args.discover: @@ -191,8 +190,7 @@ def openvpn(self): if self.args.discover: - result = self.nmap.port_scan(self.args.server, port) - self.ip_list = result + self.ip_list = self.nmap.port_scan(self.args.server, port) try: @@ -208,9 +206,21 @@ def openvpn(self): for ip in self.ip_list: if self.args.username_file: - for user in open(self.args.username_file, "r").read().splitlines(): + try: + userfile = open(self.args.username_file, "r").read().splitlines() + except: + print >> sys.stderr, "File: %s doesn't exists !!!"% self.args.username_file + sys.exit(1) + + for user in userfile: if self.args.passwd_file: - for password in open(self.args.passwd_file, "r").read().splitlines(): + try: + passwdfile = open(self.args.passwd_file, "r").read().splitlines() + except: + print >> sys.stderr, "File: %s doesn't exists !!!"% self.args.passwd_file + sys.exit(1) + + for password in passwdfile: brute_file = tempfile.NamedTemporaryFile(mode='w+t') brute_file.write(user + "\n") brute_file.write(password + "\n") @@ -222,7 +232,13 @@ def openvpn(self): pool.add_task(self.openvpnlogin, ip, user, self.args.passwd, brute_file, port) else: if self.args.passwd_file: - for password in open(self.args.passwd_file, "r").read().splitlines(): + try: + passwdfile = open(self.args.passwd_file, "r").read().splitlines() + except: + print >> sys.stderr, "File: %s doesn't exists !!!"% self.args.passwd_file + sys.exit(1) + + for password in passwdfile: brute_file = tempfile.NamedTemporaryFile(mode='w+t') brute_file.write(self.args.username + "\n") brute_file.write(password + "\n") @@ -265,8 +281,8 @@ def vnckey(self, *options): port = self.args.port if self.args.discover: - result = self.nmap.port_scan(self.args.server, port) - self.ip_list = result + self.ip_list = self.nmap.port_scan(self.args.server, port) + if not os.path.isfile(self.args.passwd_file): print >> sys.stderr, "Password file doesn't exists !!!" @@ -315,8 +331,8 @@ def rdp(self): port = self.args.port if self.args.discover: - result = self.nmap.port_scan(self.args.server, port) - self.ip_list = result + self.ip_list = self.nmap.port_scan(self.args.server, port) + try: pool = ThreadPool(int(self.args.thread)) @@ -324,18 +340,35 @@ def rdp(self): print >> sys.stderr, err sys.exit(1) - for ip in self.ip_list: if self.args.username_file: - for user in open(self.args.username_file, "r").read().splitlines(): - if self.args.passwd_file: - for password in open(self.args.passwd_file, "r").read().splitlines(): + try: + userfile = open(self.args.username_file, "r").read().splitlines() + except: + print >> sys.stderr, "File: %s doesn't exists !!!"% self.args.username_file + sys.exit(1) + + for user in userfile: + if self.args.passwd_file: + try: + passwdfile = open(self.args.passwd_file, "r").read().splitlines() + except: + print >> sys.stderr, "File: %s doesn't exists"% self.args.passwd_file + sys.exit(1) + + for password in passwdfile: pool.add_task(self.rdplogin, ip, user, password, port) else: pool.add_task(self.rdplogin, ip, user, self.args.passwd, port) else: if self.args.passwd_file: - for password in open(self.args.passwd_file, "r").read().splitlines(): + try: + passwdfile = open(self.args.passwd_file, "r").read().splitlines() + except: + print >> sys.stderr, "File: %s doesn't exists"% self.args.passwd_file + sys.exit(1) + + for password in passwdfile: pool.add_task(self.rdplogin, ip, self.args.username, password, port) else: pool.add_task(self.rdplogin, ip, self.args.username, self.args.passwd, port) @@ -373,8 +406,7 @@ def sshkey(self): port = self.args.port if self.args.discover: - result = self.nmap.port_scan(self.args.server, port) - self.ip_list = result + self.ip_list = self.nmap.port_scan(self.args.server, port) try: pool = ThreadPool(self.args.thread) @@ -382,9 +414,16 @@ def sshkey(self): print >> sys.stderr, err sys.exit(1) + for ip in self.ip_list: if self.args.username_file: - for user in open(self.args.username_file, "r").read().splitlines(): + try: + userfile = open(self.args.username_file, "r").read().splitlines() + except: + print >> sys.stderr, "File: %s doesn't exists !!!"% self.args.username_file + sys.exit(1) + + for user in userfile: if os.path.isdir(self.args.key_file): for dirname, dirnames, filenames in os.walk(self.args.key_file): for keyfile in filenames: @@ -419,7 +458,8 @@ def run(self, brute_type): if Main.is_success == 0: print "No result is found ..." - + + def signal_handler(self, signal, frame): print('Exit ...') diff --git a/lib/nmap.py b/lib/nmap.py index 773e593..cce5e0f 100644 --- a/lib/nmap.py +++ b/lib/nmap.py @@ -35,7 +35,7 @@ def port_scan(self, ip_list, port): proc = subprocess.Popen([run_nmap], shell = True, stdout = subprocess.PIPE,) stdout_value = str(proc.communicate()) - + for line in open(tmpfile_name,"r"): if re.search(open_port, line): ip = line[:-1].split(" ")[1]