
Un framework C2 consapevole dei proxy utilizzato per assistere i red teamer nella post-esplorazione e nel movimento laterale.

PoshC2 è un framework C2 consapevole dei proxy utilizzato per assistere i penetration tester nelle attività di red teaming, post-exploitation e movimento laterale.
PoshC2 è scritto principalmente in Python3 e segue un formato modulare per consentire agli utenti di aggiungere i propri moduli e strumenti, offrendo un framework C2 estendibile e flessibile. Pronto all'uso, PoshC2 fornisce implant in PowerShell/C# e Python2/Python3 con payload scritti in PowerShell v2 e v4, codice sorgente C++ e C#, una varietà di eseguibili, DLL e shellcode grezzo, oltre a un payload Python2/Python3. Questi consentono funzionalità C2 su un'ampia gamma di dispositivi e sistemi operativi, tra cui Windows, *nix e OSX.
Altre caratteristiche notevoli di PoshC2 includono:
Manteniamo la documentazione di PoshC2 all'indirizzo https://poshc2.readthedocs.io/en/latest/
Trovaci su #Slack - poshc2.slack.com (per richiedere un invito invia un'email a [email protected])
È possibile installare PoshC2 direttamente o utilizzare le immagini Docker; di seguito sono riportate le istruzioni per entrambe.
Viene fornito uno script di installazione per installare PoshC2:
*** Script di installazione di PoshC2 ***
Utilizzo:
./Install.sh -b <ramo git> -p <Directory in cui clonare PoshC2>
I valori predefiniti sono il ramo master in /opt/PoshC2
Sono necessari privilegi elevati poiché lo script di installazione esegue aggiornamenti e installazioni apt.
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install.sh | sudo bash
In alternativa, è possibile clonare il repository ed eseguire manualmente lo script di installazione.
sudo ./Install.sh
È possibile impostare manualmente la directory di installazione di PoshC2 passandola allo script Install.sh come argomento -p. Il valore predefinito è /opt/PoshC2:
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install.sh | sudo bash -s -- -p /root/PoshC2
Vogliamo mantenere il ramo master stabile per garantire che gli utenti possano fare affidamento su di esso quando necessario; per questo motivo, le modifiche possono spesso essere complete dal punto di vista funzionale ma non ancora presenti su master perché non sono state testate completamente e approvate.
Se desideri esaminare le funzionalità imminenti di PoshC2, puoi consultare il ramo dev, o qualsiasi ramo di funzionalità individuale derivato da dev.
Poiché le funzionalità vengono testate prima di essere unite in dev, questo ramo dovrebbe essere ancora abbastanza stabile e gli operatori possono scegliere di utilizzare questo ramo o un particolare ramo di funzionalità per il loro impegno.
Tuttavia, ciò scambia la stabilità con le nuove funzionalità, quindi fallo a tua discrezione.
Per utilizzare dev o un ramo di funzionalità, passa il nome del ramo allo script Install.sh come argomento -b:
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/dev/Install.sh | sudo bash -s -- -b dev
Nota che l'URL include anche il nome del ramo (qui dev invece di master).
Puoi anche eseguire PoshC2 utilizzando Docker; ciò consente un'esecuzione più stabile e permette a PoshC2 di funzionare facilmente su altri sistemi operativi.
L'installazione Docker non clona PoshC2 poiché vengono utilizzate le immagini PoshC2 su Docker Hub, quindi viene eseguita solo un'installazione minima di alcune dipendenze e script.
Per iniziare, installa Docker sull'host e quindi aggiungi la directory dei progetti PoshC2 come directory condivisa in Docker, se richiesto dal tuo sistema operativo. Per impostazione predefinita, questa è /var/poshc2 su *nix e /private/var/poshc2 su Mac.
Script di installazione:
*** Script di installazione di PoshC2 per Docker ***
Utilizzo:
./Install-for-Docker.sh -b <ramo git>
Il valore predefinito è il ramo master
Sono necessari privilegi elevati poiché lo script di installazione esegue installazioni di script.
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install-for-Docker.sh | sudo bash
Per utilizzare i rami dev o di funzionalità con Docker, scarica lo script Install-for-Docker.sh dal ramo appropriato e passa il nome del ramo come argomento:
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/BRANCHNAME/Install-for-Docker.sh | sudo bash -s -- -b BRANCHNAME
Su Windows, importa il modulo PowerShell PoshC2.psm1.
Import-Module -DisableNameChecking C:\PoshC2\resources\scripts\PoshC2.psm1
posh-project -PoshC2Dir "C:\PoshC2" -LocalPoshC2ProjectDir "C:\PoshC2_Project" -Arg1 "-n" -Arg2 "newproject"
posh-config -PoshC2Dir "C:\PoshC2" -LocalPoshC2ProjectDir "C:\PoshC2_Project"
posh-server -PoshC2Dir "C:\PoshC2" -LocalPoshC2ProjectDir "C:\PoshC2_Project"
posh -PoshC2Dir "C:\PoshC2" -LocalPoshC2ProjectDir "C:\PoshC2_Project" username
Crea un nuovo progetto:
posh-project -n <nome-progetto>
È possibile passare ad altri progetti o elencarli utilizzando questo script:
[*] Utilizzo: posh-project -n <nome-nuovo-progetto>
[*] Utilizzo: posh-project -s <progetto-a-cui-passare>
[*] Utilizzo: posh-project -l (elenca i progetti)
[*] Utilizzo: posh-project -d <progetto-da-eliminare>
[*] Utilizzo: posh-project -c (mostra il progetto corrente)
Modifica la configurazione per il tuo progetto:
posh-config
Avvia il server PoshC2:
posh-server
In alternativa, avvialo come servizio:
posh-service
Separatamente, esegui ImplantHandler per interagire con gli implant:
posh -u <nome-utente>
Consulta https://poshc2.readthedocs.io/en/latest/ per la documentazione completa su PoshC2.
Se utilizzi Docker, puoi specificare il tag dell'immagine Docker da eseguire con l'opzione -t per posh-server e posh.
Ad esempio:
posh-server -t latest
Non è consigliato aggiornare PoshC2 durante un impegno. Le modifiche in arrivo potrebbero essere incompatibili con un progetto esistente e possono causare comportamenti erratici.
Quando si utilizza una versione clonata tramite git di PoshC2, è possibile aggiornare l'installazione di PoshC2 utilizzando il seguente comando:
*** Script di aggiornamento di PoshC2 ***
Utilizzo:
posh-update -b <ramo git>
Il valore predefinito è il ramo master
È possibile utilizzare una versione precedente di PoshC2 facendo riferimento al tag appropriato. Nota che questo funziona solo se hai clonato il repository. Puoi elencare i tag per il repository emettendo:
git tag --list
Se hai un clone locale di PoshC2, puoi cambiare la versione in uso mentre sei offline semplicemente eseguendo il checkout della versione che desideri utilizzare:
git reset --hard <nome del tag>
Ad esempio:
git reset --hard v4.8
Tuttavia, nota che questo sovrascriverà eventuali modifiche locali ai file, come le modifiche ai file di configurazione, e potrebbe essere necessario eseguire nuovamente lo script di installazione per quella versione o reimpostare l'ambiente di conseguenza.
Questo software dovrebbe essere utilizzato solo per attività di test autorizzate e non per uso malevolo.
Scaricando questo software accetti i termini di utilizzo e il contratto di licenza.