Step 305. 연습 머신 공략 시작 — 한 대당 보고서 한 부

Step 305. 연습 머신 공략 시작 — 한 대당 보고서 한 부

Level 4 — 전문가 | 난이도 ★★★☆☆ | 예상 소요 시간 1~2일 (타임박스 4시간 × 2대)

전제: Step 304에서 OSCP 준비 계획서와 연습 머신 목록 30대를 완성했다. Step 128의 보고서 6단 구조를 안다.

  • 준비물: Step 304의 연습 머신 목록, HTB 또는 Proving Grounds 계정과 VPN, 공격 머신(Kali 권장), 증거 저장용 폴더 규칙, 타이머.
  • ⚠️ 이 챕터의 실습은 내 랩·합법 플랫폼 전용입니다. 허가 없는 시스템에 적용하면 범죄입니다. Proving Grounds와 Hack The Box는 운영자가 공식 개방한 합법 학습 플랫폼입니다.
  • 화면 안내: 이 챕터의 플랫폼 화면과 머신 공략 출력은 전부 화면 예시입니다. 실제 공략은 여러분이 직접 수행합니다.

Step 304에서 지도를 그렸으니, 오늘부터 걷습니다. 단, 걷는 방식이 지금까지와 한 가지 다릅니다 — 머신 한 대를 공략할 때마다 시험 형식의 보고서 초안 한 부를 남깁니다. OSCP에서는 "풀었는데 증거가 없으면 0점"이므로, 증거 수집은 공략이 끝난 뒤 하는 정리가 아니라 공략의 일부입니다. 오늘의 진짜 목표는 머신 2대가 아니라, 기록하면서 공략하는 몸의 리듬을 만드는 것입니다.


1. 학습 목표

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

  • OSCP 유사 머신 목록에서 난이도와 유형에 맞는 머신을 선정한다
  • 공략과 동시에 증거(명령 출력·스크린샷)를 수집하는 습관을 실행한다
  • 타임박스(4시간) 안에서 "공략/기록/판단"의 시간을 배분한다
  • 머신 한 대당 시험 형식의 보고서 초안 한 부를 작성한다
  • 공략 회고로 연습 목록과 약점 지도를 갱신한다

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

오늘의 도구 한눈에 보기

구분 내용
언어·환경 HTB 또는 Proving Grounds(VPN) + Kali 공격 머신
오늘의 명령 rustscan/nmap, 서비스별 열거 도구, 스크린샷 도구(Flameshot 등), tee
필요한 개념 OSCP-like 머신 목록, 증거 수집 규칙, 타임박싱, 보고서 초안 형식
오늘의 산출물 Easy 독립 머신 2대 공략 + 머신별 보고서 초안 2부 + 증거 폴더

2-1. OSCP-like 머신이란 — "플래그 퍼즐"이 아닌 것

모든 HTB/PG 머신이 시험 대비에 좋은 것은 아닙니다. OSCP-like로 분류되는 머신의 특징:

  • 서비스 체인형: 웹 취약점 → 쉘 → 권한 상승처럼 실제 침투의 순서를 따릅니다.
  • CTF식 트릭이 적음: 난이도를 위한 억지 수수께끼(스테가노그래피, 지나친 암호 퍼즐)가 없습니다.
  • 열거가 곧 난이도: 막히는 이유가 "안 본 포트/디렉터리"인 경우가 대부분입니다.

커뮤니티의 TJ_Null’s OSCP-like 리스트는 이 기준으로 오래 검증된 목록입니다 (화면 예시):

OSCP-like 연습 머신 (예시 분류)
┌──────────┬─────────────────────────────────────────┐
│ Easy     │ Lame, Blue, Legacy, Jerry, Nibbles ...  │
│ Medium   │ Forest, Sauna, Active, Bastion ...      │
│ Hard/AD  │ APT, Offshore(랩), PG AD 세트 ...       │
└──────────┴─────────────────────────────────────────┘

실제 목록은 Step 304에서 여러분이 직접 만든 30대입니다. 오늘은 그중 Easy 2대를 고릅니다.

2-2. 증거 수집 규칙 — 시험 채점의 실체

