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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
msteams — Microsoft Graph API를 사용하여 Microsoft Teams 채널을 통해 에이전트 트래픽을 터널링하는 Mythic C2 프로필로, AES256 암호화, 지터, 킬 데이트, 프록시 지원을 제공합니다. | Kitploit
도구/GitHubGitHub/whispergate/msteams
Defensive ToolsPenetration Testing FrameworksEncryption/Decryption ToolsPost-ExploitationCommand and ControlUtilities & FrameworksRed TeamingPayload Development
GitHubwhispergate/msteams

msteams

Microsoft Graph API를 사용하여 Microsoft Teams 채널을 통해 에이전트 트래픽을 터널링하는 Mythic C2 프로필로, AES256 암호화, 지터, 킬 데이트, 프록시 지원을 제공합니다.

저장소 보기
28172일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

msteams

Microsoft Graph API를 사용하여 Microsoft Teams 채널을 통해 통신하는 Mythic C2 프로필입니다.

작동 방식

root@kitploit:~
Agent <---> Microsoft Teams Channel <---> C2 Server <---> Mythic
  1. 에이전트는 OAuth2 클라이언트 자격 증명을 통해 Microsoft Entra ID에 인증합니다
  2. Mythic 메시지(base64 인코딩, AES 암호화)를 Teams 채널에 게시합니다
  3. C2 서버는 Graph API를 통해 채널을 폴링하고, 새 메시지를 Mythic으로 전달합니다
  4. Mythic의 응답이 채널에 다시 게시됩니다
  5. 에이전트가 채널을 폴링하여 응답을 수신합니다

통신은 일반적인 Teams 채널 활동으로 보입니다.

이 프로필이 지원하는 기능:

  • Kill Dates
  • Sleep Intervals with Jitter
  • AES256 Encryption
  • Proxy Configuration
  • 선택적 메시지 정리 (처리 후 메시지 삭제)
  • 전송을 위한 Webhook 폴백

설치

Mythic 서버에서:

root@kitploit:~
sudo ./mythic-cli install github https://github.com/Whispergate/msteams

또는 로컬 폴더에서:

root@kitploit:~
sudo ./mythic-cli install folder /path/to/msteams

Entra ID 설정

  1. 앱 등록 - Azure Portal > Microsoft Entra ID > App registrations에서 생성
  2. 클라이언트 암호 - Certificates & secrets에서 생성
  3. API 권한 - 애플리케이션 권한 부여 및 관리자 동의:
    • ChannelMessage.Read.All - 채널 메시지 읽기
    • ChannelMessage.Send - 채널 메시지 보내기
  4. 팀 및 채널 ID - Graph Explorer 또는 Teams 클라이언트 채널 링크를 통해 확인

ChannelMessage.Send를 사용할 수 없는 경우 Group.ReadWrite.All을 사용하거나 webhook URL을 구성하세요.

전체 설정 지침은 설치 후 Mythic 문서 페이지 https://<your-mythic-server>:7443/docs/c2-profiles/msteams에서 확인할 수 있습니다.

구성

Mythic UI에서 편집: C2 Profiles > msteams > View/Edit Config.

호환 에이전트

  • Starburst - WinHTTP 기반 MS Teams 전송을 통한 완전 지원

msteams C2 프로필 매개변수를 구현하는 모든 Mythic 에이전트가 이 프로필을 사용할 수 있습니다. 에이전트는 다음을 수행해야 합니다:

  1. 구성된 자격 증명을 사용하여 Graph API에 인증
  2. base64로 인코딩된 Mythic 메시지를 구성된 Teams 채널에 게시
  3. C2 서버의 응답을 위해 채널을 폴링

Azure 없이 테스트

Azure 또는 M365 계정 없이 로컬 테스트를 위한 모의 테스트 인프라가 test/에 포함되어 있습니다. 이를 통해 컴파일된 임플란트를 포함한 전체 C2 파이프라인을 로컬 가짜 Graph API에 대해 테스트할 수 있습니다.

