Step 308. AD 세트 공략 훈련 — 클라이언트에서 도메인 컨트롤러까지

Step 308. AD 세트 공략 훈련 — 클라이언트에서 도메인 컨트롤러까지

Level 4 — 전문가 | 난이도 ★★★★☆ | 예상 소요 시간 2~3일

전제: Step 261(AD 구조), 262(Kerberoasting·AS-REP), 263(Pass-the-Hash·BloodHound), 271(AD 머신 표준 루트)을 마쳤다. Step 307의 시험 형식 보고서 템플릿이 있다.

  • 준비물: AD 연습 환경(Proving Grounds Practice의 AD 세트, THM 네트워크 랩, 또는 직접 구축한 도메인 랩 — Windows Server 1대 + 클라이언트 2대), 공격 머신, Step 307의 보고서 템플릿.
  • ⚠️ 이 챕터의 실습은 내 랩·합법 플랫폼 전용입니다. 허가 없는 시스템에 적용하면 범죄입니다. 특히 lsass 덤프·해시 탈취·측면 이동 기법은 연습 랩 안에서만 사용하세요.
  • 화면 안내: 이 챕터의 랩 화면과 명령 출력은 전부 화면 예시입니다. 실제 공략은 여러분의 연습 환경에서 직접 수행합니다.

OSCP 시험 점수의 절반 가까이가 AD 세트에서 나옵니다 — 클라이언트 머신과 도메인 컨트롤러가 도메인으로 묶인 3대짜리 환경 하나가 통째로 40점입니다. Step 271에서는 "도메인 머신 한 대"를 공략했고, 오늘은 "도메인 하나"를 공략합니다. 차이는 규모가 아니라 구조입니다 — 침투의 결과가 그 머신에 머물지 않고, 탈취한 자격증명이 다음 머신으로의 열쇠가 되는 사슬. Level 3에서 부품으로 배운 Kerberoasting, BloodHound, Pass-the-Hash가 오늘 하나의 체인으로 연결됩니다.


1. 학습 목표

이 챕터를 끝내면 다음을 할 수 있습니다:

  • OSCP AD 세트의 구성(클라이언트 → 서버 → DC)과 점수 구조를 설명할 수 있다
  • 첫 머신 침투부터 도메인 장악까지의 체인을 단계별로 수행한다
  • 자격증명 발견 즉시 "4줄 메모"를 남겨 체인의 꼬임을 방지한다
  • BloodHound의 최단 경로와 내가 걸은 경로를 비교해 평가한다
  • 체인 다이어그램이 포함된 시험 형식 보고서를 작성한다

2. 배경 지식 — 오늘의 도구와 개념

오늘의 도구 한눈에 보기

구분 내용
언어·환경 AD 연습 랩(PG Practice AD 세트 / THM 네트워크 랩 / 자체 도메인 랩) + 공격 머신
오늘의 명령 whoami /all, net user /domain, SharpHound/bloodhound-python, mimikatz(랩 전용), evil-winrm -H
필요한 개념 측면 이동, 자격증명의 종류(평문/NTLM/티켓), 체인 다이어그램, BloodHound 경로 평가
오늘의 산출물 AD 세트 장악 + 체인 다이어그램 포함 보고서(Step 307 템플릿의 AD 절)

2-1. AD 세트란 — 40점짜리 사슬

시험의 AD 세트는 일반적으로 클라이언트 머신 2대 + 도메인 컨트롤러 1대가 하나의 도메인으로 묶인 구성입니다 (화면 예시):

┌────────────────── corp.local 도메인 ──────────────────┐
│                                                        │
│  CLIENT01 (10.10.x.11) ──→  CLIENT02 (10.10.x.12)      │
│   외부에서 공격 가능          내부 머신                    │
│        │                          │                    │
│        └────── 자격증명 탈취 ────────┘                    │
│                     │                                  │
│                     ▼                                  │
│              DC01 (10.10.x.10)  ← 최종 목표             │
│                                                        │
└────────────────────────────────────────────────────────┘

