Nmap扫描教程之网络基础服务DHCP服务类

Nmap网络基础服务

网络基础服务是网络正常工作的基石,常见的网络基础服务包括DHCP服务和DNS服务。其中,DHCP服务用来为计算机动态分配IP地址;DNS服务用来对主机名进行解析。本章将介绍网络基础服务的扫描方法。

NmapDHCP服务类

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种局域网的网络协议。它的主要作用就是,给内部网络或网络服务供应商自动分配IP地址。当一台客户机需要一个IP地址时,将会向DHCP服务器发送广播包。然后,收到请求的服务器会提供一个可用的IP地址给客户端。由于客户端在请求包时发送的是广播包,所以存在一定的风险。本节将介绍DHCP服务的扫描方法。

Nmap广播DHCP请求包

DHCP请求是客户端为了通过DHCP服务获取IP地址而发送的一种数据包。通过向网络中发送一个DHCP Request(DHCP请求)广播包,可以获取到当前局域网中可用的一个IP地址。在Nmap中,broadcast-dhcp-discover脚本可以用来发送DHCP广播请求,并显示响应包的详细信息。通过读分析响应的包信息,可以找到可分配的IP地址。

其中,语法格式如下所示:

  • nmap --script broadcast-dhcp-discover

在以上语法中,仅指定使用的Nmap脚本即可,不需要指定目标地址。由于broadcast-dhcp-discover脚本将会发送包到局域网中的所有主机,并且等待有响应的主机。

【示例1-1】使用broadcast-dhcp-discover脚本向局域网中发送DHCP Request广播包。执行命令如下所示:

  • Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-21 16:58 CST
  • Pre-scan script results:
  • | broadcast-dhcp-discover:
  • |   IP Offered: 192.168.1.102                                                          #提供的IP地址
  • |   DHCP Message Type: DHCPOFFER                                       #DHCP消息类型
  • |   Server Identifier: 192.168.1.1                                                    #服务标识符
  • |   IP Address Lease Time: 0 days, 2:00:00                                 #IP地址租约时间
  • |   Subnet Mask: 255.255.255.0                                                     #子网掩码
  • |   Router: 192.168.1.1                                                                     #路由器地址
  • |_  Domain Name Server: 192.168.1.1                                         #域名服务地址
  • WARNING: No targets were specified, so 0 hosts scanned.       #警告信息
  • Nmap done: 0 IP addresses (0 hosts up) scanned in 1.37 seconds

从以上输出信息中,可以看到响应包的详细信息。例如,响应的IP地址为192.168.1.102,DHCP类型为DHCPOFFER,租约时间为2个小时等。从以上输出的倒数第二行信息中,可以看到显示了一行警告信息,提示没有指定目标,所以零个主机被扫描。

提示:本章中介绍的脚本都发送的是广播包,所以在扫描时不需要指定任何的目标。

Nmap DHCP发现

DHCP是一个局域网的网络协议,主要作用就是为局域网中计算机动态分配IP地址。在Nmap中,通过使用dhcp-discover脚本发送DHCPINFORM请求,可以获取所有本地的配置参数,但是不会被分配一个新的地址。DHCPINFORM是一个DHCP请求,可以从一个DHCP服务器上获取到非常有用的信息。其中,dhcp-discover脚本的使用语法格式如下所示:

  • nmap -sU -p 67 --script=dhcp-discover [目标]

【示例1-2】发送DHCPINFORM请求到路由器的UDP端口67,获取所有本地配置参数。执行命令如下所示:

  • root@localhost:~# nmap -sU -p 67 --script=dhcp-discover 192.168.1.1
  • Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-01 16:18 CST
  • Nmap scan report for localhost (192.168.1.1)
  • Host is up (0.00032s latency).
  • PORT   STATE SERVICE
  • 67/udp   open  dhcps
  • | dhcp-discover:                                                                         #获取的信息
  • |   DHCP Message Type: DHCPACK                                  #DHCP消息类型
  • |   Server Identifier: 192.168.1.1                                           #服务标识符
  • |   Subnet Mask: 255.255.255.0                                            #子网掩码
  • |   Router: 192.168.1.1                                                            #路由地址
  • |_  Domain Name Server: 192.168.1.1                                #域名服务
  • MAC Address: 14:E6:E4:84:23:7A (Tp-link Technologies CO.)
  • Nmap done: 1 IP address (1 host up) scanned in 0.50 seconds

从以上输出信息中,可以看到通过发送DHCPINFORM请求,获取到的相关信息。从输出的信息中,可以看到发送DHCPINFORM请求后,服务器响应了一个DHCPACK包。并且,服务器的标识符为192.168.1.1、子网掩码为255.255.255.0、路由器地址为192.168.1.1等。

Nmap IGMP协议发现

IGMP(Internet Group Management Protocol,Internet组管理协议)是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间。IGMP协议共有三个版本,分别是IGMPv1、IGMPv2和IGMPv3。通过发送IGMP成员查询消息到224.0.0.1(组播地址),可以获取到IGMP成员信息。

在Nmap中,使用broadcast-igmp-discovery脚本可以发现目标主机上的IGMP组播成员,并获取有意义的信息,如版本、接口、源地址等。其中,语法格式如下所示:

  • nmap --script broadcast-igmp-discovery -e <interface> --script-args='broadcast-igmp-discovery.version=all, broadcast-igmp-discovery.timeout=3'

以上语法中“-e”选项是用来指定扫描接口。参数“broadcast-igmp-discovery.version”用来指定扫描使用的IGMP协议版本,默认使用的是IGMPv2。该参数可使用的值有1、2、3和all。参数“broadcast-igmp-discovery.timeout”用来指定等待报告的时间,默认是5秒。

【示例1-3】扫描局域网中IGMP协议。执行命令如下所示:

  • root@localhost:~# nmap --script broadcast-igmp-discovery
  • Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-21 17:36 CST
  • Pre-scan script results:                                                                                #扫描结果
  • | broadcast-igmp-discovery:                                                                      #IGMP发现
  • |   192.168.1.101
  • |     Interface: eth0                                                                                              #接口
  • |     Version: 2                                                                                            #版本
  • |     Group: 224.0.0.251                                                                           #组地址
  • |     Description: mDNS                                                                           #描述
  • |   192.168.1.101
  • |     Interface: eth0                                                                                              #接口
  • |     Version: 2                                                                                            #版本
  • |     Group: 224.0.0.252                                                                           #组地址
  • |     Description: Link-local Multicast Name Resolution (rfc4795)   #描述
  • |   192.168.1.108
  • |     Interface: eth0                                                                                              #接口
  • |     Version: 2                                                                                            #版本
  • |     Group: 239.255.255.250                                                                  #组
  • |     Description: Organization-Local Scope (rfc2365)                       #描述
  • |_  Use the newtargets script-arg to add the results as targets
  • WARNING: No targets were specified, so 0 hosts scanned.
  • Nmap done: 0 IP addresses (0 hosts up) scanned in 7.13 seconds

从以上输出信息中,可以看到响应了IGMP协议相关的信息。如版本为2,接口为eth0,组成员包括224.0.0.251、224.0.0.252和239.255.255.250等。

从上例中可以看到没有指定IGMP协议版本时,默认使用的是IGMPv2。用户可以指定所有协议,则执行命令如下所示:

  • # nmap --script broadcast-igmp-discovery --script-args 'broadcast-igmp-discovery.version=all
  • Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-22 11:03 CST
  • Pre-scan script results:
  • | broadcast-igmp-discovery:
  • |   192.168.1.101
  • |     Interface: eth0
  • |     Version: 1
  • |     Multicast group: 224.0.0.252
  • |   192.168.1.101
  • |     Interface: eth0
  • |     Version: 1
  • |     Multicast group: 239.255.255.250
  • |_  Use the newtargets script-arg to add the results as targets
  • WARNING: No targets were specified, so 0 hosts scanned.
  • Nmap done: 0 IP addresses (0 hosts up) scanned in 7.26 seconds

从以上输出信息中,可以看到使用IGMPv1版本发送了数据包。

本文选自:Nmap扫描实战教程大学霸内部资料,转载请注明出处,尊重技术尊重IT人!

Nmap扫描教程之网络基础服务DHCP服务类的更多相关文章

  1. Nmap扫描教程之基础扫描详解

    Nmap扫描教程之基础扫描详解 Nmap扫描基础扫描 当用户对Nmap工具了解后,即可使用该工具实施扫描.通过上一章的介绍,用户可知Nmap工具可以分别对主机.端口.版本.操作系统等实施扫描.但是,在 ...

  2. Nmap扫描教程之基础扫描具体解释

    Nmap扫描教程之基础扫描具体解释 Nmap扫描基础扫描 当用户对Nmap工具了解后,就可以使用该工具实施扫描.通过上一章的介绍,用户可知Nmap工具能够分别对主机.port.版本号.操作系统等实施扫 ...

  3. nmap扫描端口导致线上大量Java服务FullGC甚至OOM

    nmap扫描端口导致线上大量Java服务FullGC甚至OOM 最近公司遇到了一次诡异的线上FullGC保障,多个服务几乎所有的实例集中报FullGC,个别实例甚至出现了OOM,直接被docker杀掉 ...

  4. nmap扫描某段网络连通性

    nmap -v -sP 10.0.10.0/24 进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测): nmap -sP 192.168.1.0/24 仅列出指 ...

  5. [New learn] 网络基础-apache本地服务搭建(支持php)

    1.简介 无网不利,无网不胜.对于移动应用来说离开网络那和咸鱼有什么分别?所以对于开发者来说更要学习好网络开发的技术. 2.搭建apache本地服务器 1.在finder中显示影藏的用户文件夹 fin ...

  6. neutron中创建子网时禁用dhcp服务的问题

    在neutron中创建provider网络时,可以指定是否禁用dhcp.若禁用,就可以使用物理网络中的dhcp服务.若使用物理网络的dhcp,就要禁用子网中提供的.如图

  7. DHCP服务洪水攻击

    1.攻击原理 动态主机设置协议是一个局域网的网络协议,使用UDP协议工作,主要有两个用途: 为内部网络或网络服务供应商自动分配IP地址给用户,以作为内部网络管理员对所有计算机做中央管理的手段. 在正常 ...

  8. [New learn] 网络基础-网络操作

    代码:https://github.com/xufeng79x/NETOperation 1.简介 主要记录基本的网络操作步骤,get/post关系和区别和文件上传实现. 2.准备 需要服务器端,如果 ...

  9. DHCP服务

    DHCP服务 DHCP服务(需要dhcp命令):负责ip,掩码,网关地址,DNS地址等自动分发的软件服务 /usr/sbin/dhcpd或/usr/sbin/dhcrelay(中继命令):执行程序 / ...

随机推荐

  1. 三次握手---TCP/IP

    首先由Client发出请求连接即 SYN=1 ACK=0  (请看头字段的介绍), TCP规定SYN=1时不能携带数据,但要消耗一个序号,因此声明自己的序号是 seq=x 然后 Server 进行回复 ...

  2. Java基础-赋值运算符Assignment Operators与条件运算符Condition Operators

    Java基础-赋值运算符Assignment Operators与条件运算符Condition Operators 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.赋值运算符 表 ...

  3. sql语句解析顺序和执行顺序

    sql语句执行顺序1.from子句组装来自不同数据源的数据2.where子句基于指定的条件对记录行进行筛选3.group by子句将数据划分为多个分组4.使用聚集函数进行计算5.使用having子句筛 ...

  4. bzoj千题计划278:bzoj4590: [Shoi2015]自动刷题机

    http://www.lydsy.com/JudgeOnline/problem.php?id=4590 二分 这么道水题 没long long WA了两发,没判-1WA了一发,二分写错WA了一发 最 ...

  5. Why do we make statistics so hard for our students?

    Why do we make statistics so hard for our students? (Warning: long and slightly wonkish) If you’re l ...

  6. mysql复杂查询(一)

    所谓复杂查询,指涉及多个表.具有嵌套等复杂结构的查询.这里简要介绍典型的几种复杂查询格式. 一.连接查询 连接是区别关系与非关系系统的最重要的标志.通过连接运算符可以实现多个表查询.连接查询主要包括内 ...

  7. django错误笔记——1242 Subquery returns more than 1 row

    在数据库查询操作过程中,子查询结果不唯一,导致外面的查询无法进行. 我的错误语句: rid = models.User.objects.filter(username=username).values ...

  8. jinja模板语言

    模板 要了解jinja2,那么需要先理解模板的概念.模板在Python的web开发中广泛使用,它能够有效的将业务逻辑和页面逻辑分开,使代码可读性增强.并且更加容易理解和维护. 模板简单来说就是一个其中 ...

  9. MySQL管理工具MySQL Utilities — 介绍与安装(1)

    MySQL Utilities介绍 MySQL Utilities 提供一组命令行工具用于维护和管理 MySQL 服务器,包括: 管理工具 (克隆.复制.比较.差异.导出.导入) 复制工具 (安装.配 ...

  10. 浅介HTML DOM

    什么是DOM? DOM是Document Object Model(文档对象模型)的缩写. DOM是W3C(万维网联盟)的标准. DOM定义了访问HTML和XML文档的标准: “W3C文档对象模型(D ...