Maison >développement back-end >Tutoriel Python >Présentation de l'utilisation de la boîte à outils d'analyse et de détection de réseau Python-nmap

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

巴扎黑
巴扎黑original
2017-09-19 11:08:191980parcourir

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

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

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

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

nmap -PU 192.168.1.0/24

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

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

2 Ensuite, installez python-nmap

sudo pip install python-nmap

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

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

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': ''}
            }
        }
    }
}

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'

Afficher le nombre d'hôtes il y a

print nm.all_hosts()

[u'114.114.114.114']

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

nm['114.114.114.114']

Voir tous les protocoles inclus dans l'hôte

nm['114.114.114.114'].all_protocols()

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

Vérifiez si le port fournit le protocole TCP

nm['114.114.114.114'].has_tcp(21)

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

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!

Déclaration:
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