상세 컨텐츠

본문 제목

Hack The Box 해킹 모의 침투 #7

HackTheBox

by 0xmh 2022. 5. 30. 15:46

본문

728x90

안녕하세요 오늘은 HackTheBox의 Lazy라는 머신을 풀어보겠습니다.

 

Lazy는 리눅스 환경이고, user 셸을 얻기 위하여 웹사이트의 auth이라는 쿠키의 취약점을 악용하고 권한상승은 path hijacking attack를 활용하겠습니다.

nmap의 결과를 보니, 웹페이지가 존재하고, 유저 등록하고 로그인 기능 외에는 별 기능이 없어 유저 등록을 해 보았습니다. auth이라는 쿠키가 있기에 burp의 repeater로 보내고 혹시나 바꾸면 무슨 일이 일어나지? 라는 생각을 해서 한번 바꾸어 보았습니다.

왼쪽 사진을 보면, 쿠키에 글자를 추가하고 request를 보내면 "Invalid padding"이라는 메시지가 뜹니다. 해킹은 가장 중요한 실력은 구글검색실력이므로 검색해 보았더니... 결과가 나오네요. "book.hacktricks.xyz"이라는 홈페이지에 들어가서 Padding Oracle Attack에 대해 알 수 있습니다.

그 글에 따르면 padbuster이라는 툴을 다운로도하면 된다네요. 그렇다면 한번 해 봅시다...

(저는 이 툴을 돌려보고 결과가 나오는 데에는 한 30분 이상.. ㅠㅠ)

아래와 같이 명령어를 입력하고 툴을 돌려 보겠습니다.

(cookie 값은 아까 burp로 받은 그 값입니다!)

padbuster http://10.129.222.254/index.php "iG1SSjyZbLK0NDewU5ygJM5O9CeuzGZI" 8 -encoding 0 -cookies "auth=iG1SSjyZbLK0NDewU5ygJM5O9CeuzGZI"

Decrypted value (user=testtest)가 나왔으니 다음 단계로!

거의 다 비슷하지만 뒤에 "-plaintext user=admin"를 추가했습니다.

아래에 encrypted value를 받습니다!

padbuster http://10.129.222.254/index.php "iG1SSjyZbLK0NDewU5ygJM5O9CeuzGZI" 8 -encoding 0 -cookies "auth=iG1SSjyZbLK0NDewU5ygJM5O9CeuzGZI" -plaintext user=admin

새로운 쿠키 값을 받았으니 값을 변경하고 F5를 누르면...

My Key라는 것이 뜨네요. /mysshkeywithnamemitsos이라는 directory도 생긴 것을 보니 ssh 유저 이름은 mitsos인 것 같습니다. SSH key인데 저장하고 ssh로 로그인 가능할 것입니다.

로그인하고 user.txt를 받습니다. 다음 단계는 권한상승!

root 권한이 있는 backup이라는 binary가 있네요.

실행시켜 보면 /etc/shadow를 받을 수 있습니다.

strings를 한번 돌려 보네 밑에 "cat /etc/shadow"가 보입니다.

ltrace로 똑같은 것을 확인할 수 있습니다.

위 취약점은 Path Hijack입니다. cat의 원래 path는 /bin/cat인데 위 사진은 프로그램이 "cat"만 불러옵니다. 따라서 리눅스는 Path 환경변수에 있는 모든 directory를 하나씩 확인하면서 cat를 찾고자 합니다. 
path를 hijack하기 위해 /tmp 폴더에 cat이라는 파일을 만들 건데 그 파일의 내용은:

#!/bin/sh

/bin/sh

chmod +x cat이라는 명령어를 실행 권한을 주고...

/tmp 폴더를 Path에 추가하려면:

export PATH=/tmp:$PATH
echo $PATH

리눅스는 이제 cat를 찾기 위해 우리가 방금 Path에 추가한 /tmp이라는 directory를 확인하고 우리의 "악성" cat파일을 실행시킬 것입니다.

이제 실행 시키면!

 

관련글 더보기