Information Gathering - · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

18
Information Gathering MOHAMED MOADEB MAHMOUD BOUABSA NARJESS MEMMI ETTAYEB MOHAMED RIM GHDAS SARA NAIFAR

Transcript of Information Gathering - · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Page 1: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering

MOHAMED MOADEB

MAHMOUD BOUABSA

NARJESS MEMMI

ETTAYEB MOHAMED

RIM GHDAS

SARA NAIFAR

Page 2: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering |SECURIDAY 2014 ACCESS CONTROL

1

Table des matières 1.I. Présentation de l’atelier .................................................................................................... 2

1. Introduction ....................................................................................................................... 2

2. Défintion ............................................................................................................................ 2

II. Outils Utilisés ..................................................................................................................... 2

1. Python ............................................................................................................................... 2

2. Scapy .................................................................................................................................. 3

3. Nmap ................................................................................................................................. 4

4. Nmap Scripting language ................................................................................................... 5

5. Socket. ............................................................................................................................... 5

6. Kali linux :........................................................................................................................... 6

7. pygtk .................................................................................................................................. 6

8. Le différent script Utilisé : ................................................................................................. 6

a. DNS Analysis .................................................................................................................. 6

b. Identify Live Host ........................................................................................................... 6

c. Network Scanners: ........................................................................................................ 7

d. Network Traffic Analysis: ............................................................................................... 7

e. OS Fingerprinting: .......................................................................................................... 7

f. SMB Analysis .................................................................................................................. 7

g. SMTP Analysis ................................................................................................................ 7

h. SNMP Analysis ............................................................................................................... 7

i. SSL Analysis .................................................................................................................... 7

j. VOIP Analysis ................................................................................................................. 7

k. VNC Analysis .................................................................................................................. 8

II. Topologie du réseau .......................................................................................................... 8

III. Configuration des outils ................................................................................................ 9

1. Python ............................................................................................................................... 9

2. Scapy .................................................................................................................................. 9

3. Pygtk ................................................................................................................................ 10

IV. Un scénario .................................................................................................................. 10

1. Connexion au réseau local : ............................................................................................. 10

2. Vérifier l’appartenance au réseau ................................................................................... 10

3. Localisation des équipements actifs ................................................................................ 11

4. Analyse de vulnérabilité .................................................................................................. 15

V. Conclusion ....................................................................................................................... 17

Page 3: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering |SECURIDAY 2014 ACCESS CONTROL

2

I. Présentation de l’atelier Introduction 1.

Dans noter atelier on a développe une application qui va nous aider à réaliser un collecte d’information .On a collecte le plus possible des scripts qui traitent des différents techniques sur des plusieurs thèmes dans but d’Analyzer la vulnérabilité d’un réseaux locale sur les différent couche réseaux

Défintion 2.

une vulnérabilité ou faille est une faiblesse dans un système informatique, permettant à un attaquant de porter atteinte à l'intégrité de ce système, c'est-à-dire à son fonctionnement normal, à la confidentialité et l'intégrité des données qu'il contient. Ces vulnérabilités sont la conséquence de faiblesses dans la conception, la mise en œuvre ou l'utilisation d'un composant matériel ou logiciel du système, mais il s'agit généralement de l'exploitation

L’analyse du vulnérabilité d’un réseaux local consiste a Tester et renseigner sur l’efficacité des politiques et des contrôles de sécurité. en identifiant l’ensemble des vulnérabilités connues sur l’infrastructure réseau. Les évaluations sont réalisées sur les équipements réseau et périphériques , ainsi que sur les services et les applications exécutées sur ces derniers. Et tous cela sera effectuer sur plusieurs étapes

II. Outils Utilisés Python 1.

Page 4: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering |SECURIDAY 2014 ACCESS CONTROL

3

Python est un langage de programmation objet, multi-paradigme et multi-plateformes. Il favorise la programmation impérative structurée et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire parramasse-miettes et d'un système de gestion d'exceptions ; il est ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl. Le langage Python est placé sous une licence libre proche de la licence BSD2 et fonctionne sur la plupart des plates-formes informatiques, des supercalculateurs aux ordinateurs centraux, de Windows à Unix en passant par GNU/Linux, Mac OS, ou encore Android, iOS, et aussi avec Java ou encore .NET. Il est conçu pour optimiser la productivité des programmeurs en offrant des outils de haut niveau et une syntaxe simple à utiliser.

Scapy 2.

