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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
azureOutlookC2 — Azure Outlook Command & Control (C2) - 손상된 Windows 장치를 Outlook 사서함에서 원격으로 제어합니다. 북한 APT InkySquid / ScarCruft / APT37을 위한 위협 에뮬레이션 도구. TTP: C2 작전에 Microsoft Graph API 사용. | Kitploit
도구/GitHubGitHub/boku7/azureoutlookc2
Cloud SecurityCommand and ControlRed TeamingPayload DevelopmentAPI Security
GitHubboku7/azureoutlookc2

azureOutlookC2

Azure Outlook Command & Control (C2) - 손상된 Windows 장치를 Outlook 사서함에서 원격으로 제어합니다. 북한 APT InkySquid / ScarCruft / APT37을 위한 위협 에뮬레이션 도구. TTP: C2 작전에 Microsoft Graph API 사용.

저장소 보기
5041003년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Azure Outlook C2

Azure Outlook 명령 및 제어 - Microsoft Graph API를 사용하여 C2 통신 및 데이터 유출을 수행합니다.

Outlook 사서함에서 손상된 Windows 장치를 원격으로 제어하세요.

제작자: Bobby Cooke (@0xBoku) & Paul Ungur (@C5pider)

CTI 위협 업데이트 (02/13/22)

Elastic Security Labs는 SIESTAGRAPH를 사용하는 실제 침입 활동을 발견했습니다. SIESTAGRAPH는 Outlook과 OneDrive를 사용하여 명령 및 제어를 위해 Microsoft의 GraphAPI와 상호작용합니다. 아래에서 Azure Outlook C2 통신에 대한 멋진 악성코드 분석 블로그를 확인하세요.

  • https://www.elastic.co/security-labs/siestagraph-new-implant-uncovered-in-asean-member-foreign-ministry
  • https://www.elastic.co/security-labs/update-to-the-REF2924-intrusion-set-and-related-campaigns

업데이트 (09/27/21)

  • Azure Outlook C2는 이제 크로스 플랫폼 그래픽 사용자 인터페이스(GUI)를 제공합니다!
    • C2 GUI를 QT로 만드는 방법을 가르쳐 준 Paul Ungur (@C5pider)에게 큰 감사를 전합니다!

C2 GUI로 Outlook 사서함을 통해 컴퓨터 제어

Outlook 사서함을 통해 컴퓨터 제어

  • 업데이트는 원래 Outlook 사서함 제어를 지원합니다.

비슷한 프로젝트에 대한 정보, APT/랜섬웨어 그룹이 실제로 사용하는 이 TTP에 대한 CTI 정보, 방어 조언, Azure C2 위협 에뮬레이션에 관심이 있는 레드팀러를 위한 권장 사항, 또는 이 블로그/README에 추가하면 좋을 다른 정보가 있으시면 저에게 연락하거나 Pull Request를 보내주세요. 감사합니다!

Azure Outlook C2 소개

이 프로젝트는 명령 및 제어(C2) 역할을 하는 공격자 제어 Azure Outlook 사서함으로 비콘을 보내는 임플란트로 구성되어 있으며, 손상된 장치를 원격으로 제어합니다. 공격자의 C2 사서함에 대한 Azure 새로 고침 토큰은 컴파일 중에 임플란트에 하드코딩됩니다. Windows 장치에서 실행되면 임플란트는 Microsoft Graph API를 통해 공격자의 임시 보관함 사서함에 접근합니다. 임플란트는 공격자의 임시 보관함 사서함에서 명령 지침을 읽고, 로컬 손상된 Windows 장치에서 명령을 실행한 후, 새 임시 보관함 메시지를 생성하여 명령 출력을 공격자에게 반환합니다. 임플란트는 임플란트 호스트 프로세스가 종료될 때까지 공격자의 사서함에서 원격으로 제어되는 이 동작을 반복합니다.

이걸 만든 이유

저는 약 6개월 전 Trustwave의 SpiderLabs Red Team에서 레드팀 활동을 시작했습니다. 한 엔게이지먼트에서 전설적인 Stephan Borosh (rvrsh3ll|@424f424f)와 함께 일할 영광을 누렸습니다. Steve와 Matt Kingstone은 Azure Domain Fronting에 대해 모두 가르쳐 주었고, C2 트래픽이 ajax.microsoft.com과 같은 합법적인 도메인을 사용하여 HTTPS를 통해 유출될 수 있다는 사실에 충격을 받았습니다. 심지어 Microsoft의 TLS 인증서를 사용합니다! 불행히도 저는 Azure에서 Domain Fronting이 죽던 시기에 레드팀을 시작했습니다. Azure에서 Domain Fronting은 사라졌지만, Azure로 할 수 있는 멋진 레드팀 기술은 여전히 많았습니다.

Steve는 저에게 Azure Device Code Phishing을 소개했습니다. 그동안 Azure와 Microsoft Graph API를 레드팀에 활용하는 방법을 깊이 파고들었습니다. 우리는 훌륭한 Dr. Nestori Syynimaa (@DrAzureAD)의 연구를 바탕으로 TokenTactics 도구를 만들었고, 관심이 있으시면 The Art of the Device Code Phish 블로그도 작성했습니다.

TokenTactics를 만들고 MS Graph API를 실험하는 동안, Microsoft Graph API를 C2 채널로 사용할 수 있다는 것을 발견했습니다. MS Graph API를 C2 채널로 사용하는 방법은 매우 다양하며, 저만 이 사실을 발견한 것이 아닙니다(처음도 아닙니다). HellsGate 기술의 창시자이자 발행인인 @smelly__vx가 만든 VX-Underground는 지난달 북한 고급 지속 위협(APT) 그룹 "InkySquid"(일명 ScarCruft 및 APT37)가 Microsoft Graph API를 C2 작전에 사용한다는 정보를 공개했습니다. 이 프로젝트의 티저를 Twitter와 LinkedIn에 게시한 후, 여러 DFIR 전문가들은 이 Microsoft Graph API를 C2 작전에 사용하는 기술이 수개월 전부터 실제로 랜섬웨어 그룹에 의해 활발히 사용되고 있다고 언급했습니다.

레드팀 엔게이지먼트 동안 C2 채널로 MS Graph API를 사용하여 Cobalt Strike를 작동시키려고 시도했지만 실패했습니다. 하지만 이것은 여전히 미래의 목표입니다. Cobalt Strike에서 이 작업을 수행할 때 직면하는 문제는 MS Graph API가 통신에 두 개의 토큰을 사용한다는 것입니다. 첫 번째 토큰은 최대 90일 동안 유효한 새로 고침 토큰입니다. 두 번째 토큰인 액세스 토큰은 약 1시간 동안 지속되는 임시 토큰입니다. MS Graph API와의 직접 통신은 액세스 토큰으로 인증하여 수행됩니다. 액세스 토큰이 만료되면 새로 고침 토큰을 사용하여 새 액세스 토큰을 얻을 수 있습니다. 저는 아직 레드팀 및 Cobalt Strike 개발이 처음이기 때문에, Cobalt Strike Malleable C2 프로필을 사용하여 지속적으로 새 액세스 토큰을 얻고 이 변경되는 액세스 토큰을 HTTPS 비콘 요청의 Authorization 헤더에 보내는 방법을 알아낼 수 없었습니다. Twitter에 티저를 공개한 후, Joe Vest, Alfie Champion 및 커뮤니티의 다른 락스타 분들이 Cobalt Strike에서 이 작업을 수행하는 방법에 대한 훌륭한 방향을 제시해 주었습니다! 조만간 이 프로젝트의 Cobalt Strike 후속편이 나오길 바랍니다 ;)

임플란트 실행 흐름

  1. 공격자의 하드코딩된 새로 고침 토큰을 사용하여 MS Graph API에 대한 액세스 토큰을 가져옵니다.
    • 이는 호스트 graph.microsoft.com에 대한 HTTPS TCP 통신을 통해 수행됩니다.
    • 이 트래픽은 합법적인 Microsoft 웹 서버에서 반환된 TLS 인증서를 사용하여 암호화됩니다.
    • 임플란트는 HTTPS 통신을 위해 WinInet 동적 링크 라이브러리를 사용합니다.
    • 하드코딩된 공격자 새로 고침 토큰은 90일 동안 유효해야 합니다.
      • 임플란트가 손상되면 공격자는 하드코딩된 새로 고침 토큰을 해지하여 악성코드 리버스 엔지니어의 접근을 제한할 수 있습니다.
  2. 임플란트가 공격자의 MS Graph API에 대한 액세스 토큰을 받으면 무한 루프에 진입합니다.
    • 루프 중에 인터넷 연결이 없거나 중단되면 임플란트는 3분 동안 대기했다가 다시 시도합니다.
    • 임플란트는 시간을 추적하여 15분이 지나면 새 액세스 토큰을 얻어 통신을 계속합니다.
  3. 루프의 첫 번째 작업은 MS Graph API 액세스 토큰을 사용하여 공격자의 임시 보관함 사서함에 접근하고 가장 최근 메시지를 읽어 손상된 Windows 장치에서 실행할 명령을 가져오는 것입니다.
    • 이렇게 하면 SMTP를 통해 이메일이 전송되지 않으므로 임시 보관함 사서함이 선택되었습니다.
  4. 명령이 수신되면 구문 분석되어 실행할 메타 명령을 결정합니다. 현재 3개의 메타 명령이 있습니다: cmd, sleep, exit
    • cmd: 메타 명령 뒤에 오는 문자열을 가져와 하위 프로세스를 생성하여 실행합니다.
    • sleep: 메타 명령 뒤에 오는 단어를 가져와 임플란트의 절전 간격을 제공된 값(밀리초)으로 변경합니다.
    • exit: 호스트 프로세스를 종료/중단합니다.
  5. 메타 명령이 cmd인 경우 임플란트는 명령을 실행할 하위 프로세스를 생성하고, 하위 프로세스는 표준 출력을 파이프에 쓰고, 명령 실행 후 종료되며, 호스트 임플란트 프로세스는 파이프를 통해 하위 프로세스의 출력을 읽습니다.
  6. 임플란트가 실행된 명령의 출력을 얻은 후, MS Graph API를 사용하여 명령 출력이 포함된 새 임시 보관함 이메일을 생성합니다.

