Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
RedPeanut — RedPeanut est un petit RAT développé en .Net Core 2 et son agent en .Net 3.5 / 4.0. | Kitploit
Outils/GitHubGitHub/b4rtik/redpeanut
Frameworks de Tests d'IntrusionEscalade de PrivilègesFrameworks d'ExploitationGénération de PayloadsMécanismes de PersistanceShellcodePost-ExploitationCommandement et ContrôleRed TeamingOutil d'Accès à Distance
GitHubb4rtik/redpeanut
33078il y a 6 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

RedPeanut

RedPeanut est un petit RAT développé en .Net Core 2 et son agent en .Net 3.5 / 4.0.

Voir le dépôt

RedPeanut

root@kitploit:~
__________________________________________________________________________
ooooooo________________oo_ooooooo___________________________________oo____
oo____oo___ooooo___oooooo_oo____oo__ooooo___ooooo__oo_ooo__oo____o__oo____
oo____oo__oo____o_oo___oo_oo____oo_oo____o_oo___oo_ooo___o_oo____o_oooo___
ooooooo___ooooooo_oo___oo_oooooo___ooooooo_oo___oo_oo____o_oo____o__oo____
oo____oo__oo______oo___oo_oo_______oo______oo___oo_oo____o_ooo___o__oo__o_
oo_____oo__ooooo___oooooo_oo________ooooo___oooo_o_oo____o_oo_ooo____ooo__
__________________________________________________________________________
________________________________________________RedPeanut_v0.3.0___@b4rtik
__________________________________________________________________________

Actuellement en cours de test.

Problèmes connus des modules :

process -> spawnasagent

process -> spawnasshellcode


RedPeanut est un petit RAT développé en .Net Core 2 et son agent en .Net 3.5 / 4.0. L'exécution du code de RedPeanut est basée sur du shellcode généré avec DonutCS. C'est donc un hybride, bien que développé en .Net, il ne repose pas uniquement sur Assembly.Load. Cela augmente la surface de détection, mais nous permet de pratiquer et d'expérimenter diverses techniques d'évasion liées à l'environnement dotnet, à la gestion des processus et à l'injection. Ce comportement peut être modifié à l'exécution avec les commandes « managed » et « unmanaged ». Si vous êtes intéressé par un framework C2 .Net cohérent et pouvant être utilisé lors d'un engagement, je suggère Covenant.

RedPeanut est équipé avec :

  • GhostPack
  • SharpGPOAbuse
  • SharpCOM
  • EvilClippy
  • DotNetToJS
  • SharpWeb
  • Version modifiée de PsExec
  • SharpSploit
  • TikiTorch

Agent RedPeanut

L'agent RedPeanut peut être compilé en .Net 3.5 et 4.0 et dispose de capacités de pivot via NamedPipe. Lorsqu'il est exécuté en mode non managé, l'agent effectue ses propres tâches critiques dans un processus séparé pour éviter qu'une réponse AV, une détection ou une erreur lors de l'exécution ne vous fasse perdre la totalité de l'agent.

Le flux d'exécution est le suivant :

  1. Création du processus
  2. Injection de shellcode statique généré avec DonutCS
  3. Le chargeur (loader) charge et exécute le stager ou le module

L'agent ne supporte actuellement que le canal https.

Canal C2

Le protocole de checkin de l'agent est très simple :

  1. Le stager nécessite un identifiant d'agent, le message est chiffré avec RC4 en utilisant la clé partagée du serveur (serverkey)
  2. Le serveur déchiffre le message, compile et envoie l'agent, génère et envoie KEY et IV pour les futures communications avec le chiffrement AES, le message est chiffré avec RC4
  3. Le stager déchiffre le message et charge l'agent via Assembly.Load
  4. L'agent envoie un message de checkin au serveur, le message est chiffré avec AES

Alternativement, la fonctionnalité de canal couvert (covered channel) peut être activée (pour l'instant, c'est juste une preuve de concept). L'idée est d'imiter le trafic Web effectué par un utilisateur réel. Généralement, une page Web est composée de la page html et de tous les objets nécessaires à son affichage comme les css, images, etc. Lors de la demande d'une nouvelle tâche, la réponse du serveur ne sera pas directement la tâche chiffrée mais une page html à partir de laquelle extraire le lien vers l'image qui contiendra intégrée la tâche chiffrée. La requête http pour l'image contiendra l'en-tête Referer.

Distribution de contenu

La distribution de contenu est organisée en 4 canaux :

  1. Canal C2 personnalisable via le profil
  2. Contenu dynamique généré/géré par RedPeanut personnalisable via le profil
  3. Contenu statique mappé sur /file/
  4. Canal couvert pour la récupération de l'image contenant la charge utile mappé sur /images/

