From c7ca4ae09a31d0c7fbc93ac9d9eb1488809ad044 Mon Sep 17 00:00:00 2001 From: Syed Maruf Ali Date: Thu, 11 Jan 2024 17:22:30 +0530 Subject: [PATCH 1/2] Updated --- .google-cookie | 5 - .vscode/launch.json | 16 --- README.md | 151 ++++++++++++++++-------- __pycache__/igdox.cpython-39.pyc | Bin 2845 -> 0 bytes __pycache__/username.cpython-39.pyc | Bin 1000 -> 0 bytes ScrnShot.JPG => assets/Interface.jpg | Bin requirements.txt | 18 ++- run_007-TheBond.bat | 22 ++++ run_007-TheBond.sh | 19 +++ scripts/007-TheBond.py | 93 +++++++++++++++ scripts/Instagram.py | 34 ++++++ scripts/IpLookup.py | 30 +++++ scripts/PhoneLookup.py | 59 ++++++++++ scripts/Search.py | 17 +++ scripts/SearchUsername.py | 106 +++++++++++++++++ setup.sh | 13 --- src/.gitignore | 129 --------------------- src/.google-cookie | 5 - src/007-TheBond.py | 165 --------------------------- src/igdox.py | 52 --------- src/username.py | 44 ------- 21 files changed, 492 insertions(+), 486 deletions(-) delete mode 100644 .google-cookie delete mode 100644 .vscode/launch.json delete mode 100644 __pycache__/igdox.cpython-39.pyc delete mode 100644 __pycache__/username.cpython-39.pyc rename ScrnShot.JPG => assets/Interface.jpg (100%) create mode 100644 run_007-TheBond.bat create mode 100644 run_007-TheBond.sh create mode 100644 scripts/007-TheBond.py create mode 100644 scripts/Instagram.py create mode 100644 scripts/IpLookup.py create mode 100644 scripts/PhoneLookup.py create mode 100644 scripts/Search.py create mode 100644 scripts/SearchUsername.py delete mode 100644 setup.sh delete mode 100644 src/.gitignore delete mode 100644 src/.google-cookie delete mode 100644 src/007-TheBond.py delete mode 100644 src/igdox.py delete mode 100644 src/username.py diff --git a/.google-cookie b/.google-cookie deleted file mode 100644 index 64655cb..0000000 --- a/.google-cookie +++ /dev/null @@ -1,5 +0,0 @@ -#LWP-Cookies-2.0 -Set-Cookie3: 1P_JAR="2021-03-09-06"; path="/"; domain=".google.co.in"; path_spec; domain_dot; secure; expires="2021-04-08 06:26:34Z"; version=0 -Set-Cookie3: NID="208=Ro3_UaKn6qnvpKNdkpwsXHenAbzHwkzmuCQMXP-KqKynbYjXq1eOuYoGh4mrhf8VglKGoguZR1TEnSV0-2zWFtkOI23sw5lrUFkp4HORY8ZDRIrlJ017f0AWo-Hro24ZFtblrvNObR6ilaraR43mFRpn1JK2qi6xsceAf11e8S4"; path="/"; domain=".google.co.in"; path_spec; domain_dot; expires="2021-08-02 16:15:57Z"; HttpOnly=None; version=0 -Set-Cookie3: CGIC=""; path="/complete/search"; domain=".google.co.in"; path_spec; domain_dot; expires="2021-07-30 16:15:57Z"; HttpOnly=None; version=0 -Set-Cookie3: CGIC=""; path="/search"; domain=".google.co.in"; path_spec; domain_dot; expires="2021-07-30 16:15:57Z"; HttpOnly=None; version=0 diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index e44dcb5..0000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Python: Current File", - "type": "python", - "request": "launch", - "program": "${file}", - "console": "integratedTerminal" - }, - - ] -} \ No newline at end of file diff --git a/README.md b/README.md index 3a8196a..ab59740 100644 --- a/README.md +++ b/README.md @@ -1,61 +1,120 @@ +# 007-TheBond +## Description -# Inofrmation about the Script - -OSNIT Script , which let help you to find the information of your Friend , Family , the crush that dosen't talk to you and your enemies 😎 +007-TheBond is a Python OSINT (Open Source Intelligence) script that lets you find the information of your friends, family, crushes that don't talk to you, and your enemies.😎 # Screenshot of the Script -![Screenshot](ScrnShot.JPG) - -# Features -1. Instagram osnit -2. Phonenumber osnit -3. Search Username Across the Social Media -4. Search the web -5. IplookUp - - -# Disclaimer -Disclaimer : - DeadShot0x7 will not responsible if you misuse the script , by using the script you're that you will be responsible for the loss you have made -# Version - Version of 007-TheBond is 2.0 , this is official Release of the Project - -# Usage - -1. Clone the repository by using `git clone` -2. Go to the **cloned** directory -`cd 007-TheBond` -3. Create a virutal environment and activate the environment -``` -python -m venv venv -source venv/bin/activate -``` -3. Install the required packages or run `setup.sh` -``` -pip install -r requirements.txt -``` -OR -``` -./setup.sh -``` -4. Run the Script -``` -python 007-TheBond.py -``` +![Screenshot](./assets/Interface.jpg) + + +## Features + +1. **Instagram OSINT** + - Obtain information from Instagram profiles. +2. **Phonenumber OSINT** + + - Gather details using a phone number. + +3. **Search Username Across Social Media** + + - Explore a username's presence on different social media platforms. + +4. **Search the Web** + + - Perform a general web search for information. + +5. **IP Lookup** + - Retrieve details about an IP address. + +## Disclaimer + +**Disclaimer:** Deadshot0x7 will not be responsible if you misuse the script. By using the script, you acknowledge that you will be responsible for any loss you incur. + +## Version + +**Version:** 3.0 + +This is the official release of the Project. + +## Usage + +1. Clone the repository using git clone: + ```bash + git clone https://github.com/Deadshot0x7/007-TheBond.git + ``` +2. Navigate to the directory: + ```bash + cd 007-TheBond + ``` + Simply click `bash run_007-TheBond.bat ` on Windows or `bash run_007-TheBond.sh` on Linux and MacOS to execute the script effortlessly. + +Alternatively, manually execute the script by following the steps below: + +3. Create a virutal environment and activate the environment: + ```bash + For Linux and MacOS: + python3 -m venv venv + source venv/bin/activate + ``` + ```bash + For Windows: + python -m venv venv + venv\Scripts\activate + ``` +4. Install the requirements: + ```bash + pip install -r requirements.txt + ``` +5. Run the script: + ```bash + cd scripts + python3 007-TheBond.py + ``` +6. Enter the username/phone number/IP address/keyword you want to search for. # Testing -This script is tested on these operating system + +This script is tested on these operating system 1. Kali Linux 2. Parrot Linux 3. Termux (find Instagram user is not working currently) -4. Garuda Linux +4. Garuda Linux +5. Ubuntu + +# Contribution + +If you want to contribute to this project, you can fork this project and make a pull request. I will review your pull request and merge it if it is good. + +## How to Contribute + +### Bug Reports + +If you find a bug, please open an issue on our [Issue Tracker](https://github.com/Deadshot0x7/007-TheBond/issues) with detailed information about the bug, including how to reproduce it. + +### Feature Requests + +If you have a feature request, feel free to open an issue on our [Issue Tracker](https://github.com/Deadshot0x7/007-TheBond/issues). Provide a clear description of the feature you would like to see. + +### Pull Requests -# Like and Fork -Leave a like to the Repository and feel free to fork the project 🙂 +We welcome your pull requests! Follow these steps to contribute: -# Pull Request -Add your Ideas to the project, feel free to pull request the project +1. Fork the project. +2. Create your feature branch: + ```bash + git checkout -b feature/NewFeature + ``` +3. Commit your changes: + ```bash + git commit -m 'Add some feature' + ``` +4. Push to the branch: + ```bash + git push origin feature/NewFeature + ``` +5. Submit a pull request. # Discord Server Join the The Discord Community to know the Updation and Accounment of the tools 😊 diff --git a/__pycache__/igdox.cpython-39.pyc b/__pycache__/igdox.cpython-39.pyc deleted file mode 100644 index a85ddafda596b0d0f3938cd8fc2bc96a2bdb6e3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2845 zcmbtWOK;mo5MI74%97&uGftxPk-`NcyXc`s&_`T5Xmc^prU?*1z=GziY$g;*?^2d+ z$S3=U*vI^(z4p{&uRV2!5^Exj?4TmS8Sc(-=i6^~cInk>lMJs%@-H4wF!l#EikF3r zr}(G_3SeM_tU1s|)4;YFnjNcY8SG~U7T6aI>~phegYkl`JAdLgY2(GEBkhE-2TD5#SHQZXZ6(6CcDqW*$mFScI4ezsG8_59bDTffz}etEXj+7aq)8Yit?(W|%P5QJ=PZhrIl z_XF`$96>AC$JmYJM7x{^QIK*@G$|JaGpdGb%p0dwa>>oUL8jqF?=;Db)>(Y%vo}cX z3KENtwK5<~myn<2;4suS%}mzN@tq+n164(p&0`>Ds7W5wud*Bt5#+4=4+L_KMx95Y z%>d*AwH8Sbf7fwwkt04Hz!Y}pu`4wDVgGoc%k6F$a!TxI1TOiI3$d9)$P$nnMq{8E zy`KQEvm`jX*Az6T1?&rsiy@4A0{GsEcKo;-rK3@mht5(FbvdjWG4rowd|Z_RE_oLN z-3lm(_Ln~l2rZ)lja;b(l4h~U+CeCI68IeVK7Me+x~UYL33$%XR90Nq1C0l%ycfh- zC7p~W#zLR_1q3BRfPJGQf9$GR%d!*qBCL=!=4sFoxH}2n5fFH{q{~TSm8ypYT;+@z z>K%>jW71R=$0===A?4@>TG0AgA$&#)_Kg>OE>L{0tB?hyxaZ$eL~ic-MFB`w+PPso zG_#0?&KfLfDSQ#7;SK8q&y<17m+yng4da2CL@*T|D4a{GsO)f+v~9{&5^E&xk)VA;J|IyiLFFnxA@L~* zDj)ediAN-^PtNQuJGLz}(4Ur~kzB)_aII0dBwzgF!F71p6}Sz^GIlhVRdC$s#79Ck jusXwFuQ9Y||5DjUABwEq?*=pef&NGo{lZ{)qiX&GRQD$L diff --git a/__pycache__/username.cpython-39.pyc b/__pycache__/username.cpython-39.pyc deleted file mode 100644 index 53ccdefd153cecfd1501f9b7415c78adcf2af90d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1000 zcmcgqOK;Oa5Z+xo$tE-vhyp!uu;73yL6ZX#QiV{{JVY-MPzogS0oS`BR_(P}uLX?= z7x**zODl2W#9!!%S=+H99@nn4Gn&WF%=hhh?RE>nx$)!O`<8{!Ph)Hz0>&ZS^f3sA z7!J|2(0Gb-n@kBK%=(U|7PDCmw9V?Q0lLQU3EHE-;3XRS*r@VACuI8e;ie-Hiyel) zpgU-Z6=LKY#^@~)4{fCI#UVyZf*}JURuP%N1WWRjh*qJys0$wGWseuP=1L_8olYQ9 z<$aJ|wC~4JXL0v5{A+(|-D&0-l{-u6AQLFpQuG#e#rMi|BlVesij+2T4Fe{tJ+Y7UaF$11cU5CvIgEMWbAmaI# iOT&URi5t}AB>> ").lower() + + if choice == 'y' or choice == 'yes': + logging.basicConfig(format='%(asctime)s - %(message)s', level=logging.INFO) + logging.info("Yes I will be responsible for any damage caused by this script") + logging.info("Starting the script") + + # Use 'cls' for Windows and 'clear' for Unix/Linux/MacOS + os.system('cls' if os.name == 'nt' else 'clear') + print(banner) + print(f"\t Script by {author} V.3.0 \n \n") + + while True: + + print("1. Instagram \t 2. Web Search") + print("3. Phone \t 4. Ip Address Lookup") + print("5. Update \t 6. Search username in all platforms") + print("7. Exit") + + option = input(">>> ") + + if option == '1': + username = input("Enter the Instagram username: ") + SearchInsta(username) + + elif option == '2': + query = input("Search here: ") + WebSearch(query) + + elif option == '3': + phoneNo = input("Enter the phone no (with country code) : ") + Lookup(phoneNo) + + elif option == '4': + ip = input("Enter the ip address: ") + IpLookup(ip) + + elif option == '5': + try: + os.system("git pull") + except: + logging.basicConfig(format='%(asctime)s - %(message)s', level=logging.INFO) + logging.info("Error while updating the script") + exit() + + elif option == '6': + username = input("Enter the username: ") + SearchUsername(username) + + elif option == '7': + logging.basicConfig(format='%(asctime)s - %(message)s', level=logging.INFO) + logging.info("Exiting the script") + exit() + + else: + logging.basicConfig(format='%(asctime)s - %(message)s', level=logging.INFO) + logging.info("Invalid option") + exit() + + + else: + logging.basicConfig(format='%(asctime)s - %(message)s', level=logging.INFO) + logging.info("You have choosen not to continue") + exit() diff --git a/scripts/Instagram.py b/scripts/Instagram.py new file mode 100644 index 0000000..529d7d5 --- /dev/null +++ b/scripts/Instagram.py @@ -0,0 +1,34 @@ +# Imports +import requests +import json +from six.moves.urllib.request import urlopen + +class SearchInsta: + def __init__(self, username) -> None: + self.username = username + self.lookup() + + def lookup(self): + try: + #self.lookup = requests.get(f"https://www.instagram.com/{self.username}/?__a=1").json() + self.lookup = urlopen(f"https://www.instagram.com/{self.username}/?__a=1") + self.lookup = "".join(map(chr, self.lookup.read())) + self.lookup = json.loads(self.lookup) + self.print_data() + except Exception as e: + print(f"Error: {e}. Unable to make a request to Instagram.") + + def print_data(self): + print("\n Instagram Lookup Results: \n") + print(f"Username: {self.lookup['graphql']['user']['username']}") + print(f"Full Name: {self.lookup['graphql']['user']['full_name']}") + print(f"Bio: {self.lookup['graphql']['user']['biography']}") + print(f"Followers: {self.lookup['graphql']['user']['edge_followed_by']['count']}") + print(f"Following: {self.lookup['graphql']['user']['edge_follow']['count']}") + print(f"Business Account: {self.lookup['graphql']['user']['is_business_account']}") + print(f"Business Category: {self.lookup['graphql']['user']['business_category_name']}") + print(f"Private Account: {self.lookup['graphql']['user']['is_private']}") + print(f"Verified Account: {self.lookup['graphql']['user']['is_verified']}") + print(f"Profile Pic: {self.lookup['graphql']['user']['profile_pic_url_hd']}") + print("\n Search Completed! \n") + diff --git a/scripts/IpLookup.py b/scripts/IpLookup.py new file mode 100644 index 0000000..50346da --- /dev/null +++ b/scripts/IpLookup.py @@ -0,0 +1,30 @@ +# Imports +import requests + +class IpLookup: + def __init__(self, ip) -> None: + self.ip = ip + self.lookup() + + def lookup(self): + try: + self.lookup = requests.get(f"http://ip-api.com/json/{self.ip}").json() + self.print_data() + except Exception as e: + print(f"Error: {e}. Unable to make a request to Ip-API.") + + def print_data(self): + print("\n Ip Lookup Results: \n") + print(f"IP: {self.lookup['query']}") + print(f"Status: {self.lookup['status']}") + print(f"Country: {self.lookup['country']}") + print(f"Country Code: {self.lookup['countryCode']}") + print(f"Region: {self.lookup['region']}") + print(f"Region Name: {self.lookup['regionName']}") + print(f"City: {self.lookup['city']}") + print(f"Zip Code: {self.lookup['zip']}") + print(f"Time Zone: {self.lookup['timezone']}") + print(f"Isp: {self.lookup['isp']}") + print(f"Organization: {self.lookup['org']}") + print(f"AS: {self.lookup['as']}") + print("\n Search Completed! \n") \ No newline at end of file diff --git a/scripts/PhoneLookup.py b/scripts/PhoneLookup.py new file mode 100644 index 0000000..209270b --- /dev/null +++ b/scripts/PhoneLookup.py @@ -0,0 +1,59 @@ +# Imports +import phonenumbers as Pn +from phonenumbers import geocoder, carrier, timezone + +class Lookup: + def __init__(self, phoneNo) -> None: + self.phoneNo = phoneNo + self.parse_phoneNo() + + # Function to parse the phone no. + def parse_phoneNo(self): + try: + self.phoneNo = Pn.parse(self.phoneNo, None) + self.validate_phoneNo() + except Exception as e: + print(f"Error: {e}. Unable to parse the phone no.") + + # Function to validate the phone no. + def validate_phoneNo(self): + try: + self.valid = Pn.is_valid_number(self.phoneNo) + self.get_carrier() + except Exception as e: + print(f"Error: {e}. Unable to validate the phone no.") + + # Function to get the carrier name. + def get_carrier(self): + try: + carrier_info = carrier.name_for_number(self.phoneNo, "en") + self.carrier = carrier_info if carrier_info else "Unknown" + self.get_region() + except Exception as e: + print(f"Error: {e}. Unable to get the carrier name.") + + # Function to get the region. + def get_region(self): + try: + self.region = geocoder.description_for_number(self.phoneNo, "en") + self.get_timeZone() + except Exception as e: + print(f"Error: {e}. Unable to get the region.") + + # Function to get the time zone. + def get_timeZone(self): + try: + self.timeZone = timezone.time_zones_for_number(self.phoneNo) + self.print_data() + except Exception as e: + print(f"Error: {e}. Unable to get the time zone.") + + # Function to print the data. + def print_data(self): + print("\n Phone No. Lookup Results: \n") + print(f"Phone No: {self.phoneNo}") + print(f"Valid: {self.valid}") + print(f"Carrier: {self.carrier}") + print(f"Region: {self.region}") + print(f"Time Zone: {self.timeZone}") + print("\n Search Completed! \n") diff --git a/scripts/Search.py b/scripts/Search.py new file mode 100644 index 0000000..e6aa185 --- /dev/null +++ b/scripts/Search.py @@ -0,0 +1,17 @@ +# Imports +from googlesearch import search + +class WebSearch: + def __init__(self, query) -> None: + self.query = query + print("Searching...") + self.search() + + def search(self): + try: + for i in search(self.query, tld="com", num=10, stop=10, pause=2): + print(i) + print("\n Search Completed! \n") + except Exception as e: + print(f"Error: {e}. Unable to make a request to Google Search API.") + diff --git a/scripts/SearchUsername.py b/scripts/SearchUsername.py new file mode 100644 index 0000000..4a2de50 --- /dev/null +++ b/scripts/SearchUsername.py @@ -0,0 +1,106 @@ +# Imports +import requests + +class SearchUsername: + def __init__(self, username) -> None: + self.username = username + self.lookup() + + def lookup(self): + try: + self.lookup_instagram() + self.lookup_twitter() + self.lookup_facebook() + self.lookup_youtube() + self.lookup_snapchat() + self.lookup_spotify() + self.lookup_pinterest() + self.lookup_reddit() + self.lookup_tinder() + self.lookup_github() + self.lookup_linkedin() + + + except Exception as e: + print(f"Error: {e}. Unable to make a request to one or more platforms.") + + def lookup_instagram(self): + try: + instagram_url = f"https://www.instagram.com/{self.username}" + self.print_url(instagram_url, "Instagram") + except Exception as e: + print(f"Error: {e}. Unable to make a request to Instagram.") + + def lookup_twitter(self): + try: + twitter_url = f"https://www.x.com/{self.username}/" + self.print_url(twitter_url, "Twitter") + except Exception as e: + print(f"Error: {e}. Unable to make a request to Twitter.") + + def lookup_facebook(self): + try: + facebook_url= f"https://www.facebook.com/{self.username}/" + self.print_url(facebook_url, "Facebook") + except Exception as e: + print(f"Error: {e}. Unable to make a request to Facebook.") + + def lookup_youtube(self): + try: + youtube_url = f"https://www.youtube.com/{self.username}/" + self.print_url(youtube_url, "Youtube") + except Exception as e: + print(f"Error: {e}. Unable to make a request to Youtube.") + + def lookup_snapchat(self): + try: + snapchat_url = f"https://story.snapchat.com/@{self.username}/" + self.print_url(snapchat_url, "Snapchat") + except Exception as e: + print(f"Error: {e}. Unable to make a request to Snapchat.") + + def lookup_spotify(self): + try: + spotify_url = f"https://open.spotify.com/user/{self.username}/" + self.print_url(spotify_url, "Spotify") + except Exception as e: + print(f"Error: {e}. Unable to make a request to Spotify.") + + def lookup_pinterest(self): + try: + pinterest_url = f"https://www.pinterest.com/{self.username}/" + self.print_url(pinterest_url, "Pinterest") + except Exception as e: + print(f"Error: {e}. Unable to make a request to Pinterest.") + + def lookup_reddit(self): + try: + reddit_url = f"https://www.reddit.com/{self.username}/" + self.print_url(reddit_url, "Reddit") + except Exception as e: + print(f"Error: {e}. Unable to make a request to Reddit.") + + def lookup_tinder(self): + try: + tinder_url = f"https://www.tinder.com/@{self.username}/" + self.print_url(tinder_url, "Tinder") + except Exception as e: + print(f"Error: {e}. Unable to make a request to Tinder.") + + + def lookup_github(self): + try: + github_url = f"https://www.github.com/{self.username}/" + self.print_url(github_url, "Github") + except Exception as e: + print(f"Error: {e}. Unable to make a request to Github.") + + def lookup_linkedin(self): + try: + linkedin_url = f"https://www.linkedin.com/{self.username}/" + self.print_url(linkedin_url, "Linkedin") + except Exception as e: + print(f"Error: {e}. Unable to make a request to Linkedin.") + + def print_url(self, url, platform): + print(f"Link for {platform}: {url}") diff --git a/setup.sh b/setup.sh deleted file mode 100644 index fa09a33..0000000 --- a/setup.sh +++ /dev/null @@ -1,13 +0,0 @@ -echo Connecting to the python index manager -echo pip Installed - pip install phonenumbers -echo PhoneNumberInofrmation Database Downloaded - pip install google -echo Google Installed - pip install pyfiglet - echo Downloading Https Request - pip install requests - echo Httspps request download scuessfull - echo Dwonlaoding a module - pip install six -echo Important libaries downloaded Sucessfuly diff --git a/src/.gitignore b/src/.gitignore deleted file mode 100644 index b6e4761..0000000 --- a/src/.gitignore +++ /dev/null @@ -1,129 +0,0 @@ -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -pip-wheel-metadata/ -share/python-wheels/ -*.egg-info/ -.installed.cfg -*.egg -MANIFEST - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.nox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*.cover -*.py,cover -.hypothesis/ -.pytest_cache/ - -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py -db.sqlite3 -db.sqlite3-journal - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# Sphinx documentation -docs/_build/ - -# PyBuilder -target/ - -# Jupyter Notebook -.ipynb_checkpoints - -# IPython -profile_default/ -ipython_config.py - -# pyenv -.python-version - -# pipenv -# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. -# However, in case of collaboration, if having platform-specific dependencies or dependencies -# having no cross-platform support, pipenv may install dependencies that don't work, or not -# install all needed dependencies. -#Pipfile.lock - -# PEP 582; used by e.g. github.com/David-OConnor/pyflow -__pypackages__/ - -# Celery stuff -celerybeat-schedule -celerybeat.pid - -# SageMath parsed files -*.sage.py - -# Environments -.env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# Spyder project settings -.spyderproject -.spyproject - -# Rope project settings -.ropeproject - -# mkdocs documentation -/site - -# mypy -.mypy_cache/ -.dmypy.json -dmypy.json - -# Pyre type checker -.pyre/ diff --git a/src/.google-cookie b/src/.google-cookie deleted file mode 100644 index c0fe7bc..0000000 --- a/src/.google-cookie +++ /dev/null @@ -1,5 +0,0 @@ -#LWP-Cookies-2.0 -Set-Cookie3: 1P_JAR="2021-04-14-20"; path="/"; domain=".google.co.in"; path_spec; domain_dot; secure; expires="2021-05-14 20:07:43Z"; version=0 -Set-Cookie3: NID="212=QGKlWGQ_yiu6EB4JlWRce_7moXneOlL7i4QvkbHojx9U6hputA_slgl4ZydUgE0NaObDS3rUS8nT7upBG-7qu7uXAZcsJYOJCPxWUDXFiFNuaLk_ctmQRUK-ZWS-7j1a8qIT6eF1prt-CrJfgCRJDZpUZCtsqAxPnFoWIHdxVIs"; path="/"; domain=".google.co.in"; path_spec; domain_dot; expires="2021-10-06 05:39:00Z"; HttpOnly=None; version=0 -Set-Cookie3: CGIC=""; path="/complete/search"; domain=".google.co.in"; path_spec; domain_dot; expires="2021-10-03 05:39:00Z"; HttpOnly=None; version=0 -Set-Cookie3: CGIC=""; path="/search"; domain=".google.co.in"; path_spec; domain_dot; expires="2021-10-03 05:39:00Z"; HttpOnly=None; version=0 diff --git a/src/007-TheBond.py b/src/007-TheBond.py deleted file mode 100644 index 7f57c77..0000000 --- a/src/007-TheBond.py +++ /dev/null @@ -1,165 +0,0 @@ -#author: Sayyed Viquar Ahmed -import pyfiglet -from igdox import dox -import os -from googlesearch import search -import phonenumbers as p -from phonenumbers import carrier -from phonenumbers import geocoder -import json -import time -from urllib.request import urlopen -import requests -import sys -import urllib -import logging -from username import * - - -def check(inputt): - try: - print("\n") - #inputt = str(input("Ussername : ")) - acc = dox(inputt) - print("[*] Username: " + inputt) - - print("[-] Id : " + str(acc.user_id())) - - print("[*] Url : " + str(acc.url())) - print("[*] Number of Post : " + str(acc.posts())) - - print("[*] Followers : " + str(acc.followers())) - - print("[*] Number of following :\t " + str(acc.following())) - - print("[*] Bio : " + str(acc.bio())) - - if acc.private() == False: - print("[*] Private Account : No") - else: - print("[*] Private Account : Yes") - if acc.verified() == False: - print("[*] Verified: No") - else: - print("[*] Verified : Yes") - print(acc.verified()) - - print('\n') - return None - except urllib.error.HTTPError as e: - print("User not found") - return ("User not found") - -def web_search(query): - print("\n") - try : - i = 0 - for j in search(query, tld="co.in", num=40, stop=40, pause=2): - print(j) - i += 1 - #tis is just t raise error when search holds no results - if i ==0: - print("outloop") - raise StopIteration - return None - except StopIteration: - print("Can't Search your Query") - return("Can't Search your Query") - - -def number(no): - print("\n") - try: - #no = str (input("Enter number : \t")) - ph_no = p .parse(no) - geo_location = geocoder.description_for_number(ph_no,'en') - no_carrier = carrier.name_for_number(ph_no,'en') - print ("Country : ",geo_location) - print ("Sim Provider : ", no_carrier) - return None - except Exception : - print("No data found for this number") - return("No data found for this number") - -def find_ip(ip): - try : - #ip=str(input ("Enter Ip address ")) - url="http://ip-api.com/json/"+ip - - values = json.load(urlopen(url)) - print("[*] Ip Address : ",values['query']) - print("[*] Country :\t ",values['country']) - print("[*] City : ",values['city']) - return None - except Exception as e: - print("\n Can't find the information for the given ip address ") - return("\n Can't find the information for the given ip address ") - - -# main function -if __name__=="__main__": - - banner=pyfiglet.figlet_format("007-The Bond", font="slant") - print(banner) - - - print(" \t Script by DeadShot0x7 V 2.0") - print("\n \n") - print("DeadShot0x7 will not be responsible for the Loss you have made ,Enter y or n") - ans=str(input(">>>>>>>>>")) - if ans == 'y' or ans =="yes" or ans=="Y": - logging.basicConfig(format='%(asctime)s - %(message)s', level=logging.INFO) - logging.info("Yes I'm Responsbile for the loss I have done ") - - - while(1): - os.system("clear") - banner=pyfiglet.figlet_format("007-The Bond", font="slant") - print(banner) - - - print(" \t Script by DeadShot0x7 V 2.0") - print("\n \n") - print("1.Instagram \t 2.Search") - print("3.Phoneloopkup \t 4.Iplookup") - print("5.Update \t 6.Search username Across the Social Media") - print("7.Exit") - a=int(input("Select your option :\t")) - if a == 1: - inputt = str(input("Ussername : ")) - check(inputt) - if a ==2: - query = str ( input ("Search :") ) - web_search(query) - if a == 3: - no = str (input("Enter number with country code : \t")) - number(no) - if a == 4: - ip=str(input ("Enter Ip address ")) - find_ip(ip) - if a == 5: - try : - os .system("git pull") - except Exception as e: - print("Check your Internet Connection or No repository found") - if a == 6: - name=str(input ("Enter Username")) - instagram(name) - facebook(name) - pinrest(name) - - - - if a == 7: - print("Closing the application in 10 second") - time.sleep(1) - break - - - - - - - - - diff --git a/src/igdox.py b/src/igdox.py deleted file mode 100644 index 1e7fb19..0000000 --- a/src/igdox.py +++ /dev/null @@ -1,52 +0,0 @@ -import requests -import json -from six.moves.urllib.request import urlopen - -class dox: - def __init__(self, username): - link = "https://www.instagram.com/"+username+"/?__a=1" - response = urlopen(link) - final_process = "".join(map(chr, response.read())) - self.doxed = json.loads(final_process) - - def username(self): - return self.doxed["graphql"]["user"]["username"] - - def user_id(self): - return self.doxed["graphql"]["user"]["id"] - - def fullname(self): - return self.doxed["graphql"]["user"]["full_name"] - - def followers(self): - return self.doxed["graphql"]["user"]["edge_followed_by"]["count"] - - def following(self): - return self.doxed["graphql"]["user"]["edge_follow"]["count"] - - def profile_pic(self): - return self.doxed["graphql"]["user"]["profile_pic_url_hd"] - - def bio(self): - return self.doxed["graphql"]["user"]["biography"] - - def posts(self): - return self.doxed["graphql"]["user"]["edge_owner_to_timeline_media"]["count"] - - def url(self): - return self.doxed["graphql"]["user"]["external_url"] - - def business(self): - return self.doxed["graphql"]["user"]["is_business_account"] - - def recently(self): - return self.doxed["graphql"]["user"]["is_joined_recently"] - - def private(self): - return self.doxed["graphql"]["user"]["is_private"] - - def verified(self): - return self.doxed["graphql"]["user"]["is_verified"] - - def business_category(self): - return self.doxed["graphql"]["user"]["business_category_name"] \ No newline at end of file diff --git a/src/username.py b/src/username.py deleted file mode 100644 index a6b7a65..0000000 --- a/src/username.py +++ /dev/null @@ -1,44 +0,0 @@ -#author : Sayyed Viquar ahmed -import requests -import urllib -import time - - -def instagram(username): - try: - url="http://instagram.com/"+username - print("Username found in Instagram") - - except Exception as e : - print("Can't find the Username ") - - -def pinrest(username): - try: - url="http://pinrest.com/"+username - print("Username found in Pinrest platform") - - except Exception as e: - print("cant find the username") - -def facebook(username): - try: - url="http://facebook.com/"+username - print("Username found in FaceBook platform") - - except Exception as e: - print("cant find the username") - - - - - - - - - - - - - - From bf8f366a0a96b0f1c2664a12e5bd79e74a74723c Mon Sep 17 00:00:00 2001 From: Syed Maruf Ali Date: Thu, 11 Jan 2024 17:33:13 +0530 Subject: [PATCH 2/2] Updated --- .gitignore | 46 +++++++++++++------------------------------ README.md | 2 +- assets/Interface.png | Bin 0 -> 10333 bytes run_007-TheBond.bat | 1 + 4 files changed, 16 insertions(+), 33 deletions(-) create mode 100644 assets/Interface.png diff --git a/.gitignore b/.gitignore index 73358ad..71042f6 100644 --- a/.gitignore +++ b/.gitignore @@ -9,26 +9,15 @@ __pycache__/ # Distribution / packaging .Python build/ -develop-eggs/ dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -share/python-wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec @@ -57,7 +46,6 @@ cover/ # Django stuff: *.log -local_settings.py db.sqlite3 db.sqlite3-journal @@ -65,16 +53,9 @@ db.sqlite3-journal instance/ .webassets-cache -# Scrapy stuff: -.scrapy - # Sphinx documentation docs/_build/ -# PyBuilder -.pybuilder/ -target/ - # Jupyter Notebook .ipynb_checkpoints @@ -83,16 +64,16 @@ profile_default/ ipython_config.py # pyenv -# For a library or package, you might want to ignore these files since the code is -# intended to run in multiple environments; otherwise, check them in: +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: # .python-version # pipenv -# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. -# However, in case of collaboration, if having platform-specific dependencies or dependencies -# having no cross-platform support, pipenv may install dependencies that don't work, or not -# install all needed dependencies. -#Pipfile.lock +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +Pipfile.lock # PEP 582; used by e.g. github.com/David-OConnor/pyflow __pypackages__/ @@ -106,12 +87,11 @@ celerybeat.pid # Environments .env -.venv -env/ +.venv/ venv/ ENV/ -env.bak/ -venv.bak/ +.env.bak/ +.venv.bak/ # Spyder project settings .spyderproject @@ -137,3 +117,5 @@ dmypy.json # Cython debug symbols cython_debug/ +# google cookies +.google-cookie/ \ No newline at end of file diff --git a/README.md b/README.md index ab59740..5e7921c 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ 007-TheBond is a Python OSINT (Open Source Intelligence) script that lets you find the information of your friends, family, crushes that don't talk to you, and your enemies.😎 # Screenshot of the Script -![Screenshot](./assets/Interface.jpg) +![Screenshot](./assets/Interface.png) ## Features diff --git a/assets/Interface.png b/assets/Interface.png new file mode 100644 index 0000000000000000000000000000000000000000..a1a5309066e4372eb6e12921fdf92e3f72b9b412 GIT binary patch literal 10333 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 literal 0 HcmV?d00001 diff --git a/run_007-TheBond.bat b/run_007-TheBond.bat index a1f150c..5de764c 100644 --- a/run_007-TheBond.bat +++ b/run_007-TheBond.bat @@ -1,4 +1,5 @@ @echo off +color 0a :: Check if venv folder already exists if not exist venv (