시험에서 점수가 인정되려면 증거가 필요합니다. 집필 시점 기준 알려진 요건(세부는 시험 가이드 확인):

  • 머신별로 local.txt(사용자 증거)와 proof.txt(최고 권한 증거)의 내용
  • 스크린샷에는 그 머신의 것임을 식별할 정보(IP, hostname)가 함께 보여야 함
  • 침투 과정의 명령이 보고서에 재현 가능한 수준으로 서술돼야 함

이 요건을 연습 습관으로 번역하면 세 가지입니다.

① 중요한 명령을 치기 "전"에 찍는다 — 결과가 나온 뒤엔 늦는 경우가 많다
② 캡처 화면에 항상 hostname/IP가 보이게 한다
③ 명령 출력은 tee로 파일에도 남긴다 — 스크린샷만 믿지 않는다

2-3. 증거 폴더 규칙 — 저장 위치를 하나로

증거가 흩어지면 보고서 작성 시간에 증거 찾기를 하게 됩니다. 폴더 규칙을 하나로 정하세요.

~/oscp-evidence/
├── lame/
│   ├── 01-nmap-full.txt
│   ├── 02-nmap-detail.txt
│   ├── 03-enum-web.txt
│   ├── 04-initial-shell.png   ← whoami + ip a 보이게
│   ├── 05-privesc.png
│   └── 06-proof.png           ← proof.txt + hostname + ip
├── blue/
└── 보고서/
    ├── lame-draft.md
    └── blue-draft.md

파일명 앞의 번호는 공략 순서입니다 — 나중에 보고서에 인용할 때 "증거 03"으로 바로 가리킬 수 있습니다. Step 128의 evidence 규칙과 같은 철학입니다.

2-4. 타임박싱 — 4시간의 설계도

시험에서는 머신당 평균 4시간 안팎을 쓸 수 있습니다. 연습 때부터 그 리듬을 몸에 넣습니다.

0:00~0:40  열거 — 전체 포트 → 서비스 상세 → 각 서비스 파고들기
0:40~2:00  초기 침투 — 가장 유력한 표면부터
2:00~3:00  권한 상승 — 정찰표(linPEAS/winPEAS + 수동 점검)
3:00~4:00  여유/재열거 — 막혔으면 열거로 회귀(Step 306)
          ※ 보고서 초안은 "끝나고"가 아니라 각 단계 직후 5분씩 채운다

타임박스가 끝나면 멈춥니다. 못 풀었으면 그 상태 그대로 회고하고 다음 날 이어서 합니다 — "계속 붙잡는 것"이 아니라 "시간을 재는 것"이 시험 감각입니다.


3. 따라 하기

3-1. 머신 선정과 배포

Step 304 목록의 Easy에서 2대를 고릅니다 — 하나는 리눅스, 하나는 윈도우로 고르는 것이 균형에 좋습니다 (화면 예시):

오늘의 선정
1. Lame (HTB, Linux, Easy)   — 서비스 버전 취약점 유형
2. Blue (HTB, Windows, Easy) — 알려진 취약점(MS17-010) 유형

머신을 배포하고 IP를 받으면 즉시 두 가지를 합니다: 증거 폴더 생성(mkdir -p ~/oscp-evidence/머신이름), 보고서 초안 파일 생성(뼈대만 — 3-4의 서식).

3-2. 열거 — 전체 포트부터

첫 명령은 항상 전체 포트 스캔입니다 (화면 예시):

rustscan -a 10.10.10.3 -- -sC -sV -oN ~/oscp-evidence/lame/01-nmap-full.txt
PORT     STATE SERVICE    VERSION
21/tcp   open  ftp        vsftpd 2.3.4
22/tcp   open  ssh        OpenSSH 4.7p1
139/tcp  open  netbios-ssn Samba smbd 3.0.20-Debian
445/tcp  open  netbios-ssn Samba smbd 3.0.20-Debian
3632/tcp open  distccd    distccd v1

읽는 법: 각 서비스 옆에 "확인할 것"을 메모합니다 — vsftpd 2.3.4 → 백도어 여부, Samba 3.0.20 → 알려진 취약점 검색, distccd → RCE 가능. 이 메모가 침투 순서의 후보 목록입니다. 그리고 스캔 결과 파일이 증거 01번으로 이미 저장돼 있는 것을 확인하세요 — 기록이 공략에 앞서는 순간입니다.

