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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
365-Stealer — Azure/O365 테넌트에 대한 Illicit Consent Grant 공격을 자동화하여 리프레시 토큰을 탈취하고, 이메일/OneDrive 데이터를 유출하며, CLI 및 웹 관리 포털을 통해 악성 Outlook 규칙을 생성합니다. | Kitploit
도구/GitHubGitHub/alteredsecurity/365-stealer
PhishingPenetration TestingCloud SecurityRed Teaming
GitHubalteredsecurity/365-stealer

365-Stealer

Azure/O365 테넌트에 대한 Illicit Consent Grant 공격을 자동화하여 리프레시 토큰을 탈취하고, 이메일/OneDrive 데이터를 유출하며, CLI 및 웹 관리 포털을 통해 악성 Outlook 규칙을 생성합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

365-Stealer

365-Stealer

Table of Contents

  • 365-Stealer 정보
  • Illicit Consent Grant 공격 정보
  • 365-Stealer의 주요 기능
  • 공격 환경 설정
    • 자동 Azure 앱 등록
    • 수동 Azure 앱 등록
    • 애플리케이션 구성
      • 클라이언트 시크릿 생성
      • API 권한 추가
  • 365-Stealer 설정
    • Apache 서버에서 SQLite3 활성화
  • 365-Stealer 관리 포털 구성
    • 경로 수정
    • 365-Stealer 관리 포털의 IP 화이트리스트 활성화
  • OPSEC 고려 사항
  • 명령줄 도움말
  • 블로그
  • 버그 및 기능 요청
  • 기여

About

365-Stealer는 불법 동의 부여 공격(illicit consent grant attack)을 자동화하기 위해 설계된 Python3 기반 도구입니다. 대상 사용자가 공격자의 애플리케이션에 무심코 권한을 부여하면, 공격자는 피해자의 갱신 토큰(refresh token)에 접근하게 됩니다. 이 갱신 토큰은 이후 다른 토큰을 생성하는 데 사용되어, 공격자는 피해자의 추가 입력 없이도 이메일, OneDrive의 파일, 노트 등의 민감한 데이터에 접근할 수 있습니다. 수동으로 이를 악용하는 것은 시간이 많이 소요될 수 있지만, 365-Stealer는 이 과정을 간소화하고 자동화합니다.

365-Stealer는 2개의 인터페이스를 제공합니다:

  1. CLI (Command Line Interface) - 완전히 Python3로 구축된 CLI는 도구의 기능에 직접 접근할 수 있게 해줍니다.
  2. Web UI - 웹 사용자 인터페이스는 PHP로 개발되었으며, Python3가 백그라운드에서 명령을 실행합니다.

Understanding the Illicit Consent Grant Attack

불법 동의 부여 공격은 공격자가 Azure 내에서 악성 애플리케이션을 등록하여 연락처, 이메일, 문서와 같은 민감한 데이터에 대한 접근을 요청할 때 발생합니다. 공격자는 일반적으로 합법적인 것으로 가장하여 사용자를 속여 앱에 동의하도록 합니다. 피해자가 '수락'을 클릭하면, 자신도 모르게 공격자에게 접근 권한을 제공하게 되며, 공격자는 피해자의 조직 자격 증명 없이 피해자를 대신하여 작업을 수행할 수 있습니다.

더 명확히 설명하면, 사용자가 권한을 부여하면 Entra ID는 공격자의 서버에 토큰을 보냅니다. 이 토큰은 공격자에게 이메일 읽기, 이메일 보내기, OneDrive의 파일에 접근, 그리고 피해자의 자격 증명을 사용한 다른 악의적인 활동을 수행할 수 있는 능력을 제공합니다. 비밀번호 탈취에 의존하는 피싱 공격과 달리, 불법 동의 부여 공격은 클라우드 애플리케이션의 권한 시스템을 남용하여 인증을 완전히 우회합니다.

