Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
pwncat — Plataforma de pós-exploração que automatiza enumeração, escalonamento de privilégios, persistência e operações C2 por meio de shells reversos/vinculados com suporte multiplataforma para Linux e Windows. | Kitploit
Ferramentas/GitHubGitHub/calebstewart/pwncat
Escalada de PrivilégiosMecanismos de PersistênciaPós-ExploraçãoTestes de PenetraçãoComando e ControleRed Teaming
GitHubcalebstewart/pwncat

pwncat

Plataforma de pós-exploração que automatiza enumeração, escalonamento de privilégios, persistência e operações C2 por meio de shells reversos/vinculados com suporte multiplataforma para Linux e Windows.

Ver Repositório
2.9k292há 4 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

pwncat

asciicast

pwncat é uma plataforma pós-exploração para alvos Linux. Começou como um invólucro em torno de shells bind e reverse básicos e cresceu a partir daí. Ele simplifica operações comuns de red team enquanto prepara o código a partir da sua máquina atacante, não do alvo.

pwncat costumava suportar apenas Linux, mas houve muito trabalho recentemente para suportar múltiplas plataformas. Atualmente, há suporte alfa para alvos Windows. Consulte a [documentação] mais recente para obter detalhes sobre como usar o pwncat com um alvo Windows.

pwncat intercepta a comunicação bruta com um shell remoto e permite que o usuário execute ações automatizadas no host remoto, incluindo enumeração, instalação de implants e até mesmo escalonamento de privilégios.

Após receber uma conexão, o pwncat configurará algumas configurações comuns para trabalhar com shells remotos.

  • Desabilitar o histórico no shell remoto
  • Normalizar o prompt do shell
  • Localizar binários úteis (usando which)
  • Tentar gerar um pseudo-terminal (pty) para uma sessão interativa completa

O pwncat sabe como gerar ptys com alguns métodos diferentes e fará referência cruzada dos métodos com os executáveis previamente enumerados. Após gerar um pty, ele configurará o terminal de controle em modo raw, para que você possa interagir de maneira semelhante ao ssh.

O pwncat também sincronizará as configurações do pty remoto (como linhas, colunas, variável de ambiente TERM) com suas configurações locais para garantir que o shell se comporte corretamente com aplicativos interativos como vim ou nano.

John Hammond e eu apresentamos o pwncat no GRIMMCon. Nossa apresentação, que pode ser encontrada no YouTube aqui. Este vídeo demonstra uma versão inicial da API e interface. Consulte a documentação para obter informações atualizadas de uso e documentação da API!

A [documentação] do pwncat está sendo construída no Read the Docs. Vá para lá para obter a documentação de uso e desenvolvimento mais recente!

pwncat requer Python 3.9+ no Linux

Instalação

pwncat depende apenas de um ambiente de desenvolvimento Python funcional executando no Linux. Para instalar alguns dos pacotes necessários com pip, você provavelmente precisará do pacote "Python Development" da sua distribuição. Em sistemas baseados em Debian, este é python-dev. Para Arch, os arquivos de desenvolvimento são fornecidos com o repositório principal do Python. Para Enterprise Linux, o pacote é nomeado python-devel.

pwncat é enviado para o PyPI sob o nome pwncat-cs e pode ser instalado com pip da seguinte forma:

root@kitploit:~
pip install pwncat-cs

No entanto, é recomendado instalar o pwncat a partir de um ambiente virtual.

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

Para um ambiente de desenvolvimento, o pwncat utiliza Python Poetry. Você pode clonar o repositório localmente e usar o poetry para configurar um ambiente de desenvolvimento.

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

Mudanças de Nomenclatura

Devido ao conflito de nomenclatura com o pwncat da Cytopia, decidi renomear o pacote para pwncat-cs. Isso inclui renomear o ponto de entrada para que não haja conflitos diretos com o projeto da Cytopia. Se você está atualizando a partir da v0.4.*, o nome do comando agora terá mudado, e as variantes pcat e pc foram removidas. Consulte as notas de lançamento mais recentes para mais detalhes.

O benefício adicional dessa mudança é que o projeto agora é enviado para o PyPI para facilitar a instalação/atualização no futuro.

Suporte a Windows

pwncat agora suporta conexões de alvos Windows a partir da v0.4.0a1. A plataforma Windows utiliza uma biblioteca C2 baseada em .Net que é carregada automaticamente. Alvos Windows devem conectar com um shell cmd.exe ou powershell.exe, e o pwncat cuidará do resto.

As bibliotecas que implementam o C2 estão implementadas em pwncat-windows-c2. As DLLs para o C2 serão baixadas automaticamente da versão alvo para você. Se você não tiver conectividade com a internet na sua máquina alvo, pode instruir o pwncat a pré-configurar as DLLs usando o argumento --download-plugins. Se você estiver executando uma versão de lançamento do pwncat, também pode baixar um tarball de todos os plugins embutidos na página de releases.

Os plugins são armazenados por padrão em ~/.local/share/pwncat, no entanto isso é configurável com a configuração plugin_path. Se você baixar o conjunto empacotado de plugins da página de releases, deve extraí-lo para o caminho apontado por plugin_path.

Além das DLLs principais do C2, outros plugins também podem estar disponíveis. Atualmente, os únicos plugins padrão fornecidos são o C2 e uma implementação do BadPotato. O pwncat pode carregar reflexivamente binários .Net para serem usados como plugins para o C2. Para mais informações sobre plugins do C2 para Windows, consulte a [documentação].

Módulos

