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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Stormspotter — Azure 및 Azure Active Directory 개체를 그래프로 나타내는 Azure Red Team 도구 | Kitploit
도구/GitHubGitHub/azure/stormspotter
ReconnaissanceInformation GatheringPenetration TestingCloud SecurityRed Teaming
GitHubazure/stormspotter

Stormspotter

Azure 및 Azure Active Directory 개체를 그래프로 나타내는 Azure Red Team 도구

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유


Stormspotter는 Azure 구독 내 리소스의 “공격 그래프”를 생성합니다. 이를 통해 레드 팀과 침투 테스터는 테넌트 내 공격 표면과 피벗 기회를 시각화할 수 있으며, 방어자가 신속하게 방향을 잡고 인시던트 대응 작업의 우선순위를 정할 수 있도록 지원합니다.


설치

Docker 사용

대부분의 사용자는 Docker를 통해 Stormspotter를 설치하는 것이 더 쉽다는 것을 알게 될 것입니다. 이 방법이 권장됩니다.

root@kitploit:~
git clone https://github.com/Azure/Stormspotter
docker-compose up

docker-compose 파일은 세 개의 컨테이너를 생성합니다:

  • Stormspotter 프론트엔드
  • Stormspotter 백엔드
  • Neo4j v4

기본적으로 Stormspotter 컨테이너는 UI를 포트 9091에 노출합니다. neo4j 컨테이너는 neo4j를 포트 7474(HTTP) 및 7687(Bolt)에 노출합니다. Neo4j의 기본 구성에서는 SSL이 활성화되어 있지 않으므로 처음에는 포트 7474에서 neo4j 인터페이스와 직접 상호 작용할 수 있습니다.

참고: 현재 Stormspotter는 이러한 컨테이너를 로컬에서만 실행하는 것을 지원합니다. 원격 호스팅된 프론트엔드에 업로드를 시도하면 실패하지만, 이 동작은 향후 변경될 예정입니다.

neo4j의 기본 자격 증명은 neo4j/password입니다. docker-compose 파일에서 NEO4JAUTH 환경 변수를 통해 이를 변경할 수 있습니다.

Docker 없이 사용

Docker 없이 Stormspotter를 실행하려면 Python 3.8, NodeJS/npm, Neo4j가 설치되어 있어야 합니다. 최신 Stormspotter 릴리스는 여기에서 다운로드할 수 있습니다.

백엔드

백엔드는 데이터를 Neo4j로 파싱하며 FastAPI로 구축되었습니다. 데이터베이스에 새 콘텐츠를 업로드할 계획이 없다면 백엔드를 실행할 필요가 없을 수도 있습니다. 백엔드는 포트 9090에서 실행되도록 구성되어 있습니다. app.py 5행의 포트 번호를 변경하여 변경할 수 있습니다. 변경한 경우, DatabaseView Component의 Q-Uploader 구성 요소에서 포트도 변경하여 프론트엔드의 업로드가 올바른 포트로 전송되도록 해야 합니다.

root@kitploit:~
cd backend
python3 ssbackend.pyz

웹 앱

웹 앱은 Vue와 Quasar Framework를 사용하여 개발되었습니다. 단일 페이지 앱(SPA)이 이미 빌드되어 frontend/dist/spa에 위치합니다. 이 디렉토리를 제공하려면:

root@kitploit:~
npm install -g @quasar/cli
cd frontend/dist/spa
quasar serve -p 9091 --history

그런 다음 브라우저에서 http://localhost:9091에 접속할 수 있습니다.

Stormspotter 실행

Stormcollector

Stormcollector는 제공된 자격 증명이 액세스할 수 있는 구독을 열거할 수 있는 Stormspotter의 일부입니다. Stormcollector를 사용하는 권장 방법은 운영 체제에 맞는 릴리스 파일에서 찾을 수 있는 sscollector.pyz 패키지를 실행하는 것입니다. 이 PYZ는 Shiv로 생성되었으며 모든 패키지가 이미 압축되어 있습니다! 종속성은 사용자 홈 디렉토리의 .shiv 폴더에 자동으로 추출됩니다.

root@kitploit:~
cd stormcollector
python3 sscollector.pyz -h

