Red Team/My 프로젝트

OSCP 자격증 합격 후기 및 몇 가지 팁

wonder12 2024. 11. 19. 14:49

 

 

합격 후에 커뮤니티에 추후에 OSCP를 준비하시는 분들을 위해 팁을 공유했었고

후기는 영어 버전으로만 시험 직후에 바로 올렸었는데, 한글 버전으로는 이제야 올리게 되네요

 

 

 

OSCP를 준비하는 분들을 위해 저의 시험 후기 및 몇 가지 팁을 공유하려고 합니다.

영어 버전 후기를 번역한 느낌이 남아있다는 점 읽는데 양해 부탁드립니다.

 

 

 

시험 초반 

 

21시간이 걸렸던 이런 시험 시간은 처음 겪어보는 시간이였습니다.

잠을 못 자가면서 진행 되어서 그런지 시간이 지날수록 점점 더 고생하는 느낌이였습니다.

 

처음에는 시험관이 얼굴을 보이고 시험에 대해 직접 설명하는 것을 예상했지만, 그냥 채팅을 통해 조용히 진행됐습니다. 

신분증(여권)을 보여주고, 방안에 노트북 카메라를 돌려가며 보여줘야 했습니다.

 

 

 

처음 7시간 동안은 아무 취약점도 찾지 못했습니다. 너무 압도당한 느낌을 받고 좌절했습니다.

 

내가 재능이 있는 건지 다시 묻게 됐습니다. 이 일을 못하면 뭘 해야 되지? 라는 생각까지 하게 된 순간이였습니다.
여기서 떨어지면 최소 한 달은 HTB 머신을 풀면서 보내야 하나보다 생각했고 무엇보다 재시험 비용은 최소 50만 원 이기 때문에, 심각했습니다.

합격자들은 어떻게 다들 해내는 걸까? 라는 생각이 들면서 정말 존경스러웠습니다.

 

중간에 잠깐 낮잠을 자면 어떨까 고민 했지만, 쪽잠을 잔다면 시험이 끝난 후에도 영원히 못 일어날 수 있다고 생각했습니다. 그래서 그런 위험을 감수하지 않기로 하고 계속 진행했습니다.


하지만 집중해서 문제를 해결하려고 계속 생각하다 보니 하나씩 플래그를 찾을 수 있었습니다. 취약점을 발견했을 때는 "아, 단지 이거였구나?" 생각했죠.

 

24시간이라는 시험 시간은 스스로 문제를 생각하고 해결하기에 꽤 충분한 시간이였습니다.
물론 시험 중에 3~4시간 정도 잠을 잔다면 그렇게 길지는 않을 수도 있었지만, 잠을 자지 않아서, 오히려 래빗홀에 빠지고 다시 나와도 시간이 남았죠.

 

 

운이 좋았던 게, 머신의 난이도가 너무 높지 않았고, 내가 연습해온 것과 잘 맞았었습니다.

70 점을 확보했지만, 나머지 머신도 끝내고 싶은 마음이 커졌고, 동시에 해결할 수도 있을 것 같다는 생각이 들었습니다. 

 

70점을 확보한 후에는 잠깐 머리를 식히기 위해 동네를 걷고 왔습니다.
그리고 다시 돌아온 후, 지금까지 해왔던 것에서 한 발짝 물러서서

노트를 전체적으로 검토하며 "지금까지 내가 놓친 건 무엇이지?", "이 단계에서는 이렇게 생각했을 텐데" 하고 다시 시험에 들어갔습니다.

 

노트 정리를 할 때는,  혼잣말하듯이 생각 프로세스를 정리를 하면서 노트 정리를 했습니다. 시험 내내 막히더라도 집중력을 유지하는 데도 도움이 됐었기 때문에 도움이 됐습니다.

 

남은 관리자 권한 문제는 snap, lxd, lcd, mongodb와 관련된 것들이었지만, 해당 지식은 추가적인 공부가 필요한 지식이 였기 때문에 시험을 90점으로 마무리했습니다.

 

최종 제출 전에 사소하게 놓치는 실수로 점수를 깍어먹고 싶지 않아서 4번 이상 꼼꼼히 검토했습니다.

개인적으로 시험 때, 30분 단위로 타이머를 재설정하고 리프레쉬하는 방식이 집중하는데 효과적이었습니다.

 

 

 

 

