본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 05. 26. 02:54

AdStrike: AI 기반 전문 Active Directory 공격 프레임워크

요약

AdStrike는 Active Directory 공격을 자동화하고 관리하기 위한 AI 기반의 모듈형 터미널 프레임워크입니다. 정찰부터 보고서 생성까지 9단계의 킬 체인을 지원하며, AI 에이전트를 통해 공격 계획 수립 및 도구 오케스트레이션을 돕습니다.

핵심 포인트

  • 52개의 공격 모듈과 9단계 킬 체인 지원
  • AI 기반의 스마트 분석가 및 에이전트 기능 탑재
  • Impacket, BloodHound 등 주요 AD 도구 통합 래퍼 제공
  • 세션 컨텍스트 유지를 통한 효율적인 공격 워크플로

AdStrike banner

AI 기반 전문 Active Directory 공격 프레임워크 (AI Powered Professional Active Directory Attack Framework)

승인된 용도로만 사용하십시오. 명시적인 서면 허가 없이 이 도구를 시스템에 실행하지 마십시오.

릴리스 상태: 베타/연구용 빌드 (beta/research build). 메뉴 및 가져오기 상태 확인(import health checks)은 통과하였으나, 개별 모듈은 여전히 대상 상태, 자격 증명 (credentials), 네트워크 도달 가능성 및 설치된 타사 도구에 따라 달라질 수 있습니다.

AdStrike main menu

AdStrike는 모듈형 터미널 기반 Active Directory 공격 프레임워크입니다. 운영자가 세션 상태를 한곳에 유지하면서 탐색 (discovery), 열거 (enumeration), 취약점 공격 (exploitation), 자격 증명 접근 (credential access), 측면 이동 (lateral movement), 지속성 유지 (persistence) 및 보고 (reporting) 단계를 수행할 수 있도록 지원합니다.

이 프레임워크는 대상 세부 정보, 자격 증명 (credentials), Kerberos 상태, 조사 결과, 실행된 명령 및 출력 경로를 공유 세션에 저장합니다. 모듈은 운영자가 동일한 데이터를 반복해서 입력할 필요 없이 해당 컨텍스트 (context)를 재사용할 수 있습니다.

핵심 기능:

  • 58개의 대화형 메뉴 항목: 52개의 공격 모듈, 4개의 유틸리티, 2개의 관리 기능
  • 정찰 (reconnaissance)부터 고급 운영까지 9개의 킬 체인 (kill-chain) 단계 그룹
  • NTLM 비활성화 및 LDAP 서명 강제 환경을 위한 Kerberos 인식 워크플로 (Kerberos-aware workflows)
  • 출력 파싱 및 다음 작업 순위 산정을 위한 스마트 분석가 (Smart Analyst)
  • AI 지원 계획 수립 또는 도구 오케스트레이션 (orchestration)을 위한 선택적 AdStrike 에이전트 (AdStrike Agent)
  • HTML, Markdown 및 JSON 형식의 보고서 생성
  • Impacket, NetExec, Certipy, Kerbrute, BloodHound, PowerView, Rubeus 및 관련 유틸리티와 같은 일반적인 AD 도구용 래퍼 (Wrappers)
AD 열거 (Enumeration)BloodHound 헬퍼 (Helper)
AdStrike 에이전트 (Agent)스마트 분석가 (Smart Analyst)
git clone https://github.com/capture0x/AdStrike.git
cd AdStrike
chmod +x install.sh run.sh
...

install.sh 또는 run.shsudo로 실행하지 마십시오.

설치 프로그램은 adrt_venv/, .env, output/와 같은 리포지토리 로컬 파일을 생성합니다. 루트 (root) 권한으로 실행하면 해당 파일들이 루트 소유로 남을 수 있습니다.

이미 sudo로 실행했다면, 다음 명령으로 소유권을 한 번 수정하십시오:

sudo chown -R "$(id -un):$(id -gn)" .

항목요구 사항
OSKali Linux 2024+ 또는 Parrot OS 권장
...

주요 외부 도구 (Key external tools):

impacket-scripts nxc / netexec bloodhound-python certipy-ad
evil-winrm kerbrute responder ldap-utils
hashcat john nmap / masscan krb5-user
...

대부분의 의존성 (dependencies)은 install.sh에 의해 설치됩니다.