Key Features of 365-Stealer

  • 갱신 토큰 탈취: 이 도구는 피해자로부터 갱신 토큰을 캡처하며, 이는 최소 90일 동안 새로운 액세스 토큰을 생성하는 데 사용되어 피해자 계정에 지속적으로 접근할 수 있게 합니다.
  • 피해자 대신 이메일 전송: 365-Stealer는 피해자의 계정에서 다른 사용자에게 첨부 파일이 포함된 이메일을 피해자 모르게 보낼 수 있습니다.
  • 악성 Outlook 규칙 생성: 수신 메일을 공격자가 제어하는 이메일로 전달하는 등 피해자의 Outlook에 유해한 규칙을 생성할 수 있습니다.
  • OneDrive에 파일 업로드: 이 도구는 피해자의 OneDrive 계정에 모든 파일을 업로드할 수 있습니다.
  • OneDrive, OneNote, 이메일에서 데이터 탈취: 365-Stealer는 OneDrive, OneNote에서 파일을 추출하고, 피해자 계정에서 모든 이메일(첨부 파일 포함)을 덤프할 수 있습니다.
  • 탈취된 데이터 관리: 365-Stealer 관리 포털을 통해 공격자는 갱신 토큰, 이메일, 파일, 사용자를 포함한 모든 침해 데이터를 관리할 수 있습니다.
  • OneDrive 문서 백도어: 이 도구는 OneDrive에 저장된 .docx 파일에 악성 매크로를 삽입하고 파일 확장자를 .doc으로 대체하여 백도어를 설치할 수 있습니다.
  • 침해 데이터 저장: 갱신 토큰, 이메일, 파일, 피해자 테넌트의 사용자 데이터 및 구성과 같은 수집된 모든 정보는 데이터베이스에 저장됩니다.
  • 데이터 탈취를 위한 사용자 지정 지연: 공격자는 데이터 탈취 중 탐지를 피하기 위해 초 단위로 시간을 지정하여 요청을 지연시킬 수 있습니다.
  • 피싱 애플리케이션 호스팅: 이 도구는 터미널에서 --run-app 명령을 사용하거나 365-Stealer 관리 포털을 통해 불법 동의 부여 공격을 수행하기 위한 가짜 애플리케이션을 호스팅할 수 있습니다.
  • 선택적 토큰 탈취: --no-stealing 플래그를 사용하면 추가 작업 없이 토큰만 탈취하여 공격자가 나중에 이를 악용할 수 있습니다.
  • 새로운 액세스 토큰 요청: 이 도구는 공격자가 침해된 테넌트 내의 모든 사용자 또는 특정 사용자에 대한 새로운 액세스 토큰을 요청할 수 있게 합니다.
  • 자격 증명을 사용하여 액세스 토큰 생성: --refresh-token, --client-id, --client-secret 플래그를 사용하여 공격자는 쉽게 새로운 액세스 토큰을 얻을 수 있습니다.
  • Azure 앱 등록 자동화: --app-registration 플래그는 Azure 앱 등록 과정을 자동화하여 수동 개입 없이 공격 인프라를 더 쉽게 설정할 수 있습니다.
  • 플래그를 사용하면 공격자가 OneDrive, Outlook 등 특정 소스에서 선택적으로 데이터를 탈취할 수 있습니다.

Setting Up the Attack Environment

Automated Azure App Registration

제공된 Python 스크립트를 사용하여 Azure에 애플리케이션을 자동으로 등록하려면 다음 단계를 따르세요:

  1. 시스템에 Python3가 설치되어 있는지 확인하세요.

  2. 365-Stealer 저장소를 클론합니다:

    root@kitploit:~
    git clone https://github.com/AlteredSecurity/365-Stealer.git
    cd 365-Stealer
    
  3. 필요한 Python 모듈을 설치합니다:

    root@kitploit:~
    pip install -r requirements.txt
    
  4. 자동 Azure 앱 등록 스크립트를 실행합니다:

    root@kitploit:~
    python 365-Stealer.py --app-registration
    
  • 스크립트는 Azure 테넌트 ID, 원하는 애플리케이션 이름, 리디렉션 URI를 입력하도록 요청합니다.
  • 또한 인증 방법(OAuth with Client Secret 또는 Device Code Flow)을 선택하고 API 권한(기본, LowImpact 또는 사용자 지정 권한)을 설정합니다.
  • 프롬프트에 따라 앱 등록 과정을 완료합니다.

Manual Azure App Registration