Recentemente, a arquitetura do framework pwncat foi redesenhada para incorporar uma estrutura genérica de "módulos". Toda funcionalidade agora é implementada como módulos. Isso inclui enumeração, persistência e escalonamento de privilégios. Interagir com módulos é semelhante à maioria das outras plataformas pós-exploração. Você pode utilizar os comandos familiares run, search e info e entrar em contextos de módulo com o comando use. Consulte a documentação para mais informações.

Empacotamento BlackArch

Packaging status

A instalação no BlackArch é tão simples quanto:

root@kitploit:~
pacman -Syu pwncat-caleb

Conectando a uma Vítima

Os parâmetros de linha de comando do pwncat tentam ser flexíveis e aceitar uma variedade de sintaxes comuns de conexão. Especificamente, ele tentará aceitar sintaxes comuns semelhantes ao netcat e ssh. Todos os seguintes são válidos:

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

Por padrão, o pwncat assume que a plataforma alvo é Linux. Para conectar a um shell reverse ou bind do Windows, você deve passar o argumento --platform/-m:

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

Para mais informações sobre a sintaxe e o tratamento de argumentos, veja as informações de ajuda com pwncat-cs --help ou visite a [documentação].

Imagem Docker

O método de instalação recomendado é um ambiente virtual Python. Isso fornece o uso diário mais fácil do pwncat. No entanto, houve interesse em usar o pwncat a partir de uma imagem docker, então forneci um Dockerfile que fornece uma instalação funcional do pwncat. Para construir a imagem, use:

root@kitploit:~
docker build -t pwncat .

Isso construirá a imagem docker do pwncat com a tag "pwncat". O diretório de trabalho dentro do contêiner é /work. O ponto de entrada para o contêiner é o binário pwncat. Ele pode ser usado assim:

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

Neste exemplo, apenas os arquivos em /some/directory são expostos ao contêiner. Obviamente, para upload/download, o contêiner só poderá ver os arquivos expostos através de quaisquer diretórios montados.

Recursos e Funcionalidades

O pwncat fornece dois recursos principais. Em seu núcleo, seu objetivo é configurar automaticamente um PseudoTerminal (pty) remoto que permite a interação com o host remoto de maneira semelhante a uma sessão SSH completa. Ao operar em um pty, você pode usar recursos comuns do seu shell remoto, como histórico, edição de linha e aplicativos de terminal gráfico.

A outra metade do pwncat é um framework que utiliza seu shell remoto para realizar tarefas automatizadas de enumeração, persistência e escalonamento de privilégios. O prompt local do pwncat fornece uma série de recursos úteis para testes de penetração padrão, incluindo:

  • Upload e download de arquivos
  • Enumeração automatizada de escalonamento de privilégios
  • Execução automatizada de escalonamento de privilégios
  • Instalação/remoção automatizada de persistência
  • Rastreamento automatizado de arquivos modificados/criados
    • pwncat também oferece a capacidade de reverter automaticamente essas "adulterações" remotas

O framework subjacente para interagir com o host remoto visa abstrair o máximo possível o shell subjacente e o método de conexão, permitindo que comandos e plugins interajam perfeitamente com o host remoto.

Você pode aprender mais sobre como interagir com o pwncat e sobre o framework subjacente na [documentação]. Se você tem uma ideia para um novo método de escalonamento de privilégios ou método de persistência, por favor, dê uma olhada na documentação da API especificamente. Pull requests são bem-vindos!

Recursos Planejados

pwncat gostaria de se tornar um canivete suíço de red team. Esperançosamente, em breve, mais recursos serão adicionados.

  • Mais métodos de escalonamento de privilégios (sudo -u#-1 CVE, contêineres LXD, etc.)
  • Métodos de persistência (bind shell, cronjobs, acesso SSH, abuso de PAM, etc.)
  • Métodos de agressão (spam de aleatoriedade para terminais, limpar firewall, etc.)
  • Métodos meme (terminal-parrot, cowsay, wall, etc.)
  • Métodos de rede (encaminhamento de porta, acesso à internet através do host, etc.)

Problemas Conhecidos

Porque o pwncat está tentando interagir abstratamente com qualquer shell com dependências mínimas do sistema remoto, existem alguns casos extremos que encontramos. Onde os encontramos, fazemos tudo o que podemos para lidar com eles e escondê-los do usuário. No entanto, alguns escaparam pelas rachaduras e foram observados na natureza. Quando isso acontece, o pwncat fará o que puder para preservar seu terminal, mas você pode ser recebido com alguma saída peculiar ou falhas de comando.

Suporte a BSD

Embora o BSD seja um kernel baseado em Unix, na prática, suas ferramentas de userland são visivelmente diferentes de suas contrapartes Linux. Devido a isso, muitos dos recursos automatizados do pwncat não funcionarão ou falharão completamente quando executados contra um alvo baseado em BSD. Tentei capturar todos os erros ou casos extremos, no entanto, provavelmente existem alguns contratempos que não foram totalmente testados contra BSD. Em qualquer caso, o shell estabilizado deve funcionar dentro de um ambiente BSD, mas não forneço garantias.

Se eu encontrar algum tempo mais adiante, posso tentar estabilizar o pwncat no BSD, mas por enquanto meu foco está nas distribuições baseadas em Linux. Se você gostaria de contribuir para fazer o pwncat se comportar melhor no BSD, você é mais do que bem-vindo para entrar em contato ou simplesmente bifurcar o repositório. Como sempre, pull requests são bem-vindos!

Baixar ferramenta