딱 1년 정도 됬네요. 학교에 입학해서 해킹보안 동아리에 들어간지 딱 1년, 1년 동안 정말 많은 발전이 있었습니다.

 

저희 선배님들이 잘 가르쳐 주셔서 이렇게 단시간동안 크게 발전했다고 생각을 해요.

 

이제 저도 해킹에 입문하거나 고등학교에 가서 해킹보안 동아리에 들어가는 친구들을 위해서 저는 어떻게 공부했는지

 

아니면 어떤식으로 해야지 더 효율적으로 공부할 수 있는지에 대해서 알려들려고 합니다.

 

일단은 해킹이라는것이 프로그램을 역으로 분석하고 취약점을 찾는것 이기 때문에 프로그래밍에 대한 기본적인 상식을 

 

필요로 합니다. 그래서 저는 해킹을 본격적으로 시작하기 전에 C를 먼저 배웠습니다.

 

이 사이트는 코드업이라는 사이트 인데 기본적인 문제들과 심화적인 문제들이 있어서 자발적인 코딩 할 수 있습니다.

 

https://codeup.kr/index.php

 

CodeUp

☆ 파이썬 다운로드 : 파이썬3 ☆ 무료 C언어 IDE : Code::blocks       DEV C++ ☆ 추천 온라인 IDE : C++11   Python3   Java ☆ 채점 가능 언어 : C, C++, JAVA, Python 3.5 ★ C++로 제출시 void main()을 사용하면 컴파일 오류! → int main() 또는 main() ★ 정답외에 불필요한 출력은 잘못된 풀이!  예) "입력", "출력", "정답은 ~입니다." → 오답 처리 

codeup.kr

코딩도장은 강의사이트 입니다. 보통 코딩도장에서 강의를 듣고 코드업에 가서 문제를 푸는 식으로 공부를 하죠.

 

https://dojang.io/

 

코딩 도장

 

dojang.io

이렇게 C언어를 배열정도까지 마스터 했으면 이제 FTZ로 넘어갈 타이밍 입니다!

 

FTZ는 Free Training Zone이라는 의미로 리눅스와 해킹의 기초를 배울 수 있는 곳 입니다.

FTZ Training를 완료하고 나면 총 20 Level까지 있는 FTZ를 풀게 될 것 입니다.

 

이 단계를 거치면서 기본적인 리눅스에 대한 명령어의 이해와 해킹의 기본적인 틀을 알 수 있습니다.

 

저는 FTZ는 한달 정도에 걸쳐서 끝냈던 것 같네요.

 

FTZ를 끝냈다면 다음에는 LOB라는 과정을 공부할 것 입니다.

 

LOB는 Lord Of BufferOverFlow의 약자로 수많은 해킹 기법중 하나인 아주 기초적인 취약점입니다.

 

앞으로 공부하거나 푸는 시스템 문제들의 기반이 될 수 있는 기법이니 LOB라는 이 단계를 확실히 짚고 넘겨야합니다.

 

LOB Level5

LOB와 FTZ의 명확한 차이점이라면 LOB에서는 당연히 버퍼오버플로우 문제만으로 구성이 되있습니다.

 

그리고 저는 당시에 문제를 풀때 FTZ와 난이도 차이가 엄청 심했던 것으로 체감합니다.

 

또한 LOB를 들어가면 코드의 취약점을 찾는것부터가 일이기 때문에 코드의 이해도를 전보다 필요로 합니다.

 

LOB도 거의 한달이 걸린 것 같습니다. 마지막 문제가 조금 헬이여서 시간이 좀 많이 걸렸지만 

 

분명 어려운 문제이면 어려울 수록 배울 점이 더 많았던 것 같습니다.

 

LOB를 마스터 했다면 이제는 Pwnable.kr로 넘어가야합니다!

 

Pwnable.kr은 여러가지 포너블 즉 시스템 해킹의 문제들이 모여있는 War Game 사이트 입니다.

 

문제를 풀다보면 이렇게 어려운 게임이 어딨어? 이러면서 풀텐데 첫번째 챕터를 다 끝내고 돌아보니

 

정말 게임하듯이 즐기면서 문제들을 풀었던 것 같네요 랭킹도 있어서 한 문제 풀때마다 랭크가 올라가는걸 

 

보는것도 재미요소 중에 하나였습니다. 

 

말이 길었네요. 본격적으로 사이트 소개를 한번 해보겠습니다.

 

https://pwnable.kr/

 

https://pwnable.kr/

   there are flag   files corresponding to each challenges (similar to CTF), you need to read it and submit to pwnable.kr to get the corresponding point. in order to read the flag file, you need some skills regarding programming, reverse-engineering, bug e

pwnable.kr

총 4개의 챕터로 이루어져 있는 문제들의 집합체? 사이트 입니다.

 

보통 여기선 문제에 접속하는 방식부터 그동안 풀었던 FTZ와 LOB랑은 확연히 다릅니다. 

 

저도 처음에 문제에 접속하는 시간이 엄청 삽질해서 거의 1시간 정도 날린것 같네요.

 

그래서 제가 따로 접속하는 방법에 대한 글을 작성해 놨기 때문에 참고하시면 좋을 것 같습니다.

 

https://archanwriteup.tistory.com/entry/Pwnablekr-%EC%A0%91%EC%86%8D-%EB%B0%A9%EB%B2%95-%ED%91%B8%EB%8A%94-%EB%B2%95-Archan

 

Pwnable.kr 접속 방법, 푸는 법 :: Archan

Pwnable.kr의 접속 방법에 대해 설명하는 글입니다, 풀이 아닙니다. 처음에 pwnable.kr에 들어가는 방법을 몰라서 삽질한 경험이 있기에 글 올립니다. 예제로 첫번째 문제인 fd를 예로 들겠습니다. 문제를 클릭..

archanwriteup.tistory.com

저는 현재 Pwnable.kr Rookiss의 Rsa calculator까지 풀었습니다.

Note 문제부터는 조금씩 막히고 전 챕터부터 쉬지 않고 달리던 중이여서 일단 Rsa calculator까지 풀었습니다.

 

Pwnable.kr은 초반에는 정말 쉬운 문제들이 있을땐 하루 2문제 정도도 할 수 있고 진짜 어려운 문제는 거의 2주에 걸쳐 

 

풀었던 문제들도 있습니다. 솔직히 이정도까지 풀었으면 다른 분야에 관심이 안 갈 수가 없어요.

 

저도 이때부터는 다른 분야를 해보고 싶다는 생각이 강력하게 들어서 여기저기 알아보기 시작했습니다.

 

그러다 저는 Web 해킹과 포렌식, 암호학, 네트워크, 스테가노 그래피 이 5가지 분야를 시도하게 되었습니다.

 

간단하게 도전하게 된 5분야에 대해 소개를 해보고 넘어가겠습니다.

 

Web Hacking은 말그대로 웹을 해킹하는 분야입니다. 진입장벽이 꽤 낮고 많이 배우지 않은 상태에서도 즐거움을 

 

느끼며 문제를 풀 수 있는 분야입니다.

 

포렌식(Forensic)은 전자적 증거물 등을 사법기관에 제출하기 위해 데이터를 수집, 분석, 보고서를 작성하는 일련의 작업

 

들 정도가 되겠네요. 진짜 심오한 분야입니다. 법과 밀접한 관계를 가지고 있는 분야이기도 하고, 그래서 포렌식을 잘못 

 

시도했다간 모의 해킹 조차로도 큰일이 날 수도 있어서 포렌식 책을 읽어보니 법 조항들을 공부하라고 써져 있더라고요.

 

한마디로 범죄자들이 폐기하거나 삭제, 조작한 증거물등을 다시 복구시키고 복원하여 사법기관에 정식 증거물로

 

효력을 발휘할 수 있도록 만드는 분야라고 생각하시면 됩니다.

 

설명이 장황한 만큼 정말 진입장벽도 높습니다. 웹 해킹이 단순한 지뢰 찾기라고 하면 포렌식은 거의 스타크래프트 정도

 

되겠네요. 저도 감히 쉽게 도전 못해보는 분야입니다. 

 

암호학(Cryptography)는 말 그대로 암호학 입니다. 카이사르 같은 고전 암호법부터 현대 기술에 기반을 둔 BASE64 까지

 

정말 많은 암호 종류들을 공부하는 분야입니다. 대중적으로 알려진 모스부터, 이니그마 같은 암호들도 다 이 분야에 

 

포함되어 있습니다. 이 분야에는 딱히 진입장벽이 없다고 생각합니다. 암호의 패턴과 규칙을 공부하여 암호화와

 

복호화를 하는 프로그램들을 만들 수 있고 그것을 넘어서 자신만의 암호 패턴을 만들어서 개발할 수 있습니다.

 

네트워크(Network)라는 분야는 네트워크를 타고 다니는 여러가지 패킷들을 끌고 가져와 뜯어보고 카톡이라고 

 

예를 들면 어떤 대화 내용을 주고 받았나 어떤 이미지를 보냈나 그런것들을 분석하는 분야입니다.

 

저는 고교생 해킹 교육에서 이 분야를 선생님한테 배워서 그런지 딱히 진입 장벽도 없었고 정말 쉽게 할 수 있는 

 

재밌는 분야라고 생각합니다. 깊이 들어가지 않는 이상 클릭으로 해결하는 일이 많기 때문에 비 전공자들도 간단하게 

 

취미로 즐길 수 있는 분야라고 생각합니다. 다만 가르쳐주는 사람이 없을 경우 초반에는 좀 많이 해멜수도 있어요.

 

마지막으로 스테가노 그래피(Steganography)는 암호학의 깊은 한 부분 정도라고 생각하시면 됩니다.

 

아주 고전적인 암호죠 그리스어의 감추어져있다와 그리다라는 뜻을 합쳐 스테가노 그래피라고 부릅니다. 

 

기원전 5세기에 처음으로 사용되었고 간단하게 말하자면 여러분들 어릴때 문방구에서 비밀 팬 사보신적 있죠?

 

그냥 쓰면 안보이는데 특정 라이트로 비추면 글씨가 보인다. 이게 스테가노 그래피의 원시적인 예시라고 봅니다.

 

현대로 와서는 이미지를 16진수를 변환시킨 곳에 이미지에 영향을 주지 않는 부분에 메세지를 작성하는것 등등

 

여러가지 기법들이 있습니다. 저는 아직 이 부분에는 미숙해서 설명을 잘 못하겠네요.

 

주로 실전에서는 흔히 아는 첩보기관 CIA, FBI나 테러범, 스파이들이 서로 몰래 소통할 때 쓰인다고 하네요.

 

실제로 911테러, 북한의 간첩, IS 등등이 실전에서 사용하고 사용했던 기법들입니다.

 

암호학과 비슷하게 그냥 많이 해보면 되는 분야라 생각해서 진입장벽은 거의 없다고 생각합니다.

 

설명이 진짜 길었네요. 

 

그런데 이렇게 생각하시는 분들도 있을 것 입니다. 포너블은 Pwnable.kr에서 풀면 되는데 이렇게 많은 분야의 문제들을 

 

풀게 해주는 사이트가 있나요?

 

그래서! 저는 https://www.root-me.org/?lang=en라는 사이트를 주로 이용합니다.

 

Welcome [Root Me : Hacking and Information Security learning platform]

Hundreds of challenges are available to train yourself in different and not simulated environments, offering you a way to learn a lot of hacking technics !

www.root-me.org

진짜 여러가지 분야가 모여있는 사이트 입니다. 주로 심화 문제보다는 개념을 잡아주는 스타일의 문제들입니다.

 

이런식으로 문제들이 나열되 있고요. 저는 보통 포너블 문제들을 파다가 막히면 심심풀이로 머리 식히러 많이 찾습니다.

 

저희 동아리 친구들도 이 사이트를 자주 이용하고 재밌어 하는 편이에요.

 

구글에 풀이도 친절하게 나와있으니까 처음 접하고 모르신다고 해도 많이 풀다보면 어떤 분야구나~ 

 

정도의 감이 다들 잡히실것입니다. 그때부터 진지하게 파고 싶으신 분들은 구글링 하시면 분야마다 War Game 사이트가

 

친절하게 종류별로 나와있습니다.

 

그럼 이번엔 이렇게 생각해보죠 이 분야들을 어디서 처음 해봤길래 흥미가 생겨서 풀게 된 것이냐?

 

저도 재미없는건 안하는 편이여서 처음부터 이 사이트에서 여러 분야를 도전해보자! 라는 마인드는 절대 아니였습니다

 

CTF라고 하죠? Capture The Flag이라는 의미로 Flag=정답 정답을 잡아라 정도로 해석하면 됩니다.

 

온라인 대회고 일정만 맞다면 누구나 집에서 자유롭게 참여가 가능합니다. 

 

오프라인 대회처럼 직접 가야할 필요도 없고 준비도 필요하지 않습니다.

 

이런 온라인 CTF에 나가다 보면 여러가지 분야의 문제나 취약점들을 접할 수 있게 되고 지식의 폭이 넓어집니다.

 

https://ctftime.org/이 곳에서 전 세계의 CTF 일정들을 알아 볼 수 있습니다.

 

CTFtime.org / All about CTF (Capture The Flag)

 

ctftime.org

저 같은 경우는 구글 캘린더에 연동해서 간편하게 일정들을 확인하곤 합니다.

이렇게 여러 대회에 참가하다보면 확실히 많은 경험을 하게 됩니다.

 

War Game사이트에선 보지 못한 최신 기법들이나 신기한 기법들, 여러가지 문제를 융통성 있게 풀 수 있는 센스들을 

 

CTF에 참가함으로서 얻은 것 같습니다.

 

1년의 시간이 걸렸던 발전 과정이였습니다. 물론 중간에 정신줄 놓고 공백기도 있었지만 계속 정신줄 잘 잡고 노력해서 

 

이 정도까지 발전 할 수 있었다고 생각합니다.

 

마지막으로 요약을 하자면

 

C언어 -> FTZ -> LOB -> Pwnable.kr -> Root me 다양한 분야 and CTF

------------------------------------------------

 

지금은 코로나 때문에 등교개학을 안 했기 때문에 집에서 CTF 있을 때 마다 CTF을 풀고 이렇게 티스토리에 풀이나 그냥

 

일상 글들을 쓰기도 하면서 지내는 중이네요. 개학을 한다고 하면 동아리실에서 개발 공부나 다른 분야들의 공부를 하고

 

신입생들을 가르치는데 열중을 하면서 1년을 보낼 것 같네요.

 

보시는 분들 중에 개인적으로 궁금한 부분이 있으신 분들은 카카오톡 봇 SDHS Root 검색하시면 봇이 나와요.

 

제가 개발 했기 때문에 1대1 상담 누르시면 모두 저한테 메세지가 옵니다! 

 

궁금하신것들이 있으신 분들은 부담없이 메세지 주시면 답변해드리겠습니다:D

 

2019년 4월 동아리에 들어가 2020년 4월까지의 발전 타임라인 이였습니다.

반응형
복사했습니다!