Présentation de l'utilisation de la boîte à outils d'analyse et de détection de réseau Python-nmap

巴扎黑
Libérer: 2017-09-19 11:08:19
original
1948 Les gens l'ont consulté

Concept nmap

NMap, également connu sous le nom de Network Mapper, était à l'origine une boîte à outils d'analyse et de reniflage de réseau sous Linux.

nmap est un logiciel d'analyse de connexions réseau, utilisé pour analyser les connexions réseau ouvertes des ordinateurs sur Internet. Déterminez quels services s'exécutent sur quelles connexions et déduisez quel système d'exploitation l'ordinateur exécute (c'est également ce qu'on appelle la prise d'empreintes digitales). C'est l'un des logiciels incontournables pour les administrateurs réseau et est utilisé pour évaluer la sécurité du système réseau.

Comme la plupart des outils utilisés pour la sécurité des réseaux, nmap est également un outil privilégié par de nombreux hackers et hackers (également connus sous le nom de script kiddies). Les administrateurs système peuvent utiliser nmap pour détecter toute utilisation non autorisée de serveurs dans l'environnement de travail, mais les pirates informatiques utiliseront nmap pour collecter les paramètres réseau des ordinateurs cibles afin de planifier des attaques.

Nmap est souvent confondu avec Nessus, un logiciel d'évaluation des vulnérabilités des systèmes. Nmap utilise des méthodes furtives pour éviter la surveillance des systèmes de détection d'intrusion et essayer de ne pas affecter les opérations quotidiennes du système cible.

Nmap, ainsi que la vulnérabilité de contrôle de redondance cyclique 32 bits de SSH1, a été utilisé par Trinity pour envahir le système de gestion de l'énergie de la centrale électrique dans The Matrix.

Fonction nmap

Il existe trois fonctions de base : la première consiste à détecter si un groupe d'hôtes est en ligne ; la seconde consiste à analyser le port de l'hôte et à détecter celui fourni. les services réseau ; et il peut également déduire le système d’exploitation utilisé par l’hôte. Nmap peut être utilisé pour analyser des réseaux locaux comportant seulement deux nœuds, jusqu'à des réseaux de plus de 500 nœuds. Nmap permet également aux utilisateurs de personnaliser les techniques d'analyse. Habituellement, une simple opération de ping utilisant le protocole ICMP peut répondre aux besoins généraux ; elle peut également détecter en profondeur le port UDP ou TCP, jusqu'au système d'exploitation utilisé par l'hôte, elle peut également enregistrer tous les résultats de détection dans des journaux dans différents formats pour une utilisation ultérieure ; Opérations d’analyse.

Effectuez une analyse ping et imprimez les hôtes qui ont répondu à l'analyse sans autre test (comme l'analyse des ports ou la détection du système d'exploitation) :

nmap -sP 192.168.1.0/24
Copier après la connexion

Liste uniquement les hôtes sur le réseau spécifié Chaque hôte n'envoie aucun paquet à l'hôte cible :

nmap -sL 192.168.1.0/24
Copier après la connexion

Pour détecter les ports ouverts de l'hôte cible, vous pouvez spécifier une liste de ports séparés par des virgules (telle que -PS22, 23, 25, 80) :

nmap -PS 192.168.1.234
Copier après la connexion

Utilisez le ping UDP pour détecter l'hôte :

nmap -PU 192.168.1.0/24
Copier après la connexion

Utilisez l'option d'analyse la plus fréquemment utilisée : l'analyse SYN, également connue sous le nom d'analyse semi-ouverte, qui ne pas ouvrir une connexion TCP complète. L'exécution est très rapide :

nmap -sS 192.168.1.0/24
Copier après la connexion

installation de nmap

Cet article prend Linux Ubuntu16.04 comme exemple, et finalement utilise principalement python pour fonctionner

1. Installez d'abord nmap

sudo apt-get install nmap
Copier après la connexion

2 Ensuite, installez python-nmap

sudo pip install python-nmap
Copier après la connexion

Après l'installation, importez nmap dans python et testez pour vérifier. si cela réussit

com@pythontab:~# python
Python 2.7.12 (default, Dec  3 2016, 10:42:27) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import nmap
Copier après la connexion

Opération Python nmap

1 Petit cas simple

Créez une instance de PortScanner, puis analysez les ports 20-. 443 de l'IP 114.114.114.114.

import nmap
nm = nmap.PortScanner()
ret = nm.scan('114.114.114.114','20')
print ret
Copier après la connexion

Le format de retour est le suivant :

{
    'nmap': {
        'scanstats': {'uphosts': '1', 'timestr': 'Tue Oct 25 11:30:47 2016', 'downhosts': '0', 'totalhosts': '1', 'elapsed': '1.11'},
        'scaninfo': {'tcp': {'services': '20', 'method': 'connect'}}, 
        'command_line': 'nmap -oX - -p 20 -sV 115.239.210.26'
     },
    'scan': {
        '115.239.210.26': {
            'status': {'state': 'up', 'reason': 'syn-ack'},
            'hostnames': [{'type': '', 'name': ''}],
            'vendor': {}, 
            'addresses': {'ipv4': '115.239.210.26'},
            'tcp': {20: {'product': '', 'state': 'filtered', 'version': '', 'name': 'ftp-data', 'conf': '3', 'extrainfo': '', 'reason': 'no-response', 'cpe': ''}
            }
        }
    }
}
Copier après la connexion

2. Méthode intégrée :

Vous pouvez également imprimer simplement. informations

import nmap  
nm = nmap.PortScanner() 
print nm.scaninfo()
# {u'tcp': {'services': u'20-443', 'method': u'syn'}}
print nm.command_line() 
# u'nmap -oX - -p 20-443 -sV 114.114.114.114'
Copier après la connexion

Afficher le nombre d'hôtes il y a

print nm.all_hosts()
Copier après la connexion

[u'114.114.114.114']

Afficher les informations détaillées de cet hôte

nm['114.114.114.114']
Copier après la connexion

Voir tous les protocoles inclus dans l'hôte

nm['114.114.114.114'].all_protocols()
Copier après la connexion

Vérifiez quels ports de l'hôte fournissent le protocole TCP

nm['114.114.114.114']['tcp']
nm['114.114.114.114']['tcp'].keys()
Copier après la connexion

Vérifiez si le port fournit le protocole TCP

nm['114.114.114.114'].has_tcp(21)
Copier après la connexion

Vous pouvez également définir les paramètres d'exécution de nmap comme ceci

nm.scan(hosts='192.168.1.0/24', arguments='-n -sP -PE -PA21,23,80,3389')
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal