Skip to content
This repository has been archived by the owner on Nov 21, 2024. It is now read-only.

Commit

Permalink
Merge pull request #5 from iprathammishra/new/e-mod
Browse files Browse the repository at this point in the history
added instagram module and adding other things
  • Loading branch information
N0rz3 authored Sep 21, 2023
2 parents 4ea090a + 153d5fa commit c98ee33
Show file tree
Hide file tree
Showing 16 changed files with 147 additions and 90 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ dist/
downloads/
eggs/
.eggs/
lib/

lib64/
parts/
sdist/
Expand Down
33 changes: 19 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
[![python version](https://img.shields.io/badge/Python-3.10%2B-brightgreen)](https://www.python.org/downloads/)
[![license](https://img.shields.io/badge/License-GNU-blue.svg)](https://www.gnu.org/licenses/gpl-3.0.fr.html)


# **πŸ•΅οΈ Eyes is an OSINT tool to get existing accounts from an email**

![](assets/capture.png)
Expand All @@ -20,15 +19,14 @@
**All this without warning the target πŸ•΅οΈβ€β™‚οΈ**


**Features of script :**

- fully async
- asynchrone scraping
- menu in cli format (commands)


**πŸ—ƒοΈβ€ŠModules**
Name | Key |
Name | Key |
| ------------------- |-------------- |
| [Bitmoji](https://www.bitmoji.com/) | βŒβ€ŠπŸ”‘ |
| [Duolingo](https://www.duolingo.com/) | βŒβ€ŠπŸ”‘β€Š|
Expand All @@ -39,9 +37,9 @@
| [Pastebin](https://pastebin.com) | βŒβ€ŠπŸ”‘ |
| [Protonmail](https://proton.me/mail) | βŒβ€ŠπŸ”‘ |
| [X (Twitter)](https://x.com) | βŒβ€ŠπŸ”‘ |
| [Instagram](https://instagram.com) | βŒβ€ŠπŸ”‘ |


### πŸ“ΈπŸ™‹β€β™‚οΈ Facial recognition
### πŸ“ΈπŸ™‹β€β™‚οΈ Facial recognition

Eyes also use facial recognition in the GitHub module to study the profile picture (if available).
The facial recognition module is called: Venom
Expand All @@ -60,11 +58,12 @@ $ cd ./Eyes
$ pip3 install -r requirements.txt
```

Eyes is very easy to use and not at all complex πŸ€™β€Š
Eyes is very easy to use and not at all complex πŸ€™

### πŸ„ Usage

```
usage: eyes.py [-h] [-m] [email]
usage: python eyes.py [-h] [-m] [email]
positional arguments:
email search information on the target email with modules, services...
Expand All @@ -74,29 +73,35 @@ options:
-m, --modules gives you all the email modules used by Eyes
```

### πŸŽ₯β€ŠDemo
### πŸŽ₯β€ŠDemo

![](assets/demo.gif)


## 🌞 More

If you want to discover other tools of the same kind there are :

- [Osint Industries](https://osint.industries/)
- [Holehe](https://github.com/megadose/holehe)
- [Buster](https://github.com/sham00n/buster)
And others...
And others...

### βœ”οΈ / ❌ Rules
this tool was designed for educational purposes only and is not intended for any mischievous use, I am not responsible for its use.

This tool was designed for educational purposes only and is not intended for any mischievous use, I am not responsible for its use.

### πŸ“œ License

This project is [License GPL v3](https://www.gnu.org/licenses/gpl-3.0.fr.html) be sure to follow all rules πŸ‘

### πŸ’– Thanks
If you like what i do, please subscribe πŸ’–. And if you find this tool is useful don't forget to star 🌟

If you like what i do, please subscribe πŸ’–. And if you find this tool is useful don't forget to star 🌟

**πŸ’Ά Support me πŸ‘‡**

<a href="https://www.buymeacoffee.com/norze" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" height="50" ></a>
<a href="https://www.buymeacoffee.com/norze" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" height="50" ></a>

### πŸ“ Note

_Please note that the `Discord` and `Pinterest` examples may not be fully reliable, as they rely on web scraping and may be subject to changes in the website's structure or terms of service._
10 changes: 7 additions & 3 deletions eyes.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
__author__ = "N0rz3"

if __name__ == "__main__":
import os; os.system('title Eyes')
import sys; sys.dont_write_bytecode = True
import asyncio ;from lib.cli import parser; asyncio.run(parser())
import os
os.system('title Eyes')
import sys
sys.dont_write_bytecode = True
import asyncio
from lib.cli import parser
asyncio.run(parser())
6 changes: 4 additions & 2 deletions lib/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from output import eyes_output
from .check_version import check_python_version


async def parser():
parser = argparse.ArgumentParser()

Expand Down Expand Up @@ -39,11 +40,12 @@ async def parser():
β”œβ”€β”€{CYAN}Mail.ru{WHITE}
β”œβ”€β”€{CYAN}Pastebin{WHITE} # links dump
β”œβ”€β”€{CYAN}Protonmail{WHITE} # scrapable
β”œβ”€β”€{CYAN}Snapchat{WHITE}
β”œβ”€β”€{CYAN}Bitmoji{WHITE}
β”œβ”€β”€{CYAN}Instagram{WHITE}
└──{CYAN}X (Twitter){WHITE}
""")
exit()

else:
print(banner)
exit()
exit()
10 changes: 5 additions & 5 deletions modules/email_modules/bitmoji.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ async def bitmoji(email):

try:
r = await Requests(URL, headers=headers, data=data).post()

if '{"account_type":"snapchat"}' in r.text:
return f"""\rβœ”οΈ {GREEN}Bitmoji{WHITE}\n"""
return f"""\rβœ”οΈ {GREEN}Bitmoji{WHITE}\n"""

else:
return f"""\r❌ {RED}Bitmoji{WHITE}\n"""
return f"""\r❌ {RED}Bitmoji{WHITE}\n"""

except Exception:
return """\r🚧 Bitmoji\n"""
except Exception:
return """\r🚧 Bitmoji\n"""
8 changes: 3 additions & 5 deletions modules/email_modules/duolingo.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,16 @@ async def duolingo(email):

try:
r = await Requests(URL, params=params, headers=headers).get()


if """{"users":[]}""" in r.text:
return f"""\r❌ {RED}Duolingo{WHITE}\n"""

return f"""\r❌ {RED}Duolingo{WHITE}\n"""

else:
return f"""\rβœ”οΈ {GREEN}Duolingo{WHITE}
return f"""\rβœ”οΈ {GREEN}Duolingo{WHITE}
β”œβ”€β”€Name : {r.json()['users'][0]['username']}
β”œβ”€β”€Bio : {r.json()['users'][0]['bio']}
β”œβ”€β”€Total XP : {r.json()['users'][0]['totalXp']}
└──From Language : {r.json()['users'][0]['courses'][0]['fromLanguage']}\n"""

except Exception:
return """\r🚧 Duolingo"""
return """\r🚧 Duolingo"""
62 changes: 31 additions & 31 deletions modules/email_modules/github.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,53 +5,53 @@
from lib import venom
from lib.image import get_hashed, fetch_img


async def github(email):
URL = "https://api.github.com/search/users?q={}+in:email"
URL = "https://api.github.com/search/users?q={}+in:email"

headers = {
'user-agent': random.choice(user_agent()),
# optional but better results 'authorization': 'token YOUR_API_TOKEN'
}
headers = {
'user-agent': random.choice(user_agent()),
# optional but better results 'authorization': 'token YOUR_API_TOKEN'
}

try:
r = await Requests(URL.format(email), headers).get()
try:
r = await Requests(URL.format(email), headers).get()

if '"total_count": 0' in r.text:
print(f"""\r❌ {RED}GitHub{WHITE}\n""")
if '"total_count": 0' in r.text:
print(f"""\r❌ {RED}GitHub{WHITE}\n""")

else:
try:
items = r.json()['items']
if not items:
pass
else:
try:
items = r.json()['items']
if not items:
pass

name = items[0]['login']
avatar = items[0]['avatar_url']
name = items[0]['login']
avatar = items[0]['avatar_url']

default = "https://github.com/identicons/{}.png".format(name)
default = "https://github.com/identicons/{}.png".format(name)

img = await fetch_img(avatar)
img_hashed = get_hashed(img)
img = await fetch_img(avatar)
img_hashed = get_hashed(img)

default_img = await fetch_img(default)
deufault_hashed = get_hashed(default_img)
default_img = await fetch_img(default)
deufault_hashed = get_hashed(default_img)

if img_hashed == deufault_hashed:
print(f"""\rβœ”οΈ {GREEN}GitHub{WHITE}
if img_hashed == deufault_hashed:
print(f"""\rβœ”οΈ {GREEN}GitHub{WHITE}
β”œβ”€β”€Name : {name}
└──Avatar : {avatar}
β””β”€β”€βœ–οΈ Default profile picture\n""")

else:
print(f"""\rβœ”οΈ {GREEN}GitHub{WHITE}
else:
print(f"""\rβœ”οΈ {GREEN}GitHub{WHITE}
β”œβ”€β”€Name : {name}
└──Avatar : {avatar}
β””β”€β”€πŸ€³ No default profile picture\n""")

await venom.Face.facial(url=avatar, name=name, output_path=f"facial_recognition/venom_output_{name}.jpg")
await venom.Face.facial(url=avatar, name=name, output_path=f"facial_recognition/venom_output_{name}.jpg")


except Exception:
print(f"""\r❌ {RED}GitHub{WHITE}\n""")
except Exception:
print("\r🚧 GitHub\n")
except Exception:
print(f"""\r❌ {RED}GitHub{WHITE}\n""")
except Exception:
print("\r🚧 GitHub\n")
8 changes: 4 additions & 4 deletions modules/email_modules/gravatar.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,16 @@ async def gravatar(email):
r = await Requests(URL.format(email), headers).get()

if "User not found" in r.text:
return f"""\r❌ {RED}Gravatar{WHITE}\n"""
return f"""\r❌ {RED}Gravatar{WHITE}\n"""

else:
if r.json()['entry'][0]['displayName'] != None or '':
return f"""\r{GREEN}βœ”οΈ Gravatar{WHITE}
return f"""\r{GREEN}βœ”οΈ Gravatar{WHITE}
└──Name : {r.json()['entry'][0]['displayName']}
"""

else:
return f"""\r{GREEN}βœ”οΈ Gravatar{WHITE}\n"""
return f"""\r{GREEN}βœ”οΈ Gravatar{WHITE}\n"""

except Exception:
return """\r🚧 Gravatar\n"""
return """\r🚧 Gravatar\n"""
41 changes: 41 additions & 0 deletions modules/email_modules/ig.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
from lib.agents import user_agent
from lib.requests import Requests
import random
from lib.text import *


async def instagram(email):
URL = "https://www.instagram.com/web/search/topsearch/?context=blended&query={}"

headers = {
'user-agent': random.choice(user_agent()),
}

try:
r = await Requests(URL.format(email), headers).get()

if r.status_code == 200:
try:
data = r.json()
users = data.get('users', [])

if not users:
print(f"\r❌ {RED}Instagram{WHITE}\n")
else:
user_info = users[0].get('user', {})

username = user_info.get('username', '')
profile_pic_url = user_info.get('profile_pic_url', '')

if username and profile_pic_url:
print(f"""\rβœ”οΈ {GREEN}Instagram{WHITE}
β”œβ”€β”€Username: {username}
└──Profile Picture: {profile_pic_url}\n""")
else:
print(f"\r❌ {RED}Instagram{WHITE}\n")

except Exception:
print(f"\r❌ {RED}Instagram{WHITE}\n")

except Exception:
print("\r🚧 Instagram\n")
15 changes: 7 additions & 8 deletions modules/email_modules/imgur.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,26 @@
from lib.text import *
import random


async def imgur(email):
URL = "https://imgur.com/signin/ajax_email_available"

headers = {
'user-agent': random.choice(user_agent())
}

data = {
'email': email
}

try:
r = await Requests(URL, headers, data).post()



if """{"data":{"available":false},"success":true,"status":200""" in r.text:
return f"""\rβœ”οΈ {GREEN}Imgur{WHITE}\n"""
return f"""\rβœ”οΈ {GREEN}Imgur{WHITE}\n"""

else:
return f"""\r{RED}❌ Imgur{WHITE}\n"""
return f"""\r{RED}❌ Imgur{WHITE}\n"""

except Exception:
return """\r🚧 Imgur\n"""
return """\r🚧 Imgur\n"""
9 changes: 5 additions & 4 deletions modules/email_modules/mailru.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
from lib.requests import Requests
from lib.text import *
import random



async def mailru(email):
URL = "https://account.mail.ru/api/v1/user/exists?email={}"

Expand All @@ -16,11 +17,11 @@ async def mailru(email):
try:
if r.json()['body']['exists'] == True:
return f"βœ”οΈ {GREEN}Mail.ru{WHITE}\n"

else:
return f"""❌ {RED}Mail.ru{WHITE}\n"""
except:
return f"{RED}❌ Mail.ru{WHITE}\n"

except Exception:
return """\r🚧 Mail.ru\n"""
return """\r🚧 Mail.ru\n"""
Loading

0 comments on commit c98ee33

Please sign in to comment.