
Un framework C2 compatible avec les proxys utilisé pour aider les red teamers dans la post-exploitation et le mouvement latéral.

PoshC2 est un framework C2 conscient des proxy utilisé pour aider les testeurs d'intrusion dans le red teaming, la post-exploitation et le mouvement latéral.
PoshC2 est principalement écrit en Python3 et suit un format modulaire pour permettre aux utilisateurs d'ajouter leurs propres modules et outils, offrant ainsi un framework C2 extensible et flexible. Dès sa sortie, PoshC2 propose des implants PowerShell/C# et Python2/Python3 avec des charges utiles écrites en PowerShell v2 et v4, en code source C++ et C#, une variété d'exécutables, de DLL et de shellcode brut, en plus d'une charge utile Python2/Python3. Ceux-ci permettent des fonctionnalités C2 sur une large gamme d'appareils et de systèmes d'exploitation, y compris Windows, *nix et OSX.
Parmi les autres fonctionnalités notables de PoshC2, on trouve :
Nous maintenons la documentation de PoshC2 sur https://poshc2.readthedocs.io/en/latest/
Retrouvez-nous sur #Slack - poshc2.slack.com (pour demander une invitation, envoyez un e-mail à [email protected])
Vous pouvez installer PoshC2 directement ou utiliser les images Docker, les instructions pour les deux sont ci-dessous.
Un script d'installation est fourni pour installer PoshC2 :
*** PoshC2 Install script ***
Usage:
./Install.sh -b <git branch> -p <Directory to clone PoshC2 to>
Defaults are master branch to /opt/PoshC2
Des privilèges élevés sont nécessaires car le script d'installation effectue des mises à jour et des installations apt.
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install.sh | sudo bash
Alternativement, le dépôt peut être cloné et le script d'installation exécuté manuellement.
sudo ./Install.sh
Vous pouvez définir manuellement le répertoire d'installation de PoshC2 en le passant au script Install.sh comme argument -p. La valeur par défaut est /opt/PoshC2 :
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install.sh | sudo bash -s -- -p /root/PoshC2
Nous souhaitons maintenir la stabilité de la branche master pour garantir que les utilisateurs puissent compter sur elle en cas de besoin, et pour cette raison, les modifications peuvent souvent être complètes au niveau fonctionnel mais pas encore présentes sur master car elles n'ont pas encore été entièrement testées et validées.
Si vous souhaitez voir les fonctionnalités à venir dans PoshC2, vous pouvez consulter la branche dev, ou toute branche de fonctionnalité individuelle dérivée de dev.
Comme les fonctionnalités sont testées avant d'être fusionnées dans dev, cette branche devrait rester assez stable et les opérateurs peuvent opter pour l'utilisation de cette branche ou d'une branche de fonctionnalité particulière pour leur engagement. Cela échange cependant la stabilité contre de nouvelles fonctionnalités, alors faites-le à votre propre discrétion.
Pour utiliser dev ou une branche de fonctionnalité, passez le nom de la branche au script Install.sh comme argument -b :
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/dev/Install.sh | sudo bash -s -- -b dev
Notez que l'URL inclut également le nom de la branche (ici dev au lieu de master).
Vous pouvez également exécuter PoshC2 avec Docker, ce qui permet un fonctionnement plus stable et permet à PoshC2 de fonctionner facilement sur d'autres systèmes d'exploitation.
L'installation Docker ne clone pas PoshC2 car les images PoshC2 sur Docker Hub sont utilisées, donc seule une installation minimale de certaines dépendances et scripts est effectuée.
Pour commencer, installez Docker sur l'hôte, puis ajoutez le répertoire des projets PoshC2 à Docker en tant que répertoire partagé si nécessaire pour votre OS. Par défaut, c'est /var/poshc2 sur *nix et /private/var/poshc2 sur Mac.
Script d'installation :
*** PoshC2 Install script for Docker ***
Usage:
./Install-for-Docker.sh -b <git branch>
Default is the master branch
Des privilèges élevés sont nécessaires car le script d'installation effectue des installations de scripts.
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install-for-Docker.sh | sudo bash
Pour utiliser les branches dev ou de fonctionnalité avec Docker, téléchargez le Install-for-Docker.sh sur la branche appropriée et passez le nom de la branche comme argument :
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/BRANCHNAME/Install-for-Docker.sh | sudo bash -s -- -b BRANCHNAME
Sur Windows, importez le module 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
Créez un nouveau projet :
posh-project -n <project-name>
Les projets peuvent être changés ou listés à l'aide de ce script :
[*] Usage: posh-project -n <new-project-name>
[*] Usage: posh-project -s <project-to-switch-to>
[*] Usage: posh-project -l (lists projects)
[*] Usage: posh-project -d <project-to-delete>
[*] Usage: posh-project -c (shows current project)
Modifiez la configuration de votre projet :
posh-config
Lancez le serveur PoshC2 :
posh-server
Alternativement, démarrez-le en tant que service :