SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
CAUQUIL ROMAIN MCS 22.5
VINCENT GONTIER Module REVERSE ENGINEERING
RAPPORT D’ANALYSE
BINAIRE SUDOKU
Nous avons reçu une sollicitation pour donner suite à l’infection d’une machine Linux.
En effet, un utilisateur aurait téléchargé un jeu de sudoku pour son bash sur Internet, mais
ce dernier ne fonctionne pas.
De plus, depuis qu’il a été installé, le fichier /root/target.txt est apparemment chiffré
puisqu’illisible.
L’historique des commandes effectuées par l’utilisateur nous a été fourni (cf capture
d’écran ci-dessous).
Ce livrable constitue un rapport d’analyse. Il permettra d’établir les différents
éléments de fonctionnement du binaire concerné par ce document. De plus, il nous
permettra de qualifier si cet exécutable est responsable de la perte du fichier
/root/target.txt.
L’objet de l’analyse est le fichier fournit suivant : sudoku
Type de Hash Valeur
md5 a2faef17899e9bae189f152160e39e3e
sha512 4f5ba9f4a7bc2e6ea542cd5df71956dab9255682b
2993b69a11684f532b432e35406647cab8546b0be
268e8e95c1b913b183c5c00bd1b968a87151b7528
d4f1b
IPSSI 1
CAUQUIL ROMAIN MCS 22.5
VINCENT GONTIER Module REVERSE ENGINEERING
Le présent document sera découpé en quatre parties :
- Analyse
Dans cette partie, nous présenterons le schéma de fonctionnement du binaire, les
mesures de persistance mises en place, les mesures d’obfuscation mises en place pour
complexifier le code source du binaire. Enfin, nous apporterons une conclusion sur sa
nature, son niveau de menace ainsi que sa portée d’attaque.
- Recouvrement
Cette partie abordera la présentation d’une solution permettant de retrouver l’usage
des fichiers. Le code source sera présenté en annexe de ce document, ainsi qu’un guide
d’utilisation.
- Recommandations
Nous apporterons ensuite quelques suggestions de bonnes pratiques à appliquer afin
que ce type d’incident ne se reproduise pas.
- Réecriture
Enfin, nous proposerons quelques améliorations au malware afin d’en étudier la
structure et les modes de fonctionnement possibles.
IPSSI 2
CAUQUIL ROMAIN MCS 22.5
VINCENT GONTIER Module REVERSE ENGINEERING
RESUME
Le binaire a été qualifié comme étant dangereux (7/10) :
1. sudoku => Trojan
- Mise en place d’un service Linux sudokd
2. sudokd => Ransomware
- Chiffrement de toutes les données de l’arborescence /home
- Chiffrement de toutes les données de l’arborescence /root
Artefact de compromission :
- Présence du service sudokd
- Echange avec l’adresse IP 51.38.48.162
A ce jour, il est possible de déchiffrer les données perdues en récupérant les clés sur le serveur des
attaquants. Si le serveur en question devient sécurisé, les données ne seront plus recouvrables.
Taux de recouvrement actuel : 100%
IPSSI 3
CAUQUIL ROMAIN MCS 22.5
VINCENT GONTIER Module REVERSE ENGINEERING
ANALYSE
a. Analyse du binaire (sudoku)
- Obfuscation : Le binaire est strippé et compilé statiquement.
- Le binaire a besoin d’être lancé en tant que root pour être fonctionnel.
- Obfuscation : Les commandes qui seront exécutées par la suite sont chiffrées par un décalage
simple (différent pour chaque commande).
IPSSI 4
CAUQUIL ROMAIN MCS 22.5
VINCENT GONTIER Module REVERSE ENGINEERING
- Persistance : Les commandes exécutées déploient un service Linux
A ce stade, il n’est pas encore possible de qualifier si le binaire est malveillant, celui-ci ne fait que
déployer un service.
Cependant, les mesures d’obfuscation (compilation spécifique et chiffrement des commandes) peut
laisser penser que le développeur de cette solution a essayé de cacher des éléments ce qui est
suspect.
Il est à noter que ce genre de techniques est également utilisé pour protéger le savoir faire et le code
source pour des programmes tout à fait légitimes. L’analyse du binaire opéré par le service fournira
plus de détails.
Le serveur avec lequel le binaire travaille est accessible à l’adresse suivante => 51.38.48.162
b. Analyse de la payload (sudokd)
La payload est récupérée par le binaire sudoku à l’url suivante :
http://51.38.48.162/binary. Il s’agit de la charge utile du service
installé.
IPSSI 5
CAUQUIL ROMAIN MCS 22.5
VINCENT GONTIER Module REVERSE ENGINEERING
- Obfuscation : Le binaire est strippé et compilé statiquement.
- Obfuscation : La commande qui sera exécutée par la suite est chiffrée par un XOR basique.
Le binaire procède à la génération d’une clé de chiffrement (64 caractères).
Le listing des données utilisateur ne prend en considération que les fichiers « réguliers ».
IPSSI 6
CAUQUIL ROMAIN MCS 22.5
VINCENT GONTIER Module REVERSE ENGINEERING
Le chiffrement utilisé est un XOR
La commande qui sera lancée est chiffrée
Le binaire communique avec une page web en php pour procéder à l’upload de la clé :
http://51.38.48.162/key.php
c. Conclusion
Le fichier sudoku est un fichier compilé (ELF) rédigé en langage C. Il ne sera
donc exécutable en l’état que sur un système Linux.
Il s’agit très clairement d’un malware puisque lors de son exécution, il va
chiffrer un ensemble précis de fichiers.
Son niveau de menace reste assez faible puisqu’il faut impérativement que
l’utilisateur qui le lance soit root lors de l’exécution. De plus, sa portée est
limitée étant donné qu’il ne chiffre pas les sous répertoires des dossiers ciblés.
IPSSI 7
CAUQUIL ROMAIN MCS 22.5
VINCENT GONTIER Module REVERSE ENGINEERING
RECOUVREMENT
a. Extraction de la clé en RAM
La clé est stockée dans une variable déclarée statiquement. Elle est donc
présente dans le stack du processus pendant toute la durée de fonctionnement
du programme.
Nous avons remarqué que le programme termine par une boucle semblable à
un while(1) vide, ce qui implique que celui-ci ne termine jamais.
On trouve le PID du processus en cours d’exécution.
On récupère la plage d’adresse allouée pour le stack du programme
On s’accroche au programme et on dump cet espace
On cherche ensuite dans cet espace mémoire les chaines de caractères imprimables de plus
de 30 caractères
On retrouve alors notre clé de chiffrement => MRYE3)9HKDPWB>?4-B,.J/.D_(>]=K
IPSSI 8
CAUQUIL ROMAIN MCS 22.5
VINCENT GONTIER Module REVERSE ENGINEERING
b. Attaque du serveur
ATTENTION : Toute intrusion ou tentative d’intrusion sur un système informatique est
interdite sans l’accord explicite de son propriétaire (que nous avons obtenu, s’agissant
d’un lab).
Le serveur utilisé par les attaquants présentent des failles permettant de retrouver les clés.
Suite à un nmap, nous avons statué qu’il n’y avait que deux services accessibles depuis
l’extérieur => SSH et le serveur HTTP utilisé.
Le serveur SSH est à jour et n’autorise que les connexions pas clés, nous nous sommes donc
intéressé plus en détails au service web.
A commencer par un gobuster :
L’outil nous indique la présence d’un certain nombre de choses. Un seul fichier n’est pas déjà
connu au travers du schéma de fonctionnement du binaire => le fichier keys.
Ce fichier semble contenir des clés de chiffrement. Nous avons lancé le malware sur une
machine témoin et la clé récupérée en RAM apparaît bien à la fin du fichier.
IPSSI 9
CAUQUIL ROMAIN MCS 22.5
VINCENT GONTIER Module REVERSE ENGINEERING
c. Code de recouvrement
Une fois la clé récupérée, il ne reste plus qu’à produire le code source qui va nous permettre
de déchiffrer le tout.
Le code source est fournit en annexe dans l’archive. Celui-ci prend en arguments
uniquement la clé à utiliser. Il va ensuite lister les fichiers ciblés et procéder au
déchiffrement caractère par caractère.
IPSSI 10
CAUQUIL ROMAIN MCS 22.5
VINCENT GONTIER Module REVERSE ENGINEERING
RECOMMANDATIONS
Nous avons établi une liste non exhaustive de bonnes pratiques à appliquer afin que
ce type d’évènement ne se reproduise pas.
1/ Ne pas travailler en tant qu’utilisateur root. Pour rappel, l’utilisateur root dispose
des droits administrateurs sur la machine. Il est nécessaire de splitter les privilèges.
2/ Avant d’exécuter un programme, s’assurer de sa légitimité. Si un doute persiste, il
est préférable de ne pas l’exécuter. Il existe des outils d’analyse simples (virustotal, …)
permettant de qualifier rapidement la nature globale d’un programme.
3/ Un stagiaire ne devrait pas avoir de droits d’administration sur des serveurs
sensibles de l’entreprise et ne devrait encore moins chercher à jouer dessus.
4/ Suite à une attaque de ce type, la machine ne doit surtout par être éteinte car des
informations précieuses résident en RAM. Elle doit cependant être coupé du réseau pour
éviter la propagation du malware.
IPSSI 11
CAUQUIL ROMAIN MCS 22.5
VINCENT GONTIER Module REVERSE ENGINEERING
CHANGEMENT DE CAMP
Dans une approche RedTeam, il nous a été demandé de créer une nouvelle version du
malware plus évoluée afin d’étudier les possibilités des hackers.
Le malware produit fonctionne alors de la manière suivante :
- Listing récursif de l’ensemble des fichiers dans l’arborescence /root et /home
- Récupération de l’uuid du processeur
- Génération d’une clé plus longue (256 octets)
- Chiffrement XOR complexifié en utilisant la clé générée de chaque fichiers
- Upload de la clé sur un serveur
- Flush complet de la mémoire du processus
Afin de pallier certaines problématiques et facilité l’obfuscation de notre code, nous avons
procédé à un upload dans un socket brut en C qui envoie l’identifiant du processeur de la
machine attaquée et de la clé de chiffrement utilisée.
Plutôt que de recevoir des clés sans réellement savoir d’ou elles viennent, nous avons donc
une information d’identification unique de la machine (que l’utilisateur fournira lors du
paiement pour récupérer la clé de chiffrement).
Le code source, la méthode de compilation ainsi qu’un exemple sont fournis en annexe dans
l’archive.
IPSSI 12

Contenu connexe

Similaire à Reverse Engineering d'un ransomware

Ciel ! Mon Kubernetes mine des bitcoins...
Ciel ! Mon Kubernetes mine des bitcoins...Ciel ! Mon Kubernetes mine des bitcoins...
Ciel ! Mon Kubernetes mine des bitcoins...Open Source Experience
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesXavier MARIN
 
Backdoors et rootkits_avancees
Backdoors et rootkits_avanceesBackdoors et rootkits_avancees
Backdoors et rootkits_avanceesUltraUploader
 
White paper: SSTIC 2008: Advanced CSRF
White paper: SSTIC 2008: Advanced CSRFWhite paper: SSTIC 2008: Advanced CSRF
White paper: SSTIC 2008: Advanced CSRFManfred Touron
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitWassim Smati
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitWassim Smati
 
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...Trésor-Dux LEBANDA
 
Chargez un noyau linux sans reboot avec kexec
Chargez un noyau linux sans reboot avec kexecChargez un noyau linux sans reboot avec kexec
Chargez un noyau linux sans reboot avec kexecThierry Gayet
 
Prévention et traitement du hack de serveurs
Prévention et traitement du hack de serveursPrévention et traitement du hack de serveurs
Prévention et traitement du hack de serveursAmen.fr
 
