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) 취약점을 통해 일반적인 로그 및 구성 파일의 콘텐츠를 검색하고 추출하는 과정을 자동화하는 오픈 소스 침투 테스트 도구입니다.

저장소 보기
325743015일 전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 탐지
  • 동적 토큰(CSRF 토큰, nonce, 타임스탬프)과 반사된 페이로드를 무시하는 휴리스틱 응답 비교, 오탐을 줄이기 위한 상태 코드 및 문자열 필터링
  • 동적 케이스 주입 — 홈 디렉터리 파일을 위해 /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.11+ (uv가 대신 다운로드할 수 있습니다, 아래 참조)
  • Git

설치

pipx로 Panoptic을 설치하세요. 이는 panoptic 명령을 PATH에 추가하고 Panoptic의 종속성을 시스템 Python과 분리하여 유지합니다.

Kali, Debian 또는 Ubuntu에서:

sudo apt install pipx git
pipx ensurepath
pipx install git+https://github.com/lightos/Panoptic.git

macOS에서는 Homebrew를 사용하여:

brew install pipx git
pipx ensurepath
pipx install git+https://github.com/lightos/Panoptic.git

Windows에서 Python과 Git이 설치된 상태에서:

py -m pip install --user pipx
py -m pipx ensurepath
py -m pipx install git+https://github.com/lightos/Panoptic.git

그런 다음 새 터미널을 열고 제대로 작동하는지 확인하세요:

panoptic --version

pipx upgrade panoptic로 업데이트하세요. pip install panoptic을 실행하지 마세요. 해당 PyPI 이름은 무관한 프로젝트에 속해 있습니다.

uv 사용 시

시스템 Python이 3.11보다 오래된 경우(예: Ubuntu 22.04), 대신 uv를 사용하세요. uv는 적합한 Python을 자체적으로 다운로드합니다:

curl -LsSf https://astral.sh/uv/install.sh | sh
source "$HOME/.local/bin/env"
uv tool install git+https://github.com/lightos/Panoptic.git

그런 다음 새 터미널을 열고 panoptic --version을 실행하세요. 업데이트는 uv tool upgrade panoptic으로 수행합니다.

git 체크아웃에서

예를 들어 Panoptic을 작업하기 위해 클론에서 실행하려면, 체크아웃 내부의 가상 환경에 설치하세요. Debian과 Ubuntu에서는 먼저 sudo apt install python3-venv가 필요합니다.

git clone https://github.com/lightos/Panoptic.git
cd Panoptic
python3 -m venv .venv
.venv/bin/python -m pip install -e ".[dev]"
.venv/bin/panoptic --version

.venv/bin/panoptic로 실행하거나, 각 새 터미널에서 source .venv/bin/activate를 실행하여 panoptic과 python panoptic.py를 직접 사용하세요. Windows에서는 대신 .venv\Scripts\python과 .venv\Scripts\panoptic을 사용하세요. 편집 가능한 설치(editable install)는 Panoptic을 체크아웃과 연결된 상태로 유지하므로, panoptic --update로 제자리에서 업데이트할 수 있습니다.

사용법

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

파일 경로는 URL 경로의 마지막 세그먼트를 대체합니다. ../와 같은 순회 시퀀스는 작성된 그대로 전송됩니다. Panoptic은 이를 정규화하여 제거하지 않지만, 대상 서버는 그럴 수 있습니다.

panoptic --url "http://target/view.php/test.txt" --path-based
panoptic --url "http://target/files/view/test.txt" --path-based \
  --prefix "../" --multiplier 6

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 "....//....//....//....//"

인코딩된 트래버설 (WAF / 단일 디코딩 우회)

접두사는 주어진 그대로 전송되므로, 인코딩된 트래버설 시퀀스가 변경 없이 대상에 도달합니다. 예를 들어 ..%252f에서 점은 리터럴이고 슬래시만 이중 인코딩됩니다. 첫 번째 디코딩에서 %252f가 %2f로 바뀌므로, 한 번만 디코딩하는 필터는 ../를 보지 못하고, 애플리케이션의 두 번째 디코딩에서 /로 바뀝니다:

panoptic --url "http://target/files/view/test.txt" --path-based \
  --prefix "..%252f" --multiplier 6

%2e%2e%2f와 같이 한 번 인코딩된 접두사는 한 번 디코딩한 후 ../가 됩니다. 이는 원시 상태의 디코딩되지 않은 요청을 검사하는 필터에만 도움이 됩니다:

panoptic --url "http://target/include.php?file=test.txt" \
  --prefix "%2e%2e%2f" --multiplier 6

필터링된 스캔

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

검색된 파일 저장

panoptic --url "http://target/include.php?file=test.txt" \
  --write-files --output-dir loot

각 발견된 파일은 --output-dir(기본값 ./output) 아래에 저장되며, 가능한 경우 주변 페이지 템플릿이 제거됩니다. 파일 이름은 정제되어 출력 디렉터리 내부에 유지됩니다.

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"
도구 다운로드