🕵️‍♂️ Investigate Google Accounts with emails.

Overview

screenshot

Python minimum version

Docker Cloud Build Status GitHub Workflow Status

Description

GHunt is an OSINT tool to extract information from any Google Account using an email.

It can currently extract:

  • Owner's name
  • Last time the profile was edited
  • Google ID
  • If the account is a Hangouts Bot
  • Activated Google services (YouTube, Photos, Maps, News360, Hangouts, etc.)
  • Possible YouTube channel
  • Possible other usernames
  • Google Maps reviews (M)
  • Possible physical location (M)
  • Events from Google Calendar (C)
  • Public photos (P)
  • Phones models (P)
  • Phones firmwares (P)
  • Installed softwares (P)

The features marked with a (P) require the target account to have the default setting of Allow the people you share content with to download your photos and videos on the Google AlbumArchive, or if the target has ever used Picasa linked to their Google account.
More info here.

Those marked with a (M) require the Google Maps reviews of the target to be public (they are by default).

Those marked with a (C) requires user to have Google Calendar set on public (default it is closed)

Screenshots

📰 Latest news

  • 02/10/2020 : Since few days ago, Google return a 404 when we try to access someone's Google Photos public albums, we can only access it if we have a link of one of his albums.
    Either this is a bug and this will be fixed, either it's a protection that we need to find how to bypass.
  • 03/10/2020 : Successfully bypassed. 🕺 (commit 01dc016)
    It requires the "Profile photos" album to be public (it is by default)
  • 20/10/2020 : Google WebArchive now returns a 404 even when coming from the "Profile photos" album, so the photos scraping is temporary (or permanently) disabled. (commit e762543)
  • 25/11/2020 : Google now removes the name from the Google Maps profile if the user has 0 reviews (or contributions, even private). I did not find a bypass for the moment, so all the help in the research of a bypass is appreciated.

Installation

Docker

The Docker image is automatically built and push on Dockerhub after each push on this repo.
You can pull the Docker image with:

docker pull mxrch/ghunt

Then, any of the scripts can be invoked through:

docker run -v ghunt-resources:/usr/src/app/resources -ti mxrch/ghunt check_and_gen.py
docker run -v ghunt-resources:/usr/src/app/resources -ti mxrch/ghunt hunt.py <email_address>

Manual installation

  • Make sure you have Python 3.7+ installed. (I developed it with Python 3.8.1)
  • Some Python modules are required which are contained in requirements.txt and will be installed below.

1. Chromedriver & Google Chrome

This project uses Selenium and automatically downloads the correct driver for your Chrome version.
⚠️ So just make sure to have Google Chrome installed.

2. Requirements

In the GHunt folder, run:

python -m pip install -r requirements.txt

Adapt the command to your operating system if needed.

Usage

For the first run and sometimes after, you'll need to check the validity of your cookies.
To do this, run check_and_gen.py.
If you don't have cookies stored (ex: first launch), you will be asked for the 5 required cookies. If they are valid, it will generate the Authentication token and the Google Docs & Hangouts tokens.

Then, you can run the tool like this:

python hunt.py [email protected]

⚠️ I suggest you make an empty account just for this or use an account where you never login because depending on your browser/location, re-logging in into the Google Account used for the cookies can deauthorize them.

