8 분 소요

어려운 시험일수록 시험이 갖는 의미와 위상도 높기 때문에 끝까지 포기하지 말고 꼭 취득하길 바란다.

개요

이번 포스트에선 OSCP 취득을 목표로 열심히 해킹 공부를 하고 있는 사람들을 위한 OSCP 2023 시험 준비 가이드를 준비했다. 해킹이 처음인 사람도 있고, 모의 해킹 분야로 취업이나 이직 준비를 하고 있거나, 현직에 있어도 딱히 자격증이 없어 도전하는 현직자등, 여러가지 이유로 OSCP를 준비하고 있는 모든 응시자들에게 이 가이드 글이 조금이나마 도움이 되길 바란다.

일단 본론에 들어가기 앞서, 분명히 말하고 넘어가겠다. 이 시험을 절대 쉬운 시험이 아니다.

가끔가다 OSCP를 이미 따고 , “솔직히 그렇게 어렵지 않다”, 라고 말할 수 있는거는 시험에 통과한 사람들이나 말할 수 있는 허세 아닌 허세인거지 아직 취득하지 않은 사람들에게 이런 이야기를 해봤자 도움도 안될 뿐더러 “생각보다 어렵지 않다는데 왜 나는 어렵지?” 라는 생각에 의욕 상실만 부추길 뿐이다.

참고로 이 포스트은 OSCP를 통과하기 위한 어떠한 해킹 기술이나 “이것만 하면 무조건 통과, 체크리스트 10개” 와 같은 과장된 정보를 알려주는 글이 아니다. 대신 이 글을 통해 필자가 OSCP를 취득한 경험과 취득 과정에서 느꼈던 생각을 바탕으로 OSCP 응시자들이 시험을 준비하는 과정에서 미리 알고 있으면 좋을 팁 몇가지를 공유하고자 한다.

첫번째, 마인드 컨트롤

OSCP 시험은 오지선답중에 모르면 무조건 3번을 찍는 객관식 시험이나 이해하지 못해도 무작정 외어서 통과할수 있는 주입식 교육에 익숙한 한국인에겐 너무나도 당황스러운 시험이다. 일단, 악명 높은 OSCP 시험 난이도는 둘째치고, 아래와 같이 시험 구성이 굉장히 특이하다.

공식 OSCP Exam Guide 중

공식 OSCP Exam Guide 중


OSCP 인증 시험은 소수의 취약한 시스템이 포함된 사설 VPN의 라이브 네트워크를 시뮬레이션합니다.
시험을 완료하는  23시간 45분이 주어집니다.
, 시험이 09:00 GMT에 시작되면 시험은 다음  08:45 GMT에 종료됩니다.
시험이 끝나면 24시간 동안 문서를 업로드해야 합니다.
,   24시간 (정확히는 23시간 45) 동안은 실습 해킹, 다음 24시간 동안 리포트 작성 시간으로  48시간 동안 논스톱으로 진행되며, 처음 24시간 동안에 6  5 이상의 타겟 컴퓨터를 직접 해킹해야 하며 , 거기서 끝나지 않고 바로 영어로 리포트까지 써야하는 극악무도의 난이도를 자랑한다.

최근에는 Active Directory 타겟이 포함되어 있는데 Active Directory 해킹에 대해 가르치는 학교나 학원, 강의는 찾아 보기 어렵기 때문에 상당한 수준의 실력과 멘탈이 요구되는 시험이라고 할 수 있다.

OSCP를 공부했던 과거 나의 모습...

OSCP를 공부했던 과거 나의 모습…

또한 OSCP 시험은 시험 등록 (Exam attempt)만은 따로 제공하진 않으므로 시험을 보기 위해선 무조건 OSCP 강의 코스를 구매해야한다. 예전에는 30,60,90일짜리 코스를 따로 따로 제공해 30일짜리는 120만원 정도로 들을수 있었지 어째서인지 지금은 무조건 기본 90일 코스+ 1번의 시험 기회의의 1599 달러 코스만을 제공한다. (한화로 따지만 200만원 정도 되려나?)

돈 벌줄 아는 OffSec..

돈 벌줄 아는 OffSec..

OSCP 강의 교재 + 시험 구매 링크:

필자처럼 회삿돈으로 공부하는 거라면 부담이 조금 덜 하겠지만 만약에 학생이나 취준생이라면 여간 부담되는 가격이 아닐 수 없다.

