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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
apimspray — Azure apim 미니 프록시 | Kitploit
도구/GitHubGitHub/crtvrffnrt/apimspray
OSINT (Open Source Intelligence)ReconnaissancePassword AttacksInformation GatheringCloud SecurityRed Teaming
GitHubcrtvrffnrt/apimspray

apimspray

Azure apim 미니 프록시

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

Apimspray

apimspray

Python Azure License Status

apimspray는 권한 있는 보안 연구 및 레드팀(Red Teaming)을 위해 설계된 특화된 Entra ID 패스워드 스프레이 툴킷(Passwordspraying Toolkit) 입니다. IP 로테이션을 위한 분산 프록시 계층으로 Azure API Management(APIM) 게이트웨이를 활용합니다.

자세한 내용은 블로그 포스트를 참조하세요.

사전 요구 사항

  • Azure CLI (az): 로테이터(rotator) 스크립트가 리소스를 배포하는 데 필요합니다. (Azure CLI에 이미 인증된 CLI 세션에서 스크립트를 실행하거나 Azure Cloud Shell을 사용하세요.)
  • 활성 Azure 구독: APIM 소비 계층(Consumption tier) 리소스를 배포하는 데 필요합니다. (비용은 무시할 수 있는 수준이며, 일반적으로 짧은 평가 기간 동안 $0.01 미만입니다.)

설치

  1. 저장소를 클론합니다.
  2. Python 종속성을 설치합니다:
    root@kitploit:~
    pip install -r requirements.txt
    
  3. Azure CLI에 로그인했는지 확인합니다:
    root@kitploit:~
    az login
    
    참고: 로테이터 스크립트는 리소스 배포를 위해 백그라운드에서 활성화된 Azure CLI 세션을 사용합니다.

설정

빠른 시작 (Azure Cloud Shell)

인증된 Azure 환경에서 직접 apimspray를 실행합니다.

Azure Cloud Shell에서 열기
root@kitploit:~
git clone https://github.com/crtvrffnrt/apimspray.git
cd apimspray
python3 apimspray.py --help

1. 게이트웨이 배포

여러 위치에 여러 APIM 게이트웨이를 배포합니다.

root@kitploit:~
python3 apimspraycreate.py --count 5 --outfile urls.txt

germanywestcentral 및 westeurope에 33개의 APIM 인스턴스를 배포하고 urls.txt에 저장합니다.

root@kitploit:~
 python3 apimspraycreate.py --location germanywestcentral,westeurope --count 33 --outfile urls.txt

apimspraycreate CLI 참조:

root@kitploit:~
usage: apimspraycreate.py [-h] --outfile OUTFILE [--count COUNT] [--location LOCATION] [--prefix PREFIX] [--realm-prefix REALM_PREFIX] [--delete-old]

apimspraycreate - Azure APIM 배포자

options:
  -h, --help            도움말 메시지를 표시하고 종료합니다.
  --outfile OUTFILE     URL 출력 파일
  --count COUNT         인스턴스 수
  --location LOCATION   배포할 쉼표로 구분된 APIM 위치. 제공된 경우 해당 리전만 사용되며, 첫 번째 위치가 리소스 그룹에 사용됩니다.
  --prefix PREFIX       API URL 접두사
  --realm-prefix REALM_PREFIX
                        Realm API 접두사
  --delete-old          이전 리소스 그룹 삭제

중요: 모든 방법에서 백그라운드에 활성 az 세션(az login)이 있어야 합니다.

2. 워드리스트 준비

대상 목록을 준비했는지 확인하세요:

  • users.txt: 사용자 계정 이름(UserPrincipalName) 목록 (예: [email protected]).
  • passwords.txt: 스프레이할 비밀번호 목록.

3. 정찰 / UPN 생성 (선택 사항)

사용자 목록이 없는 경우 도우미 스크립트 generate_upns.py를 사용할 수 있습니다. 이 도구는:

  1. 대상 Azure 테넌트를 쿼리하여 연결되고 확인된 모든 도메인을 찾습니다.
  2. GitHub에서 통계적으로 가능성이 높은 서비스 계정 사용자 이름 목록을 다운로드합니다.
  3. UPN(UserPrincipalName)의 순열 목록을 생성하여 users.txt에 저장합니다.

사용법:

root@kitploit:~
# 특정 도메인 또는 테넌트 ID에 대한 users.txt 생성
python3 generate_upns.py --target example.com
# OR 테넌트 ID 사용
python3 generate_upns.py --target 00000000-0000-0000-0000-000000000000

