2018. 12. 26. 18:49ㆍSystem Hacking/FTZ
우선 FTZ에 로그인을 해줍시다~!
Level 1의 경우 아이디와 비밀번호가 모두 level 1으로 똑같습니다!
그래서 로그인을 한 이후에, ls 명령어를 통해 level 1에 무슨 파일들이 있는 지 살펴봅시다!
public_html과 tmp 폴더가 있고, hint라는 파일이 있네요! 근데 문제 풀기 위해서는 힌트를 봐야 무슨 문제인지 알기에,
hint내용을 보기 위해서 cat hint(cat XXX 하게되면 XXX 내용을 보여줌)을 입력하면
"Level2 권한에 setuid가 걸린 파일을 찾는다"라고 되어 있습니다
그러니까 다시말해, level 1 폴더안에 level 2가 소유하는 파일이 하나 존재한다는 뜻입니다!(원래 다 level 1소유여야 하는데 ..)
그리고 그 파일은 실행시키면 level 2의 root권한을 실행시키는 동안에만 부여한다! 종료시 다시 root 권한을 빼았습니다.
그래서 여기 스크린 샷에는 짤렸는데 아래의 명령어를 입력해야 합니다!
find / -user level2(레벨2의 소유) -perm 4000(set uid가 걸린 놈을 찾아줘)
원래 set uid의 경우 파일의 4자리 비트중에 [setuid비트] [user] [group] [other] 중에서
[setuid비트]는 맨 앞자리에 위치해 있습니다
그리고 setuid의 경우 setuid 비트가 4입니다 그래서 뒤에는 뭐
우리가 알고 싶은게 아니라서 setuid가 걸렸는지가 중요하니까 나머지를 그냥 000주고 앞에만 4이면 되기에.
4000인 파일을 찾아라! 라고 하면 되는겁니다.
그리고 다른사람들 풀이보면 이렇게 Permission Denied 뜨는걸
2 > /dev/null 저희가 방금 입력한 커맨뒤 뒤에 같이 붙여서 입력하면
허용 가능한 것만 뜬다고 하는데 저는 아직 그런걸 잘 몰라서
저기 Permission Denied에서 거의 유일하게 아무것도 적혀있지 않은
/bin/ExecuteMe를 직접 찾았습니다
그래서 /bin/ExecuteMe를 실행하면!
아래와 같은 화면이 뜹니다
(참고로 ExecuteMe Case Sensitive해서 대소문자 정확하게 똑같이 적어야 실행됩니다!)
자 여기서 창에 my-pass(원래 passcode 알아보려고 입력하는 커맨드)나 chmod(체인지 모드 )입력하지 말라고 하는데
뭐 항상 이런 시스템 해킹의 목적은 "쉘(Shell)"을 따는 것이기에
그냥 어 그거 안할거야 쉘만 따면 돼! 하고
입력창에 /bin/sh 쉘코드를 입력하면 아래와 같이 뜹니다!
그러면 이제 passcode를 알기위해서 my-pass를 입력하면 패스코드가 나옵니다!
그럼 이제 저 암호를 가지고 level2로 가겠습니다!
'System Hacking > FTZ' 카테고리의 다른 글
[어설픈] 해커스쿨 FTZ level 6 문제풀이 (0) | 2019.01.16 |
---|---|
[어설픈] 해커스쿨 FTZ level 5 문제풀이 (0) | 2019.01.15 |
[어설픈] 해커스쿨 FTZ level4 풀이 (0) | 2019.01.06 |
[어설픈] 해커스쿨 FTZ level3 풀이 (0) | 2018.12.31 |
[어설픈] 해커스쿨 FTZ level2 풀이 (0) | 2018.12.26 |