Scapy est un logiciel libre de manipulation de paquets réseau écrit en python. Il est capable, entre autres, d'intercepter le trafic sur un segment réseau, de générer des paquets dans un nombre important de protocoles, de réaliser une prise d'empreinte de la pile TCP/IP, de faire un traceroute, d'analyser le réseau informatique… Scapy n'est pas un outil clé en main (comme Nmap ou autre) mais un Framework basé sur Python fournissant un ensemble de fonctions pour interagir avec le réseau. Il a donc les avantages suivants

Page 5: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering |SECURIDAY 2014 ACCESS CONTROL

4

Une grande liberté d'action car chaque paramètre peut être modifié Il décode mais n'interprète pas les paquets reçus

Nmap 3.

Nmap est un scanner de ports libre créé par Fyodor et distribué par Insecure.org. Il est conçu pour détecter les portsouverts, identifier les services hébergés et obtenir des informations sur le système d'exploitation d'un ordinateur distant. Ce logiciel est devenu une référence pour les administrateurs réseaux car l'audit des résultats de Nmap fournit des indications sur la sécurité d'un réseau. Il est disponible sous Windows, Mac OS X, Linux, BSD et Solaris.

Le code source de Nmap est disponible sous la licence GNU GPL.

Page 6: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering |SECURIDAY 2014 ACCESS CONTROL

5

Nmap Scripting language 4.

Le moteur de scripts de Nmap (Nmap Scripting Engine -NSE) allie l'efficacité avec laquelle

Nmap traite le réseaux avec la souplesse d'un langage léger comme Lua, fournissant ainsi

une infinité d'opportunités. Le but du NSE est de fournir à Nmap une infrastructure flexible afin d'étendre ses capacités et ainsi offrir à ses utilisateurs une facon simple de créer leurs propres tests personnalisés. Le cadre d'usage du NSE englobe (mais encore une fois n'est pas limité à) :

Socket. 5.

Page 7: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering |SECURIDAY 2014 ACCESS CONTROL

6

Les sockets, en informatique, ce sont tout simplement des objets familiers dans la communication. Ils peuvent être utilisés pour communiquer en local ou sur internet. il faut importer ce qu'on appelle un module. Ce module contient toutes les fonctions nécessaires à l'utilisation de socket. import socket créer une socket : MaSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) Aussi il y’a plusieurs méthode pour manipuler le socket

Kali linux : 6.

pygtk 7.

PyGTK est un module Python permettant la création d'interfaces graphiques utilisant

la bibliothèque GTK 2. À partir de GTK 3, PyGObject remplace PyGTK dans ce rôle.

Le différent script Utilisé : 8.

On a essayé de collecter les scripts puis on a testé ces scripts dans un environnement Virtuel pour vérifier l’efficacité des scripts avant de l’implémenter dans notre application

a. DNS Analysis dns-brute.py dnscahesnoop.py dns-nsec-enum.py dns-service-discovery.py dnszonecheck.py

b. Identify Live Host Pingscan.py IDS IPS Identification:

Page 8: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering |SECURIDAY 2014 ACCESS CONTROL

7

Firewalk.py http-waf-detect.py http-waf-fingerprint.py

c. Network Scanners: http-traceroute.py portscan.py traceroute.py whois-ip.py

d. Network Traffic Analysis: targets-sniffer.py sniffer-detect.py

e. OS Fingerprinting: Os.py

f. SMB Analysis smb-enum-users.py smb-mbenum.py smb-os-discovery.py smb-security-mode.py

g. SMTP Analysis smtp-brute.py smtp-commands.py smtp-enum-users.py smtp-open-relay.py smtp-strangeport.py smtp-vuln-cve2010-4344.py smtp-vuln-cve2011-1720.py smtp-vuln-cve2011-1764.py

h. SNMP Analysis snmp-hh3c-logins.py snmp-interfaces.py snmp-processes.py snmp-win32-services.py snmp-win32-shares.py snmp-win32-software.py

i. SSL Analysis ssl-cert.py ssl-enum-ciphers.py ssl-google-cert-catalog.py sstp-discover.py

j. VOIP Analysis sip-brute.py sip-call-spoof.py sip-enum-users.py sip-methods.py

Page 9: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering |SECURIDAY 2014 ACCESS CONTROL

8

k. VNC Analysis realvnc-auth-bypass.py vnc-brute .py vnc-info.py

II. Topologie du réseau Pour simuler un analyse de vulnérabilité il faut se connectera un réseau local ,ce réseaux peu même être décomposer en sous réseaux , Par la suite, il sera reliées par un routeur

Dans ce réseaux chaque machine sera identifier par un adresse ip un adresse mac