generate_upns CLI 참조:

root@kitploit:~
usage: generate_upns.py [-h] --target TARGET

연결된 Azure 테넌트 및 서비스 계정에서 UPN을 생성합니다.

options:
  -h, --help       도움말 메시지를 표시하고 종료합니다.
  --target TARGET  대상 도메인 (예: example.com) 또는 테넌트 UUID

사용법

root@kitploit:~
usage: apimspray.py [-h] [--urls URLS] [--users USERS] [--passwords PASSWORDS] [--output OUTPUT] [--tenant TENANT] [--domain DOMAIN] --mode {spray,validate} [--pace {stealth,low,mid,medium,high}]
                    [--continue-on-success]

apimspray - Entra ID 평가 도구

options:
  -h, --help            도움말 메시지를 표시하고 종료합니다.
  --urls URLS           APIM URL 파일 경로 (apimspraycreate.py 또는 apimsprayrotator.sh에서 생성)
  --users USERS         사용자 파일 경로
  --passwords PASSWORDS
                        비밀번호 파일 경로
  --output OUTPUT       출력 디렉터리
  --tenant TENANT       테넌트 ID 또는 도메인
  --domain DOMAIN       사용자에 도메인이 누락된 경우 추가
  --mode {spray,validate}
                        작동 모드. 'spray'는 모든 비밀번호를 모든 사용자에 대해 테스트합니다(1:N). 'validate'는 1:1 자격 증명 쌍 테스트를 수행합니다.
  --pace {stealth,low,mid,medium,high}
                        요청 및 잠금 관리에 대한 속도 프로필:
                         - high:    15 워커, 0.1초 지연, 청크당 10회 패스, 5분 잠금 대기, 20 안전 임계값
                         - medium:  5 워커, 1.0초 지연, 청크당 5회 패스, 10분 잠금 대기, 10 안전 임계값, 10% 지터
                         - low:     2 워커, 5.0초 지연, 청크당 2회 패스, 15분 잠금 대기, 5 안전 임계값, 20% 지터
                         - stealth: 1 워커, 30.0초 지연, 청크당 1회 패스, 20분 잠금 대기, 1 안전 임계값, 40% 지터
  --continue-on-success
                        유효한 자격 증명이 발견된 후에도 평가를 계속합니다.

모드

  • validate: user:password 쌍 목록을 확인합니다. 동일한 길이의 목록이 필요합니다.

    root@kitploit:~
    python3 apimspray.py --urls urls.txt --mode validate --users u.txt --passwords p.txt
    
  • spray: 하나의 비밀번호를 모든 사용자에 대해 시도한 후 대기(설정된 경우)한 다음 다음 비밀번호로 이동합니다.

    root@kitploit:~
    python3 apimspray.py --urls urls.txt --mode spray --users users.txt --passwords common_passwords.txt --pace medium
    

속도 프로필

--pace 인수는 스프레이의 공격성을 제어합니다. 값은 안정성과 안전을 보장하기 위해 하드코딩되어 있습니다.

  • 카운트: 잠금 타이머가 재설정될 때까지 각 사용자당 시도할 비밀번호 수.
  • 잠금 대기: 비밀번호 청크 사이에 대기하는 시간.
  • 안전 임계값: 이 수만큼의 계정이 잠기면(AADSTS50053) 도구가 즉시 중단됩니다.
  • 지터: 지연 시간을 무작위화하여 정적 타이밍 분석을 회피합니다.

출력

결과는 results/<타임스탬프>/ 디렉터리에 저장됩니다:

  • valid_*.txt: 성공적인 인증 (MFA 필요 또는 토큰 수신).
  • blocked_*.txt: 잠기거나 조건부로 차단된 계정.
  • failed_*.txt: 잘못된 자격 증명 또는 사용자를 찾을 수 없음.

크레딧 및 참고 자료

  • o365spray: ROPC 흐름에 대한 로직 영감.
  • TeamFiltration: 도구 구조에 대한 디자인 영감.
  • FireProx: 클라우드 게이트웨이 로테이션 기술의 선조.
도구 다운로드
프로필워커지연카운트 (청크)잠금 대기안전 임계값지터
high150.1s105m20 잠금0%
medium51.0s510m10 잠금10%
low25.0s215m5 잠금20%
stealth130.0s120m1 잠금40%