System/LOB2019. 4. 26. 18:05

 

▲ Lob의 시작. 첫번째 인 gate -> gremlin 문제이다. 파일은 gremlin.c, gremlin 두가지가 있다.

▲ gremlin.c와 gremlin의 disasm내용, 딱 봐도 취약한 strcpy가 존재한다. 우리는 이를 공격한다.

▲ disasm을 확인해 보자. 시작에서 sub로 esp를 0x100 = 256_ten 만큼의 버퍼를 할당 해 주었다. 그렇다면 그 앞에 차례로 SFP[4], RET[4]가 존재한다. 

두가지 방법이 있는데 buf에 shellcode에 넣거나 환경변수에 shellcode에 넣는 방법 두가지가 있다. 나는 환경변수에 넣는 EGG Shell 공격 방법을 사용한다.

▲ 첫번째 명령어로 EGG라는 환경 변수에 공격 페이로드를 넣었다. 그리고 간단한 C코드 getenv()로 EGG쉘의 주소값을 알아낸다.

▲ EGG쉘의 시작주소는 0xBFFFFE43. 따라서 공격 페이로드는 nop*(256+4)개 + 0xBFFFFE43이 된다.

'System > LOB' 카테고리의 다른 글

6. wolfman -> darkelf  (0) 2019.04.26
[LOB] 5. orc -> wolfman  (0) 2019.04.26
[LOB] 4. goblin -> orc  (0) 2019.04.26
[LOB] 3. cobolt -> goblin  (0) 2019.04.26
[LOB] 2. gremlin -> cobolt  (0) 2019.04.26
Posted by BadSchool