시험 자체에 대한 작은 팁 (커뮤니티에 공유했었던)

 

1. tree /F 명령어는 시스템 관리자가 남긴 숨겨진 파일들을 찾아내는 데 아주 유용했습니다.

 

2. linpeas등 자동화 툴을 돌리는 것보다는 메뉴얼하게 남겨진 파일을 확인하거나 로컬에서 구동되고 있는 서비스를 악용해보려고 하시는게 좋습니다!

3. 리버스쉘을 연결할 때 포트가 막혀있다면 80, 443 웹 포트로 시도해보는 것 중요합니다.

4. vhost 의 경우 정확한 hostname을 host파일에 추가해야 숨겨진 사이트가 보입니다.

5. 노트 정리 : 3 actions -> 1 click 으로 자동화하려고 더 노력한다면 조금 더 똑똑하게 불필요하게 소모되는 시간을 줄일 수 있습니다.

 

 

 

영어실력이 필요한가요?

 

기본적으로 영어 실력이 어느정도 필요합니다.

예를 들어 Reddit이나 Discord 채널에서 팁을 검색할 때 말이죠. 또한 구글에 알려진 취약점에 대한 정보/단서를 검색할 때 필요합니다.

영어 읽기를 못했다면 이러한 자료에 접근하고 이해하는 데 어려움을 겪었을 겁니다.

 

 

 

좀 더 효율적인 방법이 있을까요?

 

취약점이나 단서를 검색할 때는 OSCP 치트 시트를 만들어 시험 중에 사용할 모든 것을 모아 자신만의 것으로 만드세요.

 

가장 효율적으로 준비하려면 OSCP A, B, C를 먼저 풀어보고, 어떤 유형의 문제가 나올지 이해한 후에 필요한 자료로 넘어가는 방법도 좋다고 생각합니다. 왜냐하면 저는 자격증 등 시험 볼 때, 언제나 그래왔던 방법이거든요.


사소한 것에 너무 많은 시간을 쓰지 마세요. 우선순위를 설정하고 필요한 것부터 처리하세요.

 

시험을 빨리 통과하고 싶다면, PG 연습 박스의 walk through를 리뷰를 하는 것도 하나의 방법입니다.

배경 지식 없는 상태다 보니 walk through를 반복해서 보면서 그 개념에 익숙해지는 방법을 선택했습니다. 

실무 hands-on 실력이다 보니, 어떻게 사용하는지 이해하고 익숙해지는 데 초점을 맞췄습니다.

 

모든 도구나 세부사항을 기억할 수는 없기 때문에, 자신만의 상세한 cheat sheet를 만들고, 아주 압축된 cheat sheet도 만들어 필요할 때마다 바로바로 쓸 수 있도록 만드는 게 중요합니다.

 

 

제가 생각하는 함정은 캡스톤 챌린지(capstone challenges)입니다.

개인적으로 대부분의 캡스톤을 해결하지 않았음에도 다른 것을 통해 지식을 습득 후, 시험을 충분히 통과할 수 있었습니다.

시간이 굉장히 많이 걸리기 때문에 offsec에서 의도적으로 학생들이 실습 기간을 연장하도록 설계된 것 같다고 예상하고 스킵했습니다.

 

 

 

Thanks to BHPT 과정

 

개인적으로 레드라쿤의 BHPT 과정에서 도움을 많이 받았습니다.

OSCP를 처음 시작하고 공부 했을 때 놓쳤던 세부사항들을, 제공하는 PPT의 cheat sheet에서 찾을 수 있었습니다.

노트 필기 안하고 넘기는 분도 계실텐데, 빼먹지말고 본인의 노트를 정리하시면 좋을 것 같습니다.

BHPT나 OSCP나 여러번 실습 랩을 반복해서 돌리면서 자신감을 얻을 수 있었습니다.

 

 

OSCP 시험에 대한 난이도는 사람들이 과대평가하는 것만큼 어렵지 않고 할 수 있는 수준이라는 생각입니다.
특히 영어권 국가에 사는 사람들에게는 크게 어렵지 않을 겁니다. 

동시에 보안의 기본이라는 생각도 들었습니다.

OSCP를 바탕으로 많은 실제 취약점을 연구하고 찾는게 더 중요하고, 취득 이후로도 해야할 게 산더미 같거든요.