독립 머신과의 결정적 차이: 한 대를 뚫는 것이 끝이 아니라 시작입니다. 첫 머신의 진짜 전리품은 플래그가 아니라 그 안에 잠든 자격증명 — 메모리의 해시, 저장된 비밀번호, Kerberos 티켓 — 이고, 그것이 다음 머신의 문을 엽니다. 세트의 점수는 머신별 부분 점수로 나뉘므로, DC까지 못 가도 각 머신 장악마다 점수가 쌓입니다.

2-2. 체인의 네 단계 — 표준 순서

AD 세트의 공략은 대부분 같은 골격을 따릅니다.

① 첫 머신 침투 — 외부에서 보이는 머신(클라이언트)에 웹/서비스 취약점
   또는 자격증명 스프레이로 진입
② 도메인 정보 수집 — 그 머신 안에서 도메인 구조·사용자·그룹 열거
   + BloodHound 데이터 수집
③ 자격증명 탈취와 측면 이동 — 탈취한 해시/비밀번호/티켓으로 다음 머신으로
④ 도메인 관리자 권한 획득 — DC에서 proof 수집

각 단계의 기술은 이미 배웠습니다 — ①은 Step 118~127과 305~306의 독립 머신 사이클, ②③은 Step 261~263, 271의 AD 기초입니다. 오늘의 새로운 것은 이 단계들을 끊기지 않는 하나의 사슬로 운영하는 관리 능력입니다.

2-3. 자격증명 4줄 메모 — 체인이 꼬이지 않게

AD 세트 실패의 절반은 기술이 아니라 혼란입니다. "어디서 어떤 크리덴셜을 얻었는지"가 헷갈리는 순간 체인이 꼬입니다. 자격증명을 발견하는 즉시 네 줄을 기록하세요.

획득 위치: CLIENT01 (메모리 / 파일 / 설정 등 어디서)
계정:      corpj.smith
종류:      평문 / NTLM 해시 / Kerberos 티켓 중 무엇인가
사용 가능: 어느 머신에, 어떤 프로토콜로 쓸 수 있는가
          (예: CLIENT02에 WinRM으로 — 이미 시도했다면 결과까지)

Step 271의 "계정 장부"가 한 머신용이었다면, 이 4줄 메모는 도메인 전체용입니다. 메모가 쌓인 순서가 곧 체인 다이어그램의 초고입니다.

2-4. 경로 평가 — BloodHound와 비교하기

세트를 장악한 뒤에는 반드시 한 가지를 더 합니다 — BloodHound가 제시하는 최단 경로와 내가 실제로 걸은 경로를 비교합니다.

내가 걸은 경로:  CLIENT01 → (해시 탈취) → CLIENT02 → (티켓) → DC01  [화살표 3개]
최단 경로:       CLIENT01 → (WriteDacl 남용) → DC01                  [화살표 2개]

내 경로가 더 길었다면 그것은 실패가 아니라 수업료입니다 — "왜 그 지름길을 못 봤는가"가 다음 세트에서의 시야가 됩니다. 반대로 내 경로가 최단이었다면 그 판단 근거를 문장으로 남기세요 — 재현 가능한 판단이 실력입니다.


3. 따라 하기

3-1. 연습 환경 선택

세 가지 선택지가 있습니다 (화면 예시):

환경 구성 비고
Proving Grounds Practice AD 세트 시험과 같은 형식의 세트 유료 구독, 시험 감각에 최적
THM 네트워크 랩(Throwback, Wreath 등) 다중 머신 네트워크 도메인 체인 + 피벗 연습
자체 도메인 랩 Windows Server 1 + 클라이언트 2 구축 자체가 공부, Step 261의 랩 활용

시험 접수 전이라면 PG Practice의 AD 세트가 형식상 가장 가깝고, 비용을 아끼려면 THM이나 자체 랩으로 체인 감각을 먼저 만든 뒤 시험 직전에 PG로 옮기는 조합이 합리적입니다.

3-2. ① 첫 머신 침투

세트에 접속하면 대역 전체를 먼저 봅니다 (화면 예시):

nmap -p- --min-rate 1000 10.10.x.10-12
10.10.x.10: 53,88,135,389,445,636,3268 open   ← DC의 포트 조합(Step 271)
10.10.x.11: 80,135,445,3389 open              ← 웹이 있는 클라이언트
10.10.x.12: 135,445,3389 open                 ← 외부 공격면이 없는 클라이언트

읽는 법: 88/389 조합으로 10.10.x.10이 DC임을 즉시 판별하고, 외부에서 닿는 공격면이 있는 .11부터 시작합니다 — 체인의 출발점은 "내가 닿을 수 있는 머신"입니다. 이후는 독립 머신과 같습니다: 열거(Step 306의 체크리스트) → 취약점 근거 → 침투. 웹 취약점이나 자격증명 스프레이가 전형적인 첫 문입니다 — 연습 랩 대상에서만 수행합니다.

3-3. ② 도메인 정보 수집

첫 머신에 들어가면 플래그보다 먼저 도메인을 열거합니다 (화면 예시):

whoami /all
net user /domain
net group "Domain Admins" /domain
사용자: j.smith, m.jones, svc-backup, administrator ...
Domain Admins 구성원: administrator, m.jones

그리고 BloodHound 데이터를 수집합니다 — 공격 머신에서:

bloodhound-python -d corp.local -u j.smith -p '획득한비번' 
  -ns 10.10.x.10 -c All --zip

왜 하는가: 이 수집물이 "도메인의 지도"입니다. 눈으로 관계를 추적하다 길을 잃는 것이 AD 실패의 절반이므로(Step 271), 지도는 침투 초기에 확보합니다.

3-4. ③ 자격증명 탈취와 측면 이동

첫 머신에서 관리자 권한을 얻으면 자격증명을 수확합니다 — mimikatz 개념 실습, lsass 메모리 덤프는 랩 환경에서만 수행하세요 (화면 예시):

mimikatz # sekurlsa::logonpasswords
...
  * Username : m.jones
  * Domain   : CORP
  * NTLM     : 5f4dcc3b5aa765d61d8327deb882cf99  ← 가공한 예시 해시

발견 즉시 4줄 메모를 남깁니다 — "획득 위치: CLIENT01 메모리 / 계정: corpm.jones / 종류: NTLM / 사용 가능: 확인 필요". 그리고 이동합니다:

evil-winrm -i 10.10.x.12 -u m.jones -H 5f4dcc3b5aa765d61d8327deb882cf99

읽는 법: Pass-the-Hash(Step 263) — 비밀번호를 몰라도 해시 자체가 인증 수단이 됩니다. 접속되면 즉시 whoaminet user m.jones /domain으로 권한을 확인하고 장부를 갱신합니다. m.jones가 Domain Admins 구성원이라면 — DC까지 한 걸음 남았습니다.

3-5. ④ 도메인 장악과 증거

마지막 이동 (화면 예시):

evil-winrm -i 10.10.x.10 -u m.jones -H 5f4dcc3b5aa765d61d8327deb882cf99
whoami
# corpm.jones
hostname
# DC01
type C:UsersAdministratorDesktopproof.txt

증거 캡처는 Step 305 규칙 그대로 — proof.txt 내용 + hostname + IP가 한 화면에. 세트 안의 각 머신마다 증거를 남겨야 부분 점수가 온전히 인정됩니다.

3-6. 체인 다이어그램과 보고서

Step 307 템플릿의 AD 절에 전체 체인을 기록합니다. 핵심 산출물은 체인 다이어그램:

[CLIENT01 10.10.x.11]
   │  침투: 웹 취약점(파일 업로드) — 근거: 증거 02
   │  수확: m.jones NTLM (메모리)
   ▼  이동: evil-winrm -H (Pass-the-Hash)
[CLIENT02 10.10.x.12]
   │  확인: m.jones ∈ Domain Admins
   ▼  이동: evil-winrm -H