어떤 이유로 제공된 패키지를 사용하고 싶지 않다면 pip 또는 pipenv를 사용하여 필요한 패키지를 설치할 수 있습니다. 이 접근 방식에서는 패키지 충돌을 방지하기 위해 가상 환경에 Stormcollector를 설치하는 것이 _강력히 권장_됩니다. 가상 환경 관리에 문제가 있다면 위의 권장 방법을 사용해야 합니다.

root@kitploit:~
cd stormcollector
python3 -m pip install pipenv
pipenv install .
python3 ./sscollector.py

지원되는 현재 로그인 유형:

  • Azure CLI (먼저 az login을 사용해야 함)
  • 서비스 주체 클라이언트 ID/암호

위에 표시된 대로 -h 스위치를 사용하여 Stormcollector가 제공하는 모든 옵션을 확인할 수 있습니다. Stormcollector의 가장 기본적인 사용법은 다음과 같습니다:

root@kitploit:~
python3 sscollector.pyz cli
python3 sscollector.pyz spn -t <tenant> -c <clientID> -s <clientSecret>

모든 인증 유형에 공통된 옵션

  • --cloud: 다른 Azure 클라우드 지정 (GERMAN, CHINA, USGOV)
  • --config: 클라우드 환경에 대한 사용자 지정 구성 지정
  • --azure: Azure Resource Manager 리소스만 열거
  • --aad: Azure Active Directory만 열거
  • --subs: 검색하려는 구독. 여러 구독은 공백으로 구분된 목록으로 추가할 수 있습니다.
  • --nosubs: 제외하려는 구독. 여러 구독은 공백으로 구분된 목록으로 제외할 수 있습니다.
  • --json: SQLite 출력을 JSON으로 변환 (경고: STORMSPOTTER는 SQLITE 형식만 파싱합니다 )
    • 이 옵션은 Stormspotter 외 다른 이유로 출력을 파싱하려는 경우 유용합니다.
  • --ssl-cert: Stormcollector가 요청에 사용할 SSL 인증서 지정. 일반적인 옵션이 아님
  • --backfill: RBAC 열거와 연결된 개체 ID에 대해서만 AAD 열거 수행. --azure가 지정된 경우에만 적용 가능합니다.

결과 업로드

UI를 시작한 후 데이터베이스 탭에서 'Stormcollector Upload'라고 표시된 섹션을 볼 수 있습니다. 이 업로더에 파일을 추가하면 처리가 시작됩니다. 결과가 처리됨에 따라 백엔드 로그에서 진행 상황을 확인할 수 있으며, 결과는 동일한 데이터베이스 보기 탭에 반영되어야 합니다.

참고 사항

  • 현재 Stormspotter는 베타 버전이므로 모든 리소스 유형이 표시되도록 구현된 것은 아닙니다. 일부 레이블이 누락된 아이콘과 함께 표시되거나 단순히 "이름(name)" 및 "ID(id)" 필드만 표시될 수 있습니다. 시간이 지남에 따라 더 많은 리소스가 적절히 구현될 것입니다.

알려진 문제

  • 문제를 제출하기 전에 알려진 문제를 확인하세요.

스크린샷

  • KeyVault 권한 보기 Screenshot1

  • Azure AD 역할의 구성원 표시 Screenshot2

  • 수신 및 발신 관계 표시 Screenshot3

기여

이 프로젝트는 기여와 제안을 환영합니다. 대부분의 기여는 귀하가 기여를 사용할 권리가 있으며 실제로 그렇게 한다는 것을 선언하는 기여자 라이선스 계약(CLA)에 동의해야 합니다. 자세한 내용은 https://cla.opensource.microsoft.com을 방문하세요.

풀 리퀘스트를 제출하면 CLA 봇이 자동으로 CLA를 제공해야 하는지 여부를 결정하고 PR을 적절히 표시합니다(예: 상태 확인, 댓글). 봇이 제공하는 지침을 따르기만 하면 됩니다. CLA를 사용하는 모든 리포지토리에서 이 작업을 한 번만 수행하면 됩니다.

이 프로젝트는 Microsoft 오픈 소스 행동 강령을 채택했습니다. 자세한 내용은 행동 강령 FAQ를 참조하거나 추가 질문이나 의견이 있으면 [email protected]으로 문의하세요.

도구 다운로드