Giter Site home page Giter Site logo

kas0n / graphspy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from redbyte1337/graphspy

0.0 0.0 0.0 2.38 MB

Initial Access and Post-Exploitation Tool for AAD and O365 with a browser-based GUI

License: BSD 3-Clause "New" or "Revised" License

JavaScript 7.37% Python 23.49% CSS 0.19% HTML 68.96%

graphspy's Introduction

GraphSpy

   ________                             _________
  /       /  by RedByte1337    __      /        /           
 /  _____/___________  ______ |  |__  /   _____/_____ ______
/   \  __\_  __ \__  \ \____ \|  |  \ \_____  \\____ \   |  |
\    \_\  \  | \/  __ \|  |_> |   \  \/        \  |_> \___  |
 \______  /__|  |____  |   __/|___|  /_______  /   ___/ ____|
        \/           \/|__|        \/        \/|__|   \/

Table of Contents

Quick Start

Installation

The following goes over the recommended installation process using pipx to avoid any dependency conflicts.

GraphSpy is built to work on every operating system, although it was mainly tested on Linux and Windows.

For other installation options and detailed instructions, check the Installation page on the wiki.

# Install pipx (skip this if you already have it)
apt install pipx
pipx ensurepath

# Install the latest version of GraphSpy from pypi
pipx install graphspy

Execution

After installation, the application can be launched using the graphspy command from any location on the system.

Running GraphSpy without any command line arguments will launch GraphSpy and make it available at http://127.0.0.1:5000 by default.

graphspy

Now simply open http://127.0.0.1:5000 in your favorite browser to get started!

Use the -i and -p arguments to modify the interface and port to listen on.

# Run GraphSpy on http://192.168.0.10
graphspy -i 192.168.0.10 -p 80
# Run GraphSpy on port 8080 on all interfaces
graphspy -i 0.0.0.0 -p 8080

For detailed instructions and other command line arguments, please refer to the Execution page on the wiki.

Usage

Please refer to the GitHub Wiki for full usage details.

For a quick feature overview, check out the official release blog post.

Features

Access and Refresh Tokens

Store your access and refresh tokens for multiple users and scopes in one location.

Access Tokens

Refresh Tokens

Easily switch between them or request new access tokens from any page.

Token Side Bar

Device Codes

Easily create and poll multiple device codes at once. If a user used the device code to authenticate, GraphSpy will automatically store the access and refresh token in its database.

Device Codes

Files and SharePoint

Browse through files and folders in the user's OneDrive or any accessible SharePoint site through an intuitive file explorer interface.

Of course, files can also be directly downloaded.

OneDrive

Additionally, list the user's recently accessed files or files shared with the user.

Recent Files

Outlook

Open the user's Outlook with a single click using just an Outlook access token (FOCI)!

Outlook GraphSpy

Outlook

Graph Searching

Search for keywords through all Microsoft 365 applications using the Microsoft Search API.

For instance, use this to search for any files or emails containing keywords such as "password", "secret", ...

Graph Search

Custom Requests

Perform custom API requests towards any endpoint using access tokens stored in GraphSpy.

Custom Request

Custom request templates with variables can be stored in the database to allow easy reuse of common custom API requests.

Custom Request

Multiple Databases

GraphSpy supports multiple databases. This is useful when working on multiple assessments at once to keep your tokens and device codes organized.

Graph Request

Dark Mode

Use the dark mode by default, or switch to light mode.

Release Notes

Refer to the Release Notes page on the GitHub Wiki

Upcoming Features

  • Upload, Delete and Rename Files
  • More authentication options
    • Password, ESTSAuth Cookie, PRT, ...
  • Advanced token customization options and optional v2 API support (CAE)
  • Automatic Access Token Refreshing
  • Microsoft Teams
    • Sadly, most MSGrapgh scopes required for Microsoft Teams can not be obtained through a FOCI client id, limiting the usecases where it could be accessed.
    • So the best option would be to use the Skype API, which is a FOCI resource, although this API is not documented by Microsoft or intended for public use
  • Azure AD
    • List Users, Groups, Applications, Devices, Conditional Access Policies, ...
  • Cleaner exception handling
    • While this should not have any direct impact on the user, edge cases might currently throw exceptions to the GraphSpy output instead of handling them in a cleaner way.

Credits

The main motivation for creating GraphSpy was the lack of an easy to use way to perform post-compromise activities targetting Office365 applications (such as Outlook, Microsoft Teams, OneDrive, SharePoint, ...) with just an access token.

While several command-line tools existed which provided some basic functionality, none of them came close to the intuitive interactive experience which the original applications provide (such as the file explorer-like interface of OneDrive and SharePoint).

However, a lot of previous research was done by countless other persons (specifically regarding Device Code Phishing, which lead to the initial requirement for such a tool in the first place).

graphspy's People

Contributors

redbyte1337 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.