[DC01 10.10.x.10] ★ 도메인 장악 — proof 획득

마지막으로 BloodHound의 최단 경로와 비교(2-4)하고, 그 평가 한 단락을 보고서에 덧붙입니다. 이 문서가 다음 AD 세트의 출발점이자, 시험 당일 보고서의 리허설 완성본입니다.


4. 미션과 연습문제

미션 — AD 세트(또는 도메인 랩) 완전 장악

  1. AD 연습 환경 하나를 선택해 접속한다
  2. 대역 스캔으로 DC와 클라이언트를 판별하고 공격 순서를 정한다
  3. 체인 네 단계(침투→수집→탈취·이동→장악)를 수행하며 자격증명마다 4줄 메모를 남긴다
  4. 각 머신의 증거를 Step 305 규칙(hostname+ip 포함 캡처)으로 남긴다
  5. 체인 다이어그램 포함 보고서를 Step 307 템플릿으로 완성하고, BloodHound 최단 경로와의 비교를 덧붙인다

연습문제

문제 1. AD 세트에서 첫 머신 침투의 "진짜 전리품"이 플래그가 아닌 이유를 설명해 보세요.

문제 2. 대역 스캔 결과에서 어느 머신이 DC인지 판별하는 근거와, 공격 순서가 "DC부터"가 아닌 이유를 말해 보세요.

문제 3. 자격증명 4줄 메모의 네 항목을 나열하고, "사용 가능 대상"이 없으면 어떤 혼란이 생기는지 설명해 보세요.

문제 4. 장악 후 BloodHound 최단 경로와 내 경로를 비교하는 절차가 훈련에서 갖는 가치를 말해 보세요.


5. 모범 답안과 완료 기준

미션 모범 답안

완성된 보고서의 AD 세트 절은 다음을 갖춥니다 (내용은 화면 예시):

## 체인 다이어그램
[CLIENT01] --웹 업로드 RCE--> 쉘(사용자) --로컬 상승--> 관리자
   --lsass 수확: corpm.jones NTLM--> [CLIENT02] evil-winrm -H
   --m.jones ∈ Domain Admins 확인--> [DC01] evil-winrm -H ★ proof 획득

## BloodHound 비교
- 내 경로: 화살표 3개 (침투 1 + 이동 2)
- 최단 경로: 화살표 2개 — CLIENT01의 svc-backup 계정이 DC에 대해
  DCSync 권한을 직접 보유하고 있었음
- 평가: svc-backup의 권한 관계를 초기 열거에서 확인했다면
  CLIENT02를 거치지 않았음. 다음 세트부터는 첫 머신 장악 즉시
  "현재 계정들 → DA" 경로를 먼저 조회한다.

검증하는 법: ① 체인 다이어그램의 각 화살표에 기법과 자격증명이 명시됐는가. ② 자격증명 4줄 메모가 실제 공략 중에(사후가 아니라) 기록됐는가. ③ 세 머신 각각의 증거 캡처에 hostname+ip가 있는가. ④ BloodHound 비교에 "다음엔 다르게 할 행동"이 한 줄 있는가. ⑤ 보고서가 검증 스크립트(Step 307)를 통과하는가.

연습문제 해답

문제 1 해답. 세트 안에서 첫 머신의 플래그는 부분 점수일 뿐이고, 그 머신에 잠든 자격증명 — 메모리의 해시, 저장된 비밀번호, 티켓 — 이 다음 머신으로 가는 열쇠이기 때문입니다. 체인 구조에서는 각 머신 장악의 가치가 "그 안에서 무엇을 수확하는가"로 결정됩니다. 플래그만 읽고 나온 머신은 반만 장악한 것입니다.

문제 2 해답. 판별 근거는 88(Kerberos)과 389(LDAP)가 함께 열린 포트 조합입니다(Step 271). 공격 순서가 "DC부터"가 아닌 이유는 DC가 보통 외부에서 닿는 공격면이 없기 때문입니다 — 도메인 인증 없이는 SMB조차 열리지 않는 것이 정상적인 DC입니다. 체인의 출발점은 "중요한 머신"이 아니라 "내가 닿을 수 있는 머신"이고, 중요한 머신은 사슬을 따라 도달하는 것입니다.