Sec day cuckoo_workshop
Sec day cuckoo_workshopSec day cuckoo_workshop
Sec day cuckoo_workshopThomas Roccia
 
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging Anne Nicolas
 
Rapport administration systèmes et supervision réseaux tp4 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp4 diabang master1 trRapport administration systèmes et supervision réseaux tp4 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp4 diabang master1 trCheikh Tidiane DIABANG
 
Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015Hamza Ben Marzouk
 
Installer et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linuxInstaller et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linuxZakariyaa AIT ELMOUDEN
 
Trunk VoiP Asterisk strongsawn openvpn
Trunk VoiP Asterisk strongsawn openvpnTrunk VoiP Asterisk strongsawn openvpn
Trunk VoiP Asterisk strongsawn openvpnYaya N'Tyeni Sanogo
 
Gestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzerGestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzerMohamet Lamine DIOP
 

Similaire à Reverse Engineering d'un ransomware (20)

Ciel ! Mon Kubernetes mine des bitcoins...
Ciel ! Mon Kubernetes mine des bitcoins...Ciel ! Mon Kubernetes mine des bitcoins...
Ciel ! Mon Kubernetes mine des bitcoins...
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
 
Backdoors et rootkits_avancees
Backdoors et rootkits_avanceesBackdoors et rootkits_avancees
Backdoors et rootkits_avancees
 