지침

  1. 내 블로그 게시물 The Art of the Device Code Phish에 따라 명령 및 제어로 사용될 레드팀 Azure 인프라를 구축합니다:
    • Azure 계정 구독
      • Azure 계정을 만들 때 Microsoft DFIR 팀이 귀하의 계정을 레드팀 조직에 귀속시킬 수 있도록 도와주세요. 이는 실제 위협인지, 위협 에뮬레이션 서비스를 수행하는지, 또는 공격적 보안 연구를 수행하는지 조사할 때 팀의 시간을 절약하는 데 도움이 됩니다.
      • 자세한 내용은 Nick Carr - Microsoft 사이버 범죄 인텔리전스/조사 책임자를 참조하세요.
    • Azure Active Directory 테넌트
    • Azure Active Directory용 Office 365
    • Outlook 명령 및 제어 사서함용 사용자 생성
    • TokenTactics PowerShell 모듈 설치
  2. TokenTactics를 사용하여 방금 만든 Azure AD의 테넌트 ID를 가져옵니다:
root@kitploit:~
PS C:\Users\boku\Desktop\TokenTactics-main> Import-Module .\TokenTactics.psd1
PS C:\Users\boku\Desktop\TokenTactics-main> Get-TenantID -domain theharvester.world
1d5551a0-f4f2-4101-9c3b-394247ec7e08
  1. azureOutlookC2.c 파일 내 char tenantId[] 변수에 테넌트 ID를 추가합니다.
  2. TokenTactics를 사용하여 C2 사서함 사용자로 자신을 디바이스 코드 피싱하여 Azure 새로 고침 토큰을 가져옵니다:
root@kitploit:~
# Import the TokenTactics module into the PowerShell session
PS C:\Users\boku> cd .\TokenTactics
PS C:\Users\boku\TokenTactics> Import-Module .\TokenTactics.psd1
# Start a Device Code phish request to get a 'user_code'
PS C:\Users\boku\> Get-AzureToken -Client Graph
user_code        : ERDVDCNHH
  1. microsoft.com/devicelogin으로 이동하여 TokenTactics의 user_code를 입력하고 C2 사서함 사용자로 로그인합니다.
  2. TokenTactics를 실행 중인 PowerShell 세션에서 성공적인 디바이스 코드 피싱의 새로 고침 토큰을 복사합니다.
    • TokenTactics 작동 방식에 대한 자세한 내용은 The Art of the Device Code Phish를 참조하세요.
  3. azureOutlookC2.c 파일 내 char refreshToken[] 변수에 새로 고침 토큰을 추가합니다.