문제 3 해답. 네 항목은 획득 위치 / 계정 / 종류(평문·NTLM·티켓) / 사용 가능 대상입니다. "사용 가능 대상"이 빠지면, 해시를 얻고도 어느 머신에 쓸 수 있는지를 매번 시행착오로 확인하게 되고 — 더 나쁜 경우 — 이미 시도해 실패한 대상에 다시 시도하며 시간을 태웁니다. 종류 기록이 빠지면 Pass-the-Hash로 될 것을 비밀번호 크래킹으로 돌아가는 식의 비효율이 생깁니다. 체인이 길어질수록 이 메모가 유일한 항해 도구입니다.

문제 4 해답. 세 가지 가치가 있습니다. 첫째, 시야 교정 — 내가 못 본 지름길(직접 DCSync 권한 등)을 알려 줘 다음 세트의 열거 우선순위를 바꿉니다. 둘째, 판단 검증 — 내 경로가 최단이었다면 그 판단 근거를 문장화해 재현 가능한 실력으로 굳힙니다. 셋째, 시험 전략 — 시험에서는 "빠른 경로"가 곧 남는 시간이므로, 경로 비교 훈련이 시간 관리 능력으로 직결됩니다.

완료 기준 체크리스트

  • [ ] AD 세트의 구성(클라이언트 2 + DC 1)과 점수 구조를 설명할 수 있다
  • [ ] 대역 스캔으로 DC를 판별하고 공격 순서를 정했다
  • [ ] 체인 네 단계를 끊기지 않게 수행했다
  • [ ] 자격증명마다 4줄 메모를 즉시 남겼다
  • [ ] 각 머신의 증거 캡처(hostname+ip 포함)를 남겼다
  • [ ] BloodHound 최단 경로와 내 경로를 비교하고 평가를 썼다
  • [ ] 미션: AD 세트 장악 + 체인 다이어그램 포함 보고서 완성

6. 흔한 실수와 해결

벽 1. 어디서 얻은 자격증명인지 헷갈려 체인이 꼬인다

증상: 해시가 세 개인데 어느 계정 것인지, 어느 머신에서 얻었는지 모릅니다.
원인: 발견 즉시 기록하지 않고 "나중에 정리"로 미뤘기 때문입니다 — 세트에서는 나중이 오지 않습니다.
해결: 4줄 메모를 발견 그 자리에서 쓰세요. 이미 꼬였다면 손을 떼고 장부부터 재구성합니다 — 지금까지의 쉘 각각에서 whoami를 다시 확인하고, 가진 해시를 하나씩 계정에 대응시키는 정리 시간을 가지세요. 체인의 혼란은 공격으로가 아니라 정리로만 풀립니다.

벽 2. evil-winrm 접속이 WinRMAuthorizationError로 실패한다

증상: Error: An error of type WinRMAuthorizationError happened 류의 인증 실패.
원인 셋 중 하나 — 해시가 틀렸거나(복사 누락), 그 계정이 대상 머신의 WinRM 권한이 없거나, 그 머신에서는 로컬 계정만 받거나.
해결: 순서대로 점검합니다 — ① 해시 문자열의 길이(NTLM은 32자 hex)와 앞뒤 공백 ② net user 계정 /domain으로 그룹 재확인 ③ 그래도 안 되면 그 자격증명의 "사용 가능 대상"을 다른 머신·다른 프로토콜(SMB 등)로 넓혀 시도. 실패도 4줄 메모에 기록합니다.

벽 3. BloodHound 수집이 권한 부족으로 불완전하다