어찌해서 OSCP 코스는 90일 신청한다 해도 대략 400시간 정도의 시간을 ( i.e. 하루에 4시간 x 90일 = 360시간) 투자해야 하므로, 정말 딸려고 마음먹었다면 3개월동안 점점 주변에 사람이 없어져도 괜찮다는 각오 정도는 하고 시작을 해야한다. 뭐 어느 정도 반강제적으로라도 히키코모리의 삶을 경험하는 특별한? 경험이 될 수 있으나 혹시라도 주변에서 살아있나 걱정할 수 있으니 인스타 계정을 파서 하루에 하나씩 저녁 메뉴 사진이라도 올리도록 하자.

두번째, Try harder but smarter. 스마트하게 공부하라.

OSCP를 공부하다가 도저히 모르겠거나 때려치고 싶은 순간이 온다. 그럴때마다 OSCP를 주관하는 OffSec사는 항상 이렇게 말한다.

“Try Harder.”

의역을 하자면 “노오오오력을 좀 해라”라는 굉장히 꼰대스러운 모토로 들릴수 있지만 OffSec사는 이 모토에 꽤나 진심이다. 얼마나 진심이면 Try Harder라는 공식 레게송까지 만들었다.

Offensive Security Say - Try Harder!

이 노래는 OSCP 공부에 전혀 도움되지 않는다.

이 노래는 OSCP 공부에 전혀 도움되지 않는다.

당시에 필자가 한참 OSCP를 준비하고 있을때 커뮤니티 페이지에 질문만 했다하면 돌아오는 대답이 항상 “Try Harder” 밖에 없었다. 솔직히 무슨 말만하면 Try Harder을 시전 하는 걸 보고 “아니 그니까 도데체 어떻게 Try Harder 하라는 거냐고?”라는 의문과 나중에는 Try Harder 트라우마가 온다.

5.png

OSCP 통과하기, Try Harder

그러므로 필자는 OffSec의 Try Harder 모토보다 훨씬 더 설득력있는 모토를 말해주고 싶다.

“Try Smarter”

OSCP는 100% 실습 시험이기 때문에 무작정 열심히 노오오력만 하다보면 통과하지 못한다. 그렇기에 우리는 “Try Smarter”, “무작정 열심히가 아니라 똑똑하게 일하라”의 마인드로 똑똑하게 준비해야 한다.

똑똑하게 준비하기

우선 첫번쨰로 OSCP에서 제공하는 Lab exercise를 꼼꼼히 공부하며 자신만의 CheatSheet, 공부노트를 통해 효과적으로 공부하는게 중요하다. CheatSheet은 한국으로 따지면 공부 요약 노트/요점 정리 노트 개념이다. Cheatsheet을 다 만들었다면 본인이 만든 Cheatsheet을 보며 HackTheBox나 TryHackMe와 같은 플랫폼이 제공하는 OSCP 시험 박스와 유사한 CTF 박스를 최대한 많이 해결해 보는 것이다.

OSCP 시험은 따로 기출문제나 Exam dump가 존재하지 않기 때문에 사람마다 취약 박스가 랜덤으로 주어지고 딱히 정형화된 문제 풀이법도 없기 때문에 시험 공부하는 입장에서는 굉장히 난감할 수 밖에 없다. 그렇기 때문에 최대한 OSCP와 비슷한 HTB 머신을 본인의 요약노트/CheatSheet만을 가지고 풀어보며 자신만의 풀이법을 만들고 CheatSheet의 부족한점을 채워가며 공부하면 된다.

OSCP 개인 CheatSheet 예:

OSCP personal cheatsheet

또한, 다른 사람의 문제 풀이나 Writeup을 참고하며 따라해보는 것도 좋은 학습 방법이다. 이를 통해 실전에 대비하는 데 도움이 되는 경험을 쌓을 수 있다.

0xdf’s Hackthebox 문제 풀이 writeup 블로그 링크:

0xdf hacks stuff

Ippsec’s Hacthebox 문제 풀이 유투브 링크:

IppSec

세번째, “통과하는 법”은 따로 존재하지 않는다. 우리가 할 수 있는건 준비뿐.

OSCP에 대해 찾다보면 “How to pass OSCP”나 “이렇게 하면 무조건 통과 쌉가능” 같은 식의 어그로 제목 영상이나 글이 자주 보인다. 이런 글들은 “5가지 인생의 법칙”과 같은 제목으로 어그로를 끈다음 “운동을 하면 건강해진다” , “많이 먹으면 살이 찐다”와 같은 누구나 다 아는 상식을 괜히 어려운 단어를 섞어가며 전문가 코스프레와 함께 사람을 홀리는 재주와 다를게 없다.