root@kitploit:~
void main() {
    // Variables
    char refreshToken[] = "0.AXwAoFFVHfL0AUGcOzlCR-x-CNYOWdOzUgJBrv-q0ikqsBx8ACA.AgABAAAAAA...
//                           ^Put your refresh token here and compile
  1. azureOutlookC2.c를 컴파일합니다.
root@kitploit:~
# Compile with x64 MinGW:
bobby.cooke$ cat compile.sh
x86_64-w64-mingw32-gcc -m64 -mwindows -Os azureOutlookC2.c -o azureOutlookC2.exe -lwininet
bobby.cooke$ bash compile.sh
  1. Windows 장치에서 azureOutlookC2.exe PE 파일을 실행합니다.
  2. 공격자 컴퓨터에서 브라우저를 열고 outlook.office.com에 로그인한 후 사서함에서 임플란트를 실행 중인 Windows 장치를 제어합니다.

초기 프로젝트 목표

  • Microsoft Graph API를 C2 채널로 사용하여 내 이메일에서 컴퓨터를 제어하는 작동하는 개념 증명을 만듭니다.

이 프로젝트가 제공하는 것

  • 이 프로젝트는 공격자가 Microsoft Graph API를 C2 작전에 어떻게 사용할 수 있는지 보여주는 개념 증명입니다.
  • 이 프로젝트는 다른 공격적 보안 연구자들이 배울 수 있도록 만들어졌습니다.
  • 저는 이 C2 채널을 방어하거나 탐지하는 좋은 방법을 개인적으로 생각해내지 못했습니다. 제 희망은 이를 저보다 훌륭한 방어자 분들에게 제공함으로써 멋진 방어 기술이 나오기를 바라는 것입니다.

이 프로젝트가 아닌 것

  • 이 프로젝트 자체는 OPSEC 안전한 엔게이지먼트에 사용할 수 있는 완전한 기능의 C2가 아닙니다.

방어자의 탐지 및 예방 아이디어 (추가하려면 Pull Request를 보내주세요)

Mehmet Ergene (@Cyb3rMonk) 탐지 조언

  1. "Graph API에 연결하는 애플리케이션을 기준선으로 설정하고 이상 징후를 확인하는 것이 아이디어가 될 수 있습니다. 그러나 쉽게 우회될 수 있습니다."
  2. "항상 그렇듯이, 비콘 트래픽 탐지. (Graph API 및 유사한 부분을 포함하도록 개선하겠습니다.)"

F-Secure - Alfie Champion이 공유

  • "Microsoft는 서비스 남용으로부터 조직을 방어하기 위해 사전 조치를 취한 기관의 한 예입니다. 최근 Azure 애플리케이션의 악의적인 사용을 탐지하고 차단하는 기능을 개발했습니다. 특히 F-Secure는 C3 프레임워크(예: OneDrive365 및 Outlook365(O365))에서 사용되는 모든 애플리케이션이 이제 악성으로 탐지되어 (약 3시간 이내에) Microsoft에 의해 비활성화되는 것을 관찰했습니다."

크레딧/참고 자료

  • Sektor7 Malware Development Courses
  • @passthehashbrwn - Dynamic payload generation with mingw
  • Raphael Mudge - Red Team Ops with Cobalt Strike (2 of 9): Infrastructure
  • Raphael Mudge - Red Team Ops with Cobalt Strike (3 of 9): C2
  • Microsoft Graph REST API v1.0
  • Microsoft WinInet
  • StackOverFlow - Create Process and Capture stdout
  • Microsoft - Creating a Child Process with Redirected Input and Output

유사한 멋진 프로젝트/연구/블로그

F-Secure C3 - Custom Command & Control

  • "C3는 이러한 요구 사항에 대응하여 구축되었습니다. 레드팀이 독특한 명령 및 제어 채널(C2)을 신속하게 개발하고 활용할 수 있도록 하는 도구입니다."
  • RIP OFFICE365 COMMAND AND CONTROL – WE HARDLY KNEW YOU
  • F-Secure C3 - Custom Command & Control GitHub Repo

Chirag Savla의 Callidus

  • "Callidus는 C# 언어로 .net core 프레임워크를 사용하여 개발되었습니다. 운영자가 O365 서비스를 활용하여 명령 및 제어 통신 채널을 구축할 수 있습니다. O365 서비스와 통신하기 위해 Microsoft Graph API를 사용합니다."
  • 3xpl01tc0d3r/Callidus GitHub Repo
  • Introduction to Callidus - Blog Post

Azure Application Proxy C2 - Adam Chester (@_xpn_)

  • Azure Application Proxy C2 - Research Blog
도구 다운로드
  • 그런 다음 임플란트는 본문이 비어 있는 두 번째 임시 보관함 이메일을 생성합니다.
    • 이를 통해 공격자의 임시 보관함 사서함 내에 명령 출력을 기록할 수 있습니다.
    • 이는 공격자가 임플란트가 실행할 다음 명령을 입력할 수 있도록 새 임시 보관함 메시지를 대기시킵니다.
  • 명령이 실행되고 출력이 공격자에게 반환된 후, 임플란트는 공격자가 제어하는 시간 동안 절전 모드로 전환한 다음 이 루프를 반복합니다.