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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/calebstewart/pwncat
Privilege EscalationPersistence MechanismsPost-ExploitationPenetration TestingCommand and ControlRed Teaming
GitHubcalebstewart/pwncat

pwncat

사후 침투 플랫폼으로, 리버스/바인드 셸을 통해 열거, 권한 상승, 지속성 및 C2 작전을 자동화하며 Linux와 Windows를 지원하는 크로스 플랫폼입니다.

저장소 보기
2.9k2924년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

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

pwncat

asciicast

pwncat은 Linux 타겟을 위한 포스트 익스플로잇 플랫폼입니다. 기본적인 바인드 및 리버스 셸을 감싸는 래퍼로 시작했으며, 그로부터 성장했습니다. 공격자 머신에서 코드를 스테이징하면서 일반적인 레드팀 작업을 간소화합니다.

pwncat은 예전에는 Linux만 지원했지만, 최근 여러 플랫폼을 지원하기 위해 많은 작업이 이루어졌습니다. 현재 Windows 타겟에 대한 알파 지원이 있습니다. Windows 타겟에서 pwncat을 사용하는 방법에 대한 자세한 내용은 최신 documentation을 참조하십시오.

pwncat은 원격 셸과의 원시 통신을 가로채서 사용자가 원격 호스트에서 열거, 임플란트 설치, 심지어 권한 상승을 포함한 자동화된 작업을 수행할 수 있게 해줍니다.

연결을 수신한 후, pwncat은 원격 셸 작업을 위한 몇 가지 일반적인 구성을 설정합니다.

  • 원격 셸에서 기록 비활성화
  • 셸 프롬프트 정규화
  • 유용한 바이너리 찾기 (which 사용)
  • 완전한 대화형 세션을 위한 의사 터미널(pty) 생성 시도

pwncat은 여러 가지 방법으로 pty를 생성하는 방법을 알고 있으며, 이전에 열거된 실행 파일과 방법을 교차 참조합니다. pty를 생성한 후, 제어 터미널을 raw 모드로 설정하여 ssh와 유사한 방식으로 상호작용할 수 있습니다.

pwncat은 또한 원격 pty 설정(예: 행, 열, TERM 환경 변수)을 로컬 설정과 동기화하여 vim 또는 nano와 같은 대화형 애플리케이션에서 셸이 올바르게 작동하도록 보장합니다.

John Hammond과 저는 GRIMMCon에서 pwncat을 발표했습니다. YouTube에서 확인할 수 있는 발표 영상은 여기입니다. 이 영상은 초기 버전의 API와 인터페이스를 보여줍니다. 최신 사용법 및 API 문서는 문서를 참조하십시오.

pwncat documentation은 Read the Docs에서 구축 중입니다. 최신 사용법 및 개발 문서는 해당 페이지를 방문하십시오!

pwncat은 Linux에서 Python 3.9+가 필요합니다

설치

pwncat은 Linux에서 실행되는 작동하는 Python 개발 환경만 필요로 합니다. pip로 필요한 일부 패키지를 설치하려면 배포판의 "Python Development" 패키지가 필요할 수 있습니다. Debian 기반 시스템에서는 python-dev입니다. Arch의 경우, 개발 파일은 기본 Python 저장소와 함께 제공됩니다. Enterprise Linux의 경우 패키지 이름은 python-devel입니다.

pwncat은 pwncat-cs라는 이름으로 PyPI에 푸시되며, 다음과 같이 pip로 설치할 수 있습니다:

root@kitploit:~
pip install pwncat-cs

하지만 가상 환경에서 pwncat을 설치하는 것이 권장됩니다.

root@kitploit:~
python3 -m venv pwncat-env
source pwncat-env/bin/activate
pip install pwncat-cs

개발 환경의 경우, pwncat은 Python Poetry를 사용합니다. 저장소를 로컬에 클론하고 poetry를 사용하여 개발 환경을 설정할 수 있습니다.

root@kitploit:~
# Setup pwncat inside a poetry-managed virtual environment
git clone [email protected]:calebstewart/pwncat.git
cd pwncat
poetry install

# Enter the virtual environment
poetry shell

이름 변경

Cytopia의 pwncat과의 이름 충돌로 인해 패키지 이름을 pwncat-cs로 변경하기로 결정했습니다. 여기에는 진입점 이름도 변경되어 Cytopia의 프로젝트와 직접적인 충돌이 없도록 합니다. v0.4.*에서 업데이트하는 경우 명령 이름이 변경되었으며, pcat 및 pc 변형은 제거되었습니다. 자세한 내용은 최신 릴리스 노트를 참조하십시오.