White paper: SSTIC 2008: Advanced CSRF
White paper: SSTIC 2008: Advanced CSRFWhite paper: SSTIC 2008: Advanced CSRF
White paper: SSTIC 2008: Advanced CSRF
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kit
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kit
 
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
 
Atelier IDS SNORT
Atelier IDS SNORTAtelier IDS SNORT
Atelier IDS SNORT
 
Chargez un noyau linux sans reboot avec kexec
Chargez un noyau linux sans reboot avec kexecChargez un noyau linux sans reboot avec kexec
Chargez un noyau linux sans reboot avec kexec
 
Prévention et traitement du hack de serveurs
Prévention et traitement du hack de serveursPrévention et traitement du hack de serveurs
Prévention et traitement du hack de serveurs
 
Implémentation d'openvpn
Implémentation d'openvpnImplémentation d'openvpn
Implémentation d'openvpn
 
Sec day cuckoo_workshop
Sec day cuckoo_workshopSec day cuckoo_workshop
Sec day cuckoo_workshop
 
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
 
Rapport administration systèmes et supervision réseaux tp4 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp4 diabang master1 trRapport administration systèmes et supervision réseaux tp4 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp4 diabang master1 tr
 
Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015
 
rapportWAS
rapportWASrapportWAS
rapportWAS
 
Installer et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linuxInstaller et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linux
 
Trunk VoiP Asterisk strongsawn openvpn
Trunk VoiP Asterisk strongsawn openvpnTrunk VoiP Asterisk strongsawn openvpn
Trunk VoiP Asterisk strongsawn openvpn
 
Gestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzerGestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzer
 