일부 선택적 도구들은 가능한 경우 scripts/repair_tools.sh에 의해 설치되거나 복구됩니다.

설치 프로그램은 .env.example.env로 복사합니다.

실제 침투 테스트 (engagement)를 시작하기 전에 .env를 편집하십시오:

DC_IP=10.10.10.10
DC_FQDN=dc1.corp.local
DOMAIN=corp.local
...

세션 관리자 (Session Manager)에서 이러한 값들을 대화형으로 입력할 수도 있습니다. 세션은 모듈 전반에 걸쳐 이 값들을 자동으로 전달합니다.

실제 침투 테스트 데이터를 절대 커밋(commit)하지 마십시오. .env, output/, 티켓 파일, 해시 (hashes), 덤프 (dumps), 보고서 (reports), 그리고 획득한 전리품 (loot)은 비공개로 유지하고 비식별화 (redacted) 처리하십시오.

유용한 환경 변수 플래그 (environment flags):

변수 (Variable)기본값 (Default)목적 (Purpose)
ADSTRIKE_SHOW_SECRETSfalse명시적으로 활성화하지 않는 한 로그와 보고서에서 비밀번호, 해시, 전리품을 마스킹 (mask) 처리함
ADSTRIKE_NO_ANIMATIONunset더 깔끔한 로그 또는 느린 터미널을 위해 시작 애니메이션을 비활성화함
ADSTRIKE_PORT_CHECKunset세션 설정 중에 빠른 nmap AD 포트 체크를 강제함
TGT_AUTO_RENEWtrue지원되는 경우 Kerberos 갱신 (renewal) 동작을 활성화된 상태로 유지함
ADSTRIKE_OPSECnormal에이전트 모드 오버라이드: loud, normal, 또는 stealth
ADSTRIKE_BH_HOSTunsetBloodHound/Agent 호스트 이름 오버라이드
ADSTRIKE_BH_DOMAINunsetBloodHound/Agent 도메인 오버라이드
ADSTRIKE_BH_IPunsetBloodHound/Agent DC IP 오버라이드
ANTHROPIC_API_KEYunsetAdStrike Agent를 위한 선택적인 Claude 백엔드 키

대화형 메뉴를 시작합니다:

bash run.sh

권장되는 첫 실행 흐름:

[57] Session Manager -> 대상 및 자격 증명 (credentials) 구성
[58] Tool Checker -> 외부 도구 및 모듈 임포트 (imports) 확인
[10] AD Enumeration -> 기본 LDAP/SMB/GPO 데이터 수집
...

모듈 직접 실행:

python -m venv venv
source venv/bin/activate
python3 main.py --module 10
...

상태 점검 (Health check):

python3 -m py_compile main.py
python3 main.py --check

현재 로컬 상태 점검 결과:

메뉴 번호가 연속적이며 고유함
모듈 상태 정상: 56/56
단계 (Phase)메뉴 범위영역
01-2정찰 (Reconnaissance)
...
#모듈범위 (Coverage)
---------
1정찰 및 OSINT (Recon & OSINT)DNS, WHOIS, 이메일 수집 (email harvest), 인증서 투명성 (certificate transparency)
2네트워크 탐색 (Network Discovery)nmap, masscan, nbtscan, netdiscover, IPv6 스캐닝
#모듈범위 (Coverage)
3초기 침투 (자격 증명 없음) (Initial Access (No Creds))NTLM 캡처 (capture), 릴레이 (relay), ARP, DHCPv6, RID 사이클링 (RID cycling)
...
#모듈범위 (Coverage)
---------
10AD 열거 (AD Enumeration)LDAP, SMB, GPO, DNS, 신뢰 관계 (trusts), SPN, LAPS, 위임 (delegation)
...
#모듈범위 (Coverage)
---------
17로컬 권한 상승 (Local Privilege Escalation)PowerUp, KrbRelayUp, Potato 공격 (Potato attacks), JEA
...
#모듈범위 (Coverage)
---------
28측면 이동 (Lateral Movement)PSExec, WMIExec, SMBExec, DCOM, Evil-WinRM, WinRS
...
#모듈범위 (Coverage)
---------
33자격 증명 덤핑 (Credential Dumping)LSASS, SAM, NTDS, lsassy, nanodump, pypykatz
...
#모듈범위 (Coverage)
---------
37도메인 지속성 (Domain Persistence)Golden/Silver 티켓 (tickets), AdminSDHolder, NPPSPY, TTL 그룹 멤버십
...
#모듈범위 (Coverage)
---------
43Azure AD / Entra IDAADConnect, PTA, PHS, PRT, 토큰 탈취 (token theft)
...
#모듈범위 (Coverage)
---------
49익스플로잇 체인 (Exploit Chains)사전 구축된 전체 공격 경로 (full attack paths)
...
#유틸리티 (Utility)용도
---------
53AdStrike 에이전트 (AI)선택 사항인 AI 지원 플래너/오케스트레이터 (planner/orchestrator)
...

