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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Spray365 — Spray365는 사용자 지정 가능한 2단계 패스워드 스프레이 방식을 통해 Microsoft 계정(Office 365 / Azure AD) 스프레이를 쉽게 만들어 줍니다. 기본 제공 실행 계획에는 Azure Smart Lockout 및 안전하지 않은 조건부 액세스 정책을 우회하려는 옵션이 포함되어 있습니다. | Kitploit
도구/GitHubGitHub/markoh17/spray365
Password AttacksIDS/IPS EvasionPenetration TestingCloud SecurityAuthenticationRed TeamingArchived
GitHubmarkoh17/spray365

Spray365

Spray365는 사용자 지정 가능한 2단계 패스워드 스프레이 방식을 통해 Microsoft 계정(Office 365 / Azure AD) 스프레이를 쉽게 만들어 줍니다. 기본 제공 실행 계획에는 Azure Smart Lockout 및 안전하지 않은 조건부 액세스 정책을 우회하려는 옵션이 포함되어 있습니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Spray 365 로고


Spray365란 무엇인가?

Spray365는 Microsoft 계정(Office 365 / Azure AD)에 대한 유효한 자격 증명을 식별하는 비밀번호 스프레이 도구입니다. Spray365가 이미 존재하는 다른 많은 비밀번호 스프레이 도구들과 어떻게 다른가요? Spray365는 "실행 계획"에서 비밀번호를 스프레이할 수 있게 해줍니다. 스프레이 작업을 훨씬 전에 미리 생성된 실행 계획을 가지고 있으면 Spray365가 활용하는 많은 다른 이점이 있지만, 이는 또한 네트워크 오류나 기타 중단 후에 비밀번호 스프레이를 재개(-R 옵션)할 수 있게 합니다. Spray365를 직접 사용하여 Spray365 실행 계획을 생성하는 것이 가장 쉽지만, 호환되는 JSON 구조를 생성하는 다른 도구를 사용하면 고유한 비밀번호 스프레이 워크플로우를 쉽게 구축할 수 있습니다.

Spray365는 자격 증명을 스프레이할 때 유용한 몇 가지 옵션을 제공합니다. 무작위 사용자 에이전트를 사용하여 허용된 장치 유형을 제한하도록 구성된 안전하지 않은 조건부 액세스 정책을 탐지하고 우회할 수 있습니다. 마찬가지로 --shuffle_auth_order 인수는 덜 예측 가능한 방식으로 자격 증명을 스프레이하는 좋은 방법입니다. 이 옵션은 지능형 계정 잠금(예: Azure Smart Lockout)을 우회하기 위해 추가되었습니다. 완벽하지는 않지만, 자격 증명이 시도되는 순서를 무작위화하면 이러한 스프레이 작업의 탐지를 더 어렵게 만드는 등 다른 이점도 있습니다. Spray365는 또한 HTTP/HTTPS를 통한 프록시 트래픽을 지원하여 스프레이 작업의 소스를 조작하기 위해 Burp Suite와 같은 다른 도구와 잘 통합됩니다.

실행 계획 생성 (1단계)

실행 계획 생성

실행 계획 스프레이 (2단계)

실행 계획 스프레이

Spray365 결과 검토 (3단계)

비밀번호 스프레이 결과 검토

시작하기

요구 사항

  • Python
    • 3.9 (최소)
    • 3.10 (권장)

설치

리포지토리를 클론하고, 필요한 Python 패키지를 설치한 후 Spray365를 실행하세요!

root@kitploit:~
$ git clone https://github.com/MarkoH17/Spray365
$ cd Spray365
~/Spray365$ pip3 install -r requirements.txt -U
~/Spray365$ python3 spray365.py

사용법

실행 계획 생성 (일반)

자격 증명을 스프레이하려면 실행 계획이 필요하므로 하나를 생성해야 합니다! Spray365는 "일반" 모드에서 generate 명령을 실행하여 자체 실행 계획을 생성할 수 있습니다: (spray365.py generate normal). 자세한 내용은 도움말(spray365.py generate -h / spray365.py generate normal -h)을 참조하세요.

root@kitploit:~
$ python3 spray365.py generate normal -ep <execution_plan_filename> -d <domain_name> -u <file_containing_usernames> -pf <file_containing_passwords>

예:

root@kitploit:~
$ python3 spray365.py generate normal -ep ex-plan.s365 -d example.com -u usernames -pf passwords

실행 계획 생성 (감사)

Spray365는 유효한 자격 증명을 스프레이하여 다중 인증(MFA) 및 조건부 액세스 정책 구성을 감사할 수도 있습니다. 감사 스타일 실행 계획은 주어진 자격 증명 쌍에 대해 User-Agent + AAD Client ID + AAD Endpoint ID의 모든 조합을 시도합니다.

Spray365는 "감사" 모드에서 generate 명령을 실행하여 감사 스타일 실행 계획을 생성할 수 있습니다: (spray365.py generate audit). 자세한 내용은 도움말(spray365.py generate -h / spray365.py generate audit -h)을 참조하세요. 사용자와 비밀번호 목록을 별도로 제공하는 것(-u 및 -pf)도 가능하지만, 이러한 옵션은 비밀번호 스프레이(감사 아님)를 위한 실행 계획에 더 적합하며, 많은 잘못된 로그인 시도를 유발할 수 있습니다. 대신 -u / --user_file과 --passwords_in_userfile을 함께 사용하는 것을 고려하세요. 이 옵션은 입력 파일의 각 줄을 콜론으로 분할하여 콜론 앞의 값을 사용자 이름, 뒤의 값을 비밀번호로 처리하도록 Spray365에 지시합니다(예: <username>:<password>, jsmith:Password01).

root@kitploit:~
$ python3 spray365.py generate audit -ep <execution_plan_filename> -d <domain_name> -u <file_containing_usernames_and_passwords> --passwords_in_userfile

예:

root@kitploit:~
$ python3 spray365.py generate audit -ep ex-plan.s365 -d example.com -u usernames --passwords_in_userfile

실행 계획 스프레이

실행 계획이 생성되면 Spray365를 사용하여 처리할 수 있습니다. "spray" (spray365.py spray) 모드로 Spray365를 실행하면 지정된 실행 계획을 처리하고 적절한 자격 증명을 스프레이합니다. 모든 유형의 실행 계획(일반 및 감사)을 이 모드에서 처리할 수 있습니다. 자세한 내용은 도움말(spray365.py spray -h)을 참조하세요.

root@kitploit:~
$ python3 spray365.py spray -ep <execution_plan_filename>

예:

root@kitploit:~
$ python3 spray365.py spray -ep ex-plan.s365

스프레이 작업 결과 검토

실행 계획에서 자격 증명을 스프레이한 후 Spray365는 결과가 포함된 JSON 파일을 출력합니다. 이 파일은 JQ와 같은 다른 도구를 사용하여 처리하여 스프레이 작업이 발생한 후에 대한 통찰력을 얻을 수 있습니다. 그러나 Spray365에는 다음에 대해 알아보는 데 사용할 수 있는 "review" 명령도 포함되어 있습니다:

  • 유효한(및 유효하지 않은) 계정
  • 유효한(및 유효하지 않은) 자격 증명
  • 부분 유효 자격 증명 (인증은 성공했지만 MFA/조건부 액세스 정책에 의해 액세스가 차단됨)

자세한 내용은 도움말(spray365.py review -h)을 참조하세요.

root@kitploit:~
$ python3 spray365.py review <spray_results_json_filename>

예:

root@kitploit:~
$ python3 spray365.py review spray365_results_2022-05-20_18-58-31.json

Spray365 사용법

생성 모드 (일반)
root@kitploit:~
Usage: spray365.py generate normal [OPTIONS]

Generate a vanilla (normal) execution plan

Options:
-ep, --execution_plan           File path where execution plan should be saved  [required]
-d, --domain                    Office 365 domain to authenticate against  [required]
--delay                         Delay in seconds to wait between authentication attempts  [default: 30]
-mD, --min_loop_delay           Minimum time to wait between authentication attempts for a given user. This option takes into account the time one spray iteration will take, so a pre-authentication delay may not occur every time  [default: 0]

User options:
  -u, --user_file               File containing usernames to spray (one per line without domain)  [required]

Password options: [mutually_exclusive, required]
  -p, --password                Password to spray
  -pf, --password_file          File containing passwords to spray (one per line)
  --passwords_in_userfile       Extract passwords from user_file (colon separated)

