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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
penelope — Penelope 셸 핸들러 | Kitploit
도구/GitHubGitHub/brightio/penelope
Payload GenerationShellcodePost-ExploitationCTFPenetration TestingCommand and ControlRed TeamingRemote Access ToolPost-Exploitation #20위
GitHub
2.0k227242일 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
brightio/penelope

penelope

Penelope 셸 핸들러

저장소 보기
Logo


Black Hat Arsenal EU USA MEA
Kali Linux

Penelope는 침투 테스터와 CTF 플레이어를 위한 현대적인 쉘 핸들러입니다. 기본 netcat 리스너보다 더 강력한 대안을 제공하며, 자동 PTY 업그레이드, 세션 관리, 로깅, 파일 전송 및 헬퍼 모듈을 추가합니다.

목차

  • 📥 설치
  • ⚙️ 기능
    • 🖥️ 세션 기능
    • 🌍 전역 기능
    • 🧩 모듈
  • 💻 사용법
    • ▶️ 일반적인 사용 예
    • 🎬 랜덤 사용 시연
    • 🖲️ 메인 메뉴 명령어
    • ⚡ 명령줄 옵션
  • 🔒 보안 고려 사항
  • 📝 TODO
  • ❓ FAQ
  • 🙌 얼리버드 감사

설치

Penelope는 Linux, macOS, FreeBSD를 포함한 Unix 계열 시스템에서 실행되며 **Python 3.6+**이 필요합니다.

Kali Linux

Penelope는 Kali Linux에서 사용할 수 있습니다:

sudo apt update
sudo apt install penelope

독립 실행

Penelope는 Python 표준 라이브러리만으로 구현되어 외부 의존성 없이 독립 스크립트로 실행할 수 있습니다:

wget -q https://raw.githubusercontent.com/brightio/penelope/refs/heads/main/penelope.py && python3 penelope.py

pipx

GitHub에서 최신 업스트림 버전을 직접 설치하려면:

pipx install git+https://github.com/brightio/penelope

버전이 지정되고 더 안정적인 릴리스 경로를 위해 Penelope는 PyPI에서도 사용할 수 있습니다:

pipx install penelope-shell-handler

기능

세션 기능

기능Unix 계열 대상Windows 대상
자동 쉘 업그레이드PTYreadline(*)
실시간 터미널 크기 조정✅❌
쉘 활동 로깅✅✅
원격 파일/폴더 다운로드✅✅
로컬/HTTP 파일/폴더 업로드✅✅
실시간 출력 다운로드가 포함된 인메모리 로컬/HTTP 스크립트 실행✅❌
로컬 포트 포워딩✅❌
여러 탭 및/또는 호스트에 쉘 생성✅❌
호스트당 N개의 활성 쉘 자동 유지 (종료 시 재생성)✅❌

(*) upgrade 명령으로 수동으로 PTY로 업그레이드 가능

⚠️ Windows 지원은 실험적이며 활발히 개발 중입니다.

전역 기능

  • 모듈을 통해 대상과의 상호작용 간소화
  • 여러 세션
  • 여러 리스너
  • HTTP를 통한 파일/폴더 제공 (-s 스위치)
  • python3 익스플로잇에서 가져와 동일한 터미널에서 쉘 획득 가능 (참조: extras/exploit_examples)
  • set DisablePayloadHandler True로 기본 핸들러를 비활성화하면 Metasploit 익스플로잇과 함께 작동 가능
  • --mcp 스위치로 로컬 HTTP(토큰 인증)를 통해 MCP 클라이언트(예: Claude Code)에 라이브 세션 노출, 사용자와 함께 동일한 쉘 구동

모듈

modules

Meterpreter 모듈 시연

meterpreter

사용법

일반적인 사용 예

penelope                          # 0.0.0.0:4444에서 리버스 쉘 수신
penelope -p 5555                  # 0.0.0.0:5555에서 리버스 쉘 수신
penelope -p 4444,5555             # 0.0.0.0:4444 및 0.0.0.0:5555에서 리버스 쉘 수신
penelope -i eth0 -p 5555          # eth0:5555에서 리버스 쉘 수신
penelope -a                       # 0.0.0.0:4444에서 리버스 쉘 수신 및 샘플 리버스 쉘 페이로드 표시