런타임 파일은 output/ 디렉토리에 기록됩니다.

:

경로 (Path)용도 (Purpose)
output/session.json지속된 세션 상태 (Persisted session state)
output/session_*.logrun.sh로부터 생성된 런처 로그 (Launcher logs)
output/enum/LDAP, SMB, GPO 및 열거 아티팩트 (Enumeration artifacts)
output/bloodhound/BloodHound 수집 데이터 및 관련 데이터
output/audit/capability_audit.json툴 체커 (Tool Checker) 및 모듈 상태 스냅샷 (Module health snapshot)
output/agent_logs/AdStrike Agent Markdown/JSON 실행 로그
output/agent_runtime/Kerberos 설정, ccache, 해시(hashes) 및 임시 에이전트 아티팩트
output/reports/생성된 보고서

공유하기 전에 output/ 디렉토리 내의 모든 내용을 검토하고 비식별화(redact)하십시오.

첫 실행 세션 설정 중에 DC IP를 입력하면 빠른 탐색 패스(fast discovery pass)가 트리거됩니다:

  • 가능한 경우 DOMAIN, BASE_DN, DC_FQDN을 도출하기 위한 LDAP rootDSE 쿼리 수행
  • LDAP이 도메인을 드러내지 않을 경우 NetExec SMB 폴백(fallback) 수행
  • 일반적인 AD 포트에 대한 선택적인 빠른 nmap 체크

포트 체크를 강제하려면:

ADSTRIKE_PORT_CHECK=true bash run.sh

DC FQDN이 발견되면, AdStrike는 DNS 해상(DNS resolution)이 신뢰할 수 없는 환경을 위해 /etc/hosts 라인을 출력합니다. 시계 왜곡(clock skew)이 감지되면, Kerberos 중심의 워크플로우를 수행하기 전에 시간 동기화 힌트를 출력합니다.

NTLM이 비활성화되었거나 신뢰할 수 없는 타겟의 경우 다음을 사용하십시오:

[18] Kerberos Attacks -> [A] NTLM-Disabled Attack Workflow

이 워크플로우는 다음을 수행할 수 있습니다:

  • 타겟별 krb5.conf 생성
  • DC FQDN 매핑 가이드 추가
  • Impacket을 사용한 TGT 요청
  • KRB5CCNAMEKRB5_CONFIG 설정
  • 이후 모듈을 위한 Kerberos 모드 활성화
  • NetExec, Impacket, BloodHound 및 Evil-WinRM에서 즉시 사용할 수 있는 Kerberos 명령 출력

일반적인 Kerberos 체크:

date
klist
cat "$KRB5_CONFIG"
...

AdStrike Agent는 선택 사항입니다. 수동 모듈은 AI를 필요로 하지 않습니다.
에이전트만 테스트해보고 싶으신가요? → github.com/capture0x/AdAgent

지원되는 백엔드 (Supported backends):

백엔드 (Backend)사용 사례 (Use Case)요구 사항 (Requirement)
Ollama로컬 / 프라이빗 / 오프라인 실험실 사용ollama serve, 로컬 모델, Python requests
ClaudeAPI 기반 추론 (Reasoning)ANTHROPIC_API_KEY, 인터넷 / API 접속

Ollama 예시:

ollama serve
ollama pull mistral
bash run.sh
...

Claude 예시:

export ANTHROPIC_API_KEY="sk-ant-..."
bash run.sh
# [51] AdStrike Agent (AI) 선택
...

에이전트 모드 (Agent modes):

모드 (Mode)의미 (Meaning)
Full Auto에이전트가 도구 호출 (Tool calls)을 실행하고 증거에 따라 적응함
Plan Only에이전트가 도구를 실행하지 않고 우선순위가 지정된 계획을 생성함

OPSEC 모드:

모드 (Mode)의미 (Meaning)
Loud빠른 실험실/CTF 모드
...

에이전트는 대부분의 결정에 규칙 엔진 (Rule engine)을 사용합니다 (LLM 호출 없음). LLM 입력이 필요한 라운드에서는 로컬에서 Ollama를 호출합니다. 만약 Ollama가 GPU 대신 CPU에서 실행된다면, 각 호출은 25초 대신 1530초가 소요됩니다.

Ollama가 어떤 프로세서를 사용 중인지 확인하세요:

ollama ps
# PROCESSOR 열에 "100% CPU"가 아닌 "GPU"가 표시되어야 합니다

일부 Kali Linux 설정에서는 CUDA 라이브러리가 라이브러리 경로(Library path)에 등록되기 전에 ollama systemd 서비스가 시작되어, 로그에 GPULayers:[]가 나타나고 추론이 CPU로 폴백(Fallback)되는 경우가 있습니다.

1단계 — 서비스에 CUDA 환경 변수 추가:

sudo nano /etc/systemd/system/ollama.service

[Service] 블록 내에 다음 세 줄을 추가하세요:

Environment="CUDA_VISIBLE_DEVICES=0"
Environment="LD_LIBRARY_PATH=/usr/local/lib/ollama/cuda_v12:/usr/lib/x86_64-linux-gnu"
Environment="OLLAMA_GPU_OVERHEAD=0"

수정 후의 전체 [Service] 블록 예시:

[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
...

2단계 — 다시 로드 및 재시작:

sudo systemctl daemon-reload
sudo systemctl restart ollama

3단계 — GPU 사용 확인:

ollama ps
# 예상 결과: PROCESSOR = GPU (또는 "100% CPU"가 아닌 백분율)

참고: CUDA 경로 /usr/local/lib/ollama/cuda_v12

는 공식 Ollama Linux 설치 프로그램에 의해 생성됩니다. 다른 방식으로 Ollama를 설치했다면, libcublas.so.12가 시스템의 어느 위치에 있는지에 맞춰 경로를 조정하십시오.

모델VRAM속도Tool-call 품질
qwen2.5-coder:7b~5 GB중간AD 에이전트에 최적
llama3.2:3b~2 GB가장 빠름저사양 VRAM 머신에 적합
mistral:latest~4.5 GB중간괜찮은 대체제

모델 가져오기 (Pull):

ollama pull qwen2.5-coder:7b

설치된 도구 및 모듈 임포트(import) 확인:

python3 main.py --module 58 --no-banner

가능한 경우 누락된 도구 복구:

bash scripts/repair_tools.sh --check
bash scripts/repair_tools.sh -y

범위 제한 복구:

bash scripts/repair_tools.sh --no-apt
bash scripts/repair_tools.sh --no-pip
bash scripts/repair_tools.sh --no-github

가상 환경 (virtual environment)이 없는 경우:

bash install.sh
source adrt_venv/bin/activate
python3 main.py --check

NetExec 또는 Impacket이 실패하는 경우, 버전을 확인하고 복구 스크립트를 다시 실행하십시오:

which nxc
nxc --version
which impacket-secretsdump
...

보고서에 민감한 값이 포함된 경우, 비식별화 (redaction)가 활성화되었는지 확인하십시오:

ADSTRIKE_SHOW_SECRETS=false

그 다음 공유하기 전에 .env, output/session.json, 그리고 생성된 보고서들을 수동으로 검토하십시오.

추가 가이드:

보안 정책:

라이선스:

이 소프트웨어는 승인된 보안 테스트, 레드팀 (red team) 활동 및 교육적 목적으로만 제공됩니다.

시스템 소유자로부터 명시적인 서면 승인을 받지 않고 시스템에 사용하는 것은 불법이며, 컴퓨터 사기 및 남용법 (CFAA), 컴퓨터 오용법 (CMA) 및 해당 관할 구역의 유사한 법률을 위반할 수 있습니다.

저자는 오용으로 인해 발생하는 손해, 데이터 손실, 서비스 중단 또는 법적 결과에 대해 어떠한 책임도 지지 않습니다.

tmrswrr - GitHub: capture0x

승인된 공격적 보안 연구 (offensive security research), 실험실 검증 및 전문적인 레드팀 운영을 위해 유지 관리됩니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0