모의 서버 설정

  1. test/mock_server.py를 Mythic 호스트에 복사하고 시작합니다:

    root@kitploit:~
    python3 mock_server.py
    

    이는 포트 8443에서 가짜 Graph API를 시작합니다.

  2. Mythic에서 msteams C2 프로필을 모의 값으로 구성합니다:

    root@kitploit:~
    {
      "tenant_id": "fake-tenant-id",
      "client_id": "fake-client-id",
      "client_secret": "fake-client-secret",
      "team_id": "fake-team-id",
      "channel_id": "fake-channel-id",
      "graph_base": "http://<mythic-host-ip>:8443/v1.0",
      "login_base": "http://<mythic-host-ip>:8443",
      "poll_interval": 3,
      "clear_messages": true,
      "debug": true
    }
    
  3. Mythic UI에서 msteams 프로필을 시작합니다.

컴파일된 임플란트(Starburst)로 테스트

모의 서버에 대해 실제 컴파일된 에이전트를 테스트하려면, 에이전트 바이너리가 실제 Graph API 엔드포인트 대신 모의 서버의 IP와 포트를 하드코딩하여 빌드되어야 합니다. Starburst 에이전트 코드(agent_code/src/transport/msteams.cc)에서:

root@kitploit:~
// Change these for mock testing:
#define GRAPH_API_HOST  "<mythic-host-ip>"
#define LOGIN_HOST      "<mythic-host-ip>"
#define API_PORT        8443

// And change WINHTTP_FLAG_SECURE to 0 in WinHttpOpenRequest
// since the mock server uses plain HTTP:
        WINHTTP_DEFAULT_ACCEPT_TYPES,
        0

그런 다음 Starburst를 재설치하고, msteams 프로필(동일한 가짜 tenant/client/team/channel ID 사용)로 페이로드를 빌드하고, Mythic 호스트에 접근할 수 있는 Windows VM에서 실행합니다.

프로덕션 페이로드를 빌드하기 전에 이러한 변경 사항을 되돌리는 것을 잊지 마세요:

root@kitploit:~
#define GRAPH_API_HOST  "graph.microsoft.com"
#define LOGIN_HOST      "login.microsoftonline.com"
#define API_PORT        443

        WINHTTP_DEFAULT_ACCEPT_TYPES,
        WINHTTP_FLAG_SECURE

가짜 에이전트로 테스트 (컴파일 없음)

에이전트를 컴파일하지 않고 빠른 파이프라인 테스트를 하려면:

root@kitploit:~
GRAPH_URL=http://<mythic-host-ip>:8443 python test/fake_agent.py

자세한 내용은 test/README.md를 참조하세요.

OPSEC 고려 사항

  • 멤버십이 최소인 전용 비공개 채널 사용
  • 처리 후 정리를 위해 clear_messages 활성화
  • 속도 제한을 피하기 위해 poll_interval을 적절하게 유지 (10-30초)
  • 모든 메시지는 Mythic 페이로드 수준에서 AES256으로 암호화됨
  • Teams 메시지는 종단 간 암호화되지 않음 (테넌트 관리자와 Microsoft에 표시됨)
  • Graph API 속도 제한은 앱당 테넌트당 초당 약 30 요청

파일 구조

root@kitploit:~
msteams/
  config.json                          # Mythic container config
  C2_Profiles/msteams/
    Dockerfile                         # Container image
    main.py                            # Mythic service entrypoint
    requirements.txt                   # Python dependencies
    rabbitmq_config.json               # RabbitMQ settings
    msteams/
      c2_functions/msteams.py          # C2Profile class + parameters
      c2_code/
        server.py                      # Main polling loop
        graph_client.py                # MS Graph API client
        mythic_client.py               # Mythic API forwarder
        config.py                      # Config singleton
        config.json                    # Default config values
  documentation-c2/msteams/_index.md   # Mythic docs page
  test/
    mock_server.py                     # Mock Graph API server
    fake_agent.py                      # Simulated agent for testing
    test_c2_server.py                  # Standalone C2 server test harness
    test_config.json                   # Test config with fake values
도구 다운로드
매개변수설명기본값
tenant_idEntra ID 테넌트(디렉터리) ID
client_id앱 등록 클라이언트 ID
client_secret앱 등록 클라이언트 암호
team_idTeams 팀 ID
channel_idTeams 채널 ID
webhook_url전송을 위한 선택적 webhook URL
graph_baseGraph API 기본 URLhttps://graph.microsoft.com/v1.0
login_base로그인 엔드포인트 기본 URLhttps://login.microsoftonline.com
poll_interval폴링 간격(초)10
clear_messages처리 후 메시지 삭제false
debug상세 로깅 활성화false