오늘은 TryHackMe의 inclusion 룸을 풀어보겠다.
일단 deploy를 하여 ip를 확인하자.(openvpn연결 확인)
먼저 사이트에 접속을 해보자.
접속을 하면,
위와 같이 나올 것이다.
Hacking this world는 딱히 중요하지는 않았고,
LFI-attack에 들어가서 소스를 확인해보자.
원래 LFI-attack 창보다 소스로 확인하면 더욱 보기 좋게 되어있다.
밑에 부분에 이런 위 같은 부분이 있었다.
"../" 는 상위디렉토리로 가는 것이다. 이런 취약점을 이용하여 비밀번호를 알아내야 하는 것 같다.
일단 그전에 nmap을 이용하여 ip의 정보를 확인하자.
Ubuntu로 웹이 돌아가고 있고,
22(ssh), 80(http)로 돌아간다.
Nmap은 딱히 필요한 정보가 없는 것 같다.
이제 LFI-attack을 해보자.
원래 LFI-attack페이지 주소를 보면,
name이 파일을 확인하여 읽는 것 같다.
lifattack을 지우고 ../../../../../etc/passwd 라고 치고 이동하고 소스를 보면,
위처럼 정보가 나온다.
밑에 쪽에 # 다음으로 falconfeast 패스워드가 "rootpassword" 라고 되어 있다.
위 정보를 가지고 유추하면, root, falconfeast 두 사용자가 있고, 각각의 /root , /home/falconfeast에 디렉토리에 flag가 있다고 생각할 수 있다.
그리고 문제 1, 2가 user.txt, root.txt의 내용을 묻는 것이니, /root/root.txt. /home/falconfeast/user.txt에 있다고 생각할 수 있다.
그러면
http://<deply한 ip>/article?name=../../../../../home/falconfeast/user.txt
위처럼 이동하면 user.txt flag가 나온다.
그리고
http://<deply한 ip>/article?name=../../../../../root/root.txt
위처럼 이동하면 root.txt의 flag를 얻을 수 있다.
위처럼 유추해서 직접적으로 넣을 수 있지만 확실한 지는 모른다.
그러면 확인하기 위해서 ssh를 사용해보자.
ssh falconfeast@<deploy한 ip>
위처럼 접속을 하고,
falconfeast password 에 "rootpassword"라고 친다.
그러면 접속이 완료된다.
이제 pwd를 해서 확인하면
처음에 유추한 그 경로가 맞고,
그 디렉토리 안에 user.txt가 있다.
아까 http에서 확인 것이랑 똑같은 걸 알 수 있다.
그리고 sudo -l을 하면
socat 명령어가 nopasswd라고 한다.
그럼 sudo, socat취약점을 대입하면 root로 전화할 수 있다.
gtfobins.github.io/gtfobins/socat/#sudo
이 사이트에 취약점 명령어가 있다.
sudo socat stdin exec:/bin/sh
이렇게 명령어를 주면,
$ 표시가 사라지면서 root로 전환된다.
이제 /root로 이동하면 유추한 것과 같이 /root 안에 root.txt가 있다.
root.txt의 내용도 똑같은 걸 확인할 수 있다.
The End
'TryHackMe' 카테고리의 다른 글
TryHackMe - StartUp🌶️ (0) | 2021.01.24 |
---|---|
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 |