Adresse IP : Une adresse IP (avec IP pour Internet Protocol) est un numéro d'identification qui est attribué de façon permanente ou provisoire à chaque appareil connecté à un réseau informatique utilisant l'Internet Protocol. Adresse Mac : une adresse MAC (Media Access Control) est un identifiant physique constitué de 6 octets, elle est attribuée par le constructeur de l’équipement et « hard codé » sur la carte (il est possible de la changer, mais ce n’est pas le but de cet article.) Elle consiste

Page 10: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering |SECURIDAY 2014 ACCESS CONTROL

9

en six nombres hexadécimaux séparés par des « – » ou des « : », il existe potentiellement 248 (environ 281 000 milliards) d’adresses MAC possible, il est donc quasiment impossible de se retrouver avec un doublon sur le réseau. Notez que l’adresse de broadcast est: FF:FF:FF:FF:FF:FF, les données seront envoyées à l’ensemble du réseau local. Une adresse IP est constituée de deux parties : l'adresse du réseau et l'adresse de la machine ils seront distingués à partite du masque réseaux masque réseaux Ce découpage en deux parties est effectué en attribuant certains bits d'une adresse à la partie réseau et le reste à la partie machine. Il est représenté en utilisant un « masque réseau » où sont placé à 1 les bits de la partie réseau et à 0 ceux de la partie machine. Par exemple 207.142.131.245 est une adresse IP et 255.255.255.0 un masque réseau indiquant que les trois premiers octet (les 24 premiers bits) sont utilisés pour adresser le réseau et le dernier octet (les 8 derniers bits) pour la machine. Et on aura 2@ particulier Adresses réseaux et adresses de diffusion Une adresse réseau est une adresse IP qui désigne un réseau et non pas une machine de ce réseau. Elle est obtenue en plaçant tous les bits de la partie machine à zéro. Une adresse de diffusion (« broadcast » en anglais) est une adresse permettant de désigner toutes les machines d'un réseau, elle est obtenue en plaçant tous les bits de la partie machine à un

III. Configuration des outils Python 1.

Par défaut, Python est installé sur Linux. Sous Ubuntu par exemple, tapez "python" pour avoir accès à l'invite de commande Python. Pour connaître votre version de Python installé, tapez "python -V" dans un terminal.

Scapy 2.Installation : sudo apt-get update sudo apt-get install python-scapy python-pyx python-gnuplot mise en marche sudo scapy WARNING: No route found for IPv6 destination :: (no default route?) Welcome to Scapy (2.2.0) >>> pour quitter >>>quit()

Page 11: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering |SECURIDAY 2014 ACCESS CONTROL

10

Pygtk 3.Installation: sudo apt-get install python-gtk2

IV. Un scénario Connexion au réseau local : 1.

Tout d’abord, on commence par se connecter au routeur du réseau local

Vérifier l’appartenance au réseau 2.

On utilise la commande « ifconfig » pour vérifier notre adresse IP et l’interface utilisée

Page 12: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering |SECURIDAY 2014 ACCESS CONTROL

11

Localisation des équipements actifs 3.Lorsque l’on cherche à gérer les vulnérabilités, la première étape consiste à les localiser. Mais il faut au préalable dresser et maintenir à jour un référentiel des actifs. Ce référentiel comprendra tous les équipements et périphériques dotés d’une adresse IP. Les informations contenus dans le référentiel portent notamment sur les matériels, les logiciels, les applications, les services et les configurations. Pour recueille toutes ces informations dans le cadre d’un processus en deux étapes.

cartographie du réseau qui identifie les équipements actifs. Elle fournit une base précise de tous les équipements connectés, qu’il s’agisse de serveurs, d’ordinateurs de bureau, d’ordinateurs portables, de routeurs, de points d’accès sans fil, etc on réalise cette tache on utilisant le Protocol snmp ‘Simple Network Management Protocol ‘(système de gestion de réseaux)

Page 13: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering |SECURIDAY 2014 ACCESS CONTROL

12

Les systèmes de gestion de réseau sont basés sur trois éléments principaux : un superviseur, des nœuds et des agents. Dans la terminologie SNMP, le synonyme manager est plus souvent employé que superviseur. Le superviseur est la console qui permet à l'administrateur réseau d'exécuter des requêtes de management. Les agents sont des entités qui se trouvent au niveau de chaque interface, connectant au réseau l'équipement géré (nœud) et permettant de récupérer des informations sur différents objets. Souvent considéré comme désuet, SNMP est toujours omniprésent pour interagir avec des équipements réseau. Pour la supervision, il permet d’exposer diverses métriques telles que les compteurs liés aux interfaces réseau. Il permet également d’interagir sur la configuration des équipements. Les variables exposées par les agents SNMP (serveurs) sont contenues dans une base hiérarchique appelée Management Information Base (ouMIB1). Chaque entrée est identifiée par un OID. En interrogeant un OIDspécifique, un client obtient la valeur associée à la variable. il existe des extensions SNMP pour la plupart des langages