3-3. 초기 침투와 증거 캡처

가장 유력한 표면부터 시도합니다. 쉘을 얻는 순간, 다음 명령 전에 캡처합니다 (화면 예시):

whoami && hostname && ip a | grep inet
root
lame
inet 10.10.10.3/24 ...
cat /root/root.txt   # 사용자 머신이면 /home/사용자/user.txt

캡처 순서가 중요합니다 — whoami(권한) + hostname(머신 식별) + ip a(네트워크 식별) + 플래그가 한 화면에 있어야 그 증거가 완결됩니다. 네 번호 폴더(04-initial-shell.png)에 저장하고, 보고서 초안의 해당 절에 파일명을 바로 적습니다.

3-4. 보고서 초안 — 머신당 한 부

공략이 끝나면(또는 타임박스가 끝나면) 30분 안에 초안을 완성합니다. 서식은 Step 128의 축소판입니다 — 시험 형식의 정식 템플릿은 Step 307에서 확정하므로, 오늘은 다섯 칸만 채웁니다.

# Lame (10.10.10.3) — 보고서 초안
- 공략일: ____ / 소요: __시간 __분 / 결과: 완전 장악 or 초기 침투까지

## 침투 경로 요약 (한 문장)
## 1. 열거 — 발견 서비스와 판단 근거 (증거 01~03)
## 2. 초기 침투 — 취약점, 왜 취약한가, 실행 명령 (증거 04)
## 3. 권한 상승 — 경로와 근거 (증거 05)
## 4. 증거 — local/root + hostname + ip 캡처 (증거 06)
## 5. 수정 권고 — 발견별 1줄

작성 요령: "공략 로그를 옮기는 것"이 아니라 "검토자가 재현할 문서를 쓰는 것"입니다. 명령은 순서대로, 추측이 아니라 확인한 근거(버전, 설정)와 함께. 소요 시간을 반드시 적으세요 — 이것이 Step 304에서 말한 "내 데이터"가 쌓이는 지점입니다.

3-5. 회고 — 목록과 약점 지도 갱신

두 대가 끝나면 Step 304의 목록에 완료일을 찍고, 각 머신마다 세 줄의 회고를 남깁니다.

## Lame 회고
- 막힌 지점: (없음 / 어디서)
- 막힘을 푼 열거: (무엇을 다시 봐서 풀렸나)
- 다음에 다를 행동: (예: SMB 버전 확인을 스캔 단계로 앞당기기)

"막힘을 푼 열거"의 누적이 Step 306에서 만들 여러분의 약점 지도 원료입니다. 못 푼 머신도 회고합니다 — 타임박스 종료 시점의 "어디까지 봤고 무엇을 안 봤는가"가 최고의 교재입니다.


4. 미션과 연습문제

미션 — Easy 독립 머신 2대 + 보고서 초안 2부

  1. Step 304 목록에서 Easy 2대(리눅스 1 + 윈도우 1 권장)를 골라 타임박스 4시간으로 공략한다
  2. 머신별 증거 폴더를 만들고, 번호 규칙으로 증거를 저장한다
  3. 초기 쉘과 플래그 획득 순간에 whoami+hostname+ip a가 보이는 캡처를 남긴다
  4. 머신별 보고서 초안(다섯 칸 서식)을 공략 당일 안에 완성한다
  5. 각 머신에 세 줄 회고를 남기고, Step 304 목록에 완료일을 기록한다

연습문제

문제 1. "중요한 명령을 치기 전에 찍는다"는 습관이 필요한 이유를, 시험 채점 관점에서 설명해 보세요.

문제 2. 증거 캡처에 whoami·hostname·ip a가 함께 보여야 하는 이유는 무엇인가요?

문제 3. 보고서 초안을 "다 풀고 나중에"가 아니라 "단계 직후 5분씩" 채우는 방식의 장점 두 가지를 말해 보세요.

문제 4. 못 푼 머신의 회고가 오히려 더 가치 있는 이유를 설명해 보세요.


5. 모범 답안과 완료 기준

미션 모범 답안

완성된 보고서 초안의 "초기 침투" 절은 이런 모습입니다 (출력 부분은 출력 예시 — 여러분의 실측으로 채울 자리):

