
M365 환경에서 애플리케이션 수준 OAuth 토큰을 사용하여 데이터를 열거, 검색 및 외부 유출하는 두 개의 WinForms GUI 도구
Microsoft Graph API를 통한 Microsoft 365 공격에 사용되는 Red Team 도구입니다.

애플리케이션 수준 OAuth 토큰을 사용하여 M365 환경의 데이터를 열거, 검색, 외부 유출(exfiltration)하기 위한 두 개의 WinForms GUI 도구입니다 — 사용자 상호 작용이 필요 없습니다.
| 도구 | 대상 | 기능 |
|---|---|---|
MailPwned-GUI.ps1 | Exchange Online / Outlook | 사서함 탐색, 메일 검색, 첨부 파일 다운로드, 가장(impersonation) 이메일 전송 |
SharePwned-GUI.ps1 | SharePoint / OneDrive | 사이트 및 드라이브 탐색, 파일 검색, 문서 미리보기 및 다운로드 |
이 도구들은 승인된 red team 업무, 침투 테스트 및 보안 연구에만 사용하도록 제작되었습니다.
소유하지 않았거나 명시적인 서면 허가를 받지 않은 시스템에 사용하는 것은 불법이며 컴퓨터 사기 관련 법률(CFAA, Computer Misuse Act 등)을 위반할 수 있습니다.
작성자는 오용 또는 발생한 손해에 대해 어떠한 책임도 지지 않습니다.
두 도구 모두 세 가지 인증 방식을 지원합니다:
-TenantId <guid> -ClientId <guid> -ClientSecret <secret>
-TenantId <guid> -ClientId <guid> -CertificateThumbprint <thumb>
-AccessToken <jwt>
M365/Exchange Online 환경에서 이메일을 열거, 검색, 읽기 및 외부 유출하기 위한 WinForms GUI입니다.
| 권한 | 용도 |
|---|---|
Mail.Read | 모든 사서함의 메일 읽기 |
Mail.ReadWrite | 메일 보내기/답장/전달/삭제(선택 사항) |
User.Read.All | 모든 사서함 열거(전역 검색) |
참고:
messageentityType을 사용하는/v1.0/search/query는 애플리케이션 권한을 지원하지 않습니다. 앱 토큰을 사용할 때는 사용자 열거 + 사서함별 검색만이 실행 가능한 유일한 방법입니다 — MailPwned가 바로 이 방식을 구현합니다.
powershell.exe -STA -File .\MailPwned-GUI.ps1
WinForms에는
-STA(Single-Threaded Apartment)가 필요합니다.
password, credentials, VPN, secret 등 검색Ethical-Kaizoku가 개발한 CLI 버전은 여기에서 찾을 수 있습니다
테넌트 전체의 SharePoint 사이트와 OneDrive 드라이브에서 파일을 열거, 탐색, 검색, 미리보기 및 다운로드하기 위한 WinForms GUI입니다.
| 권한 | 용도 |
|---|---|
Sites.Read.All | 모든 SharePoint 사이트 열거 및 드라이브 탐색 |
Files.Read.All | 모든 드라이브의 파일 읽기 및 다운로드 |
User.Read.All | 모든 사용자의 OneDrive 드라이브 열거(선택 사항) |
대체(fallback):
Sites.Read.All을 사용할 수 없으면 SharePwned는Files.Read.All을 통한 사용자별 드라이브 열거로 대체합니다.
powershell.exe -STA -File .\SharePwned-GUI.ps1
driveItem 엔터티가 포함된 /v1.0/search/query)Sites.Read.All이 없을 때 드라이브별 검색password, secret, private key, 구성 파일, .env 등 검색Prefer: exchange.region=<region> 헤더는 요청을 올바른 데이터 센터로 라우팅합니다. 기본 지역이 아닌 테넌트를 대상으로 할 때 필요합니다.
https://graph.microsoft.com으로 직접 전송됩니다 — 프록시나 릴레이 없음roles 클레임이 포함됩니다. Graph 로그에는 등록된 앱의 ID로 애플리케이션 수준 액세스가 기록됩니다.MailPwned) 파일에서 사서함을 로드하면 GET /users 호출을 피할 수 있습니다 — OSINT 또는 이전 액세스로 UPN 목록을 이미 확보한 경우 더 낮은 발자국(footprint)을 남깁니다.data: URI로 포함합니다 — 열람 시 외부 요청이 발생하지 않습니다.교육 및 승인된 보안 테스트 용도로만 사용하십시오.
| 코드 | 지역 |
|---|
| EUR | 유럽 |
| FRA | 프랑스(소버린) |
| NAM | 북미 |
| GBR | 영국 |
| APC | 아시아 태평양 |
| AUS | 호주 |
| CAN | 캐나다 |
| IND | 인도 |
| JPN | 일본 |