▲ 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 |