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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
PHP-8.1.0-dev-Backdoor — PHP 8.1.0-dev User-Agentt 백도어 원격 코드 실행 (RCE) | Kitploit
도구/GitHubGitHub/k3ystr0k3r/php-8.1.0-dev-backdoor
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecuritySupply Chain SecurityPayload Development
GitHubk3ystr0k3r/php-8.1.0-dev-backdoor

PHP-8.1.0-dev-Backdoor

PHP 8.1.0-dev User-Agentt 백도어 원격 코드 실행 (RCE)

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

PHP 8.1.0-dev User-Agentt 백도어 원격 코드 실행 (RCE)

심각도: 치명적 (CVSS 등가 점수: 10.0)

취약점 유형: 공급망 백도어 / 원격 코드 실행 (RCE)

영향받는 소프트웨어: PHP 8.1.0-dev (개발 빌드에만 해당)

공격 경로: 원격 (인증 불필요)

인증 요구: 없음

사용자 상호작용: 없음

영향: 전체 시스템 장악


개요

PHP 8.1.0-dev User-Agentt 백도어는 오픈소스 소프트웨어 역사상 가장 악명 높은 공급망 손상 사례 중 하나입니다. 프로그래밍 실수에서 비롯된 일반적인 취약점과 달리, 이 문제는 악성 코드가 공식 PHP 소스 코드 저장소에 의도적으로 삽입된 결과였습니다.

백도어는 2021년 3월 공격자가 PHP Git 인프라를 성공적으로 침해한 후 PHP 8.1.0-dev 개발 스냅샷에 나타났습니다. 악성 커밋은 신뢰받는 PHP 유지관리자로 위장했으며, 특수하게 조작된 HTTP 헤더를 수신할 때마다 임의의 PHP 코드를 실행할 수 있는 숨은 메커니즘을 도입했습니다.

백도어는 발견되어 제거되기까지 잠시만 존재했지만, 손상된 개발 빌드 중 하나를 배포한 모든 서버는 즉시 인증 없는 원격 코드 실행 (RCE) 에 취약해졌습니다.

이 사건은 PHP의 개발 워크플로를 근본적으로 변화시켰고, 결국 PHP 소스 저장소가 자체 호스팅 Git 인프라에서 이전되는 결과를 낳았습니다. :contentReference[oaicite:0]{index=0}


이 취약점이 독특한 이유

대부분의 원격 코드 실행 취약점은 다음에서 비롯됩니다:

  • 버퍼 오버플로
  • 입력 검증 실수
  • 메모리 손상
  • 로직 결함

하지만 이 취약점은 달랐습니다.

코딩 버그가 아니었습니다.

합법적인 PHP 소스 코드 안에 의도적으로 심어진 백도어였습니다.

공격자는 기존의 약점을 악용하는 대신, HTTP 요청을 보내는 누구라도 제공한 임의의 PHP 코드가 실행되도록 PHP 자체를 수정했습니다.

그래서 이 사건은 소프트웨어 공급망 공격의 가장 잘 알려진 사례 중 하나가 되었습니다.


배경

2021년 3월 28일, PHP의 Git 저장소에 두 건의 수상한 커밋이 나타났습니다.

두 커밋 모두 잘 알려진 PHP 유지관리자가 작성한 것으로 보였습니다.

처음에는 무해해 보였습니다.

커밋 메시지는 평범한 오타 수정과 비슷했습니다.

그러나 연구자들은 PHP 인터프리터에 추가된 수상한 코드를 재빨리 발견했습니다.

삽입된 코드는 수신된 HTTP 요청에서 사용자 지정 헤더를 검색했습니다:

root@kitploit:~
User-Agentt

추가된 **"t"**에 주목하세요.

이 미묘한 철자 차이는 가볍게 검토하는 동안 백도어를 숨기는 데 도움이 되었습니다.

헤더가 트리거 문자열로 시작하면:

root@kitploit:~
zerodium

PHP는 그 뒤에 오는 모든 내용을 다음을 사용해 즉시 실행했습니다:

root@kitploit:~
zend_eval_string()

이를 통해 사실상 누구나 원격으로 임의의 PHP 코드를 실행할 수 있었습니다.

