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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
honeyprompt — LLM 우선의 속임수 프레임워크: "대답하는 허니팟!™" | Kitploit
도구/GitHubGitHub/alectrocute/honeyprompt
OSINT (Open Source Intelligence)Container SecurityWeb SecurityNetwork SecurityThreat IntelligenceRed TeamingIncident ResponseAI Security
GitHubalectrocute/honeyprompt

honeyprompt

LLM 우선의 속임수 프레임워크: "대답하는 허니팟!™"

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

honeyprompt

banner

honeyprompt 소개: LLM 우선의 속임수 프레임워크로, 웹 개발자를 위해/에 의해 만들어졌습니다. @alectrocute의 개인 열정 프로젝트입니다.

모든 주요 클라우드 및 로컬 LLM 제공자를 지원합니다. SSH, HTTP, TLS, TCP, 텔넷 등. 작은 컨테이너(단일 정적 바이너리)로 제공되며 모든 설정은 하나의 honeyprompt.yaml에 있습니다.

컴파일할 플러그인도, 실행할 데이터베이스도 필요 없으며, 쉽게 확장 가능하고 저사양 하드웨어에 배포할 수 있습니다.

데모 인스턴스

데모 인스턴스는 172.233.151.216에서 사용할 수 있으며, 인증되지 않은 웹 패널은 여기: http://172.233.151.216:9090입니다. 저렴한 Linode VPS에서 실행되는 honeyprompt의 공개 인스턴스로, 유일한 LLM 제공자/모델로 openrouter/free를 사용합니다.

빠른 시작

2026년에 가장 쉬운 설정을 위해 Docker와 OpenRouter/openrouter/free를 LLM 제공자로 권장합니다. 모든 주요 클라우드 및 로컬 LLM 제공자가 지원됩니다. 세 개의 파일과 하나의 명령어로 전체 기본 배포(7개의 LLM 기반 유인책, 지속적인 이벤트 저장 및 운영자 패널)를 실행합니다.

1. 기본 설정, 컴포즈 파일 및 환경 템플릿을 가져옵니다:

# Docker가 없다면:
# curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh

mkdir honeypot && cd honeypot
wget https://raw.githubusercontent.com/alectrocute/honeyprompt/main/honeyprompt.yaml
wget https://raw.githubusercontent.com/alectrocute/honeyprompt/main/compose.yaml
wget -O .env https://raw.githubusercontent.com/alectrocute/honeyprompt/main/.env.example

(또는 저장소를 클론하고 cd로 들어가면 동일한 세 파일입니다.)

2. .env를 채웁니다. 두 값이 필요합니다:

OPENROUTER_API_KEY=sk-or-...            # 지출 한도가 있는 전용 키 사용
HONEYPROMPT_PANEL_PASSWORD=changeme     # 패널의 기본 인증 비밀번호

3. 시작합니다:

docker compose up -d

4. 테스트합니다:

ssh -p 2222 root@localhost            # 비밀번호: root — 그런 다음 아무거나 입력
curl http://localhost:2375/v1.54/containers/json   # "노출된" Docker API

5. 읽기 전용 패널에서 확인합니다 http://127.0.0.1:9090 (패널 비밀번호로 admin으로 로그인). 모든 연결, 자격 증명 및 명령이 실시간으로 스트리밍됩니다. 원격 호스트에 배포한 경우 compose.yaml에서 :9090 포트를 노출해야 합니다. 프로덕션 배포에는 권장되지 않습니다.

프로덕션 배포에서는 latest 대신 번호가 지정된 릴리스를 고정하세요. .env에서 HONEYPROMPT_IMAGE를 설정하십시오.

방금 다운로드한 honeyprompt.yaml은 완전히 주석이 달린 쇼케이스입니다. 다음과 같은 프로필을 제공합니다:

  • 일반적인 기업 웹 서버 — 포트 80, 가장 넓은 그물; /는 기본 nginx 환영 페이지를 즉시 제공하고, 더 깊은 경로는 LLM으로 넘어가 공격자가 계속 클릭하도록 유도하는 전체 HTML/CSS 인트라넷 페이지, 로그인 양식 및 관리자 패널을 생성합니다.
  • MCP / 에이전트 게이트웨이 — Streamable HTTP 검색, OAuth 메타데이터, JSON-RPC 도구 호출 및 유혹적인 프로덕션 도구.
  • Docker Engine API 29.5 — 실제 클라우드 웜이 사용하는 인증되지 않은 포트 2375 표면.
  • Kubernetes API v1.36 — 네임스페이스, 워크로드, Secret, ConfigMap 및 RBAC 검색.
  • Ubuntu 26.04 AI 빌드 인프라 — SSH, GPU 워크로드, Docker, kubeconfig, CI 상태 및 제공자 자격 증명.
  • Redis 8.8 — 자격 증명 도용, 지속성 및 측면 이동에 사용되는 일반적인 RESP 프로브.
  • 산업용 엣지 / OT — 의도적으로 레거시한 Telnet 관리 평면. 현대 방어는 여전히 오래된 인프라에 대한 공격을 잡아야 하기 때문입니다.

LLM 없이 실행하기

[!IMPORTANT] LLM을 사용하더라도 가장 자주 사용되는 경로를 파악하고 정적 규칙을 추가하세요. 이렇게 하면 LLM 토큰을 대량으로 절약하고 LLM 호출 비용이 들지 않는 요청에 대한 응답 속도를 높일 수 있습니다. 무작위 예시: whoami, 헬스 체크, 파비콘, 버전 프로브 등.

다음 최소 honeyprompt.yaml은 두 개의 정적 규칙과 LLM 없이 SSH 상자를 가짜로 만듭니다:

panel:
  enabled: true
  address: "0.0.0.0:8080"

events:
  buffer: 2000
  file: /data/events.jsonl # 지속적인 공격자 활동

services:
  - protocol: ssh
    address: "0.0.0.0:2222"
    description: "Ubuntu 26.04 LTS build runner"
    serverName: "gpu-runner-07"
    passwordRegex: "^(root|admin|123456)$" # "작동하는" 비밀번호
    commands:
      - regex: "^whoami$"
        handler: "root"
      - regex: "^(.+)$"
        handler: "bash: command not found"
docker run --rm \
  -p 2222:2222 -p 8080:8080 \
  -v "$(pwd)/honeyprompt.yaml:/etc/honeyprompt/honeyprompt.yaml:ro" \
  -v honeyprompt-data:/data \
  alectrocute/honeyprompt:latest

배포

지속적인 배포를 위해 포함된 compose.yaml을 사용하세요. 배포 가이드에서는 Docker Hub 릴리스, 필요한 GitHub 시크릿, 포트 및 방화벽 설정, SSH를 통한 패널 접근, 업그레이드, 롤백, 이벤트 저장 및 격리 등을 다룹니다.

LLM 우선 속임수의 이유 (간략히)

허니팟이 잘해야 하는 것은 단 한 가지입니다: 공격자가 계속 입력할 만큼 오랫동안 설득력 있게 유지되는 것입니다. 공격자가 실행하는 모든 명령은 정보입니다 — 그들이 사용하는 도구, 재사용하는 자격 증명, 패치되지 않았다고 가정하는 CVE. 정적 허니팟은 작성자가 예상하지 못한 명령이 실행되는 순간 그 역할을 깨뜨립니다. honeyprompt는 그 순간을 LLM에 넘겨서 셸이 dmesg | tail이나 cat /etc/shadow에 실제 시스템처럼 응답하고 세션이 계속 유지되도록 합니다.

이 프로젝트에 영감을 준 Galah(최초 LLM 허니팟?)에 대한 Adel Karimi의 훌륭한 DEF CON 32 발표를 확인하세요: https://www.youtube.com/watch?v=XGsm4Qcc_Ag

기록되는 것: 두 개의 분리된 스트림

이 부분을 먼저 이해하는 것이 중요합니다. 두 스트림은 의도적으로 분리되어 있습니다:

  • 속임수 이벤트: 모든 공격자 상호 작용: 연결, 인증 시도, 각 명령 또는 요청, honeyprompt가 보낸 응답, 응답한 제공자와 모델, 소요 시간. 이는 위협 인텔리전스입니다. 실시간 패널을 위해 제한된 메모리 버퍼에 보관되며, 디스크에 모두 지속할 수 있습니다.
  • 운영 로그: 시작, 바인딩된 포트, 제공자 실패, 종료, 내부 오류. 이는 _런타임_이 잘못될 때 읽는 로그입니다. 공격자 활동과는 관련이 없습니다.

별도로 구성합니다:

# 꿀: 공격자 활동.
events:
  buffer: 2000 # 패널용 최근 이벤트를 메모리에 유지
  file: /data/events.jsonl # 모든 이벤트를 JSON Lines로 지속

# 런타임 자체 진단.
logging:
  level: info # debug | info | warn | error
  format: text # 콘솔에 표시 방식: text (사람 읽기) 또는 json
  file: /data/honeyprompt.log # 선택 사항; 디스크에는 항상 JSON

events.jsonl은 각 줄에 하나의 독립적인 JSON 객체입니다 — tail -f, SIEM으로 전송, 또는 jq로 재생할 준비가 되어 있습니다. 위의 Docker 명령은 honeyprompt-data라는 이름의 볼륨을 /data에 마운트하므로 이벤트는 컨테이너 교체 후에도 유지됩니다. 두 파일 모두 추가되며 정상 종료 시 플러시됩니다.

format은 운영 로그가 콘솔에 렌더링되는 방식에만 영향을 줍니다. 운영 로그 _파일_은 활성화되면 항상 구조화된 JSON이므로 구문 분석하기 쉽습니다.

웹 패널

screenshot

선택적이며 읽기 전용 대시보드가 속임수 이벤트를 실시간으로 스트리밍하고, 프로토콜별로 분류하며, 한 번의 클릭으로 모든 것을 JSON으로 내보냅니다:

panel:
  enabled: true
  address: "0.0.0.0:8080"
  auth: # 선택적 기본 인증
    username: admin
    password: "${HONEYPROMPT_PANEL_PASSWORD}"

대시보드는 바이너리에 포함된 일반 HTML, CSS 및 JavaScript(src/panel/assets)입니다. auth를 정의하지 않으면 인증을 비활성화합니다.

제공자

각 제공자는 자체 시간 초과, 재시도, 속도 제한 및 헤더가 있는 자체 모듈입니다. 키는 환경에서 가져옵니다. 기본 제공:

제공자type참고 사항
Ollamaollama로컬 모델; 기본값 localhost:11434
llama.cppllamacpp로컬 server OpenAI 엔드포인트
OpenAIopenaiOPENAI_API_KEY
Azure OpenAIazureazure.deployment + azure.apiVersion 필요
OpenRouteropenrouterOPENROUTER_API_KEY
AnthropicanthropicANTHROPIC_API_KEY
Google GeminigoogleGEMINI_API_KEY
모든 OpenAI 형태openai-compatible게이트웨이에 baseUrl 지정

로드 밸런싱 및 장애 조치

제공자를 구성하고 pool.strategy(round-robin, weighted, random 또는 failover)를 선택하면 honeyprompt가 트래픽을 분산시킵니다. 선택한 제공자가 시간 초과되거나 재시도 가능한 오류를 반환하면 honeyprompt가 투명하게 다음 제공자로 장애 조치합니다 — 죽은 백엔드가 허니팟을 오프라인으로 만들지 않습니다. 재시도 불가능한 오류(예: 잘못된 API 키)는 계단식 전파를 중단하여 조용히 할당량을 소모하는 대신 오류를 발견할 수 있도록 합니다.

서비스는 자체 제공자 하위 집합을 지정하지 않으면 글로벌 풀을 사용합니다:

llm:
  enabled: true
  providers: [local-ollama] # 하나의 이름: 이 서비스를 이 제공자로 강제

여러 이름을 나열하면 로드 밸런싱 및 장애 조치를 유지하지만 해당 하위 집합 내에서만 가능합니다:

llm:
  enabled: true
  providers: [openai-primary, openrouter-backup]

명명된 풀

여러 서비스가 동일한 제공자 그룹을 공유해야 하거나 하위 집합이 글로벌 풀 대신 자체 전략이 필요한 경우 명명된 풀을 정의합니다. 풀에는 이름, 전략 및 정렬된 제공자 목록이 있으며 서비스는 제공자를 지정하는 모든 곳에서 이름으로 참조할 수 있습니다:

pools:
  - name: cheap-first
    strategy: failover # 먼저 로컬 모델 시도, 실패 시 유료 API로 전환
    order: [local-ollama, openrouter]
  - name: spread
    strategy: round-robin
    order: [openrouter, openai]
도구 다운로드