## 2. 초기 침투 — Samba 3.0.20 'username map script' (CVE-2007-2447)
- 취약 원인: Samba 3.0.20의 username map script 기능이
  인증 없이 명령 실행에 악용 가능. 지원 종료 버전 운영이 직접 원인.
- 공격 과정:
  1. nmap에서 139/445 Samba 3.0.20-Debian 확인 (증거 01)
  2. searchsploit samba 3.0.20 → CVE-2007-2447 확인
  3. smbclient 경유 사용자명에 명령 삽입하여 리버스 쉘 획득
- 획득 권한: root (증거 04: whoami=root, hostname=lame, ip=10.10.10.3)
- 방어: Samba 최신판 업데이트, 외부 노출 여부 점검

검증하는 법: ① 초안이 "검토자가 재현 가능한가" — 명령의 순서와 근거가 있는가. ② 증거 파일명 인용이 실제 폴더의 파일과 일치하는가. ③ 캡처에 권한+식별 정보가 함께 보이는가. ④ 소요 시간과 회고가 기록됐는가. ⑤ 못 푼 머신이라면 "어디까지"가 초안에 정확히 남았는가 — 부분 기록도 제출 가능한 상태여야 합니다.

연습문제 해답

문제 1 해답. 시험에서는 침투의 각 단계가 증거로 채점되고, 지나간 화면은 복구할 수 없는 경우가 많기 때문입니다 — 쉘 세션이 끊기거나 머신이 리셋되면 그 순간을 다시 찍을 수 없습니다. "치기 전에 찍는다"는 습관은 증거를 공략 흐름 안에 내장해서, 풀이가 곧 채점 자료가 되게 합니다. 연습에서 이 습관이 몸에 배지 않으면 시험 당일 긴장 속에서 반드시 빠뜨립니다.

문제 2 해답. 그 캡처가 "어느 머신에서, 어떤 권한으로" 얻은 것인지를 증명하기 위해서입니다. 플래그 문자열만 찍힌 화면은 어느 머신의 것인지 알 수 없어 채점관이 인정하기 어렵습니다. hostnameip가 함께 보여야 증거가 머신에 귀속되고, whoami가 보여야 권한 수준(사용자/최고 권한)이 구분됩니다.

문제 3 해답. 첫째, 기억이 살아 있을 때 쓰므로 명령의 순서와 판단 근거가 정확해집니다 — 하루 지나면 "왜 이 명령을 쳤는지"부터 잊습니다. 둘째, 완성 시점의 부담이 사라집니다 — 4시간 공략 후 통째로 쓰는 보고서는 1시간의 노동이지만, 단계별 5분은 쉬는 시간 수준입니다. 결과적으로 보고서 품질과 속도가 동시에 오릅니다.

문제 4 해답. 푼 머신은 이미 아는 것의 확인이고, 못 푼 머신은 "모르는 것의 위치"를 알려 주기 때문입니다. 타임박스 종료 시점의 기록 — 어떤 열거까지 했고, 무엇을 보지 못했는지 — 는 다음 훈련의 정확한 표적이 됩니다. OSCP 준비에서 약점 지도는 성공 로그가 아니라 실패 로그에서 그려집니다.

완료 기준 체크리스트

  • [ ] OSCP-like 머신의 특징(서비스 체인형)을 설명할 수 있다
  • [ ] 증거 폴더 규칙(번호-내용)을 만들고 적용했다
  • [ ] 캡처에 whoami+hostname+ip를 함께 넣는 습관을 실행했다
  • [ ] 타임박스 4시간의 단계 배분을 따라 공략했다
  • [ ] 머신별 보고서 초안을 당일에 완성했다
  • [ ] 세 줄 회고를 남기고 목록에 완료일을 찍었다
  • [ ] 미션: Easy 2대 + 초안 2부 + 증거 폴더 완성

6. 흔한 실수와 해결

벽 1. 푸는 데 몰입해 스크린샷을 빠뜨린다

증상: 머신은 장악했는데 증거가 없습니다.
원인: 기록이 공략의 "뒤"에 있었기 때문입니다.
해결: 순서를 바꾸세요 — 중요 명령 전에 찍는 것이 규칙입니다. 머신이 살아 있으면 증거를 새로 따고, 리셋됐으면 처음부터 다시 공략하며 이번에는 캡처하세요. 이 불편함이 시험 당일의 점수를 지키는 근육을 만듭니다. "시험에서 증거 없으면 풀어도 0점"을 폴더 바탕화면에 적어 두세요.