Where I find these 5 cookies ?

  1. Log in to accounts.google.com
  2. After that, open the Dev Tools window and navigate to the Storage tab (Shift + F9 on Firefox) (It's called "Application" on Chrome)
    If you don't know how to open it, just right-click anywhere and click "Inspect Element".
  3. Then you'll find every cookie you need, including the 5 ones.

cookies

🛡️ Protecting yourself

Regarding the collection of metadata from your Google Photos account:

Given that Google shows "X require access" on your Google Account Dashboard, you might imagine that you had to explicitly authorize another account in order for it to access your pictures; but this is not the case.
Any account can access your AlbumArchive (by default):

account-dashboard

Here's how to check and fix the fact that you're vulnerable (which you most likely are):
Go to https://get.google.com/albumarchive/ while logged in with your Google account. You will be automatically redirected to your correct albumarchive URL (https://get.google.com/albumarchive/YOUR-GOOGLE-ID-HERE). After that, click the three dots on the top left corner, and click on setting

three-dots-setting

Then, un-check the only option there:

setting

On another note, the target account will also be vulnerable if they have ever used Picasa linked to their Google account in any way, shape or form. For more details on this, read PinkDev1's comment on issue #10.
For now, the only (known) solution to this is to delete the Picasa albums from your AlbumArchive.

Thanks

This tool is based on Sector's research on Google IDs and completed by my own as well.
If I have the motivation to write a blog post about it, I'll add the link here !

Comments
  • Error while retrieving photos in wait.until(element_has_substring_or_substring((By.XPATH,

    Error while retrieving photos in wait.until(element_has_substring_or_substring((By.XPATH, "//body")

    With b1a2a56ba9d15d0990fc6d4256493d6f2777c555

    Google Photos : XXX
    Traceback (most recent call last):              
      File "hunt.py", line 114, in <module>
        gpics(gaiaID, client, cookies, cfg)
      File "/GHunt/lib/photos.py", line 97, in gpics
        out = get_source(gaiaID, client, cookies, cfg)
      File "/GHunt/lib/photos.py", line 82, in get_source
        result = wait.until(element_has_substring_or_substring((By.XPATH, "//body"), photos_trigger, no_photos_trigger))
      File "/home/xxx/.local/lib/python3.7/site-packages/selenium/webdriver/support/wait.py", line 80, in until
        raise TimeoutException(message, screen, stacktrace)
    selenium.common.exceptions.TimeoutException: Message: 
    
    
    bug 
    opened by mahdi1234 20
  • Dockerize (fixes #7)

    Dockerize (fixes #7)

    A basic dockerization. Some notes:

    • An user could be created so that the script is executed by a non-root. Decided to keep it easy for now.
    • The data.txt should now be under the resources/ folder so that it's easier to mount to Docker.
    • Removed the hardcoded data.txt and moved it to the cfg dict.
    • This will become way more useful if a GitHub action or any other CI/CD builds it and publishes it to Docker Hub so people can just pull and use it instead of having to build it.

    Cheers!

    enhancement 
    opened by outime 16
  • This email address does not belong to a Google Account

    This email address does not belong to a Google Account

    Hi there @mxrch and team and thank you for your work on this tool.

    TL;DR: the tool reports that my cookies are fine and then it reports that given email doesn't belong to a google account (as per topic). I may be doing something wrong, but after encountering the tool I have done the following:

    1. docker pull
    2. ran hunt - learned about the cookies
    3. got cookies from the account page (so I have the account, at least on accounts.google.com)
    4. ran the check_and_gen script, which said cookies I gave it are valid
    5. reran the hunt tool - got the titular message

    There were no errors, no warnings:

    
         .d8888b.  888    888                   888    
        d88P  Y88b 888    888                   888    
        888    888 888    888                   888    
        888        8888888888 888  888 88888b.  888888 
        888  88888 888    888 888  888 888 "88b 888    
        888    888 888    888 888  888 888  888 888    
        Y88b  d88P 888    888 Y88b 888 888  888 Y88b.  
         "Y8888P88 888    888  "Y88888 888  888  "Y888
        
    [-] This email address does not belong to a Google Account.
    

    I used FF to get the cookies, am using freshest Docker image with the tool, am running Ubuntu OS. Any pointers?

    stale 
    opened by LIttleAncientForestKami 14
  • [Not an issue] TODO LIST & Discord for researches

    [Not an issue] TODO LIST & Discord for researches

    Docker

    • ✅ Link Dockerhub to automate the Docker image build
    • ✅ Adapt the Docker build in the Readme for Windows users too

    Features

    • ✅ Not load cookies by default in Google Photos & Google Maps & Youtube to have a public view and avoiding seeing private informations if we test with our own email. Gonna add options in config.py to load them.
    • ✅ (just write for the moment) Add a check to know if the target has a default profile picture or not, and if not, maybe open the image in a new window (will obviously not work on systems with no graphical display like Linux VPS) or find a way to print it directly in the terminal (but can cause incompatibility between terminals), or just print the link. I'll think about what we can do and what's better.
    • ✅ Adding the target's Google Calendar if it is in public (it is not by default)
    • ✅ Adding support to use scripts from outside the GHunt directory (issue #25)
    • Adding the extraction of the phone model associated to the Google Account, in the Password Forgot steps. Without Selenium it is a little hard but I'm studying it, it works with the same type of challenges used in the login, and a code is generated in the requests to let us access it. I already found how to generate the code per accounts, now I'm searching how to activate it, to then just go on the page with the right code activated, which always starts with "AM3QAY", you'll notice it easily. It's the "TL" parameter in the URL. Sometimes Google send a notification in the target's phone when we start the recovery procedure, so this eventual feature will be deactivated by default.
    • Adding the last Youtube activity with some stats, and extracts maybe the last 15 comments to analyze them with the JigSaw Perspective API (Jigsaw is a Google division) and calculating the aggressivity of the target.

    I'm also thinking about creating a Discord for the reverse-engineering and trying to dig together in the Google code, and why not communicate between the contributors. Let me know what do you think about the Discord or one of the element in the list !

    (PS: I just write this to-do so people know what is planned, to avoid issues like #75 )

    enhancement stale 
    opened by mxrch 14
  • Selenium TimeoutException has occured error ???

    Selenium TimeoutException has occured error ???

    "[!] Selenium TimeoutException has occured. Please check your internet connection, proxies, vpns, et cetera." error when i write cookies. Please help me.

    opened by haszimoto 13
  • TypeError: init() got an unexpected keyword argument 'options'

    TypeError: init() got an unexpected keyword argument 'options'

    GHunt$ sudo python3 check_and_gen.py [-] No stored cookies found

    Enter these browser cookies found at accounts.google.com :
    _Secure-3PSID => 2gfQYh2qGqQzMbOYH-vdik8MeFcTOrBgJ_xdmGXd1WZs
    APISID => qKMvZCwrVnExLNVsPYY5Yav2d SAPISID => DCVQhAXmgc-YgqvSFq8hiZKt HSID => ArJEblPhvcg1a

    [+] The cookies seems valid! Generating the Google Docs and Hangouts token...

    Google Docs Token => AC4w5ViFnxm5Wvoafbu_jhoSg:160313810 Traceback (most recent call last): File "check_and_gen.py", line 126, in auth_token, hangouts_token = get_hangouts_tokens(cookies, driverpath) File "check_and_gen.py", line 61, in get_hangouts_tokens driver = webdriver.Chrome( File "/usr/local/lib/python3.8/dist-packages/seleniumwire/webdriver/browser.py", line 86, in init super().init(*args, **kwargs) TypeError: init() got an unexpected keyword argument 'options'

    can you help?

    opened by shanow7 13
  • Added disclaimer/explanation for some features on README.md & Code analisys with CodeQL

    Added disclaimer/explanation for some features on README.md & Code analisys with CodeQL

    In a nutshell:

    • Exposed accounts must change a default setting to stop being exposed.
    • Accounts that used Picasa are hopeless.

    Read commit details, and file changes for insight.

    opened by ItsIgnacioPortal 12
  • Have to go to GHunt directory to run hunt.py or check_and_gen.py

    Have to go to GHunt directory to run hunt.py or check_and_gen.py

    I set up GHunt by cloning this repo, copying chromedriver to GHunt directory and generating a working data.txt. After that, I made 2 aliases:

    alias ghunt='python3 <path-to-hunt.py>'
    alias ghunt-gen='python3 <path-to-check_and_gen.py>'
    

    but these aliases won't work unless I call them in the GHunt directory, otherwise Ghunt would complain about missing chromedriver or cookies.

    Maybe it would be a good idea if Ghunt can fallback to use config in a dedicated config dir like ~/.config/GHunt or the dir which hunt.py is located in?

    enhancement 
    opened by tddschn 12
  • problem with check_and_gen.py , I think I don't have the hangout token

    problem with check_and_gen.py , I think I don't have the hangout token

    after putting the cookies, I had this problem

    [+] The cookies seems valid !
    Generating the Google Docs and Hangouts token...
    
    Google Docs Token => AC4w5VhWhxu9Y09gB6ZhOlcrRsb8KPGYZQ:1616189634244
    Traceback (most recent call last):
      File "check_and_gen.py", line 159, in <module>
        auth_token, hangouts_token = get_hangouts_tokens(cookies, driverpath)
      File "check_and_gen.py", line 68, in get_hangouts_tokens
        driver = webdriver.Chrome(
      File "/home/luc/.local/lib/python3.8/site-packages/seleniumwire/webdriver/browser.py", line 96, in __init__
        super().__init__(*args, **kwargs)
      File "/home/luc/.local/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__
        self.service.start()
      File "/home/luc/.local/lib/python3.8/site-packages/selenium/webdriver/common/service.py", line 98, in start
        self.assert_process_still_running()
      File "/home/luc/.local/lib/python3.8/site-packages/selenium/webdriver/common/service.py", line 109, in assert_process_still_running
        raise WebDriverException(
    selenium.common.exceptions.WebDriverException: Message: Service /home/luc/GHunt/chromedriver unexpectedly exited. Status code was: 127
    
    opened by luckyshark05 11
  • Cookie issue

    Cookie issue

    After copying the values asked by the script and putting them in i get "Seems like the cookies are invalid, try regenerating them." Despite doing this several times. Any help?

    help wanted 
    opened by teemeupyo 11
  • KeyError In program

    KeyError In program

    Traceback (most recent call last):
      File "hunt.py", line 117, in <module>
        confidence, locations = gmaps.get_confidence(reviews, cfg)
      File "C:\Users\hamza\Desktop\GHunt\lib\gmaps.py", line 233, in get_confidence
        location = sanitize_location(location)
      File "C:\Users\hamza\Desktop\GHunt\lib\utils.py", line 29, in sanitize_location
        town = location["municipality"]
    KeyError: 'municipality'
    
    bug 
    opened by ryzbaka 11
  • better version of load_endpoints func

    better version of load_endpoints func

    I moved the update of the headers dictionary to the beginning of the function, to avoid creating a new dictionary on each iteration of the loop. I replaced the ext_bin_headers dictionary comprehension with a regular loop and an update to the headers dictionary, which should be faster than creating a new dictionary. I replaced the ** operator with the update() method to merge the dictionaries, which is generally faster than using the ** operator.

    opened by geareo 0
  • wrong default profile detection

    wrong default profile detection

    sometimes the default profile picture detection gives incorrect results, i entered my own email (i have default pic) and ghunt told me that i have custom profile picture. additionally i tested another email that have custom profile picture and ghunt told that is default picture

    opened by sk3lk0 0
  • httpx.ConnectError

    httpx.ConnectError

    I get the following error when running ghunt gaia [TARGET GAIA ID] from the terminal, any ideas of what the problem might be?

    Traceback (most recent call last): File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/trio/_ssl.py", line 468, in _retry ret = fn(*args) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/ssl.py", line 974, in do_handshake self._sslobj.do_handshake() ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last): File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions yield File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpcore/backends/trio.py", line 80, in start_tls raise exc File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpcore/backends/trio.py", line 77, in start_tls await ssl_stream.do_handshake() File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/trio/_ssl.py", line 640, in do_handshake await self._handshook.ensure(checkpoint=True) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/trio/_ssl.py", line 221, in ensure await self._afn(*self._args) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/trio/_ssl.py", line 610, in _do_handshake await self._retry(self._ssl_object.do_handshake, is_handshake=True) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/trio/_ssl.py", line 473, in _retry raise trio.BrokenResourceError from exc trio.BrokenResourceError

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpx/_transports/default.py", line 60, in map_httpcore_exceptions yield File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpx/_transports/default.py", line 353, in handle_async_request resp = await self._pool.handle_async_request(req) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 253, in handle_async_request raise exc File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 237, in handle_async_request response = await connection.handle_async_request(request) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpcore/_async/connection.py", line 86, in handle_async_request raise exc File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpcore/_async/connection.py", line 63, in handle_async_request stream = await self._connect(request) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpcore/_async/connection.py", line 150, in _connect stream = await stream.start_tls(**kwargs) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpcore/backends/trio.py", line 74, in start_tls with map_exceptions(exc_map): File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/contextlib.py", line 153, in exit self.gen.throw(typ, value, traceback) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions raise to_exc(exc) httpcore.ConnectError

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last): File "/Users/cboutaud/.local/bin/ghunt", line 8, in sys.exit(main()) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/ghunt/ghunt.py", line 15, in main parse_and_run() File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/ghunt/cli.py", line 31, in parse_and_run process_args(args) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/ghunt/cli.py", line 44, in process_args trio.run(gaia.hunt, None, args.gaia_id, args.json) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/trio/_core/_run.py", line 1946, in run raise runner.main_task_outcome.error File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/ghunt/modules/gaia.py", line 28, in hunt is_found, target = await people_pa.people(as_client, gaia_id, params_template="max_details") File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/ghunt/apis/peoplepa.py", line 169, in people await person._scrape(as_client, person_data) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/ghunt/parsers/people.py", line 150, in _scrape await person_photo._scrape(as_client, photo_data, "profile_photo") File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/ghunt/parsers/people.py", line 60, in _scrape self.isDefault, self.flathash = await is_default_profile_pic(as_client, self.url) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/ghunt/helpers/utils.py", line 63, in is_default_profile_pic flathash = await get_url_image_flathash(as_client, image_url) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/ghunt/helpers/utils.py", line 52, in get_url_image_flathash req = await as_client.get(image_url) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpx/_client.py", line 1757, in get return await self.request( File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpx/_client.py", line 1533, in request return await self.send(request, auth=auth, follow_redirects=follow_redirects) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpx/_client.py", line 1620, in send response = await self._send_handling_auth( File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpx/_client.py", line 1648, in _send_handling_auth response = await self._send_handling_redirects( File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpx/_client.py", line 1685, in _send_handling_redirects response = await self._send_single_request(request) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpx/_client.py", line 1722, in _send_single_request response = await transport.handle_async_request(request) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpx/_transports/default.py", line 352, in handle_async_request with map_httpcore_exceptions(): File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/contextlib.py", line 153, in exit self.gen.throw(typ, value, traceback) File "/Users/cboutaud/.local/pipx/venvs/ghunt/lib/python3.10/site-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions raise mapped_exc(message) from exc httpx.ConnectError

    help wanted 
    opened by cboutaud 3
  • TypeError same as #389

    TypeError same as #389

    Describe the bug $ghunt login Traceback (most recent call last): File "/home/ah/.local/bin/ghunt", line 5, in from ghunt.ghunt import main File "/home/ah/.local/pipx/venvs/ghunt/lib/python3.9/site-packages/ghunt/init.py", line 1, in from ghunt import globals as gb; gb.init_globals() File "/home/ah/.local/pipx/venvs/ghunt/lib/python3.9/site-packages/ghunt/globals.py", line 5, in init_globals from ghunt.objects.utils import TMPrinter File "/home/ah/.local/pipx/venvs/ghunt/lib/python3.9/site-packages/ghunt/objects/utils.py", line 1, in from ghunt.helpers.utils import * File "/home/ah/.local/pipx/venvs/ghunt/lib/python3.9/site-packages/ghunt/helpers/utils.py", line 77, in def ppnb(nb: float|int) -> float: TypeError: unsupported operand type(s) for |: 'type' and 'type'

    To Reproduce Step 1: install python 3.11.1 ┌─[[email protected]]─[~/Downloads/Python-3.11.1] └──╼ $python3 -V Python 3.11.1

    Step 2: install ghunt per the instructions on the page $ pip3 install pipx $ pipx ensurepath $ pipx install ghunt

    Step 3: run command "ghunt login"

    System (please complete the following information): Linux Parrot Python 3.11.1

    help wanted 
    opened by QueenBytes 4
  • Disclaimer use restrictions not compatible with AGPL

    Disclaimer use restrictions not compatible with AGPL

    According to the GNU GPL FAQs page (which also applies to the AGPL), a license that limits who can use a program, or for what, is not a free software license.

    Thus, this usage restriction statement "Use it only in personal, criminal investigations, pentesting, or open-source projects." in the readme is not compatible with the AGPL.

    Though technically, every project that includes AGPL code has to be open-source anyway, but the original AGPL text already includes the "disclose source" requirement.

    Solution

    This can be resolved by removing the statement "Use it only in personal, criminal investigations, pentesting, or open-source projects." or alternatively by keeping the statement and using a non-free license similar to the AGPL that also allows for software usage restrictions.

    opened by elliotwutingfeng 1
Releases(v2.0.1)
  • v2.0.1(Dec 3, 2022)

    GHunt v2 is released ! 🎉

    Is is a totally refactored version from the v1.

    • CLI usage and modules
    • Python library usage
    • Fully async
    • JSON export
    • Browser extension to ease login

    Also, from the v1 :

    • It doesn't use an automated browser (Selenium) anymore.
    • Installation x1000 more easy
    • Light and so much faster bruh *sanic noise*
    • It is now a real framework, on which you can make additions easily.

    Upgrading from the v1

    Before installing the v2 update, just be sure you don't have a binary called ghunt in your PATH, I know some vilains did that.

    Upgrade your GHunt Companion extension if you already had installed it. Otherwise, there are no more requirements, just follow the new README !

    Source code(tar.gz)
    Source code(zip)
Owner
mxrch
in constant learning.
mxrch
Discord Bot Sending Members - Leaked by BambiKu ( Me )

Wokify Bot Discord Bot Sending Members - Leaked by BambiKu ( Me ) Info The Bot was orginaly made by someone else! Ghost-Dev just wanted to sell "priva

bambiku 6 Jul 05, 2022
Discord Mafia Game Bot using nextcord

Mafia-Bot Discord Mafia Game Bot using nextcord Features Mafia Game Game Replays Installation Run the following command to install required modules: p

Nian 6 Nov 19, 2022
Twitch Points Miner for multiple accounts with Discord logging

Twitch Points Miner for multiple accounts with Discord logging Creator of the Twitch Miner -- PLEASE NOTE THIS IS PROBABLY BANNABLE -- Made on python

8 Apr 27, 2022
An advanced api client for python botters.

[ALPHA] pybotters An advanced api client for python botters. 📌 Description pybottersは仮想通貨botter向けのPythonライブラリです。複数取引所に対応した非同期APIクライアントであり、bot開発により素晴ら

261 Dec 31, 2022
Python library for RetroMMO related stuff, including API wrapper

python library for RetroMMO related stuff, including API wrapper.

1 Nov 25, 2021
An almost dependency-less, synchronous Discord gateway library meant for my personal use

An almost dependency-less, synchronous Discord gateway library meant for my personal use.

h0nda 4 Feb 05, 2022
Telegram Userbot built with Pyrogram

Pyrogram Userbot A Telegram Userbot based on Pyrogram This repository contains the source code of a Telegram Userbot and the instructions for running

Athfan Khaleel 113 Jan 03, 2023
A comand-line utility for taking automated screenshots of websites

shot-scraper A comand-line utility for taking automated screenshots of websites For background on this project see shot-scraper: automated screenshots

Simon Willison 837 Jan 07, 2023
Box SDK for Python

Box Python SDK Installing Getting Started Authorization Server-to-Server Auth with JWT Traditional 3-legged OAuth2 Other Auth Options Usage Documentat

Box 371 Dec 29, 2022
A discord nuking tool made by python, this also has nuke accounts, inbuilt Selfbot, Massreport, Token Grabber, Nitro Sniper and ALOT more!

Disclaimer: Rage Multi Tool was made for Educational Purposes This project was created only for good purposes and personal use. By using Rage, you agr

†† 50 Jul 19, 2022
BleachBit system cleaner for Windows and Linux

BleachBit BleachBit cleans files to free disk space and to maintain privacy. Running from source To run BleachBit without installation, unpack the tar

1.9k Jan 06, 2023
A Discord Server Cloner Which Can Clone Any Discord Server In Just Few Minutes

A Discord Server Cloner Which Can Clone Any Discord Server In Just Few Minutes.

samet 4 Jul 23, 2022
Google Translater v2

Google_Translater_V2 Features Supporting 100 More Languages You can Set Your Custom Languages Supporting in Group Configs TG_BOT_TOKEN - Get bot token

Lntechnical 31 Nov 12, 2022
Discord bot to display private leaderboards for Advent of Code.

Advent Of Code Discord Bot Discord bot for displaying Advent of Code private leardboards, as well as custom leaderboards where participants can set th

The Future Gadgets Lab 6 Nov 29, 2022
Recommended AWS CDK project structure for Python applications

Recommended AWS CDK project structure for Python applications The project implements a user management backend component that uses Amazon API Gateway,

AWS Samples 110 Jan 06, 2023
Automate coin farming for dankmemer. Unlimited accounts at once. Uses a proxy

dankmemer-farm Simple script to farm Dankmemer coins with multiple accounts at once. Requires: Proxies, Discord Tokens Disclaimer I don't take respons

Scobra 12 Dec 20, 2022
A python package for fetching informations from GitHub API

Py-GitHub A python package for fetching informations from GitHub API Made with Python3 (C) @FayasNoushad Copyright permission under MIT License Licens

Fayas Noushad 6 Nov 28, 2021
Python library for the eWarehousing Solutions API.

eWarehousing Solutions Python Library This library provides convenient access to the eWarehousing Solutions API from applications written in the Pytho

eWarehousing Solutions 2 Nov 09, 2022
Discord bots that update their status to the price of any coin listed on x.vite.net

Discord bots that update their status to the price of any coin listed on x.vite.net

5am 3 Nov 27, 2022
Python Markov Chain chatbot running on Telegram

Hanasubot Hanasubot (Japanese 話すボット, talking bot) is a Python chatbot running on Telegram. The bot is based on Markov Chains so it can learn your word

12 Dec 27, 2022