이 글은 TCM Security의 PNPT(Practical Network Penetration Tester) 자격증 취득을 위한 보고서 작성 가이드이다
PNPT 시험에서 기술적으로 도메인 컨트롤러를 장악해도 보고서 품질이 부족하면 불합격된다
실제 합격자 리뷰에서 "보고서 때문에 1차 시도에서 떨어졌다"는 후기가 반복적으로 등장한다
[보고서 작성 전체 흐름]
보고서 작성에선 침투 테스트 전 과정을 기술적 독자와 비기술적 독자 모두가 이해할 수 있도록 문서화하는것이 목표이다
[도메인 컨트롤러 장악 완료]
1단계. 보고서 구조 설계
TCM Security 샘플 보고서 템플릿 기반으로 구성
전체 섹션 확인 및 스크린샷 보완
2단계. Executive Summary 작성
C레벨 임원이 읽는 비기술적 요약
발견된 취약점 현황, 보안 강점/약점
3단계. Technical Findings 작성
각 취약점을 개별 섹션으로 상세 문서화
Critical → High → Medium → Low → Info 순서
4단계. 공격 경로(Attack Chain) 작성
OSINT → 외부 침투 → 내부망 → DA 도달까지
전체 공격 흐름을 스크린샷과 함께 서술
5단계. 개선 권고안 작성
각 취약점별 구체적인 수정 방법 제시
6단계. 검토 및 제출
오탈자, 스크린샷 누락 여부 최종 점검
[보고서 제출 → 디브리핑 15분 → 합격/불합격]
[TCM Security 샘플 템플릿]
TCM Security는 공식 샘플 보고서 템플릿을 GitHub에 공개하고 있다
합격자들은 공통적으로 이 템플릿을 사용하거나 참고했다고 말한다
나 또한 이 점을 참고하여 이번 글의 구성을 아래와 같이 구성하였다
※TCM Security 샘플 템플릿: https://github.com/hmaverickadams/TCM-Security-Sample-Pentest-Report
보고서 전체 구성:
[표지]
클라이언트명, 보고서 제목, 날짜, 작성자, 기밀 등급
[목차]
페이지 번호 포함
[1] Disclaimer (면책 조항)
- 본 테스트는 특정 시점의 스냅샷임
- 계약 기간 내 발견된 취약점만 포함됨
- 테스트 종료 후 새로운 취약점에 대한 책임 없음
[2] Assessment Overview (평가 개요)
- NIST 침투 테스트 방법론 기반
- 침투 테스트 라이프사이클 (정찰 → 스캐닝 → 익스플로잇 → 유지 → 보고)
[3] Assessment Components (평가 범위 구성)
- External Penetration Test 설명
- Internal Penetration Test / AD 공격 설명
[4] Findings Severity Summary (취약점 심각도 요약)
- CVSS v3 기반 심각도 분류표
- 전체 취약점 수 / 심각도별 분류 차트
[5] Scope (범위)
- 스캔 대상 IP/도메인 목록
- 제외 범위 (DoS, Social Engineering 등)
- 클라이언트 지원 사항
[6] Executive Summary (경영진 요약)
- 비기술적 언어로 작성
- 테스트 기간 및 범위
- 보안 강점 / 보안 약점
- 심각도별 취약점 현황 차트
[7] Technical Findings (기술적 발견 사항)
- 각 취약점 상세 섹션 (Critical → Info 순)
[8] Attack Chain (공격 경로)
- 전체 공격 흐름 내러티브
[9] Appendix (부록)
- 사용 도구 목록
- 참고 자료
[1단계 : 표지 및 목차]
표지 및 목차 단계에선 보고서의 첫인상을 결정하는 커버 페이지와 탐색을 위한 목차를 구성하는것이 목표이다
작성 예시:
[표지]
보고서 제목 : Internal and External Network Penetration Test
Findings Report
클라이언트 : Acme Corp
작성자 : [본인 이름]
날짜 : 2025년 3월 5일
기밀 등급 : CONFIDENTIAL
--------------------------------------------------------------
[목차]
Word / LibreOffice의 자동 목차 기능 사용 권장
- 각 섹션에 스타일 → 제목1, 제목2 지정 후 자동 생성
- 페이지 번호 반드시 포함
- 모든 섹션 완성 후 마지막에 목차 업데이트
[2단계 : Disclaimer]
Disclaimer 단계에선 테스트의 한계와 책임 범위를 명시하여 법적 분쟁을 방지하는것이 목표이다
작성 예시:
본 보고서는 [시작일]부터 [종료일]까지 수행된 침투 테스트 결과를
기록한 문서입니다.
본 테스트는 특정 시점의 스냅샷(snapshot)이며, 테스트 기간 종료
이후 새롭게 발생하거나 변경된 취약점에 대해서는 책임을 지지
않습니다.
계약된 테스트 범위 내에서 발견된 취약점만 본 보고서에 포함됩니다.
제한된 시간으로 인해 모든 취약점이 발견되었다고 보장할 수 없습니다.
[3단계 : Assessment Overview]
Assessment Overview 단계에선 침투 테스트가 무엇인지 어떤 방법론을 따랐는지 설명하는것이 목표이다
※방법론 선택은 RoE 문서의 스코프와 제외 항목을 준수하여 자유롭게 선택이 가능하다(PTES, OWASP Testing Guide, NIST SP 800-115 등등)
작성 예시:
본 평가는 NIST SP 800-115 기술 가이드를 기반으로 수행되었으며
다음 단계로 구성됩니다:
1. 정찰 (Reconnaissance) - 공개 정보 및 대상 시스템 정보 수집
2. 스캐닝 (Scanning) - 포트 및 서비스 열거
3. 익스플로잇 (Exploitation) - 취약점 악용 및 초기 접근 획득
4. 유지 (Post-Exploitation) - 내부망 이동 및 권한 상승
5. 보고 (Reporting) - 발견 사항 문서화 및 개선 권고
[4단계 : Assessment Components]
Assessment Components 단계에선 어떤 종류의 테스트를 수행했는지 명시하는것이 목표이다
작성 예시:
본 평가는 다음 두 가지 구성 요소로 이루어졌습니다:
External Penetration Test (외부 침투 테스트)
외부 인터넷에서 접근 가능한 서비스를 대상으로 초기 접근
경로를 탐색하고 내부망 진입 가능성을 평가하였습니다.
Internal Penetration Test (내부 침투 테스트)
내부망 진입 후 Active Directory 환경을 대상으로
lateral movement, 권한 상승, 도메인 컨트롤러 장악
가능성을 평가하였습니다.
[5단계 : Findings Severity Summary]
Findings Severity Summary 단계에선 발견된 취약점 전체를 심각도별로 한눈에 보여주는것이 목표이다
※취약점 심각도는 CVSS 계산기를 이용하거나 본인의 판단에 근거하여 간단하게 써주면 된다
작성 예시:
[CVSS v3 심각도 기준]
Critical (9.0 ~ 10.0) : 2건
High (7.0 ~ 8.9) : 3건
Medium (4.0 ~ 6.9) : 2건
Low (0.1 ~ 3.9) : 1건
Info (0.0) : 1건
------------------------------
합계 : 9건
--------------------------------------------------------------
[심각도 결정 기준]
심각도는 Likelihood(공격 가능성)와 Impact(영향도)를 기반으로
CVSS v3 점수를 산정하여 결정합니다.
- Likelihood: 공격 복잡도, 인증 필요 여부, 공개 익스플로잇 존재 여부
- Impact: 기밀성(C), 무결성(I), 가용성(A) 침해 범위
※Word / LibreOffice에서 파이 차트나 막대 차트를 삽입하면 심사관이 한눈에 파악할 수 있어 가산점 요소가 된다
[6단계 : Scope]
Scope 단계에선 무엇을 테스트했고 무엇은 제외됐는지 명확하게 기록하는것이 목표이다
작성 예시:
[테스트 대상 (In-Scope)]
IP / 도메인 설명
-----------------------------------------
10.10.10.0/24 내부 네트워크 전체
192.168.1.50 외부 웹서버
target.com 외부 도메인
--------------------------------------------------------------
[테스트 제외 (Out-of-Scope)]
- DoS / DDoS 공격
- Social Engineering (직원 피싱 등)
- 물리적 보안 테스트
- 위 IP/도메인 외 시스템
--------------------------------------------------------------
[클라이언트 지원 사항]
- 없음 (블랙박스 테스트)
또는
- VPN 접속 계정 제공
- 내부 사용자 계정 1개 제공 (그레이박스 테스트)
[7단계 : Executive Summary]
Executive Summary 단계에선 기술 배경이 없는 C레벨 임원이 10분 안에 전체 상황을 파악할 수 있도록 작성하는것이 목표이다
작성 구조:
[테스트 개요]
작성 예시:
"[회사명]의 요청으로 [날짜]부터 [날짜]까지 외부 및 내부 네트워크
침투 테스트를 수행하였습니다. 본 테스트의 목적은 [회사명]의 네트워크
인프라에 존재하는 보안 취약점을 식별하고 개선 방향을 제시하는
것입니다."
--------------------------------------------------------------
[Testing Summary (테스트 요약)]
- 어떤 공격을 수행했는지 (도구명 없이)
- 무엇을 발견했는지 (High / Critical 위주)
- 무엇을 획득했는지 (도메인 관리자 권한 등)
작성 예시:
"테스트 기간 동안 외부 서비스에서 자격증명 취약점이 발견되어
내부 네트워크 접근이 가능했습니다. 내부 네트워크 진입 후
도메인 컨트롤러를 포함한 전체 Active Directory 환경이 완전히
장악되었습니다."
--------------------------------------------------------------
[Security Strengths (보안 강점)]
- 잘 된 부분을 언급 (방화벽 설정, 일부 패치 적용 등)
- 없으면 없다고 쓰되 완전히 빈칸으로 두지 말 것
--------------------------------------------------------------
[Security Weaknesses (보안 약점)]
- MFA 미적용
- 취약한 패스워드 정책
- 로그인 실패 횟수 제한 없음
- 패치 미적용 시스템
- 내부망 네트워크 분리 미흡
※Executive Summary는 기술 배경 없는 사람도 읽을 수 있어야 한다
※"SMB Relay Attack"보다 "네트워크 통신 가로채기 공격"처럼 표현한다
[8단계 : Technical Findings]
Technical Findings 단계에선 발견된 각 취약점을 재현 가능하고 검증 가능한 형태로 문서화하는것이 목표이다
취약점은 반드시 Critical → High → Medium → Low → Informational 순서로 배치한다
각 취약점은 다음 형식으로 작성한다:
[취약점 제목] 예: LLMNR Poisoning
심각도: Critical
CVSS 점수: 9.8
--------------------------------------------------------------
[설명 (Description)]
LLMNR(Link-Local Multicast Name Resolution)은 DNS 조회 실패 시
로컬 네트워크에서 호스트명을 해석하기 위해 사용되는 프로토콜이다.
공격자는 이 요청에 응답하여 피해자의 NTLMv2 해시를 탈취할 수 있다.
--------------------------------------------------------------
[영향 (Impact)]
공격자는 내부 네트워크에서 도메인 사용자의 NTLMv2 해시를 획득할 수 있다.
획득한 해시는 오프라인 크래킹을 통해 평문 패스워드로 변환되거나,
Pass-the-Hash 공격에 직접 사용되어 다른 시스템에 인증 없이 접근 가능하다.
--------------------------------------------------------------
[재현 절차 (Steps to Reproduce)]
1. 공격자 머신에서 Responder 실행
2. 내부 네트워크 피해자가 존재하지 않는 호스트에 접근 시도
3. Responder가 LLMNR 쿼리를 가로채어 NTLMv2 해시 수집
4. hashcat으로 오프라인 크래킹
[스크린샷 - Responder 해시 수집 화면]
[스크린샷 - hashcat 크래킹 성공 화면]
--------------------------------------------------------------
[개선 권고안 (Remediation)]
1. GPO로 LLMNR 비활성화
Computer Configuration → Administrative Templates
→ Network → DNS Client → Turn off multicast name resolution: Enabled
2. NBT-NS 비활성화
3. 강력한 패스워드 정책 적용으로 해시 크래킹 난이도 증가
[8-2 : 스크린샷 작성 기준]
반드시 포함해야 하는 스크린샷:
1. 초기 접근 성공
- 리버스 쉘 획득 화면 (whoami 출력 포함)
2. 각 취약점 익스플로잇 성공
- 해시 탈취, 자격증명 획득, 코드 실행 등
3. 내부망 진입
- 피벗팅 후 내부 호스트 접근 화면
4. 권한 상승
- 일반 사용자 → 관리자/root 상승 전후 비교
5. 도메인 컨트롤러 장악
- DC에서 whoami 또는 hostname 출력
- Domain Admins 그룹 확인 화면
- secretsdump 또는 ntds.dit 덤프 성공 화면
6. 민감 데이터 접근
- 중요 파일, 자격증명 파일 접근 화면
좋은 스크린샷의 조건:
- 명령어와 결과가 한 화면에 보임
- IP 주소, 호스트명이 보여 어느 시스템인지 식별 가능
- 타임스탬프 포함 (터미널 프롬프트 또는 시스템 시간)
- 해상도 충분히 높을 것
흔한 실수:
- 스크린샷이 너무 작아 텍스트가 안 보임
- 어떤 시스템인지 알 수 없는 스크린샷
- 공격 전 상태 스크린샷 누락 (비교 불가)
- 마지막에 몰아서 스크린샷 찍기 (시험 환경 종료 후 재현 불가)
※합격자 Fajao는 "스크린샷 부족과 정보 누락으로 1차 시도에서 불합격했다"고 밝혔다. 각 단계마다 과할 정도로 많이 찍어야 한다
[9단계 : Attack Chain]
Attack Chain 단계에선 OSINT부터 도메인 컨트롤러 장악까지의 전체 공격 흐름을 하나의 스토리로 서술하는것이 목표이다
PNPT 시험에서 가장 중요하게 평가받는 섹션이다
작성 구조:
[Phase 1 - OSINT]
설명:
"대상 도메인(target.com)에 대한 OSINT를 수행하여 다음 정보를
수집했습니다."
수집 정보:
- 이메일 주소 목록
- 유출 자격증명
- 서브도메인 목록
- 직원 LinkedIn 프로필
[스크린샷 - 이메일 수집 결과]
[스크린샷 - 유출 자격증명 발견]
--------------------------------------------------------------
[Phase 2 - 외부 침투]
설명:
"수집된 이메일과 유출 패스워드를 이용해 O365 포털에
비밀번호 스프레이를 시도하였습니다."
- 발견된 서비스: OWA(10.10.10.1), VPN 포털(10.10.10.2)
- 스프레이 결과: user@target.com / Password2023! 인증 성공
[스크린샷 - 비밀번호 스프레이 성공]
[스크린샷 - 획득한 자격증명]
--------------------------------------------------------------
[Phase 3 - 초기 접근 (Foothold)]
설명:
"획득한 자격증명으로 VPN에 접속 후 내부망 접근에 성공했습니다."
[스크린샷 - VPN 접속 성공]
[스크린샷 - 내부망 호스트 스캔 결과]
--------------------------------------------------------------
[Phase 4 - 내부망 열거 및 AD 공격]
설명:
"내부망에서 LLMNR Poisoning을 통해 도메인 사용자 해시를 탈취하고
Kerberoasting으로 서비스 계정 패스워드를 획득했습니다."
- LLMNR Poisoning → jdoe NTLMv2 해시 탈취 → 크래킹 → Password1234
- Kerberoasting → svc_sql 티켓 탈취 → 크래킹 → SQLService123
[스크린샷 - Responder 해시 수집]
[스크린샷 - 크래킹 성공]
--------------------------------------------------------------
[Phase 5 - 권한 상승 및 도메인 컨트롤러 장악]
설명:
"획득한 서비스 계정 자격증명으로 DC에 접근하여 DCSync 공격을 통해
도메인 전체 해시를 덤프했습니다."
[스크린샷 - DC 접근 성공]
[스크린샷 - DCSync / secretsdump 결과]
[스크린샷 - DC에서 whoami /all 또는 hostname]
[스크린샷 - Domain Admins 그룹 확인]
[10단계 : 개선 권고안]
개선 권고안 단계에선 발견된 각 취약점을 실제로 수정할 수 있는 구체적인 방법을 제시하는것이 목표이다
자주 등장하는 취약점별 권고안:
[LLMNR / NBT-NS Poisoning]
- GPO로 LLMNR 비활성화
- NBT-NS 비활성화
- 강력한 패스워드 정책 (길이 12자 이상, 복잡도 요구)
--------------------------------------------------------------
[패스워드 스프레이 / 브루트포스]
- 계정 잠금 정책 적용 (5회 실패 시 30분 잠금)
- MFA 적용 (특히 외부 접근 서비스 필수)
- 유출 패스워드 데이터베이스와 비교하는 패스워드 필터 적용
--------------------------------------------------------------
[Kerberoasting]
- 서비스 계정 패스워드를 25자 이상 랜덤 문자열로 변경
- Group Managed Service Accounts(gMSA) 도입
- AES 암호화 적용 (RC4 비활성화)
--------------------------------------------------------------
[Pass-the-Hash]
- LAPS(Local Administrator Password Solution) 도입
- SMB Signing 활성화
- Protected Users 보안 그룹 활용
--------------------------------------------------------------
[AS-REP Roasting]
- Kerberos Pre-Authentication 활성화
(계정 속성에서 "Do not require Kerberos preauthentication" 해제)
--------------------------------------------------------------
[DCSync]
- DCSync 권한(Replicating Directory Changes)을
Domain Admins, Enterprise Admins 외 계정에서 제거
- 해당 권한 변경 이벤트 모니터링 (이벤트 ID 4662)
--------------------------------------------------------------
[취약한 소프트웨어 버전]
- 정기적인 패치 및 업데이트 관리 체계 수립
--------------------------------------------------------------
[내부망 네트워크 분리 미흡]
- VLAN 세분화로 사용자/서버/관리 네트워크 분리
- 최소 권한 원칙(Principle of Least Privilege) 적용
[11단계 : Appendix]
Appendix 단계에선 보고서 본문에 넣기엔 과도하지만 참고 자료로 유용한 정보를 정리하는것이 목표이다
작성 예시:
[사용 도구 목록]
도구명 용도
-----------------------------------------
Nmap 포트 스캔 및 서비스 열거
Responder LLMNR/NBT-NS 포이즈닝
Hashcat 오프라인 패스워드 크래킹
CrackMapExec SMB 열거 및 자격증명 검증
BloodHound AD 권한 관계 시각화
Impacket DCSync, Kerberoasting
Ligolo-ng 피벗팅 터널
--------------------------------------------------------------
[참고 자료]
- NIST SP 800-115: Technical Guide to Information Security Testing
- MITRE ATT&CK Framework: https://attack.mitre.org
- TCM Security Sample Report: https://github.com/hmaverickadams/TCM-Security-Sample-Pentest-Report
[12단계 : 디브리핑 준비]
디브리핑 단계에선 제출한 보고서를 기반으로 TCM Security 심사관에게 15분 동안 공격 흐름을 발표하는것이 목표이다
준비 방법:
[발표 자료 선택]
- 보고서 그대로 화면 공유 (대부분의 합격자가 이 방법 사용)
- 별도 PowerPoint 준비 (선택사항, 필수 아님)
--------------------------------------------------------------
[발표 순서 (15분)]
- 간단한 자기소개 (1분)
- Executive Summary 요약 (2분)
- 주요 발견 사항 3~5개 요약 (5분)
- Attack Chain 전체 흐름 설명 (5분)
- 핵심 개선 권고안 요약 (2분)
--------------------------------------------------------------
[자주 나오는 심사관 질문]
- "이 취약점을 어떻게 발견했나요?"
- "왜 이 취약점을 Critical로 분류했나요?"
- "실제 공격자라면 이후에 무엇을 했을까요?"
- "개선 권고안 중 가장 우선적으로 적용해야 할 것은?"
주의사항:
- 스크린샷이 없는 발견 사항은 설명이 어렵다
(시험 중 스크린샷 촬영의 중요성이 여기서 다시 부각됨)
- 심사관은 모든 기술을 이미 알고 있으므로
기술 설명보다 "왜 이것이 문제인가"에 집중할 것
- 모르는 질문이 나오면 솔직하게 모른다고 말할 것
[보고서 작성 핵심 원칙]
[절대 규칙]
1.시험 중 모든 단계에서 즉시 스크린샷 촬영
나중에 백필은 불가능하다. 지금 찍어야 한다
2.취약점은 재현 가능하게 작성
심사관이 읽고 그대로 따라할 수 있어야 한다
3.Executive Summary는 비기술적 언어로
"Responder로 NTLMv2를 탈취했다"
→ "네트워크 통신을 가로채 사용자 인증 정보를 획득했다"
4.각 취약점에는 반드시 개선 권고안 포함
"패치 적용 필요"처럼 모호하게 쓰지 말 것
구체적인 GPO 설정, 서비스 비활성화 방법 등을 명시
5.TCM Security 샘플 템플릿 사용 강력 권장
https://github.com/hmaverickadams/TCM-Security-Sample-Pentest-Report
--------------------------------------------------------------
[도구 추천]
보고서 작성: Microsoft Word / LibreOffice Writer (.docx)
노트 작성: CherryTree / Obsidian / KeepNote
스크린샷: Flameshot (Linux) / Greenshot (Windows)
--------------------------------------------------------------
[시험 중 기록 템플릿]
## [호스트명 / IP]
- 발견 시각:
- 서비스:
- 취약점:
- 명령어:
- 결과:
- 스크린샷 파일명:
- 권고안:
※기술적으로 완벽하게 뚫어도 보고서 품질이 낮으면 불합격이다. 시험 2일을 온전히 보고서에 투자해야 한다
→클로드로 간단하게 제작한 샘플 보고서이다
'PNPT 자격증' 카테고리의 다른 글
| PNPT 합격 후기 (1) | 2026.04.14 |
|---|---|
| PNPT - THM 로드맵 (0) | 2026.03.06 |
| PNPT 피벗팅(Pivoting) 치트시트 (0) | 2026.03.05 |
| PNPT 권한 상승(PrivEsc) 치트시트 (0) | 2026.03.05 |
| PNPT 외부 침투 치트시트 (0) | 2026.03.04 |