Python-nmap网络扫描嗅探工具包的使用

2023-08-17 1791阅读

NMap又名Network Mapper,最初是Linux下的网络扫描和嗅探工具包。nmap是一款网络连接终端扫描软件,用于扫描互联网上计算机开放的网络连接终端。与大多数用于网络安全的工具一样,nmap 也是许多黑客和破解者最喜欢的工具。系统管理员可以使用nmap来检测工作环境中未经批准的服务器,但黑客会使用nmap来收集目标计算机的网络设置来规划攻击方法。Nmap采用隐身方式来避开入侵检测系统的监控,尽可能不影响目标系统的日常运行。二是扫描主机端口,嗅探提供的网络服务; 它还可以推断主机使用的操作系统。Nmap 可用于扫描少至两个节点的 LAN,多至超过 500 个节点的网络。Nmap 还允许用户自定义扫描技术。

nmap概念

NMap又名Network Mapper,最初是Linux下的网络扫描和嗅探工具包。

nmap是一款网络连接终端扫描软件,用于扫描互联网上计算机开放的网络连接终端。 确定哪些服务在哪些连接上运行,并推断计算机正在运行哪个操作系统(这也称为指纹识别)。 是网络管理员必备软件之一,用于评估网络系统安全性。

与大多数用于网络安全的工具一样,nmap 也是许多黑客和破解者(又名脚本小子)最喜欢的工具。 系统管理员可以使用nmap来检测工作环境中未经批准的服务器,但黑客会使用nmap来收集目标计算机的网络设置来规划攻击方法。

Nmap 经常与 Nessus(一种系统漏洞评估软件)混淆。 Nmap采用隐身方式来避开入侵检测系统的监控,尽可能不影响目标系统的日常运行。

《黑客帝国》中的 Trinity 使用 Nmap 以及 SSH1 的 32 位循环冗余校验漏洞来侵入电站的能源管理系统。

nmap函数

基本功能有三个,一是检测一组主机是否在线;二是检测一组主机是否在线。 二是扫描主机端口,嗅探提供的网络服务; 它还可以推断主机使用的操作系统。 Nmap 可用于扫描少至两个节点的 LAN,多至超过 500 个节点的网络。 Nmap 还允许用户自定义扫描技术。 通常情况下,使用ICMP协议进行简单的ping操作就可以满足一般需求; 它还可以深度检测UDP或TCP端口,直至主机使用的操作系统; 它还可以将所有检测结果记录在各种格式的日志中,以便进一步分析操作。

进行 ping 扫描,打印出响应扫描的主机,无需进一步测试(例如端口扫描或操作系统检测):

nmap -sP 192.168.1.0/24

仅列出指定网络上的每个主机,而不向目标主机发送任何数据包:

nmap -sL 192.168.1.0/24

要检测目标主机开放的端口,可以指定以逗号分隔的端口列表(例如-PS22, 23, 25, 80):

nmap -PS 192.168.1.234

使用 UDP ping 探测主机:

nmap -PU 192.168.1.0/24

最常用的扫描选项:SYN扫描,也称为半开扫描,它不打开完整的TCP连接,执行速度非常快:

nmap -sS 192.168.1.0/24

nmap安装

本文以linux Ubuntu16.04为例,最后使用python进行操作

1.先安装nmap

sudo apt-get install nmap

2.再次安装python-nmap

sudo pip install python-nmap

安装后python导入nmap测试是否验证成功

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

Python操作nmap

1.简单小案例

创建PortScanner实例,然后扫描IP 114.114.114.114的20-443端口。

import nmap
nm = nmap.PortScanner()
ret = nm.scan('114.114.114.114','20')
print ret

返回格式如下:

{
    '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、内置方法:

还可以打印出简单的信息

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'

查看有多少台主机

print nm.all_hosts()
 [u'114.114.114.114'] 

查看主机的详细信息

nm['114.114.114.114']

查看主机包含的所有协议

nm['114.114.114.114'].all_protocols()

检查主机的哪些端口提供tcp协议

nm['114.114.114.114']['tcp']
nm['114.114.114.114']['tcp'].keys()

检查端口是否提供tcp协议

nm['114.114.114.114'].has_tcp(21)

您还可以像这样设置 nmap 执行参数

nm.scan(hosts='192.168.1.0/24', arguments='-n -sP -PE -PA21,23,80,3389')

扫描仪显示文件夹连接失败_扫描文件连接失败怎么回事_ftp扫描文件夹连接失败

nm.scan(hosts='192.168.1.0/24', arguments='-n -sP -PE -PA21,23,80,3389')

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]