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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
livewire-honeypot — 고상호작용 허니팟으로 취약한 Laravel/Livewire 애플리케이션을 모방합니다. CVE-2024-47823, CVE-2025-54068, CVE-2025-14894를 대상으로 하는 RCE 익스플로잇 및 웹쉘을 캡처한 후, 샌드박스 Docker 컨테이너에서 분석하여 IOCs를 추출합니다. | Kitploit
도구/GitHubGitHub/helgesverre/livewire-honeypot
Indicator of Compromise (IOC) ManagementDynamic Analysis (Sandboxing)Vulnerability AnalysisExploitationWeb SecurityMalware AnalysisCommand and ControlThreat IntelligenceIncident Response
GitHubhelgesverre/livewire-honeypot

livewire-honeypot

고상호작용 허니팟으로 취약한 Laravel/Livewire 애플리케이션을 모방합니다. CVE-2024-47823, CVE-2025-54068, CVE-2025-14894를 대상으로 하는 RCE 익스플로잇 및 웹쉘을 캡처한 후, 샌드박스 Docker 컨테이너에서 분석하여 IOCs를 추출합니다.

673개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

Livewire 허니팟

Honeypot Python 3.11+ FastAPI License

Livewire 허니팟

취약한 Laravel/Livewire 애플리케이션으로 위장하는 고상호작용 허니팟입니다. 알려진 Livewire CVE를 대상으로 한 익스플로잇 시도를 포착하고, 업로드된 악성 파일(웹셸)과 원격 코드 실행(RCE) 페이로드를 SHA-256 중복 제거와 함께 저장하며, 선택적으로 샌드박스 Docker 컨테이너 안에서 실행하여 악성코드가 통신을 시도하는 URL, IP, 도메인 같은 침해 지표(IOC)를 추출합니다.

시스템은 보안을 위해 두 개의 별도 프로세스로 실행됩니다. 웹 서버는 페이로드를 포착하며(Docker 접근 불가), 샌드박스 워커는 격리된 컨테이너 안에서 페이로드를 분석합니다.

작동 방식

root@kitploit:~
Attacker → Nginx → FastAPI → SQLite ← Sandbox Worker (Docker)
                   (capture)            (polls jobs, writes IOCs)
  1. 가상 표면 — Livewire wire: 속성, XSRF 토큰, X-Powered-By: PHP/8.3.12 헤더를 포함한 현실적인 Laravel 로그인/회원가입 페이지를 제공합니다. 자동화 스캐너는 실제 취약한 앱처럼 보이는 대상을 발견합니다.

  2. 포착 — 모든 HTTP 요청은 ASGI 미들웨어 계층에 의해 투명하게 SQLite에 기록됩니다(IP, 헤더, 본문 해시, 타임스탬프). 라우팅이 발생하기 전에 이루어집니다.

  3. 덫 — Livewire 엔드포인트는 실제 프레임워크처럼 파일 업로드와 컴포넌트 메시지를 수용합니다. 페이로드는 분류되고(PHP 코드, 직렬화 객체, 셸 명령) SHA-256 중복 제거와 함께 저장됩니다. 흥미로운 각 페이로드는 sandbox_jobs 큐에 영구 작업을 생성합니다.

  4. 샌드박스 — 별도의 워커 프로세스가 대기 중인 작업을 폴링하고, 각 페이로드를 임시 Docker 컨테이너(읽기 전용 파일시스템, 네트워크 없음, cap_drop=ALL)에서 실행합니다. LD_PRELOAD 셰임이 libc 네트워크 호출을 가로채 C2(명령 및 제어) 통신 시도를 기록합니다. 분석기는 IOC를 추출하고 휴리스틱을 사용하여 잠재적 C2 엔드포인트를 점수화합니다.

대상 CVE

*.php 포괄 덫은 익스플로잇 이후 일반적인 웹셸 파일명(예: accesson.php, wp-login.php, admin.php)을 찾는 프로빙도 포착합니다.

빠른 시작

필수 조건: Python 3.11+ 및 uv.

root@kitploit:~
git clone https://github.com/HelgeSverre/livewire-honeypot.git
cd livewire-honeypot

# 의존성 설치
uv sync

# 웹 서버 시작 (포착 전용, Docker 불필요)
DATA_DIR=./data uv run uvicorn honeypot.main:app --reload --port 8000

# 두 번째 터미널에서 — 샌드박스 워커 시작 (Docker 필요)
DATA_DIR=./data uv run python -m honeypot.worker

# 테스트 실행
uv run pytest tests/ -v

웹 서버는 독립적으로 작동합니다. 샌드박스 워커가 실행되지 않아도 모든 것을 포착하고 저장합니다. 자동 페이로드 분석이 필요할 때 워커를 시작하세요.

참고: src/ 디렉토리는 pyproject.toml(src-layout)을 통해 Python 경로에 포함되므로, honeypot.main:app은 src/honeypot/main.py를 가리킵니다.

배포

빠른 시작: DigitalOcean (또는 모든 Ubuntu 24.04 VPS)

필요한 것:

  • DigitalOcean 계정 (또는 Ubuntu 24.04에서 root를 제공하는 모든 제공자).
  • 제어하는 도메인. TLS는 트랩이 스캐너에게 실제처럼 보이게 하며, certbot이 인증서를 발급하는 순간 호스트명이 Certificate Transparency 로그에 기록됩니다. 이것이 Shodan, Censys 및 대부분의 대규모 익스플로잇 키트가 수시간 내에 새로운 대상을 발견하는 방법입니다.

VPS가 존재하는 즉시 전체 배포는 단일 명령으로 수행됩니다. 스크립트는 "베어 드롭렛"에서 "TLS가 활성화된 서비스 실행"까지 모든 단계를 처리합니다. apt 패키지, 사용자 및 그룹, Python venv, 샌드박스 이미지, nginx, certbot, 방화벽 규칙.

root@kitploit:~
# 1. $6/월 드롭렛 프로비저닝 (Ubuntu 24.04, 1 GB RAM으로 충분).
#    DigitalOcean에서:
doctl compute droplet create veritron-honeypot \
    --size s-1vcpu-1gb \
    --image ubuntu-24-04-x64 \
    --region fra1 \
    --ssh-keys "$(doctl compute ssh-key list --format ID --no-header | head -1)" \
    --wait

# 2. 도메인의 A 레코드를 드롭렛 IP로 지정.
#    계속하기 전에 DNS가 해석되기를 기다립니다.
dig +short your-domain.example   # 드롭렛 IP를 반환해야 함

# 3. 프로젝트를 드롭렛에 복사.
rsync -az --exclude='.git' --exclude='.venv' --exclude='data' \
    ./ root@<droplet-ip>:/opt/honeypot/

# 4. 부트스트랩 스크립트 실행. 도메인을 전달하면 certbot을 통해 TLS를 활성화합니다.
ssh root@<droplet-ip> 'cd /opt/honeypot && [email protected] \
    bash deploy/setup.sh your-domain.example'

이상입니다. 이제 허니팟이 HTTPS를 통해 가짜 Laravel/Livewire 로그인 페이지를 제공하며, 모든 요청을 SQLite에 포착하고, Docker 샌드박스에서 페이로드를 분석할 준비가 되었습니다.

부트스트랩 스크립트의 작업 내용

deploy/setup.sh는 멱등적입니다. 다시 실행해도 안전합니다. 순서대로:

  1. cloud-init / unattended-upgrades가 dpkg 잠금을 해제할 때까지 대기 (새 DO 드롭렛은 부팅 후 1-3분 동안 잠금을 유지).
  2. nginx, certbot, docker.io, 시스템 Python 3.12, sqlite3 설치.
  3. /root/.local/bin 아래에 uv (Astral) 설치.
  4. honeypot(웹) 및 sandbox(워커) 서비스 사용자와 공유 honeypot-data 그룹 생성.
  5. uv sync --python /usr/bin/python3.12 실행. 의도적으로 uv의 번들 인터프리터 대신 apt로 설치된 Python을 사용합니다. uv의 Python은 /root/.local/share/uv/에 위치하여 권한이 없는 서비스 사용자가 접근할 수 없고, uv가 인터프리터를 선택하도록 두면 혼란스러운 status=203/EXEC systemd 오류가 발생합니다.
  6. setgid 비트와 공유 그룹 소유권으로 /var/honeypot/ 생성. 두 서비스가 서로의 쓰기를 읽을 수 있도록 함.
  7. systemd 유닛 파일 설치 및 워커의 ExecStart를 시스템 Docker 데몬을 사용하도록 재작성 (제공된 유닛은 설정하기 더 어려운 rootless Docker를 가정).
  8. 샌드박스 컨테이너 이미지 빌드 (docker build -t honeypot-sandbox sandbox/).
  9. nginx 사이트 설정 작성 및 limit_req_zone 지시문을 /etc/nginx/conf.d/에 추가 ( 블록 안에 있어야 하며 안이 아님).

수동 설정

각 단계를 setup.sh를 실행하는 대신 직접 수행하려면 동등한 셸 히스토리가 deploy/setup.sh에 주석 처리된 단계로 제공됩니다.

서비스 구조

서비스사용자목적Docker 접근
honeypot.servicehoneypot웹 서버 — 요청 및 페이로드 포착

두 서비스 모두 SQLite 데이터베이스와 페이로드 저장소를 위해 /var/honeypot/를 공유합니다. 웹 프로세스는 Docker 소켓에 접근할 수 없기 때문에, 공격자 트래픽을 통해 손상되더라도 호스트에서 컨테이너를 생성할 수 없습니다.

운영

root@kitploit:~
# 로그 보기
journalctl -u honeypot -f
journalctl -u honeypot-worker -f

# 서비스 재시작
systemctl restart honeypot honeypot-worker

# 업그레이드
cd /opt/honeypot && git pull && uv sync
docker build -t honeypot-sandbox sandbox/
systemctl restart honeypot honeypot-worker

설정

모든 설정은 환경 변수로 제어됩니다 (systemd 유닛 파일에 설정하거나 실행 전에 export):

포착된 데이터 조회

모든 데이터는 단일 SQLite 데이터베이스(기본: /var/honeypot/captures.db)에 저장됩니다.

root@kitploit:~
# 최근 요청
sqlite3 /var/honeypot/captures.db \
  "SELECT timestamp, source_ip, method, path, matched_trap
   FROM requests ORDER BY id DESC LIMIT 20;"

# 빈도별 고유 페이로드
sqlite3 /var/honeypot/captures.db \
  "SELECT sha256, filename, payload_type, times_seen, sandbox_status
   FROM payloads ORDER BY times_seen DESC;"

# 상위 공격자 IP
sqlite3 /var/honeypot/captures.db \
  "SELECT ip, total_requests, first_seen, last_seen
   FROM attackers ORDER BY total_requests DESC LIMIT 10;"

# 추출된 IOC(JSON)가 포함된 샌드박스 결과
sqlite3 /var/honeypot/captures.db \
  "SELECT payload_id, exit_code, duration_seconds, c2_urls_found, iocs
   FROM sandbox_runs ORDER BY id DESC LIMIT 5;"

# 대기 중인 샌드박스 작업
sqlite3 /var/honeypot/captures.db \
  "SELECT id, payload_sha256, status, created_at
   FROM sandbox_jobs ORDER BY id DESC LIMIT 10;"

sandbox_runs.iocs의 IOC 데이터는 domains, ips, emails, urls, hashes 키가 있는 JSON으로 저장됩니다. 필요에 따라 추출하여 위협 인텔리전스 플랫폼(MISP, OpenCTI 등)에 전달하세요.

프로젝트 구조