증상: 수집된 그래프가 비어 있거나 경로가 안 나옵니다.
원인: 수집에 쓴 계정의 권한이 낮거나, -c All 옵션이 빠졌습니다.
해결: -c All을 확인하고, 더 권한이 높은 계정을 얻은 뒤 재수집하세요 — 세트 공략에서는 수집이 한 번이 아니라 계정이 바뀔 때마다입니다. 그래도 경로가 없으면 "현재 위치에서 경로 없음"이 정보입니다(Step 271 벽 4와 같은 원리).

벽 4. lsass 덤프가 차단된다

증상: 메모리 덤프 도구가 AV/EDR에 차단됐다는 오류가 납니다.
원인: 자격증명 탈취는 방어 솔루션의 최우선 감시 대상입니다.
해결: 연습 랩에서는 방어 설정을 확인하고(랩에서만) 진행하거나, 랩이 허용하는 대체 수확 경로 — 저장된 자격증명, 설정 파일, unattend.xml 같은 설치 흔적 — 를 찾으세요. 시험에서는 차단 자체가 "이 경로는 아니다"라는 신호이므로, 우회 기술 연습보다 대체 경로 탐색이 우선입니다.

벽 5. 한 머신에 갇혀 세트 전체 시간을 태운다

증상: 첫 클라이언트의 권한 상승에서 4시간을 쓰고 세트를 미완성합니다.
원인: 독립 머신 감각으로 "한 대 완전 장악"을 목표한 것입니다.
해결: 세트의 목표는 "각 머신 완전 장악"이 아니라 "DC 도달"입니다. 상승이 막히면 현재 권한으로 수확 가능한 것(파일, 저장된 자격증명)부터 쓸고 다른 경로를 봅니다. 그래도 막히면 그 머신의 부분 증거를 남기고 독립 머신으로 이동 — 40점 세트에 올인하다 독립 60점을 버리면 전략 패배입니다. 시험은 머신별 시소가 아니라 총점 싸움입니다.


7. 정리

오늘의 개념

개념 한 줄 설명
AD 세트 클라이언트 2 + DC 1의 도메인 환경 — 시험 점수의 약 40점
체인 침투 → 도메인 수집 → 자격증명 탈취·이동 → DC — 끊기지 않는 사슬
측면 이동 탈취한 자격증명으로 다음 머신으로 — 해시/티켓이 곧 열쇠
자격증명 4줄 메모 위치/계정/종류/사용 가능 — 체인 꼬임 방지의 항해 도구
경로 비교 BloodHound 최단 경로 vs 내 경로 — 시야 교정의 절차
세트 전략 목표는 DC 도달 — 각 머신 완전 장악이 아니라 총점 싸움

오늘의 명령어·도구

명령 용도
nmap -p- --min-rate 1000 대역 세트 대역 스캔 — 88/389로 DC 판별
whoami /all · net user /domain 침투 머신 안에서의 도메인 열거
net group "Domain Admins" /domain 최종 목표 계정군 확인
bloodhound-python -d 도메인 -u 계정 -p 비번 -ns DC -c All --zip 도메인 지도 수집
mimikatz sekurlsa::logonpasswords 메모리 자격증명 수확 — 랩 전용
evil-winrm -i 대상 -u 계정 -H 해시 Pass-the-Hash 측면 이동
Step 307 템플릿의 AD 절 체인 다이어그램 포함 보고서

명령어보다 중요한 감각

독립 머신이 단거리 달리기라면 AD 세트는 계주입니다 — 바톤(자격증명)을 떨어뜨리면 아무리 빨리 뛰어도 완주가 아닙니다. 그래서 세트의 실력은 침투 기술만큼이나 관리 기술, "지금 내 손에 있는 바톤이 무엇이고 어디로 전달하는가"를 항상 아는 능력입니다. 4줄 메모와 체인 다이어그램은 그 능력의 형식입니다. 그리고 이 체인 — 침투, 수확, 이동, 장악 — 은 시험을 넘어 실제 침투 테스트의 AD 절차 그 자체입니다. 오늘 여러분이 그린 체인 다이어그램은 시험장에서도, 현장에서도 같은 모양으로 다시 그려집니다.


전부 체크되면 Step 308 완료입니다.