처음 버퍼오버플로우라는 개념을 알았을때는 너무 쉽지만 힘이없어보였다.


처음에 나는 이 버퍼오버플로우가 변수의 값을 조작하는 용도로만 생각했기 때문이다.

지금은 그 힘과 영향력에 대해서 조금씩 알아가고 있는중이다.



버퍼 오버플로(영어: buffer overflow) 또는 버퍼 오버런(buffer overrun)은 메모리를 다루는 데에 오류가 발생하여 잘못된 동작을 하는 프로그램 취약점이다.


버퍼오버 플로우의 정의는 다음과 같다.


처음보는 사람들은 감의 안 올 것이다.


버퍼오버플로우를 공부하기 위해선 메모리 구조부터 공부해야한다.


프로그래밍한 결과가 변수들이 메모리에 어떤 순서로 어떤 방식으로 올라가는지 알아야 한다.


hackerschool.org 라는 사이트에서 버퍼오버플로우의 기본에 대해서 배울 수 있다.


버퍼오버플로우의 기초에 대해서 알았다면


쉘에 대해 알아야 한다.

버퍼오버플로우를 이용하면 자신의 권한보다 높아진 상태의 쉘을 획득할 수 있다.


즉 쉘을 이용하면 권한이 낮은 상태로 시스템에 들어가 자신의 권한을 높일 수 있다.


이렇게 자신의 권한을 루트로 만들면 백도어를 만드는 것으로 마무리를 한다.


이제 자신이 루트가 된 상황에서 외부인이 루트권한을 갖게 하는 파일을 만들 수 있다.

그 파일을 만들어 놓고 다시 시스템에 침입할때 실행 시키면 쉽게 다시 루트권한을 딸수 있는 것이다.


지금까지 버퍼오버플로우와 시스템해킹에 관한 간단한 개요를 작성하였다.

큰그림을 그리는데 도움이 되었으면 한다.

+ Recent posts