penelope -c target -p 3333        # target:3333의 바인드 쉘에 연결

penelope ssh user@target          # 로컬 포트 4444를 통해 target에서 리버스 쉘 획득
penelope -p 5555 ssh user@target  # 로컬 포트 5555를 통해 target에서 리버스 쉘 획득
penelope -i eth0 -p 5555 -- ssh -l user -p 2222 target  # eth0, 로컬 포트 5555를 통해 target에서 리버스 쉘 획득 (ssh에 스위치가 필요하면 -- 사용)

penelope -s <File/Folder>         # HTTP로 파일 또는 폴더 공유

Penelope

HTTP 파일 서버 (-s)

Penelope는 빠른 HTTP 파일 서버로도 사용할 수 있습니다.

penelope -s file.txt                 # 0.0.0.0:8000에서 단일 파일 제공
penelope -s /path/to/dir             # 전체 폴더 제공
penelope -s a.sh b.elf notes.txt     # 여러 항목을 한 번에 제공
penelope -s . -p 80                  # 현재 디렉토리를 80번 포트에 제공
penelope -s secret.txt -prefix xk9   # URL 접두사 뒤에 숨기기: /xk9/secret.txt
penelope -s -u                       # 업로드 모드: CWD로 PUT/POST 수락
penelope -s -u -ud /tmp/loot         # 업로드 모드, 수신 파일을 /tmp/loot에 저장

시작 시 Penelope는 인터페이스별로 바로 사용 가능한 링크(및 -u가 설정된 경우 업로드 힌트)를 출력하므로 대상 쉘에 바로 복사하여 붙여넣을 수 있습니다.

랜덤 사용 시연

아래 동영상에서 볼 수 있듯이, 단 몇 초 안에 다음을 수행할 수 있습니다:

  1. 대상과의 모든 상호작용을 로깅하면서 완전히 작동하는 자동 크기 조정 PTY 쉘 확보
  2. 디스크를 건드리지 않고 대상에서 최신 버전의 LinPEAS 실행 및 출력을 실시간으로 로컬 파일에 저장
  3. 다른 탭에서 PTY 쉘 하나 더 열기
  4. 최신 버전의 LinPEAS 및 linux-smart-enumeration 업로드
  5. 사용자 정의 스크립트가 포함된 로컬 폴더 업로드
  6. URL에서 직접 exploit-db 익스플로잇 업로드
  7. 원격 파일을 로컬에 다운로드 및 열기
  8. 원격 /etc 디렉토리 다운로드
  9. 기존 쉘이 종료되면 자동으로 새 쉘 생성, 불안정한 쉘 세션 중에도 액세스 유지 지원

https://github.com/brightio/penelope/assets/65655412/7295da32-28e2-4c92-971f-09423eeff178

메인 메뉴 명령어

참고 사항:

  • 기본적으로 PTY 쉘에서 분리하여 메인 메뉴로 이동하려면 F12를 눌러야 합니다. 업그레이드가 불가능하여 기본 쉘로 끝난 경우 Ctrl+C로 분리할 수 있습니다. 이는 실수로 쉘을 종료하는 것을 방지합니다.
  • 메인 메뉴는 TAB 완성을 지원하며 짧은 명령어도 지원합니다. 예를 들어 interact 1 대신 i 1을 입력할 수 있습니다.

Main Menu

명령줄 옵션

positional arguments:
  args                          -s/--serve 및 SSH 리버스 쉘 모드에 대한 인수

options:
  -p, --ports                   -i/-c/-s 옵션에 따라 수신/연결/제공할 포트(쉼표로 구분)
                                (기본값: 4444/5555/8000)

Reverse or Bind shell?:
  -i, --interface               수신할 로컬 인터페이스/IP (기본값: 0.0.0.0)
  -c, --connect                 바인드 쉘 호스트
  -j, --jump                    리버스 쉘 점프 엔드포인트

Hints:
  -a, --payloads                활성 리스너에 대한 샘플 리버스 쉘 페이로드 표시
  -l, --interfaces              사용 가능한 네트워크 인터페이스 목록
  -h, --help                    이 도움말 메시지를 표시하고 종료

Session Logging:
  -L, --no-log                  세션 로그 파일 비활성화
  -T, --no-timestamps           로그의 타임스탬프 비활성화
  -CT, --no-colored-timestamps  로그의 색상 타임스탬프 비활성화

Misc:
  -M, --menu                    메인 메뉴에서 시작
  -m, --maintain                대상당 N개의 세션 유지
  -S, --single-session          처음 생성된 세션만 수용
  -ms, --max-sessions           호스트당 최대 활성 세션 (기본값 5, 0 = 모든 새 연결 거부)
  -C, --no-attach               새 세션에 자동 연결 안 함
  -U, --no-upgrade              쉘 자동 업그레이드 비활성화
  -H, --keep-history            대상 쉘 기록 유지 (HISTFILE=/dev/null 설정 안 함)
  -O, --oscp-safe               OSCP 안전 모드 활성화
  --no-disk                     모든 상태를 RAM(tmpfs)에 유지, 디스크에 저장 안 함

MCP:
  --mcp                         로컬 HTTP를 통한 MCP 서버 활성화
  --mcp-host                    바인딩할 호스트/IP (기본값: 127.0.0.1)
  --mcp-port                    바인딩할 포트 (기본값: 저장된 포트, 없으면 무작위 여유 포트를 생성하여 ~/.penelope/mcp.json에 저장)
  --mcp-token                   Bearer 토큰 (기본값: 저장된 토큰, 없으면 자동 생성하여 저장)

File server:
  -s, --serve                   HTTP 파일 서버 모드 실행
  -prefix, --url-prefix         URL 경로 접두사
  -u, --upload                  파일 업로드(PUT/POST)를 서버에 활성화
  -ud, --upload-dir             업로드 저장 디렉토리 (기본값: CWD)

Debug:
  -N, --no-bins                 대상에서 누락된 바이너리 시뮬레이션 (쉼표로 구분)
  -v, --version                 버전 출력 후 종료
  -d, --debug                   디버그 출력 활성화
  -dd, --dev-mode               개발자 모드 활성화
  -cu, --check-urls             하드코딩된 URL 상태 확인 후 종료

보안 고려 사항

Penelope는 원격 쉘과의 직접적이고 유연한 상호작용을 위해 설계되었습니다. 사용 시 다음 사항에 유의하십시오:

  • 터미널 이스케이프 시퀀스: Penelope는 원격 시스템의 터미널 출력을 로컬 터미널 에뮬레이터로 직접 전달합니다. 악성 원격 프로세스는 터미널 이스케이프 시퀀스를 사용하여 화면을 조작하거나, 오해의 소지가 있는 링크를 만들거나, 클립보드와 같은 기능과 상호작용할 수 있습니다. 이러한 노출은 원격 쉘을 로컬 터미널에 중계하는 모든 도구(SSH, telnet, netcat 등)에 내재된 위험이며 Penelope만의 문제는 아닙니다. 신뢰할 수 없는 시스템에 연결할 때는 적절한 보안 설정이 적용된 터미널을 사용하십시오.

  • 세션 로그: 세션 로그에는 대상에서 수신한 자격 증명, 토큰, 명령 및 기타 민감한 정보가 포함될 수 있습니다. 안전하게 보관하고 로깅이 필요하지 않은 경우 --no-log를 사용하십시오.

  • 암호화되지 않은 연결: 표준 리버스 및 바인드 쉘 연결은 암호화되지 않습니다. 트래픽이 안전한 터널 또는 VPN으로 보호되지 않는 한 신뢰할 수 없는 네트워크를 통한 사용을 피하십시오.

도구 다운로드