노오오오력 하면 안되는게 없다, Try Harder

말이나 못하면...

말이나 못하면…

쉬운말을 어렵게 얘기하는 재주만큼 쓸데없는 재주가 없다.

뭐, “OSCP 리뷰”나 개인 경험담은 어느 정도 마음의 준비를 하는데 도움이라도 되지, 앞뒤 맥락없이 “통과를 위한 통과하는 법”과 같은 법은 존재하지 않는다. 일단 OSCP 시험 자체가 어떠한 취약점의 해킹 박스가 문제로 나올지 전혀 모르는 Blackbox 테스팅이며, 딱히 전형화된 정답이 없으므로 “통과를 위한 통과하는 법”과 같은 리소스를 찾는데 너무 많은 시간을 낭비하지 않기를 바랍니다. “A,B,C,D만하면 무조건 OSCP 통과야!”와 “OSCP를 통과하는데 나는 A,B,C,D를 공부했어”,는 굉장히 어감이 다르지 않은가?

따라서 통과하는 법(How to pass)이 아닌 통과하기 위한 최선의 준비 방법 (How to prepare)은 다음과 같다.

  1. OSCP 공식 강의 자료 + 공식 Lab 과제로 공부하기 ( 강의 교재/영상 + Labs + Try harder = 탈모)

OSCP 시험을 보기 위해 구입한 90일짜리 강의 자료에는 강의 교재+ 강의 영상 + Lab 환경이 포함되어 있다. OSCP 시험범위는 공식 강의자료와 Lab에서 크게 벗어나지 않기 때문에 제일 먼저 공부해야 할 자료라고 보면 된다. 참고로 80% 이상의 OSCP Lab exercise를 풀고 리포트까지 작성, 제출할 경우 보너스 10점을 얻을 수 있으므로 혹시라도 필요하다면 알아두고 시작하자.

OSCP Lab 연결 가이드:

Course start guide

OSCP 강의 목차:

pen-200-pwk-syllabus.pdf

2. OSCP 시험 박스와 비슷한 HackTheBox Machines (OSCP-like-HTB Machines)로 실전 다지기

시간이 촉박해 Lab을 다 끝마치지 못했더라도 너무 걱정하지 않아도 된다. 그대신에 중간 중간 HackTheBox에서 제공하는 머신을 풀어 보면서 실전에 익숙해지도록 하자.

NetSecFocus Trophy Room- HackTheBox’s OSCP와 비슷한 머신 리스트:

HackTheBox는 무료 계정으로도 풀 수 있는 Live Machine를 제공하지만 Live Machine은 규정상 문제 풀이를 공개하지 않고, 공개할 수 없다. 따라서 Live Machine이 Retired (은퇴)를 하기 전까진 문제 풀이 없이 혼자서 풀어야 하는 어려움이 있으므로 VIP 계정 (한달에 USD $14 )을 구독하여 위 NetSecFocus Trophy Room- HackTheBox’s OSCP의 Retired Machine을 하나 하나 공식 Writeup과 함께 풀어보길 바란다.

HackTheBox VIP 구독하기:

Hack The Box Pricing

또한 Ippsec이라 부르는 유투버가 공식적으로 올리는 HackTheBox 문제 풀이도 있으니 문제 풀이 영상이 필요하다면 Ippsec의 공식 유투브에서 각 머신신의 문제풀이 영상을 찾아보길 바란다.

Ippsec 링크:

IppSec

마지막으로 한국 사이버 보안 유투브 채널 Groot Security와 Choi Security에서도 HackTheBox 한국어 문제 풀이를 제공하고 제공할 예정이니 한국어로 된 문제 풀이를 보고 싶다면 구독과 좋아요, 알림 설정까지 부탁한다.

라쿤시티 OSCP 대비 문제풀이 영상 플레이 리스트:

[핵더박스 - Forest 문제풀이 OSCP 국제 해킹 자격증 대비](https://youtu.be/RJeoqce9g0s?list=PLQT3hYggZQNjmHlAj1CiT4R0kvJyS_XeY)

초이 시큐리티 링크:

ChoiSecurity

결론적으로 HackTheBox를 통해 OSCP를 준비하는 방법은 아래 다이어그램과 같다.

9.png

네번째, OSCP 시험 당일

OSCP시험 통과 기준은 다음과 같다.

100점 만점에 70점 이상 받아야 통과

100점 만점에 70점 이상 받아야 통과

앞서 언급했듯이 총 6개의 타겟이 주어진다. 그중에 3개는 Active Directory 타겟(2 Clients + 1 domain controller = 파란색 40 포인트), 나머지 3개는 각 개인 독립된 타겟(3 independent targets = 빨간색 60 포인트)로 구성된다.

일단 3개의 AD 타겟 해킹에 성공하면 총 40점을 얻으며 각 독립된 타겟은은 낮은 권한의 유저를 해킹할시 (Low Privilege) 10점, 높은 권한의 유저를 해킹할시 ( High Privilege) 10점 이렇게 한 박스당 총 20점씩 구성된다.

이렇게 총 100점 만점의 시험으로, 시험의 통과하기 위한 점수는 70점 이상이다. 따라서 시험에 통과하기 위한 몇가지 시나리오로는:

  1. 1.AD 타겟 해킹 실패시, 독립 타겟 3개 해킹 성공 (60점) + OSCP Lab Exercise 완료 ( 보너스 점수 10점)= 70점으로 통과하기.

  2. 2.AD 3개 박스를 해킹 (40점) + 독립 박스 1개 (20 점) + LAB (10점 보너스) = 70점으로 통과하기.

  3. 3.AD 3개 박스 해킹 (40점) + 독립 박스 2개 해킹 (20점 x 2= 40점) = 80점으로 통과하기.

정도의 전략아닌 전략을 생각해 볼 수 도 있지만 OSCP LAB Exercise를 완료하지 못해 보너스 10점이 없는 대부분의 경우 무조건 AD 타겟는 해킹해야 한다는 결론이 나온다. AD 공부 열심히 하자.

OSCP 시험 당일의 모습...

OSCP 시험 당일의 모습…

참고로 필자가 OSCP 시험을 볼 당시에는 AD 취약점이 아니라 BufferOverflow 취약점 시험이였고 6개가 아니라 5개였지만 Lab을 끝내지 못해 박스 4개 + 가장 어려운 타겟 낮은 권한 유저 = 총 75점으로 통과했다.

이렇게 해서 70점을 넘겼다 해도 여기서 끝이 아니다. 그 다음 24시간은 리포트 작성 시간으로 이어진다. 만약에 첫 24시간 전에 70점을 넘기고 해킹을 끝냈다면 다음 24시간이 오기전까지 기다릴 필요는 없고 바로 이어서 리포트를 쓰기 시작하면 된다. 리포트는 해킹한 박스에 대한 해킹 과정, 기술등을 스크린샷과 함께 자세히 영어로 서술하면 되며, 예시 리포트는 OffSec 홈페이지에도 나와있으니 같은 포멧을 사용하여 리포트를 작성하길 추천한다.

OSCP 시험 리포트 템플릿 다운 링크:

PEN-200 Reporting Requirements

https://theme.zdassets.com/theme_assets/9586008/79f1248e839499ccef092fdbd252bb1996c98971.png

참고로 해킹하는 시간보다 리포트 쓰는 시간이 더 오래 걸린다 카더라. 이유는 해킹에 성공해도 리포트를 너무 말도 안되게 써서 시험에서 떨어졌다는 괴담이 있어 사람들이 리포트에 모든 해킹 과정을 세밀하게 OMR 카드 체크하듯 굉장히 열심히 체크한다 하니 최종 리포트는 제출 전에 꼼꼼히 리뷰하길 바란다. 또한 시험과 리포트까지 마치고도 시간이 남는다면 시험 랩을 리셋한 후 다시 한번 해킹해 보는것을 추천한다.

리포트와 노트 작성에 사용할 에디터는 본인이 쓰던걸 써도 되지만 칼리에 설치된 CherryTree나 Obsidian 같이 Code 텍스트 포멧이 되거나 Markdown 기능이 포함된 에디터를 사용하는 것을 추천한다.

마치며

시험이 48시간이란 말은 스톱워치가 없이 논스탑으로 쭉이어진다는 말이지 이틀 내내 컴퓨터 앞에 앉아서 시험을 봐야하는 말은 아니다. 자는 시간,휴식 시간, 식사시간, 화장실, 개 산책, 게임, 넷플릭스와 같은 시간이 필요하면 감독관에게 미리 얘기하면 된다. 만약에 5-6시간 풀로 달렸는데 시험 진도가 안나간다면 감독관에 미리 얘기를 하고 산책이나 잠을 통해 뇌가 쉴 수 있게 해주는 것도 중요하다.

어려운 시험일수록 시험이 갖는 의미와 위상도 높기 때문에 끝까지 포기하지 말고 꼭 취득하길 바란다.

Happy Hacking!

업데이트: