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

2023-08-17 1807阅读

温馨提示:这篇文章已超过583天没有更新,请注意相关的内容是否还可用!

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购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]