INTRUDED.NET - Wargames : Leviathan Level2

WarGeme/Intruded.net 2010. 8. 31. 17:59 Posted by 알 수 없는 사용자

Access: 
ssh: leviathan.intruded.net
port: 10101
username: level2

레벨 2로 접속을 하고, 홈 디렉토리의 내용을 살펴보았습니다. 이번에는 홈디렉토리에 특별한 것이 전혀 보이질 않습니다. 숨겨진 패스워드 파일에는 레벨 1에서와 같이 레벨 2의 패스워드가 들어있구요. 루트 디렉토리의 내용을 보니 워게임이라는 디렉토리가 보입니다. 주저없이 가서 살펴보았습니다. 그 안에는 setuid bit가 설정 된 파일들이 있습니다.


더 자세히 보기 위해 'ls -al' 명령으로 살펴보겠습니다.


여기서 필요한 파일은 당연히 check가 될 것입니다. 이 파일을 이용하면 레벨 3의 권한을 얻을 수 있을 것으로 예상됩니다. 실행을 해 보니 패스워드를 입력하는 곳이 보이고, 1234를 입력했을 때 잘못된 패스워드라는 문구를 출력하며 프로그램이 종료됩니다. 일단 디버깅을 해 보겠습니다.


<main+133> 에서 strcmp 함수를 호출하여 비교하는 것을 볼 수 있습니다. setuid 함수도 보이고 system 함수도 보이네요. 일단 디버깅은 잠시 미뤄두고 좀 더 쉬운 방법으로 몇 가지 더 조사를 해 봐야겠습니다.

strings 명령으로 이 프로그램에 어떤 문자열들이 있는지 알아보겠습니다.


"password:" 밑에 "/bin/sh"도 보이네요. 패스워드를 맞추게 되면 아마도 레벨 3의 쉘을 얻을 수 있나 봅니다. 그리고 가장 밑에 "secret", "love"라는 문자도 보입니다. 설마...(?)


역시나 아니네요...-_-;; 항상 쉽게쉽게 가고 싶다는...ㅋ;;

다음으로 check 파일을 vi 에디터로 열어서 헥스모드에서 한 번 살펴보겠습니다. 바이너리 파일을 vi 에디터에서 헥스 모드로 전환하는 명령은 "%!xxd" 입니다.


헥스 모드로 전환 되었습니다.


그럼 이제 가장 궁금한 "password"를 검색해 보겠습니다.


앗, 조금 전에 보았던 "secret" 과 "love"가 보이고, 다른 문자들이 더 보이네요.
주저하지 않고 써 보겠습니다.


쉘이 떳습니다. euid가 레벨 3으로 설정되어 있네요. 각 레벨의 홈 디렉토리에는 숨겨진 패스워드 파일이 있던걸 기억하시겠죠?
AND