분류 전체보기(333)
-
Protostar Stack1 [little endian]
Protostar Stack1번입니다 버퍼오버플로우 시킨 후 " modified "변수에 0x61626364 라는 값을 덮어씌우면 됩니다" little endian " 규칙을 적용시켜야합니다little endian 은 1byte씩 주소값을 순서를 반대로 입력시키는 것입니다코드는 아래 사진과 같습니다
2017.06.11 -
Protostar Stack0 [BufferOverflow]
Protostar Stack0번입니다 gets()함수를 이용해서 문자열을 입력받아 " buffer "변수에 저장합니다 문자를 64byte만큼을 입력하면 buffer변수의 공간은 가득채워지고 문자를 더 입력하면 버퍼 오버플로우가 발생합니다하여 modified 변수의 값이 변질됩니다
2017.06.11 -
네트워크해킹 실습환경 구축
VMware와 Xshell5의 원격접속 설정을 해논 상태입니다 Xshell5 접속해서 "python" 명령어를 치시면 2.6버전파이썬이 실행됩니다 하지만 2.6버전은 너무 오래되었으므로 새로운 3.6 버전의 파이선을 다운받아보도록 하겠습니다 [1] www.python.org 접속 [2] Downloads - Source code 클릭 [ 그림1 ] [3] 5번째 파일 마우스 우클릭 [ 그림2 ] [4] 해당 링크 주소를 복사합니다 [ 그림3 ] 이제 Xshell5 로 돌아갑시다 ( 원격접속을 안했어도 VMware에서도 다운받을 수 있습니다 ) [5] 개발자도구를 다운받도록 하겠습니다 ( 필수 / root 계정으로만 다운할 수 있습니다 ) #yum groupinstall "Development Tools"..
2017.06.08 -
[6] Format String Bug [FSB]
원재아빠님의 Format String 강좌를 보면서 개인공부를 위해 작성하였습니다. 포맷 스트링이란 변수의 형태를 지정해주는 것입니다 종류에는 %d : 정수형 상수 int %c : 문자형 char %f : 실수형 상수 float %x : 16진수 %o : 10진수 %s : 문자 스트링 등이 있으며, 중요한 %n 도 있습니다 [ 포맷스트링 예제 ] 포맷스트링의 빈틈은 다음과 같은 소스코드에서 발생합니다 #vi test2.c #gcc -o test2 test2.c [ 그림1 ] printf()함수에서 받아들인 변수 put을 스트링의 여과 없이 그대로 출력해주고 있습니다 여기서 문제가 발생합니다. 특정 스트링을 임의로 사용자가 넣으면 특이한 현상이 발생합니다 [ 그림2 ] fgets()를 통해서 put에 문자..
2017.06.08 -
[5] Heap Buffer Overflow ( Heap기반의 버퍼오버플로우 )
버퍼오버플로우공격은 Heap기반과 Stack기반으로 나뉘어집니다 Stack기반의 버퍼오버플로우공격은 1~4 게시글에서 공부했고 이번에는 Heap기반의 버퍼오버플로우 공격에 대해서 알아보겠습니다 힙 오버플로우란 힙 데이터 영역에서 일어나는 버퍼 오버플로우로써 스택기반 오버 플로우와는 다른 방법으로 공격합니다 힙 오버플로우 기술은 동적 메모리 할당 연결을 덮어 씀으로써 프로그램의 함수 포인터를 조작합니다 방식 : 버퍼오버플로우시켜 접근해 포인터가 가르키는 값을 변경하여 임의의 파일에 접근하거나 임의의 코드를 실행시킨다 예제를 만들어서 설명하겠습니다 [$vi /tmp/heap1.c] [ 그림1 ] 컴파일 후 인자로 HELLO 를 넣고 실행시켜보겠습니다 [ 그림2 ] 동적할당 시켜준 buf와 datafile의 ..
2017.06.07 -
[4] 환경변수를 이용한 버퍼 오버플로우 공격 ( 에그쉘)
게시글 [3] 에서 못다한 환경변수를 이용한 버퍼 오버 플로우 공격에 대해서 설명해드리겠습니다 해커스쿨 FTZ 문제들을 예로 들어서 어떤 식으로 환경변수를 사용하는지에 대해서 설명하겠습니다 환경변수를 사용한 공격에는 2가지 방법이 있습니다 1. 에그쉘을 이용해 환경변수를 생성하여 사용하기 2. 직접 환경변수를 선언해서 환경변수를 사용하기 1. 에그쉘을 이용해 환경변수를 생성하여 사용하기 ( /tmp/eggshell.c ) [level12@ftz tmp]$ cat eggshell.c #include #define DEFAULT_OFFSET 0 #define DEFAULT_BUFFER_SIZE 512 #define DEFAULT_EGG_SIZE 2048 #define NOP 0..
2017.06.05