본문 바로가기

Bufferoverflow

리눅스 쉘코드(Shell Code)만들기 /* written by kaspy (kaspyx@gmail.com)*/ 버퍼 오버플로우나 포맷스트링버그 등의 취약점을 이용해서 해킹을 하는데이때 임의의 데이터를 입력할때, 쉘을 실행 시켜주는 루틴을 넣어주는데 이것이 바로 쉘코드입니다.그럼 이번 장에서는 쉘코드를 어떻게 만드는지 써보고자합니다.리눅스상에서는 쉘을 실행시켜주는 명령어 함수가 뭐가 있을까요??system(), execve(), execpl() 등등이 있는데 비교적 사용법이 단순한 execve() 함수로 작성을 해보겠습니다.아래와 같이 간단한 코딩을 해보겠습니다. ** 테스트한 환경은 32비트 우분투 리눅스 9.x 입니다.** 1. 쉘코드 프로그래밍 하기 void main(){ execve("/bin/sh",NULL,NULL);}// comp.. 더보기
버퍼오버플로우(Buffer Overflow) 해킹기법이란?? /* written by kaspy (kaspyx@gmail.com)*/ 정보보안 분야에서 버퍼오버플로우(Buffer Overflow) 해킹기법은 그 역사가 굉장히 오래되었고, 발생했을시에 굉장히 심각한 결함으로 이어질수 있는 취약점입니다. 버퍼오버플로우 해킹기법의 최초 시발점은 1988년 모리스웜을 들수있습니다. 네트워크를 통해 데이터를 입력받아 처리했던 당시의 컴퓨터는 웜에 의해 수천대의 컴퓨터가 감염되어 파괴되었고, 피해액만 100만달러가 넘었다고하네요. 버퍼오버플로우에 대한 간단한 정의를 하자면, 어떤 프로그램에 비정상적인 데이터를 많이 주입하여, 오류를 발생시키거나, 임의의 악성 코드를 실행하게 만드는 기법이라고 할수있습니다.(이하 BoF) BoF 취약점은 포인터가 존재하는 c/c++ 및 c# .. 더보기