Linux,  Sécurity

Backtrack – Collecte d’informations

 

Après une introduction sur la distribution Backtrack, voyons maintenant quelques techniques de collecte d’informations.

Cette première étape est fondamentale pour la suite. Sans les informations recueillies, vous serez incapables d’exploiter les failles d’un réseau ou d’un système.

Nous allons voir tout d’abord les moyens utilisés pour collecter ces informations et ensuite les techniques pour se protéger contre cela.

 

Les moyens engagés pour collecter des informations.

 

  • Analyse du réseau

Netdiscover : Outil de découverte réseau

Exemple :

netdiscover -i eth0 -r 192.168.128.0/24

Cet outil est une des premières étapes lorsque nous recherchons des victimes potentielles. Sans adresse IP, pas d’attaque… Un autre outil existe en interface graphique, et propose la découverte réseau couplée au scan de port, ainsi qu’à l’OS-Fingerprinting : Autoscan.

 

Zenmap : Scanner de port en interface graphique (utilisant Nmap)

Exemple d’un scan “intense” :

nmap -T4 -A -v 192.168.128.132

Retrying OS detection (try #5) against 192.168.128.132
NSE: Script scanning 192.168.128.132.
Initiating NSE at 14:51
Completed NSE at 14:51, 0.17s elapsed
Nmap scan report for 192.168.128.132
Host is up (0.00057s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE      VERSION
135/tcp open  msrpc        Microsoft Windows RPC
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds Microsoft Windows XP microsoft-ds

 

Nmap est l’outil de référence pour scanner les ports ouverts d’une machine. Je tiens à préciser que l’utilisation de Nmap peut réveiller un pare-feu, et avertir un utilisateur que sa machine a été victime d’un scan de port. Il faut donc l’utiliser avec discrétion, et ne pas hésiter à bien lire la documentation pour utiliser les bonnes options.

Nous n’irons pas plus loin pour le moment, la suite étant la détection de vulnérabilités.

 

  • Analyse d’applications Web

Un serveur Web est toujours très bavard. Il peut renseigner pas mal d’informations précieuses, qui peuvent souvent compromettre la sécurité du système.

whatweb : Obenir la version du serveur, les variables HTTP, ainsi que le nom de l’application Web installée

Exemple :

whatweb http://my1.fr/blog

webshag : Outil qui permet de scanner un serveur web. Il propose entre autre de détecter l’arborescence du répertoire web, de détecter la version du serveur, etc. C’est en scannant un serveur Web que nous pourrons découvrir les différentes applications installées dessus, et pourquoi pas un CMS connu comme Joomla, ou WordPress.

cms-explorer : Après avoir découvert quelle application web était installée sur un serveur Web, nous allons découvrir le thème installé, ainsi que les extensions utilisées. Ainsi, nous pourrons peut-être par la suite exploiter telle ou telle faille dans un plugin. Pour vous donner un exemple concret, les attaques XSS et SQLi sont les plus rependues actuellement sur le web et sont dans la plupart des cas la cause des défacements de sites web ou vols de bases de données.

wafw00f : Script en python qui permet de détecter des pare-feu pour serveur Web (Reverse Proxy par exemple).

 

  • Analyse de bases de données

 – msf : le fameux framework permet de détecter les bases de données Microsoft SQL.

Exemple :

# msf console

msf > use scanner/mssql/mssql_ping

msf auxiliary(mssql_ping) > set RHOSTS 192.168.128.0/24

msf auxiliary(mssql_ping) > exploit

[*] SQL Server information for 192.168.128.12:
[*] tcp = 1433
[*] np = SRVBDD-0pipesqlquery
[*] Version = 8.00.192
[*] InstanceName = MSSQLSERVER
[*] IsClustered = No
[*] ServerName = SRVBDD-0
[*] Auxiliary module execution completed

 

SQLmap : Logiciel d’injection SQL, et prise de contrôle de base de données. Pas mal de tutoriels en vidéo sont disponibles ICI.

 

  • Analyse des réseaux sans fil

Nous sommes de plus en plus connectés sans-fil. Que ce soit en bluetooth ou en wifi, les équipements sont toujours plus perfectionnés mais pas toujours bien sécurisés.

La suite logicielle aircrack-ng contient les outils wifi les plus puissants du moment.

airodump : Outil de capture de paquets 802.11, capable d’enregistrer du traffic en clair, et même crypté. Dans un premier temps, il est nécessaire de scanner les réseaux sans-fil disponibles, pour ensuite voir ceux qui sont ouverts ou protégés. Les algorithmes de chiffrement sont précisés, et peuvent donc donner pas mal d’informations importantes pour une personne malveillante.

bluediving : Logiciel de scan bluetooth, qui permet aussi de lancer des attaques contre les équipements trouvés.

  • Rassembler, et partager les informations collectées

Que vous travaillez seul ou en équipe, les informations prises doivent êtres placées en lieux sûr, et surtout bien organisées. Backtrack propose un framework Open-Source nommé Dradis. Dans une interface web, insérez les résultats de vos scans NMAP, Nessus, vos notes, etc. Partagez-les grâce au serveur web intégré, tout en maintenant la confidentialité des données avec le module SSL activé par défaut.

 

Les moyens pour lutter contre la collecte d’information.

 

  • Se protéger contre l’analyse du réseau

Pour se protéger contre les scans de ports ou encore les requêtes réseau étranges, il y a quelques règles à respecter :

– installer une solution pare-feu sur toutes les machines (clientes et serveurs).

– sur les machines Linux, installer le paquet psad  et suivez ce tutoriel plutôt bien fait qui permet de bloquer les scans de port.

– sur les équipements actifs, configurer une table de correspondances adresse MAC / adresse IP statique.

– utiliser des sondes IDS/IPS pour la détection d’intrusion. Elles écoutent le réseau pendant un certain temps, et sont capables de détecter un trafic anormal. Snort est une solution libre qui est très réputé dans le milieu de l’IDS.

– mettre à jour régulièrement les IOS des équipements actifs.

 

  • Analyse d’applications Web

– sécuriser les serveurs Web (très longue tache). Pour Apache, voici un très bon guide établi par la NSA (National Security Agency) qui explique les différents points à configurer pour avoir un serveur web sécurisé.

– utiliser un reverse-proxy. Cloudfare propose une offre gratuite de base qui donne une bonne protection de serveur Web. Les requêtes HTTP passent d’abord par le reverse-proxy, et sont envoyées au serveur Web ; très utile pour se prémunir contre les attaques de déni de service (DOS).

– Lorsqu’on développe en langage dynamique (au hasard : PHP), protéger les variables, pour éviter les injections SQL. Voici un excellent tutoriel. Il faut également protéger tous les formulaires pour éviter les failles XSS. Paul Da Silva l’explique très bien sur son blog dans un cours comment se protéger contre ces attaques.

– Enfin, quand nous utilisons un CMS (comme WordPress, Drupal, Joomla, etc), la règle d’or est la mise-à-jour. Se tenir au courant soit directement sur le site officiel du CMS, soit via des extensions de mises-à-jour automatiques. Éviter d’utiliser trop de plugins sur son site, car certains contiennent souvent pas mal de failles. Choisir ses extensions, et les mettre à jour diminuera donc le risque d’attaque.

  • Analyse de bases de données

– Pour se protéger contre les attaques SQL, il faut commencer par sécuriser la configuration du serveur. PostgreSQL, MySQL, Oracle, sont des systèmes de gestion de base de données puissants, mais pas toujours sûrs. Leurs configuration de bases sont souvent trop permissives, et doivent êtres sécurisées au mieux. Lors d’un précédent billet, j’explique comment sécuriser la configuration de PostgreSQL sous Debian. Supprimer les bases de données par défaut inutiles, les mots de passe par défaut (comme cela existe sur MS SQL), ainsi que tout autre paramètre commun à tous autre système. Bref, vous devez laisser le moins de traces possible de vous sur le réseau !

– Séparer les bases de données, créer des utilisateurs SQL, attribuer des droits sur les tables… bref, exploitez à fond les fonctionnalités proposées. Ne vous contentez pas d’une base de données contenant toutes les tables de plusieurs applications métier à la fois, d’un seul utilisateur ayant tous les droits qui exécute toutes les requêtes.

Un exemple : sur un serveur web nous avons un blog, et une application métier.

Déjà, il faut créer deux bases de données minimum (1 pour le blog, et 1 pour l’application métier). Ensuite, créer un utilisateur par base de données qui exécutera le code que vous programmerez lors du développement du site. Pour les tâches annexes, comme les sauvegardes, ou les requêtes SQL bien spécifiques, créer un utilisateur à part, qui aura des droits très restrictifs. Pour information, pour effectuer une sauvegarde de la base de données, un utilisateur avec les droits en SELECT et en LOCK TABLES sont suffisants.

 

  • Analyse des réseaux sans fil

On ne le dira jamais assez : un réseau sans-fil doit être protégé par un algorithme de chiffrement, et si possible opter pour le WPA2. Oublier le WEP, ainsi que les réseaux ouverts. Quant aux équipements bluetooth, désactiver les services inutiles et ne se servir que du nécessaire. Protéger vos équipements comme vous le pouvez, soit par mot de passe ou par des algorithmes de chiffrements.

 

Note finale.

 

– Dans la 1ère partie, la liste d’outils est exhaustive, et heureusement ! Il y en a d’autres… tellement que je vous laisse chercher par vous même. La distrib’ Backtrack en propose quand même un bon panel.

– Dans la 2ème partie, je me suis permis d’aller un peu plus loin que prévu, afin que nous puissions y revenir en détail dans les prochains articles (notamment lors des exploitations de failles).

 

Prochaine étape : Evalutation de vulnérabilité

Source : ici, , mais aussi mon moteur de recherche préféré, ainsi que la documentation des logiciels proposés.

Software Engineeer at Red Hat, Private Pilot, French guy hiding somewhere in Canada.