Azure 애플리케이션을 수동으로 등록하려면 다음 단계를 따르세요:

  1. Azure Portal에 로그인: https://portal.azure.com으로 이동하여 계정에 로그인합니다.
  2. Microsoft Entra ID로 이동: 포털에서 Microsoft Entra ID로 이동합니다.
  3. 앱 등록으로 이동: 왼쪽 메뉴에서 App registrations를 클릭합니다.`
  4. 새 등록 만들기: New registration을 클릭하여 새 애플리케이션 등록을 시작합니다.
  5. 애플리케이션 세부 정보 입력:
    • 이름: 애플리케이션의 이름을 입력합니다. 이 이름은 동의 과정 중 사용자에게 표시됩니다.
    • 지원되는 계정 유형: Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant)를 선택합니다.
  6. 리디렉션 URI 설정:
    • 365-Stealer 피싱 페이지를 가리키는 리디렉션 URI를 제공합니다. 형식은 https://<DOMAIN/IP>:<PORT>/login/authorized여야 하며, 여기서 도메인 또는 IP는 365-Stealer 애플리케이션을 호스팅할 위치에 해당합니다.
  7. 등록 완료:
    • 모든 세부 정보를 입력한 후 Register를 클릭하여 애플리케이션을 만듭니다.

app registration app registration

Configuring the Application

Creating Client Secrets

  1. 인증서 및 시크릿으로 이동:
    • Azure 포털에서 등록된 애플리케이션 아래의 Certificates & secrets 섹션으로 이동합니다.
  2. 새 클라이언트 시크릿 만들기:
    • New client secret을 클릭하고 시크릿에 대한 설명을 입력한 후 Add를 클릭합니다.
  3. 시크릿 값 저장:
    • 생성되면 시크릿 값을 복사하여 안전한 위치에 저장하세요. 페이지를 떠난 후에는 다시 검색할 수 없습니다.
Client Secrets

Adding API Permissions

  1. API 권한으로 이동:
    • Azure 포털에서 애플리케이션 아래의 API permissions 탭을 클릭합니다.
  2. 권한 추가:
    • Add a permission을 클릭하여 필요한 권한 선택을 시작합니다.
  3. Microsoft Graph 선택:
    • 사용 가능한 API 아래에서 Microsoft Graph를 선택합니다.
  4. 위임된 권한 선택:
    • 다음 단계에서 Delegated permissions을 클릭하여 로그인한 사용자를 대신하여 작동할 권한을 할당합니다.
  5. 필요한 권한 선택:
    1. Contacts.Read
    2. Mail.Read
    3. Notes.Read.All
    4. Mailboxsettings.ReadWrite
    5. Files.ReadWrite.All
    6. Mail.Send
    7. User.ReadBasic.All
Client Secrets

Setting Up 365-Stealer

Step-by-Step Instructions

  1. 365-Stealer 저장소 클론:

    git clone https://github.com/AlteredSecurity/365-Stealer.git

  2. 필요한 애플리케이션 설치:

    Python3

    XAMPP

  3. 파일 추출 및 저장:

    • 클론 후 365-Stealer 폴더를 복사하여 C:\xampp\htdocs\에 넣습니다. 이렇게 하면 PHP 애플리케이션을 호스팅하고 Python을 실행할 수 있습니다.
  4. Python 종속성 설치: 다음 명령을 실행하여 필요한 Python 라이브러리를 설치합니다.

    root@kitploit:~
    cd C:\xampp\htdocs\365-Stealer
    pip install -r requirements.txt
    
  5. 추가 설정 지침 따르기: 필요한 애플리케이션과 종속성을 설치한 후, yoursVictims/Readme.md 파일에 제공된 지침을 따르십시오. 이 지침은 365-Stealer가 제대로 작동하는 데 필요한 데이터베이스와 테이블을 설정하는 방법을 안내합니다.

Configuring the 365-Stealer Management Portal

Modifying Paths

  1. 스크립트 경로 조정:

    • 필요한 경우 C:/xampp/htdocs/yourvictims/에 있는 index.php 파일에서 365-Stealer.py, 데이터베이스, python3의 경로를 수정합니다.
Managemeent Config
  1. 파일 경로의 공백 처리:

    • Python이 경로에 공백이 있는 디렉토리(예: "Program Files")에 설치된 경우 경로를 따옴표로 묶으십시오. 예: "C:/Program Files/Python/python.exe"
Managemeent Config

Enabling IP Whitelisting for the 365-Stealer Management Portal

  1. 기본 화이트리스트:

    • 기본적으로 IP 화이트리스트가 활성화되어 있으며, 관리 포털은 localhost에서만 접근할 수 있습니다.
  2. 원격 IP 추가:

    • 원격 IP에서 접근을 허용하려면 구성에서 원하는 IP 주소를 추가할 수 있습니다.
  3. IP 화이트리스트 비활성화:

    • IP 화이트리스트를 완전히 비활성화하려면 구성 파일에서 $enableIpWhiteList = false;로 설정합니다.
Managemeent Config

OPSEC Consideration

접근 제한: 보안상의 이유로 365-Stealer 관리 포털에 대한 접근은 항상 귀하가 제어하는 인프라로 제한하십시오.

공개 노출 금지: 365-Stealer 관리 포털을 인터넷에 직접 노출하지 마십시오. 잠재적인 침해를 방지하기 위해 안전한 사설 네트워크를 통해서만 접근 가능하도록 하십시오.

Command Line Help

root@kitploit:~
usage: 365-Stealer.py [-h] [--app-registration] [--set-config] [--get-config] [--code CODE] [--token TOKEN] [--client-id CLIENT_ID]
                      [--client-secret CLIENT_SECRET] [--refresh-token REFRESH_TOKEN] [--token-path TOKEN_PATH]
                      [--refresh-all] [--refresh-user REFRESH_USER] [--redirect-url REDIRECT_URL]
                      [--database-path DATABASE_PATH] [--no-stealing] [--upload UPLOAD] [--create-rules CREATE_RULES]
                      [--send-mail SEND_MAIL] [--delete-all-data] [--delete-user-data DELETE_USER_DATA] [--run-app]
                      [--no-ssl] [--port PORT] [--disable-logs]
                      [--injection]
                      [--custom-steal {listusers,checklicence,outlook,onedrive,onenote} [{listusers,checklicence,outlook,onedrive,onenote} ...]]
                      [--delay DELAY]
optional arguments:
  -h, --help            show this help message and exit
  --app-registration    Azure App Registration
  --set-config          Set 365-Stealer Configuration
  --get-config          Get 365-Stealer Configuration
  --code CODE           Provide Authorization Code
  --token TOKEN         Provide Access Token
  --client-id CLIENT_ID
                        Provide Application Client ID
  --client-secret CLIENT_SECRET
                        Provide Application Client Secret
  --refresh-token REFRESH_TOKEN
                        Provide Refresh Token
  --token-path TOKEN_PATH
                        Provide Access Token file path
  --refresh-all         Steal all user's data again.
  --refresh-user REFRESH_USER
                        Steal particular user's data again.(Provide EmailID)
  --redirect-url REDIRECT_URL
                        Redirect Url
  --database-path DATABASE_PATH
                        Provide Database Path
  --no-stealing         Steal only Tokens
  --upload UPLOAD       Add files in victim's OneDrive(Provide File Path)
  --create-rules CREATE_RULES
                        Provide json file containing outlook rules
  --send-mail SEND_MAIL
                        Provide json file to send email
  --delete-all-data     Delete all data from the database!
  --delete-user-data DELETE_USER_DATA
                        Delete specific user data from the database!
  --run-app             Host the Phising App
  --no-ssl              Use http(port 80)
  --port PORT           Provide custom port to Host the Phishing App
  --disable-logs        Disable all http access logs
  --custom-steal {listusers,checklicence,outlook,onedrive,onenote} [{listusers,checklicence,outlook,onedrive,onenote} ...]
                        Steal specific data
  --injection           Enable Macro Injection
  --delay DELAY         Delay the request by specifying time in seconds while stealing

Blog

Azure의 초기 접근 공격 – 2025년 불법 동의 부여 공격 이해 및 실행

새 버전의 365-Stealer(이전 버전을 완전히 다시 작성한 버전)에 대한 블로그 게시물입니다. 이 게시물은 Microsoft 365에서 불법 동의 부여(ICG) 공격이 어떻게 작동하는지 탐구합니다.

이전 블로그 게시물 - 365-Stealer 소개

Bugs and Feature Requests

버그를 발견하거나 기능 요청이 있으면 이슈를 제기해 주십시오.

Contributing

프로젝트에 기여하고 더 좋게 만들고 싶다면, 여러분의 도움을 환영합니다.

도구 다운로드
선택적 데이터 탈취:
--custom-steal
  • 공유 데이터: 모든 침해 데이터는 database.db 파일에 저장되며, 팀과 공유하여 기존의 탈취된 토큰과 데이터를 활용할 수 있습니다.
  • 이메일 검색 및 필터링: 공격자는 365-Stealer 관리 포털을 사용하여 키워드, 제목, 사용자 이메일 주소로 특정 이메일을 검색하거나 첨부 파일이 있는 이메일을 필터링할 수 있습니다.
  • 사용자 데이터 내보내기: 이 도구는 공격자가 침해된 테넌트에서 사용자 정보를 덤프하고 추가 분석이나 사용을 위해 데이터를 CSV 파일로 내보낼 수 있게 합니다.