Authentication options:
  -cID, --aad_client            Client ID used during authentication. Leave unspecified for random selection, or provide a comma-separated string
  -eID, --aad_endpoint          Endpoint ID used during authentication. Leave unspecified for random selection, or provide a comma-separated string

User Agent options: [mutually_exclusive]
  -cUA, --custom_user_agent     Set custom user agent for authentication requests
  -rUA, --random_user_agent     Randomize user agent for authentication requests  [default: True]

Shuffle options: [all_or_none]
  -S, --shuffle_auth_order      Shuffle order of authentication attempts so that each iteration (User1:Pass1, User2:Pass1, User3:Pass1) will be sprayed in a random order with a random arrangement of passwords, e.g (User4:Pass16, User13:Pass25, User19:Pass40). Be aware this option introduces the possibility that the time between consecutive authentication attempts for a given user may occur DELAY seconds apart. Consider using the-mD/--min_loop_delay option to enforce a minimum delay between authentication attempts for any given user.
  -SO, --shuffle_optimization_attempts [default: 10]

-h, --help                      Show this message and exit.
생성 모드 (감사)
root@kitploit:~
Usage: spray365.py generate audit [OPTIONS]

Generate an execution plan to identify flaws in MFA / Conditional Access Policies. This works best with with known credentials.

Options:
-ep, --execution_plan           File path where execution plan should be saved  [required]
-d, --domain                    Office 365 domain to authenticate against  [required]
--delay                         Delay in seconds to wait between authentication attempts  [default: 30]
-mD, --min_loop_delay           Minimum time to wait between authentication attempts for a given user. This option takes into account the time one spray iteration will take, so a pre-authentication delay may not occur every time  [default: 0]

User options:
  -u, --user_file               File containing usernames to spray (one per line without domain)  [required]

Password options: [mutually_exclusive, required]
  -p, --password                Password to spray
  -pf, --password_file          File containing passwords to spray (one per line)
  --passwords_in_userfile       Extract passwords from user_file (colon separated)

Shuffle options: [all_or_none]
  -S, --shuffle_auth_order      Shuffle order of authentication attempts so that each iteration (User1:Pass1, User2:Pass1, User3:Pass1) will be sprayed in a random order with a random arrangement of passwords, e.g (User4:Pass16, User13:Pass25, User19:Pass40). Be aware this option introduces the possibility that the time between consecutive authentication attempts for a given user may occur DELAY seconds apart. Consider using the-mD/--min_loop_delay option to enforce a minimum delay between authentication attempts for any given user.
  -SO, --shuffle_optimization_attempts [default: 10]

-h, --help                      Show this message and exit.
스프레이 모드
root@kitploit:~
Usage: spray365.py spray [OPTIONS]

Password spray user accounts using an existing execution plan

Options:
-ep, --execution_plan         File path to execution plan  [required]
-l, --lockout                 Number of account lockouts to observe before aborting spraying session (disable with 0)  [default: 5]
-R, --resume_index            Resume spraying passwords from this position in the execution plan  [x>=1]
-i, --ignore_success          Ignore successful authentication attempts for users and continue to spray credentials. Setting this flag will enable spraying credentials for users even if Spray365 has already identified valid credentials.

Proxy options: [all_or_none]
  -x, --proxy                 HTTP Proxy URL (format: http[s]://proxy.address:port)
  -k, --insecure              Disable HTTPS certificate verification

-h, --help                    Show this message and exit.
검토 모드
root@kitploit:~
Usage: spray365.py review [OPTIONS] RESULTS

View data from password spraying results to identify valid accounts and more

Options:
--show_invalid_creds
--show_invalid_users

-h, --help            Show this message and exit.

감사의 말

저자도구 / 기타링크
@__TexasRangermsspray: Azure AD에 대한 비밀번호 스프레이 공격을 수행하고 Azure 및 Office 365 엔드포인트에서 MFA 구현을 검증합니다.https://github.com/SecurityRiskAdvisors/msspray

면책 조항

사전 상호 동의 없이 대상을 공격하기 위해 이 소프트웨어를 사용하는 것은 불법입니다. 모든 관련 지역, 주 및 연방 법률과 해당되는 경우 허용 가능 사용 정책을 준수하는 것은 최종 사용자의 책임입니다. 이 소프트웨어를 사용함으로써 저자는 오용 또는 발생한 손해에 대한 모든 책임을 면제합니다.

도구 다운로드