
Un framework C2 consciente de proxy utilizado para ayudar a los red teamers con post-explotación y movimiento lateral.

PoshC2 es un framework C2 consciente de proxies utilizado para ayudar a los testers de penetración con red teaming, post-explotación y movimiento lateral.
PoshC2 está escrito principalmente en Python3 y sigue un formato modular que permite a los usuarios añadir sus propios módulos y herramientas, proporcionando un framework C2 extensible y flexible. De serie, PoshC2 incluye implantes en PowerShell/C# y Python2/Python3 con payloads escritos en PowerShell v2 y v4, código fuente en C++ y C#, una variedad de ejecutables, DLLs y shellcode raw, además de un payload en Python2/Python3. Estos permiten la funcionalidad C2 en una amplia gama de dispositivos y sistemas operativos, incluyendo Windows, *nix y OSX.
Otras características notables de PoshC2 incluyen:
Mantenemos la documentación de PoshC2 en https://poshc2.readthedocs.io/en/latest/
Encuéntranos en #Slack - poshc2.slack.com (para solicitar una invitación, envía un correo electrónico a [email protected])
Puedes instalar PoshC2 directamente o utilizar las imágenes Docker; las instrucciones para ambos métodos están a continuación.
Se proporciona un script de instalación para instalar PoshC2:
*** Script de instalación de PoshC2 ***
Uso:
./Install.sh -b <rama git> -p <Directorio donde clonar PoshC2>
Los valores predeterminados son la rama master en /opt/PoshC2
Se requieren privilegios elevados, ya que el script de instalación realiza actualizaciones e instalaciones de apt.
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install.sh | sudo bash
Alternativamente, se puede clonar el repositorio y ejecutar el script de instalación manualmente.
sudo ./Install.sh
Puedes establecer manualmente el directorio de instalación de PoshC2 pasándolo al script Install.sh como argumento -p. El valor predeterminado es /opt/PoshC2:
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install.sh | sudo bash -s -- -p /root/PoshC2
Queremos mantener la rama master estable para que los usuarios puedan confiar en ella cuando sea necesario. Por esta razón, los cambios a menudo pueden estar completos en cuanto a funcionalidad pero aún no presentes en master, ya que no han sido probados completamente y aprobados.
Si deseas ver las próximas funciones de PoshC2, puedes consultar la rama dev, o cualquier rama de función individual derivada de dev.
Dado que las funciones sí se prueban antes de fusionarse en dev, esta rama debería seguir siendo bastante estable y los operadores pueden optar por usar esta rama o una rama de función particular para sus compromisos. Sin embargo, esto sacrifica estabilidad por nuevas funciones, así que hazlo bajo tu propio criterio.
Para usar dev o una rama de función, pasa el nombre de la rama al script Install.sh como argumento -b:
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/dev/Install.sh | sudo bash -s -- -b dev
Ten en cuenta que la URL también incluye el nombre de la rama (aquí dev en lugar de master).
También puedes ejecutar PoshC2 usando Docker, lo que permite una ejecución más estable y facilita su uso en otros sistemas operativos.
La instalación con Docker no clona PoshC2, ya que se utilizan las imágenes de PoshC2 en Docker Hub, por lo que solo se realiza una instalación mínima de algunas dependencias y scripts.
Para empezar, instala Docker en el host y luego agrega el directorio de proyectos de PoshC2 a Docker como un directorio compartido si es necesario para tu sistema operativo. Por defecto, esto es /var/poshc2 en *nix y /private/var/poshc2 en Mac.
Script de instalación:
*** Script de instalación de PoshC2 para Docker ***
Uso:
./Install-for-Docker.sh -b <rama git>
El valor predeterminado es la rama master
Se requieren privilegios elevados, ya que el script de instalación realiza instalaciones de scripts.
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install-for-Docker.sh | sudo bash
Para usar las ramas dev o de función con Docker, descarga el Install-for-Docker.sh de la rama correspondiente y pasa el nombre de la rama como argumento:
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/BRANCHNAME/Install-for-Docker.sh | sudo bash -s -- -b BRANCHNAME
En Windows, importa el módulo de 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 nuevo proyecto:
posh-project -n <nombre-del-proyecto>
Los proyectos se pueden cambiar o listar usando este script:
[*] Uso: posh-project -n <nombre-del-nuevo-proyecto>
[*] Uso: posh-project -s <proyecto-al-que-cambiar>
[*] Uso: posh-project -l (lista proyectos)
[*] Uso: posh-project -d <proyecto-a-eliminar>
[*] Uso: posh-project -c (muestra el proyecto actual)
Edita la configuración de tu proyecto:
posh-config
Inicia el servidor PoshC2:
posh-server
Alternativamente, inícialo como un servicio:
posh-service
Por separado, ejecuta el ImplantHandler para interactuar con los implantes:
posh -u <nombre-de-usuario>
Consulta https://poshc2.readthedocs.io/en/latest/ para obtener la documentación completa de PoshC2.
Si estás usando Docker, puedes especificar la etiqueta de la imagen Docker a ejecutar con la opción -t para posh-server y posh.
Ej.:
posh-server -t latest
No se recomienda actualizar PoshC2 durante un compromiso. Los cambios entrantes pueden ser incompatibles con un proyecto existente y pueden provocar un comportamiento errático.
Cuando uses una versión clonada de PoshC2 mediante git, puedes actualizar tu instalación de PoshC2 usando el siguiente comando:
*** Script de actualización de PoshC2 ***
Uso:
posh-update -b <rama git>
El valor predeterminado es la rama master
Puedes usar una versión anterior de PoshC2 haciendo referencia a la etiqueta correspondiente. Ten en cuenta que esto solo funciona si has clonado el repositorio. Puedes listar las etiquetas del repositorio ejecutando:
git tag --list
Si tienes un clon local de PoshC2, puedes cambiar la versión en uso mientras estás desconectado simplemente seleccionando la versión que deseas utilizar:
git reset --hard <nombre-de-la-etiqueta>
Por ejemplo:
git reset --hard v4.8
Sin embargo, ten en cuenta que esto sobrescribirá cualquier cambio local en los archivos, como cambios en los archivos de configuración, y es posible que tengas que volver a ejecutar el script de instalación para esa versión o reconfigurar el entorno adecuadamente.
Este software solo debe utilizarse para actividades de prueba autorizadas y no para usos maliciosos.
Al descargar este software, aceptas los términos de uso y el acuerdo de licencia.