https://tryhackme.com/room/rrootme

ctf 형식으로 퀴즈의 답을 넣으면서 root 권한까지 도달하는 머신

ports, scan 나오는거 보니까 nmap을 써보자

80, 22 2개
버전 확인을 위해 nmap의 http-enum 스크립트를 써 보자

2.4.29 버전
22번 포트의 서비스는 ssh이니까 답은 ssh
gobuster 돌려보자

uploads에 접속해보자

업로드한 파일이 저장되는 공간인 것 같다
그럼 업로드도 할 수 있지 않을까?

/panel에 접속해본다

역시 업로드 할 수 있다.
reverse shell을 얻어보자!
uploads에서 업로드 한 파일을 열 수 있으므로
웹 사이트니까 php로 만들어 보자
https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php
(나는 이름을 shell.php로 바꿨다)


ip와 포트를 바꿔준다
이제 업로드만 하면 된다!

흠... 다른 파일은 업로드가 되나?


잘 올라간다.
내용이 없는 php도 테스트 해보니 올라 가지 않는다. 뭐든 확장자가 php면 안 되는 것 같다.
python에는 확장자가 .py 하나가 아니다.
.py
.pyi
.pyc
.pyd
.pyo
.pyw
.pyz
물론 다 같은 것은 아니지만 어쨋든
php도 이처럼 다양한 확장자가 있다.
.phtml
.php3
.php4
.php5
.phps
이런 것들이 있다.
그러면 이름부터 php가 안들어가는 phtml로 해보자.


됬다!
이제 리버스쉘을 얻어보자

shell.phtml 클릭

뭔가 돌아간다

리버스쉘을 얻었다!
그냥 cat 하면

THM{y0u_g0t_a_sh3ll}

find로 찾아보자

파이썬이 있다!
답은 /usr/bin/python

가장 위에 뜨는 사이트
https://gtfobins.github.io/gtfobins/python/

바로 해보자
일단 마법의 단어를 쓰고



root를 얻었다!
이제 한번 root.txt를 cat해보자

THM{pr1v1l3g3_3sc4l4t10n}