일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- php
- Recon
- over the wire
- SQLi
- php 파일 업로드하기
- tryhackme
- THM
- War Game
- OS Command Injection
- sql injection
- file upload
- overthewire
- Server Side Request Forgery
- Leviathan
- access control
- BANDiT
- active reconnaissance
- php To Do List
- php login page
- Cryptography
- Cookie
- FTZ
- privilege escalation
- Authentication
- 파일 업로드 취약점
- ssrf
- Reconnaissance
- active recon
- php 로그인 페이지 만들기
- php file upload
- Today
- Total
R's Hacking Daily Log
Vulnversity (1) 본문
Reconnaissance
openvpn으로 ovpn 파일을 실행하고 나서 처음으로 할 것은 Nmap!!
어떤 포트가 열려있고 무슨 서비스가 실행 중인지 확인해 보자.
총 6개의 포트가 열려있는 걸 볼 수 있고 web server는 3333 포트에 열려있는 걸 알 수 있다.
Ubuntu OS를 사용하는 듯하고 프록시 버전은 3.5.12로 3128 포트에서 동작중이다.
문제 중에서 -p-400 flag를 사용하면 총 몇 개의 포트를 스캔하는지 묻는 문제가 있는데
-p-만 사용했다면 모든 포트를 스캔하지만 뒤에 400이 붙었기 때문에 1~400까지 총 400개의 포트를 스캔한다고 할 수 있다.
그렇기 때문에 target IP(10.10.115.205)에 대해 -p-400 flag를 사용하면 400번 포트 이하인 포트 결과만 출력된다.
Locating directories using Gobuster
두 번째 step으로 숨겨져 있는 디렉토리/페이지를 스캔해 보자.
Gobuster를 사용해서 3333 포트에서 directory를 찾기 위한 brute-force 공격을 실행해 보니
/internal이라는 디렉토리가 있다.
Compromise the webserver
10.10.115.205:3333/internal로 접근해 보니 파일을 올릴 수 있는 form page가 나왔다.
php 확장자 파일을 업로드하는 file upload attack이 가능할지 확인해 보기 위해 burp suite를 사용해보려 한다.
Intruder 부분에서 payloads를 설정해 주고
파일을 업로드하는 request를 가로채 파일의 확장자를 바꿔볼 것이다.
오른쪽 상단의 start 버튼을 누르면 payloads에 입력한 5개의 입력값이 하나씩 대입되면서
brute-force 공격을 실행할 수 있다.
결과를 확인해 보니 phtml만 length가 723으로 다른 걸 볼 수 있다.
render 된 화면을 출력해 보니 Success!!
업로드를 차단당한 확장자의 경우에는 아래와 같이 not allowed 문구가 나온다.
이 결과로 phtml 확장자의 파일을 업로드할 수 있단 사실을 알아냈다.
그렇다면 php shell 파일을 phtml 확장자로 변경해서 업로드하고 실행해 보자.
petestmonkey에서 제공하는 php reverse shell의 url을 복사해서
wget으로 다운로드한다. (~.~)
다운로드한 쉘의 확장자를 php에서 phtml로 바꿔준다.
shell을 사용하기 전 주석으로 CHANGE THIS 처리되어 있는 부분의 내용을 공격자의 정보로 바꿔준다.
이후 터미널에 4444 포트를 열어주고
/internal의 form page에서 쉘을 업로드한다.
url이 출력되는 페이지 상단에 /internal/uploads/php-reverse-shell.phtml을 입력하면 이는 해당 쉘을 실행시키는
명령어 역할을 하기 때문에
4444 포트를 열어뒀던 터미널에서 쉘을 획득한 것을 볼 수 있다.
home 디렉토리로 들어가 보니 bill이라는 디렉토리가 존재하고 user.txt 파일에서 user flag 발견!!
root 권한을 얻기 위해 suid가 설정된 파일을 찾아봤더니 /bin/systemctl이라는 파일이 눈에 들어왔다.
처음 보는 파일이라 어떤 역할을 하고 어떻게 사용하는지 더 공부한 다음에 root 권한에 도전해봐야 할 듯..
'TryHackMe > Walkthroughs' 카테고리의 다른 글
HTTP in detail (3) (0) | 2023.04.07 |
---|---|
HTTP in detail (2) (0) | 2023.04.04 |
HTTP in detail (1) (0) | 2023.04.03 |
Traffic Analysis Essentials (3) (0) | 2023.04.02 |
Traffic Analysis Essentials (2) (0) | 2023.04.02 |