Profils

RedPeanut permet de personnaliser l'empreinte réseau, côté serveur comme côté client. Les propriétés qui peuvent être configurées sont :

  • Général
    • Delay (délai entre les requêtes)
    • ContentUri (URL du contenu dynamique, ex. dll, hta, etc.)
    • UserAgent
    • Spawn (le processus à créer pour effectuer les tâches critiques)
    • HtmlCovered (Activer le canal couvert)
    • TargetClass (Classe à rechercher pour la récupération de l'image)
  • Http Get
    • ApiPath (liste d'URL séparées par des virgules, ex. /news-list.jsp,/antani.php etc.)
    • Server
      • Prepend
      • Append
      • Headers (paires nom et valeur pour les en-têtes http)
    • Client
      • Headers    
  • Http Post
    • ApiPath (liste d'URL séparées par des virgules, ex. /news-list.jsp,/antani.php etc.)
    • Param (le nom du paramètre de la charge utile de la requête post)
    • Mask (format pour interpréter la paire clé-valeur, ex {0}={1}) (nécessite plus de travail...)
    • Server
      • Prepend
      • Append
      • Headers (paires nom et valeur pour les en-têtes http)
    • Client
      • Headers

Domain Fronting

Pour activer le support du domain fronting, il est nécessaire de valoriser l'en-tête « Host » dans la section client, à la fois pour post et get (exemplifié dans le profil par défaut 2)

PowerShellExecuter

Le module PowerShellExecuter permet d'exécuter des commandes oneliner ou des fichiers dans un runspace avec un contournement AMSI (AMSI bypass), un contournement de journalisation (Logging bypass) et PowerView déjà chargé.

Lanceurs

  • Exe
  • Dll
  • PowerShell
  • Hta (vbs,powershell)
  • InstallUtil
  • MSBuild
  • MacroVba

Modules locaux

  • EvilClippy

Tâches de l'agent

  • Upload
  • DownLoad
  • SharpWeb
  • SharpWmi
  • SharpUp
  • UACBypass Token Duplication
  • SharpDPAPIVaults
  • SharpDPAPITriage
  • SharpDPAPIRdg
  • SharpDPAPIMasterKeys
  • SharpDPAPIMachineVaults
  • SharpDPAPIMachineTriage
  • SharpDPAPIMachineMasterKeys
  • SharpDPAPIMachineCredentials
  • SharpDPAPICredentials
  • SharpDPAPIBackupKey
  • Seatbelt
  • SafetyKatz
  • RubeusTriage
  • RubeusTgtDeleg
  • RubeusS4U
  • RubeusRenew
  • RubeusPurge
  • RubeusPtt
  • RubeusMonitor
  • RubeusKlist
  • RubeusKerberoast
  • RubeusHash
  • RubeusHarvest
  • RubeusDump
  • RubeusDescribe
  • RubeusCreateNetOnly
  • RubeusChangePw
  • RubeusASREPRoast
  • RubeusAskTgt
  • SharpCOM
  • SharpGPOAddUserRights
  • SharpGPOAddStartupScript
  • SharpGPOAddLocalAdmin
  • SharpGPOAddImmediateTask
  • PowerShellExecuter
  • LatteralMSBuild
  • SharpPsExec
  • SharpAdidnsdump
  • PPIDAgent
  • SpawnAsAgent
  • SpawnShellcode
  • SpawnAsShellcode
  • SharpMiniDump
  • SharpKatz

Persistance

  • Autorun
  • Startup
  • WMI
  • CRL

BlockDlls

À partir de la version 0.3.0, RedPeanutAgent prend en charge la commande blockdlls. Avec cette option activée, les processus enfants créés pour effectuer des tâches en mode non managé sont créés avec l'attribut PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALWAYS_ON. Cet attribut empêche le processus de charger des dll qui ne sont pas signées par Microsoft, ce qui pourrait protéger nos tâches des techniques de hooking AV et EDR.

Appels système directs (Direct Syscall) et chargement dynamique de DLL

RedPeanutAgent utilise le chargement dynamique de DLL pour éviter l'utilisation d'importations de DLL suspectes. Les crédits pour le chargement dynamique de DLL vont à @TheRealWover, @cobbr_io et @FuzzySec pour leur travail dans SharpSploit.

Certains fournisseurs d'AV et d'EDR utilisent une technique de hooking pour suivre les activités. Pour éviter d'utiliser des appels système hookés, RedPeanutAgent utilise des appels système directs, en injectant automatiquement le code nécessaire. Les crédits pour les appels système directs vont à @Cneelis

Exécution

Pour exécuter RedPeanut, vous devez avoir dotnet installé. Pour installer dotnet sur Kali :

root@kitploit:~
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget -q https://packages.microsoft.com/config/debian/9/prod.list
mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
chown root:root /etc/apt/sources.list.d/microsoft-prod.list

apt-get install apt-transport-https
apt-get update
apt-get install dotnet-sdk-2.1
root@kitploit:~
git clone --recursive https://github.com/b4rtik/RedPeanut.git

Pour la fonctionnalité de canal couvert, il est nécessaire d'installer la bibliothèque libgdiplus, donc :

Pour les utilisateurs Linux :

root@kitploit:~
apt-get install -y libgdiplus

Pour OSx

root@kitploit:~
brew install mono-libgdiplus

Génération de la clé de signature d'assembly

root@kitploit:~
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community>sn.exe -k 4096 key.snk

Puis copiez key.snk dans Workspace/KeyFile

root@kitploit:~
root@kali:~# cd RedPanut
root@kali:~/RedPeanut# dotnet run
Using launch settings from /root/Projects/RedPeanut/Properties/launchSettings.json...
Enter password to encrypt serverkey: 

__________________________________________________________________________
ooooooo________________oo_ooooooo___________________________________oo____
oo____oo___ooooo___oooooo_oo____oo__ooooo___ooooo__oo_ooo__oo____o__oo____
oo____oo__oo____o_oo___oo_oo____oo_oo____o_oo___oo_ooo___o_oo____o_oooo___
ooooooo___ooooooo_oo___oo_oooooo___ooooooo_oo___oo_oo____o_oo____o__oo____
oo____oo__oo______oo___oo_oo_______oo______oo___oo_oo____o_ooo___o__oo__o_
oo_____oo__ooooo___oooooo_oo________ooooo___oooo_o_oo____o_oo_ooo____ooo__
__________________________________________________________________________
________________________________________________RedPeanut_v0.3.0___@b4rtik
__________________________________________________________________________

[*] No profile available, creating new one...
[RP] >

Générateur de shellcode

DonutCS est un outil de génération de shellcode qui crée des charges utiles shellcode indépendantes de la position à partir d'assemblies .NET. Ce shellcode peut être utilisé pour injecter l'assembly dans des processus Windows arbitraires. Étant donné un assembly .NET, des paramètres et un point d'entrée (comme Program.Main), il produit un shellcode indépendant de la position qui le charge depuis la mémoire. L'assembly .NET peut être soit stagé depuis une URL, soit sans stage en étant intégré directement dans le shellcode.

Persistance CLR

La technique de persistance CLR a été présentée pour la première fois dans cet article par @Am0nsec. La technique consiste à réaliser le hooking du gestionnaire de domaine d'application (application domain manager). Comme décrit dans l'article, l'assembly pour effectuer le hooking est nécessaire et disponible dans le GAC. Un assembly destiné à être utilisé depuis le GAC doit être strong-named et donc signé avec une clé. Le module de persistance CLR nécessite une clé pour pouvoir signer les assemblies, qui peut être générée avec l'outil sn.exe comme suit :

root@kitploit:~
**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.9.3
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community>sn.exe -k 4096 key.snk

Copiez le fichier key.snk dans le dossier Workspace/KeyFile. Ce fichier sera utilisé pour signer l'assembly pour la persistance.

Mise à jour des outils

Certains des outils bien connus présents dans RedPeanut, comme les outils GhostPack, sont enveloppés dans leur intégralité et exécutés côté client. Pour mettre à jour les outils, par exemple SeatBelt, sans mettre à jour l'intégralité du dépôt, il est nécessaire de : Cloner le dépôt Seatbelt, renommer la méthode « Main » en « Execute », insérer le modificateur public et recompiler en dll. La dll doit être compressée et encodée en Base64 en utilisant le script ps de RastaMouse Get-CompressedShellcode.ps1

Crédits

  • Donut - @TheRealWover
  • DonutCS - @n1xbyte
  • SharpSploit - @cobbr_io
  • GhostPack - @harmj0y
  • SharpCOM - @rvrsh3ll
  • SharpGPOAbuse - @mwrlabs
  • EvilClippy - @StanHacked
  • DotNetToJS - @tiraniddo
  • Sharpshooter - @domchell
  • SharpWeb - @djhohnstein
  • Version originale de PsExec - @malcomvetter
  • TikiTorch - @_RastaMouse
  • ReadLine - Toni Solarin-Sodara
Télécharger l’outil