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
PowerShell-Obfuscation-Bible — Une collection de techniques, d'exemples et un peu de théorie pour obfusquer manuellement des scripts PowerShell afin de contourner les antivirus, compilée à des fins éducatives. Le contenu de ce dépôt est le résultat de recherches personnelles, incluant des lectures en ligne et des essais par essais-erreurs menés en laboratoire et lors de tests d'intrusion. | Kitploit
Outils/GitHubGitHub/t3l3machus/powershell-obfuscation-bible
Évasion IDS/IPSTests d'IntrusionApprentissage et ÉducationRed TeamingRessources OrganiséesDéveloppement de Charges Utiles
GitHubt3l3machus/powershell-obfuscation-bible

PowerShell-Obfuscation-Bible

Voir le dépôt
1.2k13916il y a 2 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 →

À propos

Une collection de techniques, d'exemples et un peu de théorie pour obfusquer manuellement des scripts PowerShell afin de contourner les antivirus, compilée à des fins éducatives. Le contenu de ce dépôt est le résultat de recherches personnelles, incluant des lectures en ligne et des essais par essais-erreurs menés en laboratoire et lors de tests d'intrusion.

Partager

Bible de l'obfuscation PowerShell

Python License

Une collection de techniques, d'exemples et un peu de théorie pour obfusquer manuellement des scripts PowerShell afin de contourner la détection basée sur les signatures, compilée à des fins éducatives. Le contenu de ce dépôt est le résultat de recherches personnelles, notamment la lecture de documents en ligne et des tentatives par essais et erreurs en laboratoire et lors de tests d'intrusion. Vous ne devez rien tenir pour acquis.

Présentation vidéo YouTube : youtube.com/watch?v=tGFdmAh_lXE

⚠️ Avertissement : L'utilisation des techniques et des concepts décrits dans ce dépôt pour obtenir un accès non autorisé à des systèmes que vous n'avez pas la permission de tester est illégale. Vous êtes responsable de vos actes. Ne soyez pas malveillant.

Table des matières

  1. Entropie
  2. Identifier les déclencheurs de détection
  3. Renommer les objets
  4. Obfusquer les valeurs booléennes
  5. Interruption par guillemets dans les cmdlets
  6. Interruption par accent circonflexe dans les cmdlets
  7. Technique Get-Command
  8. Substituer les boucles
  9. Substituer les commandes
  10. Jouer avec les chaînes de caractères
  11. Ajouter du superflu
  12. Ajouter ou supprimer des commentaires
  13. Varier la casse des caractères
  14. Réorganiser les composants du script
  15. Exécuter le script ligne par ligne

Entropie

Le terme scientifique entropie, généralement défini comme la mesure du hasard ou du désordre d'un système, est important dans l'évasion antivirus. En effet, les logiciels malveillants contiennent souvent du code hautement aléatoire, chiffré et/ou encodé (obfusqué) afin de rendre son analyse et donc sa détection difficiles. Parmi diverses méthodes, les antivirus utilisent l'analyse de l'entropie pour identifier les fichiers et charges utiles potentiellement malveillants.

Il est important de comprendre ce concept car, lors de l'obfuscation d'un code, vous devez garder à l'esprit la variation d'entropie créée par les modifications que vous choisissez d'apporter. Casser les signatures est facile, mais si vous ne prêtez pas attention au niveau d'entropie, les antivirus/EDR sophistiqués le verront.

Un principe à garder à l'esprit : Plus l'entropie est grande, plus il est probable que les données soient obfusquées ou chiffrées, et plus il est probable que le fichier/la charge utile soit malveillant. Heureusement, il existe des moyens de la réduire.

Claude E. Shannon a introduit une formule dans son article de 1948 A Mathematical Theory of Communication qui peut être utilisée pour mesurer l'entropie d'un ensemble de données. Voici une implémentation Python simple de l'entropie de Shannon que vous pouvez utiliser pour mesurer l'entropie des charges utiles que vous développez :

#!/bin/python3
# Usage: python3 entropy.py <file>

import math, sys

def entropy(string):
    "Calculates the Shannon entropy of a UTF-8 encoded string"

    # decode the string as UTF-8
    unicode_string = string.decode('utf-8')

    # get probability of chars in string
    prob = [ float(unicode_string.count(c)) / len(unicode_string) for c in dict.fromkeys(list(unicode_string)) ]

    # calculate the entropy
    entropy = - sum([ p * math.log(p) / math.log(2.0) for p in prob ])

    return entropy


f = open(sys.argv[1], 'rb')
content = f.read()
f.close()

print(entropy(content))

Vous pouvez également utiliser ce calculateur d'entropie de Shannon en ligne ou l'outil Sigcheck.exe de Microsoft avec l'option -a.

Identifier les déclencheurs de détection

La chose mature et élégante à faire avant de se lancer dans des tests d'obfuscation par essais et erreurs pour obtenir une variante de charge utile non détectée est d'identifier la ou les parties d'un script qui déclenchent la détection de logiciels malveillants. Surtout dans les scripts courts comme les commandes C2, vous pourriez être en mesure d'apporter des modifications insignifiantes et de passer inaperçu sur-le-champ.

Un excellent outil pour identifier ces déclencheurs est AMSItrigger. Voici un exemple d'utilisation avec un fichier contenant un script malveillant. La zone rouge signifie la partie sur laquelle l'obfuscation devrait être appliquée :

image

Vous pouvez également identifier les déclencheurs manuellement en exécutant un script morceau par morceau.

Renommer les objets

Lors de l'obfuscation de scripts, il devrait être prioritaire de remplacer les noms de variables/classes/fonctions par des noms aléatoires. Ainsi, en combinaison avec d'autres techniques, vous pourrez contourner la détection facilement. Mais vous devez garder à l'esprit l'entropie des charges utiles que vous développez. Prenons le script de reverse shell standard suivant, généralement détecté par la plupart, sinon tous, les antivirus :

image

Considérez maintenant la version obfusquée suivante :

image

Dans cette version, tous les noms de variables ont été remplacés par des noms aléatoires de 32 caractères. J'ai également remplacé (pwd).Path par $(gl). La charge utile a une entropie de Shannon de 4.96. Au moment où j'écris ceci, elle n'est pas détectée par MS Defender et un tas d'autres produits :

image

Télécharger l’outil