
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 :
posh-service
Séparément, exécutez l'ImplantHandler pour interagir avec les implants :
posh -u <username>
Voir https://poshc2.readthedocs.io/en/latest/ pour la documentation complète sur PoshC2.
Si vous utilisez Docker, vous pouvez spécifier le tag de l'image Docker à exécuter avec l'option -t pour posh-server et posh.
Ex. :
posh-server -t latest
Il n'est pas recommandé de mettre à jour PoshC2 pendant un engagement. Les modifications entrantes peuvent être incompatibles avec un projet existant et peuvent entraîner un comportement erratique.
Lorsque vous utilisez une version clonée de PoshC2, vous pouvez mettre à jour votre installation PoshC2 en utilisant la commande suivante :
*** PoshC2 Update Script ***
Usage:
posh-update -b <git branch>
Default is the master branch
Vous pouvez utiliser une version antérieure de PoshC2 en référençant le tag approprié. Notez que cela fonctionne uniquement si vous avez cloné le dépôt. Vous pouvez lister les tags du dépôt en exécutant :
git tag --list
Si vous avez un clone local de PoshC2, vous pouvez changer la version utilisée hors ligne en extrayant simplement la version que vous souhaitez utiliser :
git reset --hard <tag name>
Par exemple :
git reset --hard v4.8
Notez cependant que cela écrasera toutes les modifications locales apportées aux fichiers, comme les modifications des fichiers de configuration, et vous devrez peut-être réexécuter le script d'installation pour cette version ou reconfigurer l'environnement en conséquence.
Ce logiciel ne doit être utilisé que pour des activités de test autorisées et non pour une utilisation malveillante.
En téléchargeant ce logiciel, vous acceptez les conditions d'utilisation et le contrat de licence.