악성 커밋은 발견된 후 몇 시간 안에 제거되었습니다. 이후 조사에서는 공격자가 유지관리자의 서명 키를 합법적으로 획득한 것이 아니라 PHP Git 인프라를 침해한 것으로 나타났습니다. :contentReference[oaicite:1]{index=1}


근본 원인

삽입된 코드는 대략 다음과 같은 로직을 수행했습니다:

root@kitploit:~
Incoming HTTP Request
          │
          ▼
Read User-Agentt Header
          │
          ▼
Does header start with "zerodium"?
          │
      Yes ▼
Execute remaining text as PHP
          │
          ▼
Attacker gains Remote Code Execution

PHP는 헤더를 무해한 메타데이터로 취급하는 대신, 이를 실행 가능한 PHP 코드로 직접 평가했습니다.


기술적 분석

일반적으로 HTTP 요청에는 다음과 유사한 헤더가 포함됩니다:

root@kitploit:~
GET / HTTP/1.1

Host: example.com

User-Agent: Mozilla Firefox

손상된 PHP 버전은 추가로 다음을 처리했습니다:

root@kitploit:~
User-Agentt:

그 값이 다음으로 시작하면:

root@kitploit:~
zerodium

PHP는 다음을 호출했습니다:

root@kitploit:~
zend_eval_string()

나머지 내용은 실행 가능한 PHP가 되었습니다.

개념적으로:

root@kitploit:~
User-Agentt:

zerodium
        │
        ▼
zend_eval_string(payload)
        │
        ▼
Remote Code Execution

공격 흐름

root@kitploit:~
Attacker
    │
    │ HTTP Request
    ▼

GET /

User-Agentt: zerodiumsystem("id");

    │
    ▼

PHP 8.1.0-dev

    │
    ▼

Backdoor Triggered

    │
    ▼

system("id")

    │
    ▼

Command Executed

    │
    ▼

Output Returned

인증 없음.

세션 없음.

자격 증명 없음.

HTTP 요청 하나면 충분했습니다.


왜 "User-Agentt"인가?

공격자들은 의도적으로

root@kitploit:~
User-Agentt

대신

root@kitploit:~
User-Agent

를 선택했습니다. 이유는 다음과 같습니다:

  • 거의 동일해 보였기 때문입니다
  • 가벼운 검토를 회피할 수 있었기 때문입니다
  • 대부분의 개발자가 알 수 없는 HTTP 헤더를 무시하기 때문입니다
  • 기존 애플리케이션이 정상적으로 계속 작동했기 때문입니다

이 작은 오타는 완전한 원격 코드 실행 백도어를 숨기고 있었습니다.


영향받는 버전

오직:

root@kitploit:~
PHP 8.1.0-dev

구체적으로 2021년 3월 사건 당시 게시된 손상된 개발 스냅샷입니다.

다음과 같은 안정적인 릴리스:

  • PHP 7.x
  • PHP 8.0
  • PHP 8.1 Stable

는 절대 영향을 받지 않았습니다.


공격 요건

공격자에게 필요한 것은 다음과 같습니다:

  • 네트워크 접근
  • HTTP 연결
  • 취약한 PHP 8.1.0-dev 서버

인증 없음.

무차별 대입 없음.

로그인 없음.

사전 접근 없음.


영향

성공적인 악용 시 공격자는 다음을 할 수 있습니다:

  • 임의의 운영 체제 명령 실행
  • 임의의 PHP 코드 실행
  • 민감한 파일 읽기
  • 웹 애플리케이션 수정
  • 웹 셸 업로드
  • 지속성 백도어 설치
  • 데이터베이스 덤프
  • 자격 증명 탈취
  • 권한 상승
  • 내부 네트워크로 더 깊이 침투
  • 영향받은 호스트의 완전한 장악

실질적으로 이 취약점은 서버 전체 장악으로 이어집니다.


MITRE ATT&CK 매핑


탐지

관리자는 다음을 노출하는 시스템을 즉시 조사해야 합니다:

root@kitploit:~
PHP/8.1.0-dev

다음과 같은 응답 헤더 내에서:

root@kitploit:~
X-Powered-By:

PHP/8.1.0-dev

HTTP 로그에서도 다음을 포함하는 수상한 요청이 있는지 검토해야 합니다:

root@kitploit:~
User-Agentt

또는

root@kitploit:~
zerodium