Page 14: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering |SECURIDAY 2014 ACCESS CONTROL

13

Notre script s’appuyer sur les informations contenues dans les MIB pour fournir une interface pythonique. Et Toute erreur doit se traduire en une exception. Une MIB (Management Information Base, base d'information pour la gestion du réseau) est un ensemble d'informations structuré sur une entité réseau, par exemple un routeur, un commutateur ou un serveur. Ces informations peuvent être récupérées, ou parfois modifiées, par un protocole comme SNMP. La structure de la MIB est hiérarchique : les informations sont regroupées en arbre. Chaque information a un object identifier, une suite de chiffres séparés par des points, qui l'identifie de façon unique et un nom, . est voici la structuer du MBI :

Il existe des modules spécifiquement dédiés au parsing d'arguments (notamment argparse ) et bien utiles si vous souhaitez invoquer le script à la façon des commandes Unix (avec des arguments du type : -option, -option=valeur, --option, etc...). Le module argparse est un "command line Parsing Module". En bon français, on dirait que le module argparse permet de parser correctement les arguments de la ligne de commande. Le module argparse est le successeur du module optparse. Ce module est inclus en standard dans python 2.7 et python 3.2. Vous pouvez sinon l'installer par un pip install argparse.

-On renseigne la description de notre programme -On ajoute notre premier argument optionnel que l'on appelle "help", on renseigne son type et sa description -On ajoute un argument positionnel obligatoire que l'on appelle "localhost" et on renseigne son type, on précise aussi qu'il doit y avoir au moins un de renseigné puis on termine par sa description

Page 15: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering |SECURIDAY 2014 ACCESS CONTROL

14

et pour la découverte des host on untlise cette boucle qui consiste au « ping scan »

Puis on gère l’interface graphique automatiquement de manière que tous les équipements actifs seront affichés sur notre interface puis on applique l’analyse de vulnérabilité, donc on pourra découvrir la hiérarchie du réseau local.

Page 16: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering |SECURIDAY 2014 ACCESS CONTROL

15

Analyse de vulnérabilité 4.

. Après la cartographie vient la deuxième phase. Elle fait intervenir de puissantes analyses de vulnérabilité qui collectent des informations complémentaires pour finaliser l’inventaire des actifs. Elle est également importante pour déterminer l’impact de chaque actif sur l’activité. Cet impact concerne tout simplement la valeur d’un équipement spécifique par rapport à tous les autres. Tous les actifs ne sont pas égaux. Une machine dédiée à des tests avec un accès individuel dans une remise risque moins d’interrompre l’activité qu’un serveur sur lequel sont fédérées des Projections financières ou des informations personnelles identifiables. Disposer d’informations d’inventaire sur les actifs à la fois actualisées et précises permet d’identifier avec une plus grande exactitude les actifs affectés par une vulnérabilité particulière. Les analyses de vulnérabilité sont plus rapides dans la mesure où les contrôles eux-mêmes ne sont appliqués que sur les équipements où il peut y avoir des vulnérabilités. Cependant, la tâche la plus fastidieuse consiste à classer correctement les actifs après leur identification. Cette tâche est tellement laborieuse que les entreprises dépourvues de processus automatisés doivent choisir quel segment ou sous-ensemble de leurs actifs classer, laissant souvent de côté des équipements critiques. En outre, les systèmes et les réseaux étant dynamiques, ils évoluent et doivent être analysé régulièrement. De plus, les équipements non conformes qui sont parfois ajoutés

Page 17: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering |SECURIDAY 2014 ACCESS CONTROL

16

On va tester le type de system d’exploitation d’une machine dans notre réseau Par un script d’os Figner-printing

Le script est entrain de détecter la machine et son système d’exploitation

Enfin le résultat de script

Page 18: Information Gathering -  · PDF fileScapy..... 3 3. Nmap ... Kali linux : 7. pygtk PyGTK est

Information Gathering |SECURIDAY 2014 ACCESS CONTROL

17

Avec tout les script que nous avons collecter, on pourra avoir les informations

suffisantes pour la vulnérabilité du réseau local par exemple :

V. Conclusion Pour réaliser l’analyse de vulnérabilité d’un réseau local on

a eu besoin de plusieurs script, qui on le role de tester les

différents failles du réseau local. L’analyse du script du

réseau se décompose en deux grandes parties principales :

-La découverte des équipements actifs

-L’analyse de vulnérabilité