본문 바로가기

Security/System Hacking

[System Hacking] 0. Starting System Hacking

시스템 해킹을 공부하기 전에 알아야 할 필수 지식

 

1. ASSEMBLE

시스템 해킹이라는것은 시스템에 존재하는 취약점을 찾아, 그 점을 이용해 익스플로잇을 해서 관리자 권한을 취하는게 목표입니다. 그런데 관리자 권한 얻는거하고 asm하고 무슨 상관이 있느냐?


먼저 시스템 이라 하는 것인, 컴퓨터 안에서 돌아가는 예를 들어 운영체제나 프로그램들.. 이런것을 종합적으로 합쳐서 시스템이라 하는데, 이들의 취약점을 찾기 위해선 운영체제 커널이나 프로그램을 분석을 해야 합니다. 그 분석을 하기 위해선 리버싱이 필요한데요, 리버싱에 사용되는 디버거들은 응용 프로그램들을 asm 언어로 디스어셈블리 해 줍니다. 즉, asm을 알아야지 프로그램이 뭘 하는지 구조나 흐름을 파악하고 어느 코드 부분에 취약점이 있는지 발견이 가능하단 말 입니다.


2. Operation System

다음으로는 운영체제인데요, 운영체제 구조에 대해서 공부를 해야 하는 이유는, 익스플로잇이 개발 환경이나 운영체제에 따라서 달라지기 때문입니다. 또한 운영체제에 관한 지식이 있어야 커널 취약점을 분석하거나 등에 많은 도움이 됩니다. 또한 스택, 힙 등 메모리 레이아웃, 메모리 보호기법 등 이러한 지식도 가지고 있어야 어떻게 메모리가 들어가고 실행되는지를 알 수가 있습니다.

 

3. Programming

해커의 기초 덕목 중 하나인 프로그래밍이죠, 취약점을 분석하기 위해선 해당 바이너리의 코드흐름을 이해해야 하는데 프로그래밍 지식이 없으면 분석이 불가능 하겠죠. 또한 익스플로잇 코드를 작성하는 데에도 프로그래밍 실력이 필요하니 프로그래밍은 필수 중 필수입니다.


4. ETC...

또한 익스플로잇을 하기 위해 가젯같은 필요한 정보를 찾을때 도움이 되는 프로그램들 pwntools 이나 readelf, xxd, objdump, gdb, strace, nc, hexdump, ldd 등의 사용법도 익히면 훨씬 수월하게 포너블을 하실 수 있습니다.