이 변경의 추가적인 이점은 프로젝트가 이제 PyPI에 푸시되어 향후 설치/업데이트가 더 쉬워졌다는 것입니다.

Windows 지원

pwncat은 이제 v0.4.0a1부터 Windows 타겟에서의 연결을 지원합니다. Windows 플랫폼은 자동으로 로드되는 .Net 기반 C2 라이브러리를 사용합니다. Windows 타겟은 cmd.exe 또는 powershell.exe 셸로 연결해야 하며, pwncat이 나머지를 처리합니다.

C2를 구현하는 라이브러리는 pwncat-windows-c2에서 구현됩니다. C2용 DLL은 타겟 릴리스에서 자동으로 다운로드됩니다. 타겟 머신에 인터넷 연결이 없는 경우 --download-plugins 인수를 사용하여 pwncat에 DLL을 사전 스테이징하도록 지시할 수 있습니다. pwncat의 릴리스 버전을 실행 중인 경우 릴리스 페이지에서 모든 내장 플러그인의 tarball을 다운로드할 수도 있습니다.

플러그인은 기본적으로 ~/.local/share/pwncat에 저장되지만, plugin_path 구성으로 설정할 수 있습니다. 릴리스 페이지에서 패키지된 플러그인 세트를 다운로드하는 경우 plugin_path가 가리키는 경로에 압축을 풀어야 합니다.

주요 C2 DLL 외에도 다른 플러그인을 사용할 수 있습니다. 현재 제공되는 기본 플러그인은 C2와 BadPotato 구현뿐입니다. pwncat은 .Net 바이너리를 반사적으로 로드하여 C2의 플러그인으로 사용할 수 있습니다. Windows C2 플러그인에 대한 자세한 내용은 documentation을 참조하십시오.

모듈

최근 pwncat 프레임워크의 아키텍처가 일반적인 "모듈" 구조를 통합하도록 재설계되었습니다. 모든 기능이 이제 모듈로 구현됩니다. 여기에는 열거, 지속성 및 권한 상승이 포함됩니다. 모듈과의 상호작용은 대부분의 다른 포스트 익스플로잇 플랫폼과 유사합니다. 익숙한 run, search, info 명령을 사용할 수 있으며, use 명령으로 모듈 컨텍스트로 들어갈 수 있습니다. 자세한 내용은 문서를 참조하십시오.

BlackArch 패키징

Packaging status

BlackArch에서의 설치는 다음과 같이 간단합니다:

root@kitploit:~
pacman -Syu pwncat-caleb

피해자에 연결

pwncat의 명령줄 매개변수는 유연하게 설계되어 다양한 일반적인 연결 구문을 수용합니다. 특히, 일반적인 netcat 및 ssh와 유사한 구문을 수용하려고 시도합니다. 다음은 모두 유효합니다:

root@kitploit:~
# Connect to a bind shell
pwncat-cs connect://10.10.10.10:4444
pwncat-cs 10.10.10.10:4444
pwncat-cs 10.10.10.10 4444
# Listen for reverse shell
pwncat-cs bind://0.0.0.0:4444
pwncat-cs 0.0.0.0:4444
pwncat-cs :4444
pwncat-cs -lp 4444
# Connect via ssh
pwncat-cs ssh://user:[email protected]
pwncat-cs [email protected]
pwncat-cs user:[email protected]
pwncat-cs -i id_rsa [email protected]
# SSH w/ non-standard port
pwncat-cs -p 2222 [email protected]
pwncat-cs [email protected]:2222
# Reconnect utilizing installed persistence
#   If reconnection fails and no protocol is specified,
#   SSH is used as a fallback.
pwncat-cs reconnect://[email protected]
pwncat-cs reconnect://user@c228fc49e515628a0c13bdc4759a12bf
pwncat-cs [email protected]
pwncat-cs c228fc49e515628a0c13bdc4759a12bf
pwncat-cs 10.10.10.10

기본적으로 pwncat은 타겟 플랫폼이 Linux라고 가정합니다. Windows 리버스 또는 바인드 셸에 연결하려면 --platform/-m 인수를 전달해야 합니다:

root@kitploit:~
pwncat-cs -m windows 10.10.10.10 4444
pwncat-cs -m windows -lp 4444

구문 및 인수 처리에 대한 자세한 내용은 pwncat-cs --help의 도움말 정보를 참조하거나 documentation을 방문하십시오.

Docker 이미지

권장 설치 방법은 Python 가상 환경입니다. 이를 통해 pwncat을 가장 쉽게 일상적으로 사용할 수 있습니다. 그러나 Docker 이미지에서 pwncat을 사용하려는 관심이 있어, 작동하는 pwncat 설치를 제공하는 Dockerfile을 제공했습니다. 이미지를 빌드하려면 다음을 사용하십시오:

root@kitploit:~
docker build -t pwncat .

이렇게 하면 pwncat Docker 이미지가 "pwncat" 태그로 빌드됩니다. 컨테이너 내 작업 디렉토리는 /work입니다. 컨테이너의 진입점은 pwncat 바이너리입니다. 다음과 같이 사용할 수 있습니다:

root@kitploit:~
# Connect to a bind shell at 10.0.0.1:4444
docker run -v "/some/directory":/work -t pwncat 10.0.0.1 4444

이 예제에서는 /some/directory의 파일만 컨테이너에 노출됩니다. 업로드/다운로드의 경우 컨테이너는 마운트된 디렉토리를 통해 노출된 파일만 볼 수 있습니다.

특징 및 기능

pwncat은 두 가지 주요 기능을 제공합니다. 핵심 목표는 완전한 SSH 세션과 유사하게 원격 호스트와 상호작용할 수 있는 원격 PseudoTerminal(pty)을 자동으로 설정하는 것입니다. pty에서 작업할 때 기록, 줄 편집, 그래픽 터미널 애플리케이션과 같은 원격 셸의 일반적인 기능을 사용할 수 있습니다.

pwncat의 다른 절반은 원격 셸을 활용하여 자동화된 열거, 지속성 및 권한 상승 작업을 수행하는 프레임워크입니다. 로컬 pwncat 프롬프트는 표준 침투 테스트를 위한 여러 유용한 기능을 제공합니다:

  • 파일 업로드 및 다운로드
  • 자동화된 권한 상승 열거
  • 자동화된 권한 상승 실행
  • 자동화된 지속성 설치/제거
  • 수정/생성된 파일의 자동 추적
    • pwncat은 또한 이러한 원격 "변조"를 자동으로 되돌리는 기능을 제공합니다

원격 호스트와 상호작용하기 위한 기본 프레임워크는 기본 셸과 연결 방법을 최대한 추상화하여 명령과 플러그인이 원격 호스트와 원활하게 상호작용할 수 있도록 합니다.

documentation에서 pwncat과 상호작용하는 방법 및 기본 프레임워크에 대해 자세히 알아볼 수 있습니다. 새로운 권한 상승 방법이나 지속성 방법에 대한 아이디어가 있다면 특히 API 문서를 살펴보시기 바랍니다. Pull Request를 환영합니다!

계획된 기능

pwncat은 레드팀의 스위스 아미 나이프가 되고자 합니다. 조만간 더 많은 기능이 추가되기를 바랍니다.

  • 더 많은 권한 상승 방법 (sudo -u#-1 CVE, LXD 컨테이너 등)
  • 지속성 방법 (바인드 셸, 크론 작업, SSH 액세스, PAM 남용 등)
  • 공격 방법 (터미널에 랜덤 메시지 스팸, 방화벽 플러시 등)
  • 밈 방법 (terminal-parrot, cowsay, wall 등)
  • 네트워크 방법 (포트 포워딩, 호스트를 통한 인터넷 액세스 등)

알려진 문제

pwncat은 최소한의 원격 시스템 종속성으로 모든 셸과 추상적으로 상호작용하려고 시도하기 때문에 몇 가지 극단적인 경우가 발견되었습니다. 발견된 경우 이를 처리하고 사용자로부터 숨기기 위해 최선을 다합니다. 그러나 일부는 균열을 통해 빠져나와 실제로 관찰되었습니다. 이런 일이 발생하면 pwncat은 터미널을 보존하기 위해 최선을 다하지만, 이상한 출력이나 명령 실패가 발생할 수 있습니다.

BSD 지원

BSD는 Unix 기반 커널이지만 실제로 사용자 공간 도구는 Linux 도구와 현저히 다릅니다. 이로 인해 pwncat의 많은 자동화 기능이 BSD 기반 타겟에서 실행될 때 작동하지 않거나 완전히 실패할 수 있습니다. 모든 오류나 극단적인 경우를 잡으려고 노력했지만, BSD에서 완전히 테스트되지 않은 몇 가지 문제가 있을 수 있습니다. 어쨌든 안정화된 셸은 BSD 환경 내에서 작동해야 하지만, 보장하지는 않습니다.

나중에 시간이 나면 BSD에서 pwncat을 안정화하려고 할 수도 있지만, 현재는 Linux 기반 배포판에 집중하고 있습니다. BSD에서 pwncat이 더 잘 작동하도록 기여하고 싶다면 연락하거나 저장소를 포크해 주세요. 언제나 그렇듯이 Pull Request를 환영합니다!

도구 다운로드