{"id":15038782,"url":"https://github.com/dirkjanm/roadtools","last_synced_at":"2025-05-13T16:11:53.572Z","repository":{"id":37586718,"uuid":"250760872","full_name":"dirkjanm/ROADtools","owner":"dirkjanm","description":"A collection of Azure AD/Entra tools for offensive and defensive security purposes","archived":false,"fork":false,"pushed_at":"2025-04-17T18:55:20.000Z","size":1543,"stargazers_count":2132,"open_issues_count":15,"forks_count":296,"subscribers_count":47,"default_branch":"master","last_synced_at":"2025-04-27T03:55:33.872Z","etag":null,"topics":["azure-active-directory","azuread","microsoft-graph","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dirkjanm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-03-28T09:56:08.000Z","updated_at":"2025-04-25T03:14:17.000Z","dependencies_parsed_at":"2023-10-04T15:10:41.562Z","dependency_job_id":"43e599b0-94eb-4d93-97cc-c1bfedf1d32f","html_url":"https://github.com/dirkjanm/ROADtools","commit_stats":{"total_commits":142,"total_committers":14,"mean_commits":"10.142857142857142","dds":0.5422535211267605,"last_synced_commit":"9ac92d3aee7349daad119a559829de137cdb971c"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirkjanm%2FROADtools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirkjanm%2FROADtools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirkjanm%2FROADtools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirkjanm%2FROADtools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dirkjanm","download_url":"https://codeload.github.com/dirkjanm/ROADtools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251085194,"owners_count":21533841,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure-active-directory","azuread","microsoft-graph","python"],"created_at":"2024-09-24T20:40:10.718Z","updated_at":"2025-04-27T03:55:38.198Z","avatar_url":"https://github.com/dirkjanm.png","language":"Python","readme":"# ROADtools \n*(**R**ogue **O**ffice 365 and **A**zure (active) **D**irectory tools)*\n\n![Python 3 only](https://img.shields.io/badge/python-3.7+-blue.svg)\n![License: MIT](https://img.shields.io/pypi/l/roadlib.svg)\n\n\u003cimg src=\"roadrecon/frontend/src/assets/rt_transparent.svg\" width=\"300px\" alt=\"ROADtools logo\" /\u003e\n\nROADtools is a framework to interact with Azure AD. It consists of a library (roadlib) with common components, the ROADrecon Azure AD exploration tool and the ROADtools Token eXchange (roadtx) tool.\n\n## ROADlib\n![PyPI version](https://img.shields.io/pypi/v/roadlib.svg)\n\nROADlib is a library that can be used to authenticate with Azure AD or to build tools that integrate with a database containing ROADrecon data. The database model in ROADlib is automatically generated based on the metadata definition of the Azure AD internal API. ROADlib lives in the ROADtools namespace, so to import it in your scripts use `from roadtools.roadlib import X`\n\n## ROADrecon\n![PyPI version](https://img.shields.io/pypi/v/roadrecon.svg)\n[![Build Status](https://dev.azure.com/dirkjanm/ROADtools/_apis/build/status/dirkjanm.ROADtools?branchName=master)](https://dev.azure.com/dirkjanm/ROADtools/_build/latest?definitionId=19\u0026branchName=master)\n\nROADrecon is a tool for exploring information in Azure AD from both a Red Team and Blue Team perspective. In short, this is what it does:\n* Uses an automatically generated metadata model to create an SQLAlchemy backed database on disk.\n* Use asynchronous HTTP calls in Python to dump all available information in the Azure AD graph to this database.\n* Provide plugins to query this database and output it to a useful format.\n* Provide an extensive interface built in Angular that queries the offline database directly for its analysis.\n\nROADrecon uses `async` Python features and is only compatible with Python 3.7 and newer (development is done with Python 3.8, tests are run with versions up to Python 3.11). \n\n### Installation\nThere are multiple ways to install ROADrecon:\n\n**Using a published version on PyPi**  \nStable versions can be installed with `pip install roadrecon`. This will automatically add the `roadrecon` command to your PATH.\n\n**Using a version from GitHub**  \nEvery commit to master is automatically built into a release version with Azure Pipelines. This ensures that you can install the latest version of the GUI without having to install `npm` and all it's dependencies. You can download the `roadlib` and `roadrecon` build files from the [Azure Pipelines artifacts](https://dev.azure.com/dirkjanm/ROADtools/_build/latest?definitionId=19\u0026branchName=master) (click on the button \"1 Published\". The build output files are stored in `ROADtools.zip`. You can either install the `.whl` or `.tar.gz` files directly using pip or unzip both and install the folders in the correct order (`roadlib` first):\n\n```\npip install roadlib/\npip install roadrecon/\n```\n\nYou can also install them in development mode with `pip install -e roadlib/`.\n\n**Developing the front-end**  \nIf you want to make changes to the Angular front-end, you will need to have `node` and `npm` installed. Then install the components from git:\n```\ngit clone https://github.com/dirkjanm/roadtools.git\npip install -e roadlib/\npip install -e roadrecon/\ncd roadrecon/frontend/\nnpm install\n```\n\nYou can run the Angular frontend with `npm start` or `ng serve` using the Angular CLI from the `roadrecon/frontend/` directory. To build the JavaScript files into ROADrecon's `dist_gui` directory, run `npm run build`.\n\n### Using ROADrecon\nSee [this Wiki page](https://github.com/dirkjanm/ROADtools/wiki/Getting-started-with-ROADrecon) on how to get started.\n\n## ROADtools Token eXchange (roadtx)\n![PyPI version](https://img.shields.io/pypi/v/roadtx.svg)\n[![Build Status](https://dev.azure.com/dirkjanm/ROADtools/_apis/build/status/dirkjanm.ROADtools?branchName=master)](https://dev.azure.com/dirkjanm/ROADtools/_build/latest?definitionId=19\u0026branchName=master)\n\nroadtx is a tool for exchanging and using different types of Azure AD issued tokens. It supports many different authentication flows, device registration and PRT related operations. For an overview of the tool, see the [roadtx Wiki](https://github.com/dirkjanm/ROADtools/wiki/ROADtools-Token-eXchange-(roadtx)).\n\n### Installation\nThere are multiple ways to install roadtx. Note that roadtx requires Python 3.7 or newer.\n\n**Using a published version on PyPi**  \nStable versions can be installed with `pip install roadtx`. This will automatically add the `roadtx` command to your PATH.\n\n**Using a version from GitHub** \nYou can clone this repository and install `roadlib` and then `roadtx` to make sure you have the latest versions of both the tool and the library:\n\n```\npip install roadlib/\npip install roadtx/\n```\n\nYou can also install them in development mode with `pip install -e roadtx/`.\n\n### Using roadtx\nSee [the Wiki](https://github.com/dirkjanm/ROADtools/wiki/ROADtools-Token-eXchange-(roadtx)) on how to use roadtx.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdirkjanm%2Froadtools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdirkjanm%2Froadtools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdirkjanm%2Froadtools/lists"}