lhywk 님의 블로그

[TryHackMe] Ignite 본문

TryHackMe

[TryHackMe] Ignite

lhywk 2026. 2. 4. 22:04

공격 대상의 IP주소를 IP라는 환경변수로 설정한다.

nmap -sC -sV $IP -oN scan_result 명령을 통해 공격 대상 시스템의 열린 포트와 그 포트에서 실행 중인 서비스의 버전을 확인한다. 결과로 80/tcp 포트가 열려있고 Apache httpd 2.4.18 (Ubuntu) 웹 서버가 실행 중이다.

공격 대상 시스템이 Fuel CMS 1.4 버전을 사용하고 있음을 확인한다.

Fuel CMS 버전에 대한 취약점을 찾기 위해 searchsploit fuel cms 명령을 실행한다.

이 중 익스플로잇 코드를 선택한다.

searchsploit -m 50477 명령을 통해 현재 디렉터리에 스크립트를 복사한다.

공격자는 python3 50477.py -u http://$IP 명령을 실행하여 RCE를 성공시킨다. pwd, id 명령이 제대로 출력되는 것으로 보아 쉘을 획득했다.

ifconfig tun0 명령을 사용해 VPN 연결을 통해 할당받은 IP 주소를 확인한다.

공격자는 자신의 IP 주소와 포트번호 (7777)를 입력하여 리버스 쉘 공격에 필요한 명령어를 생성한다. 리버스 쉘은 공격자가 공격 대상 시스템에 특정 명령어를 실행하게 한 뒤 시스템이 공격자에게 접속하도록 하는 방식이다. netcat을 이용해 연결한다.

공격자는 리버스 쉘을 받기 위해 nc -lvnp 7777 명령어를 실행해 포트를 열어둔다.

생성한 리버스 쉘 명령어를 대상 시스템에서 실행시킨다. 그럼 대상 시스템은 공격자의 컴퓨터의 7777포트로 접속을 시도한다.

공격자 터미널에 connect to 메시지가 나타나면서 공격 대상 시스템이 공격자의 IP 주소로 성공적으로 접속해 $ 프롬프트가 표시된 리버스 쉘을 획득한다.

앞선 리버스 쉘은 기본적인 명령어만 실행할 수 있다. 공격자는 python 명령어를 사용해 pty 모듈을 호출해서 완전한 기능의 bash 쉘을 획득한다.

/home/www-data 디렉터리로 이동해 flag.txt을 확인한다.

해당 값을 답안에 넣어 첫 번째 문제를 풀이한다.

더 높은 권한(root)로 올리기 위해 linpeas.sh라는 스크립트를 다운로드한다.

다운로드 받은 스크립트를 ls 명령으로 확인한다.

공격자는 python -m http.server 5555 명령어를 사용해 자신의 PC의 5555 포트로 웹 서버를 연다. 권한 상승 스크립트를 대상 시스템에 전달하기 위한 용도로 사용된다.

공격자가 열어둔 웹 서버에 접속해서 linpeas.sh 스크립트를 다운로드한다. 이 파일을 대상 시스템의 임시 디렉터리(/dev/shm)에 저장한다.

linpeas.sh 스크립트를 실행하기 위해 chmod +x linpeas.sh 명령어를 사용해 파일에 실행 권한을 추가한다.

해당 스크립트를 실행한다.

여러 취약점을 찾아낸다.

앞서 찾은 취약점 중 PwnKit(CVE-2021-4034) 취약점을 이용하기 위해 구글에 익스플로잇 코드를 검색해 본다.

해당 익스플로잇 코드를 다운로드한다.

wget 명령어를 사용해 해당 취약점 익스플로잇 코드를 대상 시스템에 다운로드한다.

python CVE-2021-4034.py 명령어를 실행하여 루트 권한을 획득한다.

root.txt 파일의 내용을 출력한다.

'TryHackMe' 카테고리의 다른 글

[TryHackMe] Blue  (0) 2026.02.06
[TryHackMe] RootMe  (0) 2026.02.05
[TryHackMe] LazyAdmin  (0) 2026.02.05
[TryHackMe] Bounty Hacker  (0) 2026.02.05
[TryHackMe] Basic Pentesting  (1) 2026.02.04