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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Panoptic — Panoptic은 경로 탐색(path traversal) 취약점을 통해 일반적인 로그 및 구성 파일의 콘텐츠를 검색하고 추출하는 과정을 자동화하는 오픈 소스 침투 테스트 도구입니다. | Kitploit
도구/GitHubGitHub/lightos/panoptic
ReconnaissanceVulnerability ScannersWeb Application ExploitationInformation GatheringPenetration Testing
GitHublightos/panoptic

Panoptic

Panoptic은 경로 탐색(path traversal) 취약점을 통해 일반적인 로그 및 구성 파일의 콘텐츠를 검색하고 추출하는 과정을 자동화하는 오픈 소스 침투 테스트 도구입니다.

저장소 보기
32574142개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Panoptic

Panoptic Logo

License: MIT Python Versions Ruff mypy GitHub last commit CodeRabbit Pull Request Reviews

Panoptic은 경로 탐색(path traversal) 취약점을 통해 일반적인 로그 및 설정 파일의 검색과 조회를 자동화하는 오픈 소스 침투 테스트 도구입니다.

Panoptic Demo

기능

  • 구성 가능한 작업자 풀을 사용한 비동기 동시 스캔 (--concurrency)
  • 매개변수 기반, 경로 기반, POST, 쿠키, 헤더 및 JSON 본문 주입을 통한 일반적인 로그 및 설정 파일 자동 검색
  • 임의 주입 지점을 위한 FUZZ 마커 — --header 또는 --data 값에 FUZZ 배치
  • 파일 경로를 디코딩하는 엔드포인트를 위한 Base64 인코딩 (--base64)
  • 추가 스캔을 제한할 수 있는 옵션이 포함된 자동 OS 감지
  • 오탐을 줄이기 위한 상태 코드 필터링이 포함된 휴리스틱 응답 비교
  • 동적 케이스 주입 — 홈 디렉터리 파일은 /etc/passwd, binlog 파일은 mysql-bin.index 파싱
  • 여러 출력 형식: 텍스트(rich), JSON, CSV (--output-format)
  • 장기 실행 스캔을 위한 재개/체크포인트 지원 (--resume-file)
  • 영구 설정을 위한 TOML 설정 파일 (--config)
  • 다양한 경로 탐색 우회 기법: 접두사, 접미사, 배수, 슬래시 대체, 이중 인코딩
  • 검증 기능이 포함된 HTTP/HTTPS 및 SOCKS5 프록시 지원
  • 무작위 또는 사용자 지정 User-Agent, 쿠키 및 헤더 지원
  • 배너, 로그 및 기계 판독 가능 출력에서 자격 증명 편집 (숫자 및 부울 JSON 본문 값 포함)
  • POSIX에서 소유자 전용 0600 권한으로 강화된 민감한 아티팩트 및 OS가 지원하는 경우 최종 구성 요소 심볼릭 링크 보호
  • 원격 URL 검증을 통한 자체 업데이트 (--update)

요구 사항

  • Python 3.10+
  • Git
  • 종속성: Python 3.10의 httpx[socks], rich, rich-argparse, tomli

설치

git clone https://github.com/lightos/Panoptic.git
cd Panoptic
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
panoptic --version

Windows 명령 프롬프트에서는 .venv\Scripts\activate.bat로 활성화하고, PowerShell에서는 .venv\Scripts\Activate.ps1을 사용합니다. 편집 가능(editable) 설치는 Panoptic이 --update를 위해 이 체크아웃에 연결된 상태로 유지되므로 디렉터리를 제자리에 두어야 합니다. pip install panoptic을 실행하지 마십시오. 해당 PyPI 이름은 관련 없는 프로젝트의 것입니다.

개발용:

python -m pip install -e ".[dev]"

사용법

panoptic --url "http://target/include.php?file=test.txt"

예제

기본 매개변수 기반 LFI

panoptic --url "http://target/include.php?file=test.txt"
panoptic --url "http://target/include.php?file=test.txt&id=1" \
  --param file

POST 데이터 주입

panoptic --url "http://target/include.php" \
  --data "file=test.txt&id=1" --param file

경로 기반 LFI

panoptic --url "http://target/view.php/test.txt" --path-based

Base64 인코딩 매개변수

panoptic --url "http://target/load.php?file=dGVzdC50eHQ=" \
  --base64 --auto

쿠키 주입 (FUZZ 마커)

panoptic --url "http://target/page.php" \
  --header "Cookie: lang=FUZZ" --auto

JSON 본문 주입 (FUZZ 마커)

panoptic --url "http://target/api/load" \
  --data '{"file":"FUZZ"}' --auto

사용자 지정 헤더 주입 (FUZZ 마커)

panoptic --url "http://target/page.php" \
  --header "X-Template: FUZZ" --auto

확장자 매개변수

panoptic --url "http://target/view.php?file=test&type=txt" \
  --param file --ext-param type

접두사를 사용한 필터 우회

panoptic --url "http://target/filtered.php?file=test.txt" \
  --prefix "....//....//....//....//"

필터링된 스캔

panoptic --url "http://target/include.php?file=test.txt" \
  --os "*NIX" --type conf
panoptic --url "http://target/include.php?file=test.txt" \
  --software PostgreSQL

재개 지원 JSON 출력

panoptic --url "http://target/include.php?file=test.txt" \
  --output-format json --output-file results.json \
  --resume-file scan.checkpoint

SSL 오류를 무시한 프록시

panoptic --url "https://target/include.php?file=test.txt" \
  --proxy "socks5://127.0.0.1:9050" --invalid-ssl

사용 가능한 필터 목록

panoptic --list software
panoptic --list category
panoptic --list os

종합 스캔

panoptic --url "http://target/include.php?file=test.txt" \
  --auto --all-versions --concurrency 8

FUZZ 마커

주입 지점을 표시하려면 --header 또는 --data 값의 아무 곳에나 FUZZ를 배치하십시오. Panoptic은 스캔 중에 FUZZ를 각 파일 경로로 대체합니다. 이를 통해 --param으로는 도달할 수 없는 주입 지점을 테스트할 수 있습니다:

주입 유형예
쿠키 값--header "Cookie: theme=FUZZ"
사용자 지정 헤더--header "X-Include: FUZZ"
JSON 본문--data '{"template":"FUZZ"}'
중첩 값--header "Cookie: sid=abc; lang=FUZZ"

FUZZ가 있으면 --param은 필요하지 않습니다.

설정

Panoptic은 영구 설정을 위한 TOML 설정 파일을 지원합니다:

panoptic --url "http://target/include.php?file=test.txt" \
  --config ~/.config/panoptic/config.toml

기본 설정 위치: ~/.config/panoptic/config.toml (--config 없이도 존재하면 자동으로 로드됩니다).

[defaults]
# Any long option name (with dashes as underscores) is accepted here,
# including the target and output destinations.
url = "http://target/include.php?file=test.txt"
concurrency = 8
verbose = true
automatic = true
all_versions = true
output_format = "json"
output_file = "results.json"
log_file = "scan.log"
resume_file = "scan.checkpoint"

[proxy]
url = "socks5://127.0.0.1:9050"

[headers]
user_agent = "Mozilla/5.0"
cookie = "sid=foobar; auth=1"
values = ["X-Forwarded-For: 127.0.0.1"]

우선순위: CLI 인자 > 설정 파일 > 기본 내장값.

설정으로 지원되는 대상 및 출력 옵션

[defaults] 테이블은 성능 조정뿐만 아니라 모든 스캔 옵션을 허용합니다. 특히 다음을 영구 저장할 수 있습니다:

  • url — 기본 대상 (--url로 실행 시마다 재정의 가능)
  • output_format, output_file — 기계 판독 가능 결과가 저장되는 위치
  • log_file — 콘솔 출력을 파일에 미러링
  • resume_file — 재개 가능한 스캔을 위한 체크포인트 위치

Panoptic이 작성하는 민감한 아티팩트 — 로그 파일, 결과/목록 출력 파일, --write-files로 저장된 모든 파일 — 는 POSIX에서 소유자 전용 0600 권한으로 강제 설정됩니다. O_NOFOLLOW를 제공하는 플랫폼은 또한 최종 경로 구성 요소에 이미 존재하는 심볼릭 링크를 원자적으로 거부합니다. O_NOFOLLOW가 없는 플랫폼에서 Panoptic은 최선 노력(best-effort) 방식으로 열기 전 심볼릭 링크/정션 검사를 수행하지만, 이 검사로 경합(race) 조건을 완전히 제거할 수는 없습니다. Windows 모드 비트는 NTFS ACL을 구성하지 않으므로, 아티팩트에 민감한 데이터가 포함될 수 있는 경우 적절히 제한된 디렉터리를 사용하십시오.

명령줄에서 설정 부울 값 재정의

모든 부울 플래그에는 --no- 대응 형태가 있으므로, 설정 파일에서 true로 설정된 값을 파일을 편집하지 않고 단일 실행에서 끌 수 있습니다:

# config.toml sets verbose = true and automatic = true
panoptic --url "http://target/x.php?file=test.txt" --no-verbose --no-auto

생략된 부울 플래그는 (false로 기본 설정되는 대신) 설정되지 않은 상태로 남으므로, 플래그 또는 해당 --no- 형태를 명시적으로 전달하지 않는 한 설정 값이 사용됩니다.

프록시

HTTP(S) 또는 SOCKS 프록시를 통해 트래픽을 라우팅합니다:

panoptic --url "https://target/x.php?file=test.txt" \
  --proxy "socks5://127.0.0.1:9050"
  • 지원되는 스킴: http://, https://, socks5://, socks5h:// (socks5h는 프록시를 통해 DNS를 해석합니다 — Tor에 유용하며 로컬 DNS 누출을 방지합니다). SOCKS4는 기본 HTTP 클라이언트에서 지원되지 않습니다. 스캔 시작 전에 스킴과 호스트가 검증됩니다.
  • SOCKS 지원은 기본 설치되는 httpx[socks] 확장에서 제공됩니다.
  • 기본적으로 Panoptic은 표준 HTTP_PROXY / HTTPS_PROXY / NO_PROXY 환경 변수를 존중합니다. 이를 우회하고 직접 연결하려면 --ignore-proxy를 전달하십시오 (환경 변수로 구성된 프록시도 비활성화됩니다).
  • 자체 CA를 사용하는 프록시를 통해 HTTPS를 가로챌 때는 --invalid-ssl과 함께 사용하십시오. 이는 인증서 검증을 비활성화하며 신뢰할 수 없는 네트워크에서는 안전하지 않습니다.

버전 확장 (--all-versions)

번들에 포함된 일부 경로는 버전 템플릿입니다 (예: [JBOSS]로 표기된 JBoss 릴리스 디렉터리). 리터럴 [JBOSS] 경로는 실제 파일과 일치할 수 없으므로 기본적으로 이러한 템플릿 행은 건너뜁니다. --all-versions를 전달하면 각 템플릿이 번들 버전 목록에 대해 확장되어 알려진 각 버전마다 하나의 구체적인 경로를 추가합니다 — 훨씬 더 크지만 훨씬 더 철저한 스캔이 됩니다:

panoptic --url "http://target/x.php?file=test.txt" --auto --all-versions

응답 비교

도구 다운로드