#1 - Take the red pill

Transcription

#1 - Take the red pill
Security Exposed
#1 - Take the red pill
... and follow the white rabbit
An introduction to hacking & security flaws
1
dimanche 13 février 2011
Copyright © 2010 Thireus. All
Rights Reserved.
1
Sur les traces d’un pirate…
Objectifs principaux d’un pirate ?
•
•
Récupérer/modifier des données sensibles
•
•
Rendre inaccessible un service
Prendre le contrôle d’un système pour l’utiliser en tant que passerelle
ou espionner un utilisateur
Usurper une identité
2
dimanche 13 février 2011
2
Sur les traces d’un pirate…
Quels sont les objectifs utopiques d’un
hacker ?
•
•
•
•
Web : Contrôler l’administration d’un site
Système : Prendre la main sur le compte root/admin d’une machine
Network : Accéder aux services d’administration des routeurs
Pirater sans se faire prendre
3
dimanche 13 février 2011
3
1ère Partie - Le Web
Au menu...
1. Footprinting & Authentification
Mots clés: robots.txt, whois, google, social engineering, BruteForcer...
2. Exploits & H@ck1ng t00lz
Mots clés: Nikto, Nmap, Skypfish...
3. Web Security
Mots clés: PHP, SQL, Cookies...
4
dimanche 13 février 2011
4
I.1 - Footprinting
• On arrive sur un site, on se demande :
‣ À qui appartient ce site ? (qui l’héberge ?)
‣ Comment puis-je prendre le contrôle du site ?
‣ Comment trouver des failles ?
5
dimanche 13 février 2011
5
I.1 - Footprinting
•
Première chose à faire, se renseigner sur la personne qui détient le DNS et le serveur
‣
‣
Whois - http://www.raynette.fr/services/whois/
RIR (Registre Internet Régional) - Ex: http://ripe.net/ (RIPE)
-
•
Contre-mesures :
- DNS anonyme
- Formulaire de contact
Exemple: eirbware.fr
En cherchant sur le site on peut aussi trouver des infos intéressantes, comme des
adresses email, des pseudo, des noms, etc.
6
dimanche 13 février 2011
6
I.1 - Footprinting
•
Maintenant que l’on sait à qui on a à faire, on va essayer
d’avoir une vue globale sur le site
‣ Quels outils ont été utilisés pour élaborer le site ?
- Petite inspection du footer, copyright et code source
• Énumération des répertoires/fichiers du site
‣ Acunetix Web Vulnerability Scanner, Google Hacking,
w3bfukk0r, robots.txt
Contre-mesures :
- .htaccess, .htpasswd
- Éviter les fichier.bak, test.php
- Supprimer les copyrights / footers
7
dimanche 13 février 2011
7
I.1 - Authentification
•
On vient de trouver une page protégée par un mot de passe,
que faire ?
‣ 3 options s’offrent à nous :
-
Guessing / social engineering
BruteForce
Détourner le système
8
dimanche 13 février 2011
8
I.1 - Authentification
•
Guessing / social engineering
Contre-mesures :
- Ne jamais communiquer son mdp
- Éviter les mots de passe triviaux
- Avoir des mdp multiples
‣ Qu’est-ce que c’est ?
‣ Phishing
‣ Username:Password les plus courants :
admin:
admin:admin
admin:password
admin:admin123
admin:azerty
admin:qwerty
test:test
root:password
9
dimanche 13 février 2011
9
I.1 - Authentification
•
BruteForce
‣
‣
WTF is that?
Les outils :
-
" Brutal Gift " (Mac)
" Brutus " (Windows)
" THC-Hydra " (Unix)
‣ Les wordlists - Site : PacketStorm
Contre-mesures :
- Bloquer les tentatives multiples d’authentification (fail2ban)
- Utiliser des mdp robustes
10
dimanche 13 février 2011
10
I.1 - Authentification
•
Si malgré tout, on ne trouve pas le mot de passe...
‣
‣
On ne se décourage pas pour autant, on cherche un moyen détourné !
Introduction aux failles de sécurité :D
11
dimanche 13 février 2011
11
I.2 - Exploits
•
•
•
Qu’est-ce qu’un exploit ?
‣
Un exploit est un programme ou script permettant d'exploiter une faille de
sécurité
Où les trouve-t-on ?
‣
Bases de données d’exploits (Google is your friend) :
-
inj3ct0r.com
Contre-mesures :
- Mettre à jour son support web !
- S’abonner aux flux RSS de màj / exploits
exploit-db.com
Comment les utiliser ?
‣
Tout d'abord, il faut savoir si l’outil qui sert de support au site contient une
faille, pour cela on récupère son nom et sa version.
‣
‣
‣
Un site qui n’est pas mis à jour contient généralement des failles !
Exemple: phpBB 3.0.1, wordpress 2.8.5, etc.
Il nous suffit alors de rechercher dans la base de données d’exploits celui qui
convient à la version du site.
ATTENTION !! CES OUTILS PEUVENT ÊTRE TRÈS DANGEREUX !!!
12
dimanche 13 février 2011
12
I.2 - H@ck1ng t00lz
•
•
•
•
Acunetix Web Vulnerability Scanner (Windows - payant)
‣
Un outil automatique qui combine à la fois un outil de mappage du site et de
découverte de failles ou informations potentiellement dangereuses.
Nikto (Unix & Windows - gratuit)
‣
Cet outil très puissant permet la découverte de failles uniquement. La base de
données des failles ou informations potentiellement dangereuses est très
souvent mise à jour !
Nmap (Unix & Windows)
‣
Outil permettant la découverte de service, d’OS, de ports ouverts et
permettant aussi de mapper un réseau. Ici, il est intéressant pour la découverte
de service.
Skipfish (Unix)
‣
Outil développé par Google, il est similaire à Nikto.
ATTENTION !! CES OUTILS SONT TRÈS DANGEREUX !!!
13
dimanche 13 février 2011
13
I.2 - H@ck1ng t00lz
•
Quels sont les types d’informations que ces outils nous apportent ?
‣
•
Quelles sont les informations intéressantes dans l’immédiat ?
‣
•
Dans la plupart des cas, les informations renvoyées par ces outils ne sont pas
exploitables directement, elles concernent souvent des moyens supplémentaires
pour le pirate de se renseigner sur le site en question.
Failles include, sql injection, xss, DDoS, etc. (Ça vous parle ?)
Que faire par la suite ?
‣
Exploitation des failles à la main en réfléchissant à une stratégie
Contre-mesures :
- Avoir une longueur d’avance sur le pirate
- Utiliser ces outils avant lui
14
dimanche 13 février 2011
14
I.3 - Web Security
•
Quelques exemples de failles Web :
‣
‣
‣
‣
PHP/JS: XSS
PHP: File inclusion (include, file, fopen, require, include_once, require_once)
PHP/SQL: Injection SQL
PHP: Upload
En général :
NEVER TRUST USER INPUT ;)
15
dimanche 13 février 2011
15
I.3 - XSS
•
•
Qu’est-ce qu’une faille XSS ?
‣
C’est une faille qui permet l'exécution d’un code JavaScript/HTML par le biais
d’une requête de type POST ou GET envoyée par le client.
Comment ça marche ?
‣
‣
Imaginons le code PHP d’une page index.php qui serait de cette forme :
Si maintenant le client s’amuse à appeler la page :
Contre-mesures :
- Coder les variables (ex :
base64, htmlentities)
index.php?une_variable=<script>alert("Faille_XSS_detected")</script>
Le client verra son script s’exécuter sur la page index.php.
•
Mais à quoi ceci peut-il bien servir ?
‣
Si le client envoie un lien vers la page index.php avec la variable contenant un
script malicieux à un membre ou administrateur du site, il pourra par exemple
récupérer des informations juteuses (cookies, sessions, informations sur la page
courante, etc.)
16
dimanche 13 février 2011
16
I.3 - File Inclusion
•
•
File Inclusion ?
‣
En PHP ce sont toutes les fonctions de type : include, file, fopen, require,
include_once, require_once
Comment ça marche ?
‣
‣
Imaginons le code PHP d’une page index.php qui serait de cette forme :
Si maintenant le client s’amuse à appeler la page :
Contre-mesures :
- Utiliser un switch case
pour la variable
index.php?page=admin/une_page_admin
Le client pourra ainsi accéder à la page admin/une_page_admin.php
•
Mais à quoi ceci peut-il bien servir ?
‣
Comme vous l’aurez compris, on peut facilement contourner la protection des
pages interdites du site, en les incluant grâce à PHP dans notre index.php. Ceci
permet donc au pirate d’afficher les informations contenues sur ces pages, même
si elles sont dans un répertoire protégé par .htaccess.
17
dimanche 13 février 2011
17
I.3 - Injection SQL
•
•
Miam !
‣
L’injection SQL permet de récupérer des informations sensibles dans une base de
donnée en modifiant la requête de base.
Comment ça marche ?
‣
Imaginons le code PHP/MySQL d’une page index.php :
‣
Si maintenant le client modifie son cookie définissant son login pour le site en
"admin" ou pire encore, si il rajoute " OR 1=1", alors il sera en mesure de voir
tous les id, login et password stockés dans la table users_table !
Contre-mesures :
- Utiliser mysql_real_escape_string()
18
dimanche 13 février 2011
18
I.3 - Upload
•
Une page upload sans vérification d'extension de fichier ou vérification de contenu
c’est très dangereux !!
‣
‣
‣
Le client peut très bien uploader une page .php, .html, etc.
Le client peut dissimuler du code malicieux à l’intérieur d’un fichier à transférer.
Petite anecdote : il existait (ou existe toujours) une faille sur la messagerie
Hotmail, via laquelle un expéditeur pouvait envoyer une page html dissimulée avec
l’extension .jpg (ou toute autre extension d’image). Une fois le message reçu par le
destinataire, si celui-ci ouvrait l’image reçue en pièce jointe il accédait directement
à la page html codée par l’expéditeur. Celle-ci pouvant contenir des scripts
malicieux ;)
Contre-mesures :
- Contrôler les uploads
- Limiter les accès aux fichiers
19
dimanche 13 février 2011
19
I.3 - Pour info...
•
Les failles XSS sont partout, surtout sur les gros sites (Ebay, FaceBook, etc.). Plus un
site sera complexe, plus forte sera la probabilité qu’une variable puisse être utilisée
comme passerelle pour XSS.
•
Les failles de type include sont quant à elles beaucoup plus présentes sur les petits
sites perso, car elles sont généralement évitées dès la création du site.
•
Les injections SQL sont quant à elles présentes lors de la création d’un site, elles sont
généralement corrigées rapidement par les développeurs à la suite de problèmes
rapportés par les utilisateurs. (Piratage de compte, etc.) Il est facile de cibler la source
du problème grâce aux logs des requêtes SQL.
20
dimanche 13 février 2011
20
Questions ?
21
dimanche 13 février 2011
21
2ème Partie - Wireless Security
Au menu...
1. Backtrack Basic ToOlz
Mots clés: sniffing, aircrack, wireshark...
2. Wireless Hacking
Mots clés: OPN, WEP, WPA...
3. Advanced Hacking TOolz
Mots clés: ettercap, nmap...
22
dimanche 13 février 2011
22
II.1 - Backtrack Basic ToOlz
•
•
•
•
•
airmon-ng
‣
Un outil qui vous permet d’initialiser votre carte wifi en mode monitoring.
airodump-ng
‣
Cet outil très puissant permet de scanner les réseaux sans fils disponibles et de
sauvegarder la data qu’ils génèrent !
aircrack-ng
‣
Outil permettant le crack WEP et WPA/WPA2 personnal.
aireplay-ng
‣
Outil permettant de dialoguer avec l’AP ou les clients (dans le but d’obtenir
plus d’IVs par exemple).
Wireshark
‣
Outil incontournable pour l’analyse d’un réseau, il permet de visualiser le
contenu passant par notre interface réseau.
23
dimanche 13 février 2011
23
II.1 - Backtrack Basic ToOlz
Place à la pratique... :)
24
dimanche 13 février 2011
24
II.2 - Wireless Hacking
Réseau OPN ?
25
dimanche 13 février 2011
25
II.2 - Wireless Hacking
Réseau WEP ?
Phase de Cryptage
26
dimanche 13 février 2011
26
II.2 - Wireless Hacking
Réseau WEP ?
Phase de Décryptage
27
dimanche 13 février 2011
27
II.2 - Wireless Hacking
Réseau WEP ?
•
•
•
IV ?
‣
Initialization Vector. IV = 24 bits, la probabilité qu’une IV se répète au bout de 5 000
paquets est d’environ 50% ! (Calcul: 5000*1500/2^24 ~ 45%)
Mais où est la faille ?
‣
‣
XOR utilisé plusieurs fois avec la même clé = Pas bon !
‣
Une fois des bouts de PSEUDO-RANDOM DATA connus, on reverse le PRGA, puis
on doit remettre en ordre la clé WEP mélangée avec notre IV.
L’idée est donc de pouvoir remonter vers la branche PSEUDO-RANDOM DATA.
Pour se faire, on va essayer de deviner des bouts de DATA.
Mais comment fait-on tout ça ?
‣
On utilise airodump-ng pour capturer la data, et en parallèle on laisse aircrack-ng
faire son boulot sur notre fichier de capture.
‣
Si on n’a pas assez de data, alors on ré-injecte des requêtes ARP sur le réseau avec
aireplay-ng ;-)
28
dimanche 13 février 2011
28
II.2 - Wireless Hacking
Réseau WPA/WPA2 ?
•
•
•
•
Quels sont les réseaux WPA/WPA2 faillibles ?
‣
Seuls les réseaux WPA/WPA2 Personal, c’est-à-dire utilisant une clé de type PSK
(Pre-shared Shared Key) peuvent être crackés à ce jour.
Comment qu’on fait ?
‣
Il faut attendre ou forcer, un client à initialiser une connexion avec l’AP, dans le but
de récupérer un paquet appelé l’handshake.
On crack comment ?
‣
aircrack-ng ;) avec un bon dictionnaire, et oui! Cette fois-ci ce sera du pure
bruteforce !!!
Si on arrive pas à obtenir d’handshake alors qu’un client est connecté à une AP ?
‣
Hé bien on le déconnecte :D pour cela on utilise aireplay-ng avec l’attaque qui va
bien ;)
29
dimanche 13 février 2011
29
II.3 - Advanced Hacking TOolz
Next Time...
30
dimanche 13 février 2011
30
Questions ?
31
dimanche 13 février 2011
31

Documents pareils