root@kitploit:~
src/honeypot/
  main.py              # FastAPI 웹 앱 (포착 전용, Docker 불필요)
  worker.py            # 독립형 샌드박스 워커 (SQLite 폴링, Docker 필요)
  config.py            # 환경 변수에서 설정 로드
  capture/
    database.py        # 비동기 SQLite — 요청, 페이로드, sandbox_jobs 큐
    logger.py          # ASGI 미들웨어 — 모든 요청 기록
    payloads.py        # SHA-256 중복 제거 저장소 + 페이로드 분류
  facade/
    routes.py          # Laravel 지문이 있는 페이지 (로그인, 회원가입 등)
    templates/         # Livewire wire: 속성이 있는 Jinja2 HTML
    static/            # 가짜 livewire.js (v3.5.1 지문)
  traps/
    livewire.py        # POST /livewire/message, /upload-file, /preview-file
    php_catchall.py    # *.php 프로빙을 위한 포괄 덫
  sandbox/
    orchestrator.py    # Docker 컨테이너 생명주기 + 강화
    analyzer.py        # 아티팩트 파싱 + IOC 추출 + C2 점수화
deploy/
  nginx.conf           # 속도 제한이 있는 리버스 프록시
  honeypot.service     # systemd 유닛 (웹)
  honeypot-worker.service  # systemd 유닛 (샌드박스 워커)
  setup.sh             # VPS 부트스트랩 스크립트
sandbox/
  Dockerfile           # 샌드박스 컨테이너 이미지 (PHP 8.3 + 공격자 도구)
  entrypoint.sh        # LD_PRELOAD 네트워크 셰임이 포함된 컨테이너 진입점

면책 조항

본 도구는 귀하가 소유한 인프라에서 악성코드 샘플을 수집하고 공격자 행동을 관찰하기 위한 연구 도구입니다. 프로덕션 보안 제품이 아닙니다. 귀하가 통제하는 시스템에만 배포하시고, 공격자 페이로드를 포착 및 실행하는 것은 귀하의 관할권에서 법적 영향을 미칠 수 있음을 인지하십시오. SQLite 데이터베이스와 페이로드 파일은 무제한으로 커집니다. 디스크 사용량을 모니터링하고 필요에 따라 보존 정책을 구현하십시오.

기여

이슈 및 풀 리퀘스트는 환영합니다.

라이선스

MIT

도구 다운로드
CVECVSS요약덫 엔드포인트
CVE-2024-478239.8 심각Livewire 파일 업로드 RCE: MIME 유형 우회. 파일 확장자를 파일명이 아닌 MIME 유형으로 추측하여, .php 업로드를 이미지로 위장할 수 있음. Livewire < 2.12.7 및 < 3.5.2에 영향.POST /livewire/upload-file
CVE-2025-540689.2 심각Livewire 프로퍼티 하이드레이션 RCE. 하이드레이션 과정이 컴포넌트 속성 업데이트의 객체 유형을 살균하지 않아, 주입된 페이로드가 서버 측에서 실행될 수 있음. Livewire 3.0.0-beta.1부터 3.6.3까지 영향.POST /livewire/message
CVE-2025-14894심각Livewire Filemanager 무제한 업로드 RCE. 파일 유형 및 MIME 검증이 누락되어 인증 없이 실행 가능한 PHP 파일 업로드가 가능함.POST /livewire/upload-file
http {}
server {}
  • ufw에서 22/80/443 포트 개방.
  • 두 서비스 시작 및 도메인이 전달된 경우 certbot --nginx 실행.
  • 아니오
    honeypot-worker.servicesandbox샌드박스 워커 — Docker에서 페이로드 분석예
    변수기본값설명
    DATA_DIR/var/honeypot모든 데이터의 기본 디렉토리
    DB_PATH$DATA_DIR/captures.dbSQLite 데이터베이스 경로
    SANDBOX_TIMEOUT60샌드박스 실행당 최대 초
    SANDBOX_MEMORY128m컨테이너 메모리 제한
    SANDBOX_CPUS0.5컨테이너 CPU 제한
    SANDBOX_MAX_CONCURRENT3최대 동시 샌드박스 컨테이너
    SANDBOX_IMAGEhoneypot-sandbox샌드박스용 Docker 이미지
    WORKER_POLL_INTERVAL2.0작업 폴링 간 간격(초)