Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
pfsense-limiter-number — pfSense CE 2.9.0-DEVELOPMENT - 높음 - 원격 - RCE - limiter number dnctl | Kitploit
도구/GitHubGitHub/abraxas/pfsense-limiter-number
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and ControlRed TeamingLabs & Practice
GitHubabraxas/pfsense-limiter-number

pfsense-limiter-number

pfSense CE 2.9.0-DEVELOPMENT - 높음 - 원격 - RCE - limiter number dnctl

저장소 보기
11148일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - pfsense-limiter-number

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  pfsense-limiter-number

분석 문서: https://abraxaslabs.tech/research/pfsense-limiter-number

pfsense-limiter-number

분류: RCE 도달 범위: 원격

pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org

트래픽 셰이퍼 리미터(Traffic Shaper Limiters)는 편집 시 숨겨진 number 필드를 내보낸다. 생성(Create)은 그 번호를 dnpipe_find_nextnumber()로 덮어쓴다. 편집(Edit)은 그렇지 않다. validate_input은 number를 절대 검사하지 않는다. GetNumber()는 dnctl pipe|sched|queue delete에 따옴표 없이 연결된다. PHP mwexec는 /bin/sh -c이다. 권한은 Diagnostics: Command가 아니라 page-firewall-trafficshaper-limiter이다.

ID아직 CVE 없음
분류RCE
도달 범위원격 (인증된 WebGUI)
CWECWE-78
CVSS높음: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
제품pfSense CE
영향 받음2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) 리미터 number
인증page-firewall-trafficshaper-limiter 권한이 있는 WebGUI 세션
라이선스GNU Affero GPL v3.0
랩127.0.0.1 전용

공개 master 9363ac5를 고정했다. 랩은 고정된 ReadConfig / SetNumber / delete_queue의 PHP 가젯이다. 루프백 127.0.0.1:18840.

공격자가 할 수 있는 일

방법싱크권한
리미터를 생성하고, 공격자가 지정한 number로 POST 저장한 뒤, 해당 리미터를 삭제mwexec("/sbin/dnctl pipe delete " . $this->GetNumber()) (shaper.inc:3820)무결성 (랩 입증): root 셸. 랩: edit-delete가 증거를 기록함(edit-delete-exec=yes). 생성 덮어쓰기와 apply-file 경로는 아무것도 기록하지 않음.
동일한 root 셸호스트 파일시스템정찰 (추론): config.xml, 키.
root 셸 또는 공격자 번호의 dnctldummynet가용성 (추론): 리미터 / dummynet 교란.

랩 입증 vs 추론: 생성 덮어쓰기(증거 없음), apply-file 경로(파일의 dnctl, 증거 없음), edit-delete 실행(증거 있음)은 랩에서 입증되었다. 파일시스템 정찰은 root PHP-FPM으로부터 추론한 것이다.

요구 사항: page-firewall-trafficshaper-limiter 권한이 있는 WebGUI 세션. POST 저장 시 CSRF. 삭제는 GET action=delete.

닫힌 채로 유지되는 인접 표면

표면랩
생성 경로dnpipe_find_nextnumber()가 덮어씀, create-overwrites=yes
적용 경로/tmp/rules.limiter의 dnctl, 파일명은 사용자 제어 불가, apply-file=yes
리미터 이름 문자 집합^[a-zA-Z0-9_-]+$
비인증닫힘
Diagnostics: Command별도로 부여되지 않는 한 닫힌 채로 유지

/tmp/rules.limiter로 들어가는 AQM 파라미터는 추가적인 dummynet 언어이며, 이 잔여 취약점과는 무관하다.

랩

cd lab
./run.sh

Loopback 127.0.0.1:18840. Compose 프로젝트 pfsense-limiter-number. 이미지 태그 pfsense-limiter-number:2.9.0-dev. Witness PFSENSE-LIMITER-NUMBER-WITNESS. 마지막 줄:

SUCCESS PFSENSE-LIMITER-NUMBER create-overwrites=yes apply-file=yes edit-delete-exec=yes PFSENSE-LIMITER-NUMBER-WITNESS

수정 사항

모든 dnctl 앞에서 GetNumber()를 int로 캐스팅합니다. 편집 시 POST number를 무시하거나, 활성 dummynet id와 범위 검사를 수행합니다. 생성은 이미 덮어쓰기를 수행하므로, 편집도 동일하게 동작하도록 만듭니다.

참고 자료

  • github.com/pfsense/pfsense 9363ac5b8651a1c7a333180425ce7719070f95f9
  • shaper.inc delete_queue / GetNumber
  • firewall_shaper_vinterface.php
  • CWE-78
도구 다운로드