본문 바로가기

IT/System Hacking

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