
다음은 재구성된 설명 문서입니다:
이 프로젝트는 CVE‑2022‑46169를 시연하는 사이버 보안 과제입니다: 오픈소스 네트워크 모니터링 플랫폼 Cacti(버전 ≤ 1.2.22)의 치명적인 취약점입니다. 이 취약점은 인증되지 않은 공격자가 로그인 없이 서버에서 임의의 OS 명령을 실행할 수 있게 합니다.
이 프로젝트의 목표는 취약점을 이해하고, 통제된 실습 환경에서 재현하며, 그 영향을 입증하는 것입니다.
CVE‑2022‑46169는 Cacti에 존재하는 두 가지 결함의 조합입니다:
remote_agent.php 파일은 일반적으로 Cacti 서버 자체만 접근할 수 있어야 합니다. 그러나 인증 확인은 공격자가 직접 설정할 수 있는 X-Forwarded-For HTTP 헤더를 맹목적으로 신뢰합니다. 이로 인해 누구나 비밀번호 없이 자신이 서버인 것처럼 가장할 수 있습니다.
URL의 poller_id 매개변수는 검증 없이 PHP의 proc_open()을 통해 셸 명령에 직접 삽입됩니다. 이로 인해 공격자는 웹 서버가 자신의 명령을 실행하게 할 수 있습니다.
결합된 결과: 완전히 인증되지 않은 공격자가 서버에서 임의의 명령을 실행할 수 있습니다 — 흔히 원격 코드 실행(RCE) 이라고 합니다.
공격자는 취약한 Cacti 설치의 IP 주소만 알면 됩니다. 계정이나 사회공학적 공격은 필요하지 않습니다.
공격자는 remote_agent.php로 하나의 HTTP 요청을 보냅니다:
X-Forwarded-For 헤더 → 인증 우회;를 통해 셸 명령이 포함된 poller_id → 명령 삽입서버는 이 명령을 www-data 사용자(Apache 웹 서버 사용자)로 실행합니다. 실제로 공격자는 이를 통해 예를 들어 리버스 셸을 열고 서버에 대한 완전한 접근 권한을 얻을 수 있습니다.
docs/ — 과제용 보고서, 스크린샷 및 메모.isos/ — 취약한 Cacti 설치가 포함된 VM 이미지 또는 컨테이너 자산.이 프로젝트는 다음 사항에 중점을 둔 사이버 보안 실습의 일환입니다:
⚠️ 면책 조항: 이 프로젝트는 통제되고 격리된 실습 환경에서의 교육 목적으로만 제작되었습니다. 명시적인 허가 없이 시스템에 익스플로잇을 사용하지 마십시오.
| 속성 | 세부 정보 |
|---|
| CVSS 점수 | 9.8 – 치명적 |
| 인증 필요 | ❌ 아니요 |
| 사용자 상호작용 | ❌ 아니요 |
| 영향 | 서버에 대한 완전한 제어 |
| 영향받는 버전 | Cacti ≤ 1.2.22 |
| 패치된 버전 | Cacti 1.2.23 |