Reverse Engineering d'un ransomware

  • 1. CAUQUIL ROMAIN MCS 22.5 VINCENT GONTIER Module REVERSE ENGINEERING RAPPORT D’ANALYSE BINAIRE SUDOKU Nous avons reçu une sollicitation pour donner suite à l’infection d’une machine Linux. En effet, un utilisateur aurait téléchargé un jeu de sudoku pour son bash sur Internet, mais ce dernier ne fonctionne pas. De plus, depuis qu’il a été installé, le fichier /root/target.txt est apparemment chiffré puisqu’illisible. L’historique des commandes effectuées par l’utilisateur nous a été fourni (cf capture d’écran ci-dessous). Ce livrable constitue un rapport d’analyse. Il permettra d’établir les différents éléments de fonctionnement du binaire concerné par ce document. De plus, il nous permettra de qualifier si cet exécutable est responsable de la perte du fichier /root/target.txt. L’objet de l’analyse est le fichier fournit suivant : sudoku Type de Hash Valeur md5 a2faef17899e9bae189f152160e39e3e sha512 4f5ba9f4a7bc2e6ea542cd5df71956dab9255682b 2993b69a11684f532b432e35406647cab8546b0be 268e8e95c1b913b183c5c00bd1b968a87151b7528 d4f1b IPSSI 1
  • 2. CAUQUIL ROMAIN MCS 22.5 VINCENT GONTIER Module REVERSE ENGINEERING Le présent document sera découpé en quatre parties : - Analyse Dans cette partie, nous présenterons le schéma de fonctionnement du binaire, les mesures de persistance mises en place, les mesures d’obfuscation mises en place pour complexifier le code source du binaire. Enfin, nous apporterons une conclusion sur sa nature, son niveau de menace ainsi que sa portée d’attaque. - Recouvrement Cette partie abordera la présentation d’une solution permettant de retrouver l’usage des fichiers. Le code source sera présenté en annexe de ce document, ainsi qu’un guide d’utilisation. - Recommandations Nous apporterons ensuite quelques suggestions de bonnes pratiques à appliquer afin que ce type d’incident ne se reproduise pas. - Réecriture Enfin, nous proposerons quelques améliorations au malware afin d’en étudier la structure et les modes de fonctionnement possibles. IPSSI 2
  • 3. CAUQUIL ROMAIN MCS 22.5 VINCENT GONTIER Module REVERSE ENGINEERING RESUME Le binaire a été qualifié comme étant dangereux (7/10) : 1. sudoku => Trojan - Mise en place d’un service Linux sudokd 2. sudokd => Ransomware - Chiffrement de toutes les données de l’arborescence /home - Chiffrement de toutes les données de l’arborescence /root Artefact de compromission : - Présence du service sudokd - Echange avec l’adresse IP 51.38.48.162 A ce jour, il est possible de déchiffrer les données perdues en récupérant les clés sur le serveur des attaquants. Si le serveur en question devient sécurisé, les données ne seront plus recouvrables. Taux de recouvrement actuel : 100% IPSSI 3
  • 4. CAUQUIL ROMAIN MCS 22.5 VINCENT GONTIER Module REVERSE ENGINEERING ANALYSE a. Analyse du binaire (sudoku) - Obfuscation : Le binaire est strippé et compilé statiquement. - Le binaire a besoin d’être lancé en tant que root pour être fonctionnel. - Obfuscation : Les commandes qui seront exécutées par la suite sont chiffrées par un décalage simple (différent pour chaque commande). IPSSI 4
  • 5. CAUQUIL ROMAIN MCS 22.5 VINCENT GONTIER Module REVERSE ENGINEERING - Persistance : Les commandes exécutées déploient un service Linux A ce stade, il n’est pas encore possible de qualifier si le binaire est malveillant, celui-ci ne fait que déployer un service. Cependant, les mesures d’obfuscation (compilation spécifique et chiffrement des commandes) peut laisser penser que le développeur de cette solution a essayé de cacher des éléments ce qui est suspect. Il est à noter que ce genre de techniques est également utilisé pour protéger le savoir faire et le code source pour des programmes tout à fait légitimes. L’analyse du binaire opéré par le service fournira plus de détails. Le serveur avec lequel le binaire travaille est accessible à l’adresse suivante => 51.38.48.162 b. Analyse de la payload (sudokd) La payload est récupérée par le binaire sudoku à l’url suivante : http://51.38.48.162/binary. Il s’agit de la charge utile du service installé. IPSSI 5
  • 6. CAUQUIL ROMAIN MCS 22.5 VINCENT GONTIER Module REVERSE ENGINEERING - Obfuscation : Le binaire est strippé et compilé statiquement. - Obfuscation : La commande qui sera exécutée par la suite est chiffrée par un XOR basique. Le binaire procède à la génération d’une clé de chiffrement (64 caractères). Le listing des données utilisateur ne prend en considération que les fichiers « réguliers ». IPSSI 6
  • 7. CAUQUIL ROMAIN MCS 22.5 VINCENT GONTIER Module REVERSE ENGINEERING Le chiffrement utilisé est un XOR La commande qui sera lancée est chiffrée Le binaire communique avec une page web en php pour procéder à l’upload de la clé : http://51.38.48.162/key.php c. Conclusion Le fichier sudoku est un fichier compilé (ELF) rédigé en langage C. Il ne sera donc exécutable en l’état que sur un système Linux. Il s’agit très clairement d’un malware puisque lors de son exécution, il va chiffrer un ensemble précis de fichiers. Son niveau de menace reste assez faible puisqu’il faut impérativement que l’utilisateur qui le lance soit root lors de l’exécution. De plus, sa portée est limitée étant donné qu’il ne chiffre pas les sous répertoires des dossiers ciblés. IPSSI 7
  • 8. CAUQUIL ROMAIN MCS 22.5 VINCENT GONTIER Module REVERSE ENGINEERING RECOUVREMENT a. Extraction de la clé en RAM La clé est stockée dans une variable déclarée statiquement. Elle est donc présente dans le stack du processus pendant toute la durée de fonctionnement du programme. Nous avons remarqué que le programme termine par une boucle semblable à un while(1) vide, ce qui implique que celui-ci ne termine jamais. On trouve le PID du processus en cours d’exécution. On récupère la plage d’adresse allouée pour le stack du programme On s’accroche au programme et on dump cet espace On cherche ensuite dans cet espace mémoire les chaines de caractères imprimables de plus de 30 caractères On retrouve alors notre clé de chiffrement => MRYE3)9HKDPWB>?4-B,.J/.D_(>]=K IPSSI 8
  • 9. CAUQUIL ROMAIN MCS 22.5 VINCENT GONTIER Module REVERSE ENGINEERING b. Attaque du serveur ATTENTION : Toute intrusion ou tentative d’intrusion sur un système informatique est interdite sans l’accord explicite de son propriétaire (que nous avons obtenu, s’agissant d’un lab). Le serveur utilisé par les attaquants présentent des failles permettant de retrouver les clés. Suite à un nmap, nous avons statué qu’il n’y avait que deux services accessibles depuis l’extérieur => SSH et le serveur HTTP utilisé. Le serveur SSH est à jour et n’autorise que les connexions pas clés, nous nous sommes donc intéressé plus en détails au service web. A commencer par un gobuster : L’outil nous indique la présence d’un certain nombre de choses. Un seul fichier n’est pas déjà connu au travers du schéma de fonctionnement du binaire => le fichier keys. Ce fichier semble contenir des clés de chiffrement. Nous avons lancé le malware sur une machine témoin et la clé récupérée en RAM apparaît bien à la fin du fichier. IPSSI 9
  • 10. CAUQUIL ROMAIN MCS 22.5 VINCENT GONTIER Module REVERSE ENGINEERING c. Code de recouvrement Une fois la clé récupérée, il ne reste plus qu’à produire le code source qui va nous permettre de déchiffrer le tout. Le code source est fournit en annexe dans l’archive. Celui-ci prend en arguments uniquement la clé à utiliser. Il va ensuite lister les fichiers ciblés et procéder au déchiffrement caractère par caractère. IPSSI 10
  • 11. CAUQUIL ROMAIN MCS 22.5 VINCENT GONTIER Module REVERSE ENGINEERING RECOMMANDATIONS Nous avons établi une liste non exhaustive de bonnes pratiques à appliquer afin que ce type d’évènement ne se reproduise pas. 1/ Ne pas travailler en tant qu’utilisateur root. Pour rappel, l’utilisateur root dispose des droits administrateurs sur la machine. Il est nécessaire de splitter les privilèges. 2/ Avant d’exécuter un programme, s’assurer de sa légitimité. Si un doute persiste, il est préférable de ne pas l’exécuter. Il existe des outils d’analyse simples (virustotal, …) permettant de qualifier rapidement la nature globale d’un programme. 3/ Un stagiaire ne devrait pas avoir de droits d’administration sur des serveurs sensibles de l’entreprise et ne devrait encore moins chercher à jouer dessus. 4/ Suite à une attaque de ce type, la machine ne doit surtout par être éteinte car des informations précieuses résident en RAM. Elle doit cependant être coupé du réseau pour éviter la propagation du malware. IPSSI 11
  • 12. CAUQUIL ROMAIN MCS 22.5 VINCENT GONTIER Module REVERSE ENGINEERING CHANGEMENT DE CAMP Dans une approche RedTeam, il nous a été demandé de créer une nouvelle version du malware plus évoluée afin d’étudier les possibilités des hackers. Le malware produit fonctionne alors de la manière suivante : - Listing récursif de l’ensemble des fichiers dans l’arborescence /root et /home - Récupération de l’uuid du processeur - Génération d’une clé plus longue (256 octets) - Chiffrement XOR complexifié en utilisant la clé générée de chaque fichiers - Upload de la clé sur un serveur - Flush complet de la mémoire du processus Afin de pallier certaines problématiques et facilité l’obfuscation de notre code, nous avons procédé à un upload dans un socket brut en C qui envoie l’identifiant du processeur de la machine attaquée et de la clé de chiffrement utilisée. Plutôt que de recevoir des clés sans réellement savoir d’ou elles viennent, nous avons donc une information d’identification unique de la machine (que l’utilisateur fournira lors du paiement pour récupérer la clé de chiffrement). Le code source, la méthode de compilation ainsi qu’un exemple sont fournis en annexe dans l’archive. IPSSI 12