Step 312. ★ OSCP 실기 시험 응시 — 연습한 대로만 하는 24시간
Level 4 — OSCP 준비와 응시 | 난이도 ★★★★★ | 예상 소요 시간 3일 (전날 준비 + 24시간 시험 + 24시간 보고서)
전제: Step 309~311의 모의시험 2회와 전략 확정 문서, Step 305~308의 OSCP 대비 훈련 전체.
- 준비물: 확정된 시험 일정, 칼리 환경(최신화·VPN 테스트 완료), 신분증, 웹캠(프록터링용), 전략 확정 문서, 막힘 체크리스트, 보고서 템플릿. 이 챕터의 시험 장면·점수 장면은 전부 예시입니다.
- ⚠️ 이 챕터의 실습은 내 랩·합법 플랫폼 전용입니다. 허가 없는 시스템에 적용하면 범죄입니다. 시험 환경의 머신만이 대상이며, 시험 규정에서 금지한 도구·행위는 사용하지 않습니다.
- ⚠️ 시험 규정·배점·시간은 변경될 수 있습니다. 이 챕터의 모든 수치(23시간 45분, 70점, 배점 구성, 제한 도구)는 집필 시점의 일반적 안내이며, 응시 전 반드시 OffSec 공식 문서와 시험 안내 메일로 최신 규정을 확인하세요. 공식 안내와 이 챕터가 다르면 공식 안내가 정답입니다.
드디어 실전입니다. 시험은 감독관(프록터, proctor)이 화면과 웹캠을 모니터링하는 환경에서 진행되고, 종료 후 24시간 안에 보고서를 제출해야 합니다. 지금까지의 모든 훈련 — 열거 체크리스트, 시간 배분, 증거 수집 습관, 보고서 템플릿 — 가 이 하루를 위해 쌓인 것입니다.
그래서 오늘의 전략은 새로운 것이 하나도 없습니다. 중요한 것은 연습 때 하던 대로 하는 것, 단 하나뿐입니다. 이 챕터는 새 기술이 아니라, 당일의 절차와 멘탈 운영을 미리 펼쳐 보는 최종 브리핑입니다.
1. 학습 목표
이 챕터를 끝내면 다음을 할 수 있습니다:
- 시험 전날의 준비 체크리스트(장비·규정·컨디션)를 실행한다
- 프록터링 환경의 절차(신분 확인, 환경 검사, 화면 공유)를 이해하고 당황 없이 통과한다
- 제한 도구 규정을 확인하고 내 도구함이 규정에 맞는지 점검한다
- 점수 합산 구조를 계산해 "지금 몇 점이고 무엇이 남았는지"를 시험 중에 파악한다
- 초반 무득점 구간의 패닉을 계획된 절차로 관리하며 24시간을 완주하고 보고서를 제출한다
2. 배경 지식 — 오늘의 도구와 개념
오늘의 도구 한눈에 보기
| 구분 | 내용 |
|---|---|
| 언어·환경 | 시험용 칼리 VM, OffSec VPN, 프로터링 소프트웨어(화면·웹캠 공유), 파이썬 3(점수 계산기) |
| 오늘의 명령 | python score_calc.py — 점수 전략·합산 판정. 공략 명령은 전부 복습 |
| 필요한 개념 | 프록터링, 제한 도구 규정, 점수 합산 전략, 패닉 관리, 보고서 제출 규정 |
| 오늘의 산출물 | 응시 완료 + 종료 후 24시간 내 보고서 제출 |
2-1. 프록터링 — 감시는 절차이지 압박이 아니다
시험은 원격 감독 하에 진행됩니다. 일반적인 흐름은 다음과 같습니다(세부는 공식 안내 확인).
시작 전 절차 (예시):
1. 예약된 시작 시각 전에 프록터링 플랫폼 접속
2. 신분증 인증 — 웹캠에 신분증을 비춰 본인 확인
3. 환경 검사 — 웹캠으로 방 전체를 360도 비추기 (책상 위, 모니터 주변)
4. 화면 공유 시작 + 웹캠 상시 켜두기
5. 감독관 승인 후 VPN 팩 전달 → 시험 시작
왜 미리 아는가: 처음 겪는 절차는 그 자체로 심박을 올립니다. "정상적인 절차"라고 알고 있으면 감시는 배경이 되지만, 모르고 겪으면 전경이 되어 첫 30분을 태웁니다. 시험 중 화장실·식사는 허용되지만 웹캠 복귀 확인 등 절차가 있을 수 있으니, 규정을 미리 읽고 식사를 그 규정에 맞춰 설계합니다.
2-2. 제한 도구 규정 — 모의시험 때부터 지켰어야 하는 것
시험에는 사용이 제한되거나 금지되는 도구 범주가 있습니다. 전형적인 예(⚠️ 최신 규정은 반드시 공식 안내로 확인):
제한·금지 범주의 예시 (집필 시점 일반 안내):
- 상업용 자동 익스플로잇 도구 (예: 메타스플로잇의 제한적 사용 규정)
- 자동화된 익스플로잇 도구 전반 (sqlmap 등은 제한될 수 있음)
- AI 어시스턴트/외부 도움 — 사람·도구 불문하고 제3자의 풀이 지원 금지
- 시험 환경 외부로의 공격 (인프라, 다른 응시자) — 당연히 금지
핵심은 이것입니다 — 규정 확인은 시험 전날이 아니라 모의시험 구성 시점의 일입니다. Step 309에서 "금지 도구 목록을 실전 기준으로 확정"하라고 한 이유가 여기 있습니다. 모의시험에서 쓰던 워크플로가 그대로 합법이어야, 당일에 도구를 바꾸느라 손이 꼬이는 일이 없습니다.
2-3. 점수 전략 — 70점의 수학
시험은 점수 합산 게임입니다. 배점 구성의 예시(⚠️ 공식 확인 필수): AD 세트 40점 + 독립 머신 3대 × 20점 = 100점, 합격선 70점. 이 구조가 전략에 주는 함의를 계산기로 확인합니다 — 실측 결과입니다.
python score_calc.py
=== 합격선 70점 달성 조합 (예시 배점 기준) ===
[AD 세트 완주(40)를 잡은 경우] — 남은 필요 점수: 30점
독립 2대 완주 (20+20) → 80점 ✅ 합격권
독립 1대 완주 + 1대 부분 (20+10) → 70점 ✅ 합격권
[AD 세트를 못 잡은 경우] — 독립만으로는 최대 60점
독립 3대 전부 완주 (20x3) → 60점 ❌ 구조적으로 불가능
[AD 세트 부분 점수(30) + 독립] — 남은 필요 점수: 40점
AD 30 + 독립 2대 완주 (20+20) → 70점 ✅ 합격권
AD 30 + 독립 1대 완주 + 2대 부분 → 70점 ✅ 합격권
AD 20 + 독립 2대 완주 + 1대 부분 → 70점 ✅ 합격권
결론: 합격의 길은 사실상 두 개 — ① AD 완주 + 독립 1.5대, ② AD 부분(30) + 독립 2대
'AD를 버리는 전략'은 수학적으로 성립하지 않습니다.
읽는 법: 이 수학이 당일의 모든 판단을 지배합니다. "이 한 대를 못 풀면 끝"이 아니라 합산이기 때문에, 막힌 머신은 미루고 남은 조합을 계산하면 됩니다. 시험 중 현재 점수를 판정할 때는 python score_calc.py 30 20 20 10처럼 현재 확보 점수를 넣으면 합격선까지의 거리와 여지가 나옵니다.
2-4. 멘탈 관리 — 패닉은 예정된 구간이다
이 챕터의 중심 문제는 하나입니다 — 초반 2~3시간에 아무것도 못 풀면 패닉이 옵니다. 이 패닉을 "오면 어쩌지"가 아니라 "오는 구간"으로 설계에 넣습니다.
패닉 관리 프로토콜 (전략 확정 문서의 마지막 줄, 재인용):
1. 인지: "이것이 예정된 무득점 구간이다. 1차·2차 모의시험에도 있었다."
2. 행동: 시간표 확인 → 막힌 머신은 순번 미루기 → 체크리스트 펼치기
3. 금지: 전략 변경, 새로운 도구 시도, 남은 시간 계산 반복
4. 기준: 시험은 마라톤이다 — 3시간차의 0점은 24시간차의 0점이 아니다
그리고 수면입니다 — 계획된 수면(4~5시간)을 실제로 취합니다. "아까워서" 못 자는 것은 311에서 검증된 규칙을 당일에 파기하는 것입니다. 새벽의 맑은 머리가 밤샘 삽질보다 점수를 만든다는 것은 여러분의 두 번의 데이터가 이미 증명했습니다.
3. 따라 하기
3-1. 시험 전날 — 장비와 컨디션의 점검일
전날의 할 일은 공부가 아니라 점검입니다. 새 기법을 익히려는 시도는 전날의 불안만 키웁니다.
전날 체크리스트:
[ ] 칼리 VM 최신화 완료, 스냅샷 저장
[ ] 시험 VPN 연결 테스트 (접속·해제·재접속)
[ ] 프록터링 요구사항 확인: 웹캠 작동, 신분증 준비, 방 정리(모니터 주변)
[ ] 스크린샷 도구 단축키 확인 — 시험 중 도구 문제는 증거 누락으로 직결
[ ] 체크리스트/보고서 템플릿/전략 확정 문서 파일 위치 확정
[ ] 최신 시험 규정 재확인 — 안내 메일과 공식 문서 (배점·제한 도구·시간)
[ ] 식사 준비 (조리 없이 먹을 수 있는 것), 물, 수면 알람 2개
[ ] 전날 밤은 평소보다 일찍 — 시험 시작 시각에 맞춰 수면 위상 조정
왜 마지막 항목이 있는가: 시험 시작 시각은 예약제입니다. 평소 새벽형 생활자가 오전 9시 시작 시험을 치면 첫 3시간을 저컨디션으로 태웁니다. 며칠 전부터 기상 시각을 시험 일정에 맞춰 두세요.
3-2. 시험 당일 시작 — 절차는 천천히, 타이머는 정확히
시작 시퀀스 (예시):
1. 시작 30분 전: 프록터링 접속, 신분증·환경 검사 통과
2. VPN 접속, 대상 범위(scope) 문서 확인 — 공격 허용 대상의 IP 목록
3. 타이머 시작: python lap_timer.py start
4. 전략 문서대로 첫 블록 실행 — 병렬 정찰 (전 머신 스캔)
5. 30분 후: 첫 판단 — 확정 문서의 순서 규칙대로 첫 머신 착수
시작 직후의 30분이 하루를 결정합니다. 초조함에 "일단 하나 깊게 파기"로 시작하고 싶어지지만, 확정 문서가 있는 한 그 유혹은 시험이 아니라 노이즈입니다.
3-3. 시험 중 운영 — 확정 문서의 실행
시험 중의 여러분은 전략가가 아니라 집행자입니다. 판단은 Step 311에서 끝났고, 오늘은 실행만 남았습니다.
집행 규칙 (전략 확정 문서에서 발췌되는 형태):
- 머신 상한: 독립 3시간 / AD 4시간 — 도달하면 순번 미루기 (포기 아님)
- 막힘 30분: 체크리스트 강제 펼치기
- 점수 판정: 중간 점검마다 python score_calc.py <AD> <독립1> <독립2> <독립3>
- 증거: 쉘 획득 즉시 4종 (whoami / IP / 플래그 / 경로 핵심 출력)
- 수면: 계획 시각에 취침 — 알람 2개
- 마감: 종료 2시간 전부터 새 공략 중단, 부분 점수 + 보고서 초본
화면 예시 (중간 점검 시점의 점수 판정 — 실측):
python score_calc.py 30 20 20 10
입력 점수: AD=30, 독립=[20, 20, 10] → 합계 80점
판정: 70점 기준 합격권 ✅
이 출력이 뜨는 순간부터 전략이 바뀝니다 — "점수 만들기"에서 "점수 지키기"로. 새 머신 공략보다 확보한 머신의 증거 완결성과 보고서 정리에 시간을 씁니다.
3-4. 보고서 작성과 제출 — 시험의 두 번째 24시간
종료 후 24시간 안에 보고서를 제출합니다(⚠️ 기한·형식은 공식 안내 확인). 이미 시험 중에 초본이 쌓여 있다면 이 시간은 창작이 아니라 검수입니다.
제출 전 검수 체크 (머신당):
[ ] 머신 이름·IP가 시험 scope 문서와 일치
[ ] 침투 경로가 명령+출력으로 재현 가능 — "취약점을 이용해" 같은 모호한 문장 없음
[ ] 증거 스크린샷 4종 존재, IP와 시각이 식별 가능
[ ] 요구되는 증거 파일(local.txt / proof.txt 등)의 명령어 컨텍스트 포함 — 공식 형식 확인
[ ] PDF 변환 후 전체 페이지 눈으로 검수
[ ] 제출 확인(접수 메일 등) 보관
왜 재현 가능성인가: 보고서는 채점관이 여러분의 경로를 따라갈 수 있어야 합니다. "된다고 쓴 것"이 아니라 "따라 하면 되는 것"이 보고서의 합격선입니다. 모의시험 두 번에서 쓴 템플릿이 그대로 여기서 쓰입니다 — 그래서 Step 309부터 템플릿을 쓰라고 했습니다.
4. 미션과 연습문제
미션 — 실기 시험 응시와 보고서 제출
- 전날 체크리스트(3-1)를 전부 실행하고, 최신 시험 규정(배점·제한 도구·시간·보고서 기한)을 공식 안내로 재확인합니다.
- 프록터링 절차를 통과하고 시험을 시작합니다 — 타이머와 랩 기록을 모의시험과 같은 방식으로 유지합니다.
- 전략 확정 문서를 끝까지 집행합니다 — 상한 준수, 수면 취하기, 증거 4종 실시간 수집.
- 중간 점검마다 현재 점수를
score_calc.py로 판정하고, 합격선 도달 후 "지키기" 모드로 전환합니다. - 종료 후 24시간 안에 보고서를 검수 체크(3-4)와 함께 제출하고, 제출 확인을 보관합니다.
연습문제
문제 1. 점수 합산 구조(예시 기준)에서 "AD 세트를 버리고 독립 머신에 집중하는 전략"이 성립하지 않는 이유를 수학으로 설명해 보세요.
문제 2. 제한 도구 규정의 확인이 "시험 전날"이 아니라 "모의시험 구성 시점"이어야 하는 이유는 무엇인가요?
문제 3. 초반 무득점 구간의 패닉 관리 프로토콜에서 "남은 시간 계산 반복"이 금지 항목인 이유는 무엇인가요?
문제 4. 합격선에 도달한 뒤 "점수 지키기" 모드로 전환하라고 했습니다. 지키기 모드에서 시간을 쓰는 대상은 무엇이며, 왜 새 머신 공략이 후순위가 되나요?
5. 모범 답안과 완료 기준
미션 모범 답안
검증 기준으로 확인하세요.
- 규정의 최신성: 배점·시간·제한 도구·보고서 기한을 공식 안내로 확인한 흔적이 있는가 — 이 챕터의 수치를 그대로 믿고 응시하는 것은 이 챕터의 지시 위반입니다.
- 전날의 완결: 장비·VPN·웹캠·스크린샷 도구가 전날 전부 점검됐는가 — 당일 아침의 장비 문제는 패닉의 가장 어이없는 경로입니다.
- 집행의 일관성: 시험 중의 행동이 전략 확정 문서와 일치하는가 — 당일에 새로 만든 전략은 검증된 적이 없습니다.
- 수면의 실행: 계획된 수면을 실제로 취했는가 — 취하지 못했다면 회고(Step 313)의 1순위 기록 사항입니다.
- 증거와 보고서: 득점한 모든 머신에 증거가 있고, 보고서가 기한 안에 제출·확인됐는가. 풀이가 훌륭해도 보고서가 미비하면 점수는 인정되지 않습니다.
연습문제 해답
문제 1 해답. 예시 배점에서 독립 머신의 총점은 60점(3대 × 20점)인데 합격선은 70점입니다 — 독립만 완벽하게 풀어도 구조적으로 10점이 모자랍니다. 따라서 AD 세트에서 최소 10점(실질적으로는 20~30점)을 가져와야 하고, 이것이 "AD 선착수" 또는 "AD 병렬 정찰"이 모든 전략의 공통 요소인 이유입니다. 수학이 전략의 하한선을 정합니다 — 그래서 당일에 감정으로 전략을 바꾸면 안 됩니다.
문제 2 해답. 도구 워크플로는 근육 기억이기 때문입니다. 모의시험에서 금지 도구에 의존한 풀이 습관이 몸에 배면, 당일에 그 도구 없이 같은 문제를 만났을 때 손이 멈춥니다 — "할 수 있는데 못 하는" 상태가 됩니다. 모의시험 때부터 실전 규정으로 연습하면 합법 워크플로가 기본값이 되고, 당일의 변수가 하나 줄어듭니다. 규정 준수는 윤리 문제이기 전에 훈련 설계 문제입니다.
문제 3 해답. 남은 시간 계산은 행동이 아니라 불안의 재생산이기 때문입니다. "이제 14시간 남았고 30점 더 필요해"라는 계산은 그 시점에 내릴 수 있는 유일한 결론 — "시간표대로 다음 행동을 한다" — 을 바꾸지 못하면서, 심박만 올립니다. 판단을 바꾸지 않는 정보의 반복 확인은 패닉의 연료입니다. 시간 확인은 계획된 중간 점검 시점에만 합니다 — 그때는 계산이 행동(우선순위 재조정)으로 이어지니까요.
문제 4 해답. 지키기 모드의 시간은 확보한 점수의 완결성에 씁니다 — 증거 4종의 재확인, 부분 점수 머신의 추가 수확, 보고서 초본 정리입니다. 새 머신 공략이 후순위인 이유는 기대값 때문입니다 — 미해결 머신의 신규 득점은 불확실하지만, 이미 뚫은 머신의 증거 누락은 확정된 점수의 확정된 손실입니다. 보고서 단계에서 "풀었는데 증거가 없다"는 되돌릴 수 없는 사고이므로, 확보분의 문서화가 신규 탐험보다 항상 먼저입니다.
완료 기준 체크리스트
- [ ] 최신 시험 규정(배점·시간·제한 도구·보고서 기한)을 공식 안내로 확인했다
- [ ] 전날 체크리스트(장비·VPN·프록터링·컨디션)를 전부 실행했다
- [ ] 프록터링 절차(신분증·환경 검사·화면 공유)를 통과했다
- [ ] 전략 확정 문서대로 24시간을 집행했다(상한·수면·체크리스트 포함)
- [ ] 득점 머신 전부의 증거 4종을 실시간으로 수집했다
- [ ] 중간 점검에서 점수를 판정하고 합격선 도달 후 지키기 모드로 전환했다
- [ ] 종료 후 24시간 안에 보고서를 제출하고 접수 확인을 보관했다
6. 흔한 실수와 해결
벽 1. 시험 시작 전 프록터링 앱이 웹캠을 못 잡아요
증상: 감독 화면에서 카메라가 인식되지 않습니다. 시작 시각이 다가옵니다.
원인: 다른 앱(화상회의, 브라우저 탭)이 웹캠을 점유하고 있는 경우가 대부분입니다.
해결: 전날 점검에서 프록터링 앱과 웹캠의 동시 조합까지 테스트해 두세요 — 카메라 단독 테스트는 통과해도 조합에서 막히는 경우가 있습니다. 당일에는 웹캠을 쓰는 모든 앱을 종료하고 재접속하며, 그래도 안 되면 감독관 채팅으로 즉시 상황을 공유합니다. 절차 지연은 기록되지만, 무응답이 더 나쁩니다.
벽 2. VPN이 시험 중에 끊겼어요
증상: 스캔이 멈추고 쉘 세션이 죽습니다.
원인: 장시간 세션에서의 연결 단절은 흔한 사건입니다 — 모의시험에서도 겪었을 것입니다.
해결: 당황하지 말고 재접속 절차를 실행하세요 — 전날에 "접속·해제·재접속"을 테스트한 것이 이 순간을 위한 것입니다. 끊긴 시각을 랩에 기록해 두고, 진행 중이던 공격은 로그의 마지막 지점부터 재개합니다. 세션이 완전히 죽은 머신은 재침투가 필요할 수 있습니다 — 그래서 증거는 "얻는 즉시" 찍는 것이었습니다. 지속 장애라면 감독관에게 보고합니다.
벽 3. 3시간째 0점인데 손이 떨려요
증상: 무엇을 해도 안 되는 것 같고, 시계만 봅니다.
원인: 예정된 패닉 구간입니다 — 모의시험의 같은 지점을 기억하세요. 1차와 2차의 로그에 초반 무득점 구간이 있었고, 그 뒤에 득점이 있었습니다.
해결: 프로토콜을 실행하세요 — ① "예정된 구간"이라고 인지, ② 시간표 확인 후 막힌 머신을 순번 미루기, ③ 체크리스트를 펼쳐 첫 항목부터 기계적으로. 그리고 5분간 화면에서 떨어져 찬물 세수. 시험은 마라톤입니다 — 3시간차의 0점은 마라톤 5km 지점의 꼴찌와 같습니다. 결승선에서만 채점됩니다.
벽 4. 풀었는데 score_calc.py 점수 입력 형식이 헷갈려요
증상:
$ python score_calc.py 40 20
... (조합 모드로 출력됨 — 내 점수 판정이 안 됨)
원인: 점수 판정 모드는 인자가 정확히 4개(AD + 독립 3대)일 때만 동작합니다. 인자가 다르면 조합 설명 모드로 실행됩니다.
해결: 아직 손대지 않은 독립 머신은 0으로 채워 4개를 맞추세요 — python score_calc.py 40 20 0 0. 중간 점검 때마다 같은 형식으로 입력하면 점수 추이가 랩 로그에 남아 회고의 재료가 됩니다.
벽 5. 보고서를 쓰다가 증거 스크린샷 하나가 없는 걸 발견했어요
증상: 종료 후 검수에서 특정 머신의 proof 캡처가 없습니다. 시험 환경은 이미 닫혔습니다.
원인: 2-4의 "나중에 찍기"가 한 번 발동한 것입니다 — 가장 아픈 사고지만, 대처가 있습니다.
해결: 즉시 감독관/운영 안내의 절차를 확인하세요 — 환경 재접속이 허용되는 경우가 있는지, 종료 후 접근 규정이 어떤지는 공식 안내가 답합니다. 재접속이 불가라면 침투 경로의 로그·출력 기록으로 최대한 성실하게 문서화하고, 그 머신의 득점 기대를 낮춘 채 나머지 머신의 완결성에 집중합니다. 그리고 회고에 기록하세요 — 이 한 장의 비용이 다음 시험(또는 재응시)의 "증거 먼저" 습관을 영구히 만듭니다.
7. 정리
오늘의 개념
| 개념 | 한 줄 설명 |
|---|---|
| 프록터링 | 화면·웹캠 감시 하의 원격 시험 — 절차를 알면 배경이 된다 |
| 제한 도구 규정 | 금지 도구 목록은 훈련 설계의 일부 — 모의시험부터 실전 기준으로 |
| 점수 합산 전략 | 70점의 수학 — AD를 버리는 전략은 구조적으로 불성립 (예시 배점) |
| 집행자 모드 | 당일의 판단은 전략 문서가 하고, 나는 실행만 한다 |
| 패닉 구간 | 초반 무득점은 사고가 아니라 예정된 지형 — 프로토콜로 통과 |
| 지키기 모드 | 합격선 도달 후에는 확보분의 증거·문서 완결이 우선 |
오늘의 명령·문서
| 명령·문서 | 하는 일 |
|---|---|
python score_calc.py |
합격 조합의 수학 확인 |
python score_calc.py <AD> <독1> <독2> <독3> |
현재 점수의 합격선 판정 |
| 전략 확정 문서 | 당일 운영의 유일한 판단 기준 |
| 전날 체크리스트 | 장비·규정·컨디션의 사전 점검 |
| 제출 전 검수 체크 | 보고서의 재현 가능성 확인 |
명령어보다 중요한 감각
오늘 하루에 새로운 것은 없었어야 합니다. 프록터링도, 24시간의 길이도, 새벽의 피로도, 막힘의 절망도 — 전부 모의시험에서 한 번씩은 지나온 길입니다. 시험이 채점한 것은 기술만이 아닙니다. 계획을 만들고, 지키고, 무너진 뒤에 분석하고, 다시 선 그 전 과정의 완성도를 채점했습니다.
제출 버튼을 누르고 나면 결과를 기다리는 며칠이 남습니다. 그 며칠에도 할 일이 있습니다 — 결과와 무관하게, 이 하루를 기록으로 남겨 자산으로 만드는 일입니다.
전부 체크되면 Step 312 완료입니다.