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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/markoh17/spray365
Password AttacksIDS/IPS EvasionPenetration TestingCloud SecurityAuthenticationRed TeamingArchived
GitHubmarkoh17/spray365

Spray365

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

저장소 보기
38157221년 전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를 실행하세요!

$ 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)을 참조하세요.

$ python3 spray365.py generate normal -ep <execution_plan_filename> -d <domain_name> -u <file_containing_usernames> -pf <file_containing_passwords>

예:

$ 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).

$ python3 spray365.py generate audit -ep <execution_plan_filename> -d <domain_name> -u <file_containing_usernames_and_passwords> --passwords_in_userfile

예:

$ 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)을 참조하세요.

$ python3 spray365.py spray -ep <execution_plan_filename>

예:

$ python3 spray365.py spray -ep ex-plan.s365

스프레이 작업 결과 검토

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

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

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

$ python3 spray365.py review <spray_results_json_filename>

예:

$ python3 spray365.py review spray365_results_2022-05-20_18-58-31.json

Spray365 사용법

생성 모드 (일반)
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.
생성 모드 (감사)
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.
도구 다운로드