많은 침입 탐지 시스템과 IPS 제품에는 이제 이 공격 패턴에 특화된 시그니처가 포함되어 있습니다. :contentReference[oaicite:2]{index=2}


침해 지표 (IOC)

가능한 지표는 다음과 같습니다:

  • User-Agentt를 포함하는 요청
  • zerodium으로 시작하는 헤더 값
  • 예상치 못한 명령 실행
  • 알 수 없는 PHP 파일
  • 새로운 웹 셸
  • PHP가 생성한 수상한 자식 프로세스
  • 설명되지 않는 외부 네트워크 연결

악용 복잡성

속성값
인증없음
사용자 상호작용없음
복잡성매우 낮음
필요한 권한없음
원격예

공격자가 조작된 HTTP 요청을 보내기만 하면 되기 때문에, 이는 악용하기 가장 쉬운 원격 코드 실행 취약점 중 하나로 간주됩니다.


완화 조치

프로덕션 시스템에는 절대 PHP 개발 스냅샷을 배포하지 마세요.

서버가 손상된 빌드를 실행 중인 것으로 발견된 경우:

  1. 취약한 버전을 즉시 제거하세요.
  2. 안정적인 PHP 릴리스로 업그레이드하세요.
  3. 완전한 장악을 가정하세요.
  4. 모든 자격 증명을 교체하세요.
  5. 웹 셸을 점검하세요.
  6. 인증 로그를 검토하세요.
  7. 예약 작업과 지속성 메커니즘을 검사하세요.
  8. 장악을 배제할 수 없다면 서버를 재구축하세요.

보안 교훈

이 사건은 몇 가지 중요한 교훈을 보여주었습니다:

  • 개발 빌드는 절대 공개적으로 노출되어서는 안 됩니다.
  • 소프트웨어 공급망은 가치가 높은 공격 대상입니다.
  • 코드 서명과 인프라 보안은 매우 중요합니다.
  • 소스 코드 저장소는 지속적인 모니터링이 필요합니다.
  • 작은 코드 변경에도 치명적인 취약점이 숨겨질 수 있습니다.
  • 업스트림 소프트웨어에 대한 신뢰는 항상 검증되어야 합니다.

이번 손상은 PHP 개발 인프라의 변화를 가속화했으며, 업계 전반에서 소프트웨어 공급망 보안의 중요성이 점점 더 커지고 있음을 부각시켰습니다. :contentReference[oaicite:3]{index=3}


참고 자료

  • 악성 커밋에 관한 PHP Internals 토론
  • PHP 소스 저장소 사고 보고서
  • Packet Storm Security 익스플로잇 공개
  • Juniper Threat Labs IPS 시그니처
  • 커뮤니티 기술 분석
  • 공개 익스플로잇 연구

결론

PHP 8.1.0-dev User-Agentt 백도어는 주요 오픈소스 프로젝트에 영향을 미친 소프트웨어 공급망 공격의 가장 중요한 사례 중 하나로 남아 있습니다. 공격자는 프로그래밍 결함을 악용하는 대신, 특수하게 조작된 User-Agentt HTTP 헤더를 통해 인증 없이 임의의 PHP 코드를 원격으로 실행할 수 있게 하는 숨은 백도어를 언어의 소스 코드에 직접 삽입했습니다. 손상된 개발 스냅샷은 빠르게 제거되었고 안정적인 PHP 릴리스는 영향을 받지 않았지만, 이 사건은 소프트웨어 개발 인프라 보안 확보, 코드 출처 검증, 프로덕션 환경에서의 개발 빌드 배포 회피가 얼마나 중요한지를 강력히 일깨워 주었습니다. 오늘날 이 취약점은 공급망 보안의 획기적인 사례로 널리 연구되고 있으며, 소프트웨어 빌드 프로세스의 무결성이 코드 자체의 보안만큼 중요하다는 사실을 상기시켜 줍니다.

도구 다운로드
기법설명
T1195공급망 손상
T1059명령 및 스크립팅 인터프리터
T1505서버 소프트웨어 구성 요소
T1105수신 도구 전송
T1071애플리케이션 계층 프로토콜
T1106네이티브 API
T1055프로세스 주입 (익스플로잇 후 가능)
T1027난독화된 파일 또는 정보