벽 2. 타임박스를 어기고 밤새 붙잡는다

증상: 4시간이 9시간이 됐고, 다음 날 일정이 무너졌습니다.
원인: "조금만 더"가 실력인 것 같은 착각입니다 — 시험에는 "조금만 더"가 없습니다.
해결: 타이머가 울리면 손을 떼고 회고를 씁니다. 이어서 하고 싶으면 다음 날 같은 머신을 재배포해서 처음부터 — 재배포 공략은 열거 복습도 되므로 손해가 아닙니다.

벽 3. 보고서 초안이 공략 로그의 복사가 된다

증상: 초안이 명령 나열이고 "왜"가 없습니다.
원인: 독자를 잊은 것입니다 — 초안의 독자는 "나중의 나"와 "검토자"입니다.
해결: 각 절에 근거 한 줄을 강제하세요 — "이 서비스를 판 이유: 버전 3.0.20 확인됨". Step 128의 네 칸 서식(원인→방법→권한→방어)이 그대로 적용됩니다.

벽 4. 증거 폴더가 엉망이 돼 인용을 못 찾는다

증상: 스크린샷 2026-09-09 (3).png 같은 이름이 늘어납니다.
원인: 캡처 순간에 이름 규칙을 적용하지 않았기 때문입니다.
해결: 캡처 도구의 저장 폴더를 머신 폴더로 미리 지정하고, 저장 직후 이름을 번호-내용.png로 바꾸세요. 10초의 이름 바꾸기가 보고서 작성의 30분을 구합니다.

벽 5. 쉬운 머신이라 건너뛰고 싶어진다

증상: "Lame은 이미 아는데"라며 기록 훈련을 생략하고 싶습니다.
원인: 이 챕터의 목적을 머신 장악으로 오해한 것입니다.
해결: 오늘의 훈련 대상은 머신이 아니라 기록 리듬입니다. 쉬운 머신이야말로 기술 부담 없이 기록 습관에 집중할 수 있는 최적의 샌드박스입니다. 어려운 머신에서 처음 기록 습관을 훈련하면 둘 다 놓칩니다.


7. 정리

오늘의 개념

개념 한 줄 설명
OSCP-like 머신 서비스 체인형, 열거가 난이도인 머신 — CTF 트릭이 적은 것
증거 수집 규칙 local/proof + hostname + ip — 치기 전에 찍는다
증거 폴더 ~/oscp-evidence/머신/번호-내용 — 인용 순서와 번호 일치
타임박스 4시간 열거 40분 → 침투 → 상승 → 재열거, 초안은 단계 직후 5분
보고서 초안 다섯 칸 서식 — 검토자가 재현 가능한 수준
세 줄 회고 막힌 지점 / 푼 열거 / 다음에 다를 행동 — 약점 지도의 원료

오늘의 명령어·도구

도구 하는 일
rustscan -a 대상 -- -sC -sV -oN 파일 전체 포트 스캔과 증거 01 저장을 동시에
whoami && hostname && ip a 증거 캡처 직전의 권한·식별 한 세트
Flameshot 등 캡처 도구 저장 폴더 지정 + 이름 규칙 적용
~/oscp-evidence/ 머신별 증거 보관소
타이머 타임박스의 강제 장치 — 울리면 손을 뗀다

명령어보다 중요한 감각

OSCP 준비에서 "풀기"와 "기록"은 두 개의 일이 아니라 하나의 일의 앞뒤입니다. 오늘 만든 리듬 — 치기 전에 찍고, 단계가 끝나면 다섯 칸을 채우고, 타이머가 울리면 회고를 쓰는 리듬 — 이 어려운 머신에서는 시간을 아끼고, 시험장에서는 점수를 지킵니다. 누적 보고서 초안의 수가 곧 여러분의 준비도입니다. 초안 10부쯤 쌓이면, 보고서는 더 이상 일이 아니라 공략의 숨쉬기가 됩니다.


전부 체크되면 Step 305 완료입니다. 사이드바의 체크박스를 눌러 진도를 저장하세요.