Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # EyeSeeYou (Bitch)
- # Author: GhostSec Hackers
- # Date: September 20, 2023
- import sys
- import os
- import time
- import random
- import threading
- import requests
- from colorama import init, Fore
- from datetime import date
- import re
- from googlesearch import search
- from core.leaked import leaked
- from terminaltables import SingleTable
- import json
- init()
- # Initialize colorama for colored text
- warning = "[" + Fore.RED + "!" + Fore.RESET + "]"
- found = "[" + Fore.GREEN + "+" + Fore.RESET + "]"
- wait = "[" + Fore.MAGENTA + "*" + Fore.RESET + "]"
- class GhostDoxxer:
- def __init__(self, data):
- self.data = data
- self.email = None
- self.telephone = None
- self.urls = None
- self.ipv4 = None
- self.ipv6 = None
- def extract_info(self):
- self.extract_email()
- self.extract_telephone()
- self.extract_urls()
- self.extract_ipv4()
- self.extract_ipv6()
- def extract_email(self):
- self.email = re.findall(r'[a-zA-Z0-9+_\-\.]+@[0-9a-zA-Z][.-0-9a-zA-Z]*.[a-zA-Z]+', self.data)
- def extract_telephone(self):
- self.telephone = re.findall(r"(0|\\+33|0033)[1-9][0-9]{8}", self.data)
- def extract_urls(self):
- self.urls = re.findall(
- 'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', self.data)
- def extract_ipv4(self):
- self.ipv4 = re.findall(
- r"^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$", self.data)
- def extract_ipv6(self):
- self.ipv6 = re.findall(
- r"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|"
- r"([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|"
- r"([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|"
- r"([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|"
- r"([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|"
- r"([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|"
- r"[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|"
- r":((:[0-9a-fA-F]{1,4}){1,7}|:)|"
- r"fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|"
- r"::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|"
- r"(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|"
- r"(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|"
- r"([0-9a-fA-F]{1,4}:){1,4}:"
- r"((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|"
- r"(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$", self.data)
- def google_search(self, query):
- print("\n"+Fore.BLUE+"[I]"+Fore.RESET+" Performing Google search...\n")
- try:
- results = search(query, num=20, stop=20, pause=2)
- for i, result in enumerate(results, start=1):
- print(f"{Fore.GREEN}[+]{Fore.RESET} Result {i}: {result}")
- except Exception as e:
- print(f"{Fore.RED}[!]{Fore.RESET} An error occurred during the Google search: {e}")
- def search_email(self):
- email = input(" Email: ")
- print("\n"+wait+" Searching information for '%s'..." % (email))
- lkd = leaked()
- leak = lkd.email(email)
- if leak:
- TABLE_DATA = [('Title', 'Domain', 'Date'), ]
- for lk in leak:
- name = lk['Title']
- domain = lk['Domain']
- date = lk['Date']
- tuples = (name, domain, date)
- TABLE_DATA.append(tuples)
- table = SingleTable(TABLE_DATA, " Leaked Site ")
- print(table.table)
- print("\n"+wait+" Searching for Passwords...")
- table_dump = [('Email', 'Password'), ]
- url = "https://www.google.fr/search?num=100&q=\\intext:\"%s\"\\"
- content = requests.get(url % (email)).text
- urls = re.findall('url\\?q=(.*?)&', content)
- count = len(urls)
- if count == 0:
- print(warning+" No results found.")
- else:
- print(wait+" Scanning %s link(s)..." % (str(count)))
- count_password = 0
- for url in urls:
- if not "googleusercontent" in url:
- if not "/settings/ads" in url:
- if not "webcache.googleusercontent.com/" in url:
- if not "/policies/faq" in url:
- try:
- texte = requests.get(url).text
- combo = re.search(email+r":([a-zA-Z0-9_ & * $ - ! / ; , ? + = | \. ]+)", texte).group()
- if combo:
- passw = combo.split(":")[1]
- tuples = (email, passw)
- count_password += 1
- table_dump.append(tuples)
- except:
- pass
- if count_password > 0:
- table = SingleTable(table_dump, " Dump ")
- print("\n"+table.table)
- else:
- print(warning+" No data found for '%s'" % (email))
- def ip_finder(self):
- ip = input(" IP Address: ")
- print("\n"+wait+" Locating '%s'..." % (ip))
- TABLE_DATA = []
- url = "http://ip-api.com/json/"
- data = requests.get(url+ip).content.decode('utf-8')
- values = json.loads(data)
- status = values['status']
- if status != "success":
- print(warning+" Invalid IP Address.")
- else:
- infos = ("IP", ip)
- TABLE_DATA.append(infos)
- infos = ("ISP", values['isp'])
- TABLE_DATA.append(infos)
- infos = ("Organisation", values['org'])
- TABLE_DATA.append(infos)
- infos = ("Country", values['country'])
- TABLE_DATA.append(infos)
- infos = ("Region", values['regionName'])
- TABLE_DATA.append(infos)
- infos = ("City", values['city'])
- TABLE_DATA.append(infos)
- infos = ("Zip Code", values['zip'])
- TABLE_DATA.append(infos)
- localisation = str(values['lat'])+', '+str(values['lon'])
- infos = ("Location", localisation)
- TABLE_DATA.append(infos)
- infos = ("Maps", "https://www.google.fr/maps?q="+localisation)
- TABLE_DATA.append(infos)
- table = SingleTable(TABLE_DATA, ip)
- print("\n"+table.table)
- def run_tool(self):
- print("\nGhostDoxxer - Comprehensive Information Gathering Tool\n")
- while True:
- print("1. Extract Information from Text")
- print("2. Search Google for Email Address")
- print("3. Search Email Address for Leaks")
- print("4. Find Information by IP Address")
- print("5. Exit")
- choice = input("\nEnter your choice: ")
- if choice == "1":
- self.extract_info()
- print("\n"+Fore.BLUE+"[I]"+Fore.RESET+" Information Extraction Complete:")
- if self.email:
- print(f"Email Addresses: {', '.join(self.email)}")
- if self.telephone:
- print(f"Phone Numbers: {', '.join(self.telephone)}")
- if self.urls:
- print(f"URLs: {', '.join(self.urls)}")
- if self.ipv4:
- print(f"IPv4 Addresses: {', '.join(self.ipv4)}")
- if self.ipv6:
- print(f"IPv6 Addresses: {', '.join(self.ipv6)}")
- elif choice == "2":
- query = input("Enter query for Google search: ")
- self.google_search(query)
- elif choice == "3":
- self.search_email()
- elif choice == "4":
- self.ip_finder()
- elif choice == "5":
- print("Exiting GhostDoxxer...")
- break
- else:
- print(warning+" Invalid choice. Please select a valid option.")
- class FacebookSearchTool(GhostDoxxer):
- def __init__(self):
- super().__init__(data=None)
- def search_facebook(self, name):
- # Function to search Facebook profiles by name
- # ...
- def run_tool(self):
- print("\nFacebookSearchTool - Comprehensive Facebook Information Gathering Tool\n")
- while True:
- print("1. Search Facebook by Name")
- print("2. Extract Information from Text")
- print("3. Search Google for Email Address")
- print("4. Search Email Address for Leaks")
- print("5. Find Information by IP Address")
- print("6. Exit")
- choice = input("\nEnter your choice: ")
- if choice == "1":
- name = input("Enter the name to search on Facebook: ")
- self.search_facebook(name)
- elif choice == "2":
- data = input("Enter the text or data for analysis: ")
- self.data = data
- self.extract_info()
- print("\n"+Fore.BLUE+"[I]"+Fore.RESET+" Information Extraction Complete:")
- if self.email:
- print(f"Email Addresses: {', '.join(self.email)}")
- if self.telephone:
- print(f"Phone Numbers: {', '.join(self.telephone)}")
- if self.urls:
- print(f"URLs: {', '.join(self.urls)}")
- if self.ipv4:
- print(f"IPv4 Addresses: {', '.join(self.ipv4)}")
- if self.ipv6:
- print(f"IPv6 Addresses: {', '.join(self.ipv6)}")
- elif choice == "3":
- query = input("Enter query for Google search: ")
- self.google_search(query)
- elif choice == "4":
- self.search_email()
- elif choice == "5":
- self.ip_finder()
- elif choice == "6":
- print("Exiting FacebookSearchTool...")
- break
- else:
- print(warning+" Invalid choice. Please select a valid option.")
- if __name__ == "__main__":
- print("\nWelcome to the FacebookSearchTool - Comprehensive Facebook Information Gathering Tool")
- facebook_tool = FacebookSearchTool()
- facebook_tool.run_tool()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement