活跃主机发现技术指南

news2024/11/28 5:49:53

活跃主机发现技术指南

  • 1.活跃主机发现技术简介
  • 2.基于ARP协议的活跃主机发现技术
  • 3.基于ICMP协议的活跃主机发现技术
  • 4.基于TCP协议的活跃主机发现技术
  • 5.基于UDP协议的活跃主机发现技术
  • 6.基于SCTP协议的活跃主机发现技术
  • 7.主机发现技术的分析

1.活跃主机发现技术简介

在生活中有这样一个默认的约定,当听到有人敲门的时候,屋子里的人会做出相应的回应,可能会询问,也可能会开门。有些时候一些居心不良的人就利用了这一点进行所谓的“踩点”

如果想知道网络中的某台主机是否处于活跃状态,同样可以采用这种“敲门”的方式,只不过需要使用发送数据包的形式来代替现实生活中的“敲门”动作,也就是说活跃主机发现技术其实就是向目标计算机发送数据包,如果对方主机收到了这些数据包,并给出了回应,就可以判断这台主机是活跃主机。


2.基于ARP协议的活跃主机发现技术

基于ARP协议的活跃主机发现技术的原理是:如果想要知道处在同一网段的IP地址为*.*.*.*的主机是否为活跃主机,只需要构造一个ARP请求数据包,并广播出去,如果得到了回应,则说明该主机为活跃主机

这种发现技术的优点在于准确度高,任何处于同一网段的设备都没有办法防御这种技术,因为如果不遵守ARP,那么将意味着无法通信。缺点在于这种发现技术不能对处于不同网段的目标主机进行扫描

使用Nmap的选项-PR就可以实现ARP协议的主机发现:

Nmap  -sn  -PR 192.168.1.1

结果:

Starting Nmap 7.12 ( https://Nmap.org ) at 2016-08-13 11:29
Nmap scan report for 192.168.0.1
Host is up (0.0030s latency).                                                   ①
MAC Address: D8:FE:E3:B3:87:A9 (D-Link International).                          ②
Nmap done: 1 IP address (1 host up) scanned in 1.82 seconds

上例中对IP地址为192.168.1.1的设备是否为活跃主机进行了检测,从结果中可以看到

  • ①中的“Host is up”这说明设备为活跃主机
  • ②中给出了192.168.1.1设备的物理地址(D8:FE:E3:B3:87:A9

如果在发出了ARP请求数据包之后,却迟迟得不到ARP响应数据包的话,就可以认为该IP地址所在的设备不是活跃主机


3.基于ICMP协议的活跃主机发现技术

ICMP的报文可以分成两类:差错和查询

查询报文是用一对请求和应答定义的。也就是说,主机A为了获得一些信息,可以向主机B发送ICMP数据包,主机B在收到这个数据包之后,会给出应答。

ICMP中适合使用的查询报文包括如下3类:

1、响应请求和应答用来测试发送与接收两端链路及目标主机TCP/IP协议是否正常,只要收到就是正常。我们日常使用最多的是ping命令,利用响应请求和应答,主机A向一个主机B发送一个ICMP报文,如果途中没有异常(例如被路由器丢弃、目标不回应ICMP或传输失败),则主机B返回ICMP报文,说明主机B处于活跃主机

2、时间戳请求和应答ICMP时间戳请求允许系统向另一个系统查询当前的时间。返回的建议值是自午夜开始计算的毫秒数。如果想知道B主机是否在线,还可以向B主机发送一个ICMP时间戳请求,如果得到应答的话就可以视为B主机在线。当然,其实数据包内容并不重要,重要的是是否收到了回应。

3、地址掩码请求和应答ICMP地址掩码请求由源主机发送,用于无盘系统在引导过程中获取自己的子网掩码。

Nmap通过ICMP响应请求和应答进行主机发现

使用Nmap的选项-PE就可以实现ICMP协议的主机发现。这个过程实质上和ping是一样的

Nmap -sn -PE 60.2.22.35

通过ICMP时间戳请求和应答进行主机发现

使用Nmap的选项-PP就可以实现ICMP协议的时间戳主机发现

Nmap -sn -PP 60.2.22.35

通过ICMP地址掩码请求和应答进行主机发现

使用Nmap的选项-PM可以实现ICMP协议的地址掩码主机发现

nmap -PM 211.81.200.8

4.基于TCP协议的活跃主机发现技术

在Nmap中常用的TCP协议扫描方式有两种,分别是TCP SYN扫描和TCP ACK扫描,这两种扫描方式其实都是利用TCP的三次握手实现的。

TCP SYN扫描

目标主机在收到Nmap所发送的SYN数据包之后,会认为Nmap所在主机想要和自己的一个端口建立连接,如果这个端口是开放的,目标主机就会按照TCP三次握手的规定,发回一个SYN/ACK数据包,表示同意建立连接。如果这个端口是关闭的,目标主机就会拒绝这次连接,向Nmap所在主机发送一个RST数据包

在这里插入图片描述

在发出SYN数据包之后,只要收到数据包,无论是SYN/ACK数据包还是RST数据包,都意味着目标主机是活跃的。如果没有收到任何数据包,就意味着目标主机不在线

在Nmap中可以使用-PS参数来实现这种扫描

Nmap -sn -PS 60.2.22.35

Nmap所在主机在收到这个数据包之后,并不会真的和目标主机建立连接,因为目的只是判断目标主机是否为活跃主机,因此需要结束这次连接,TCP协议中结束连接的方法就是向目标发送一个RST数据包

TCP ACK扫描

实际上它和SYN扫描相当相似,不同之处只在于Nmap发送的数据包中使用TCP/ACK标志位,而不是SYN标志位

Nmap直接向目标主机发送一个TCP/ACK数据包,目标主机显然无法清楚这是怎么回事,当然也不可能成功建立TCP连接,因此只能向Nmap所在主机发送一个RST标志位的数据包,表示无法建立这个TCP连接

在这里插入图片描述

如果需要对目标主机采用这种扫描方式,可以使用如下命令

Nmap -sn -PA 60.2.22.35

在Nmap发出数据包之后,并没有收到任何应答,这时存在两种可能

  • 一种是这个数据包被对方的安全机制过滤掉了,因为目标根本没有收到这个数据包
  • 另一种就是目标主机并非活跃主机

Nmap通常会按照第二种情况进行判断,也就是给出一个错误的结论:目标并非活跃主机


5.基于UDP协议的活跃主机发现技术

当一个UDP端口收到一个UDP数据包时,如果它是关闭的,就会给源端发回一个ICMP端口不可达数据包;如果它是开放的,就会忽略这个数据包,也就是将它丢弃而不返回任何信息

这样做的优点就是可以完成对UDP端口的探测,而缺点为扫描结果的可靠性比较低。因为当发出一个UDP数据包而没有收到任何的应答时,有可能因为这个UDP端口是开放的,也有可能是因为这个数据包在传输过程中丢失了。另外,扫描的速度很慢。原因是在RFC1812中对ICMP错误报文的生成速度做出了限制。例如Linux就将ICMP报文的生成速度限制为每4秒产生80个,当超出这个限制的时候,还要暂停1/4秒

使用Nmap的选项-PU就可以实现UDP协议的主机发现

Nmap -sn -PU 60.2.22.35

TCP需要扫描目标主机开放的端口,而UDP需要扫描的是目标主机关闭的端口。在扫描的过程中,需要避开那些常用的UDP协议端口,例如DNS(端口53)、SNMP(161)。因此在扫描的时候,最合适的做法就是选择一个值比较大的端口,例如35462


6.基于SCTP协议的活跃主机发现技术

SCTP协议与TCP完成的任务是相同的。但两者之间却存在着很大的不同之处

  • TCP协议一般是用于单地址连接的,而SCTP却可以用于多地址连接
  • TCP协议是基于字节流的,SCTP是基于消息流的。TCP只能支持一个流,而SCTP连接同时可以支持多个流
  • TCP连接的建立是通过三次握手实现的,而SCTP是通过一种4次握手的机制实现的,这种机制可以有效避免攻击的产生

在SCTP中,客户端使用一个INIT报文发起一个连接,服务器端使用一个INIT-ACK报文进行应答,其中就包括了cookie(标识这个连接的唯一上下文)。然后客户端使用一个COOKIE-ECHO报文进行响应,其中包含了服务器端所发送的cookie。服务器端要为这个连接分配资源,并通过向客户端发送一个COOKIE-ACK报文对其进行响应

使用Nmap的选项-PY就可以向目标主机发送一个SCTP INIT数据包

Nmap -sn -PY 60.2.22.35

7.主机发现技术的分析

Nmap中提供了--packet-trace选项,通过它就可以观察Nmap发出了哪些数据包,收到了哪些数据包,有了这个研究方法,可以更深入地理解Nmap的运行原理

Nmap在进行主机发现的时候,无论你指定了何种方式,Nmap都会先判断一下目标主机与自己是否在同一子网中,如果在同一子网中,Nmap直接使用ARP协议扫描的方式,而不会使用你所指定的方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/628758.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

继电保护名词解释三

第三章:电网的相间电流、电压保护和方向性相间电流、电压保护 1. 瞬时电流速断保护:对于仅反应于电流增大而瞬时动作的电流保护。 2. 保护装置的起动电流:能够使保护装置起动的最小电流值。 3. 系统最大运行方式:通过保护装置的…

了解服务级别协议(SLA)在 ITSM 中的重要性

什么是服务级别协议 根据ITIL 4,SLA是服务提供商和客户之间的书面协议,用于确定所需的服务和预期的服务水平。这些协议可以是正式的,也可以是非正式的。 在 ITSM 的上下文中,SLA 有助于设置和管理最终用户在提出请求时的期望 或…

如何导出Axure原型设计中的图片?零基础入门教程

Axure 是一款广为人知的原型设计工具,特别适用于新手产品经理或产品设计初学者。然而,如果用户想要在浏览器中预览 Axure 原型图,需要安装插件才能实现。而安装完 Axure RP Chrome 插件后,还需要在扩展程序中选择 "允许访问文…

类和对象【5】日期类的实现

全文目录 引言实现日期类概述默认成员函数构造函数析构函数拷贝构造赋值重载 功能运算符重载日期间的比较日期与天数日期-与-天数日期前置与后置日期前置- -与后置- -日期 - 日期 输入输出重载(友元) 代码总览头文件源文件main函数 总结 引言 类和对象1…

详解Java异常和异常面试题(上)

1.异常的体系结构 2.从程序执行过程,看编译时异常和运行时异常 编译时异常:执行javac.exe命名时,可能出现的异常 运行时异常:执行java.exe命名时,出现的异常 1.运行时异常  是指编译器不要求强制处置的异常。一般是…

网络安全:信息收集专总结【社会工程学】

前言 俗话说“渗透的本质也就是信息收集”,信息收集的深度,直接关系到渗透测试的成败,打好信息收集这一基础可以让测试者选择合适和准确的渗透测试攻击方式,缩短渗透测试的时间。 一、思维导图 二、GoogleHacking 1、介绍 利用…

HVV常问的Web漏洞(护网蓝初面试干货)

目录 1、SQL注入 (1)原理 (2)分类 (3)防御 2、XSS (1)原理 (2)分类 3、中间件(解析漏洞) (1)IIS6.X …

【AI实战】开源大语言模型LLMs汇总

【AI实战】开源大语言模型LLM汇总 大语言模型开源大语言模型1、LLaMA2、ChatGLM - 6B3、Alpaca4、PandaLLM5、GTP4ALL6、DoctorGLM (MedicalGPT-zh v2)7、MedicalGPT-zh v18、Cornucopia-LLaMA-Fin-Chinese9、minGPT10、InstructGLM11、FastChat12、Luot…

在线原型设计工具推荐

原型设计是每个产品经理必备的基本技能。 本文从即时设计原型设计的步骤开始,帮助您快速使用即时设计制作高还原度、丰富互动的产品原型。 利用即时设计进行原型设计的优势 快速启动原型设计工作 借助即时设计内置设计系统和社区资源,包括大量原型设…

Hive执行计划之什么是hiveSQL向量化模式及优化详解

目录 文章目录 1.什么是hive向量化模式2.Hive向量化模式支持的使用场景2.1 hive向量化模式使用前置条件2.2 向量模式支持的数据类型2.3 向量化模式支持的函数 3.如何查看hiveSQL向量化运行信息3.1 explain vectorization only只查询向量化描述信息内容3.2 explain vectorizati…

javaScript蓝桥杯---JSON 生成器

目录 一、介绍二、准备三、目标四、代码五、完成 一、介绍 JSON 已经是大家必须掌握的知识点,JSON 数据格式为前后端通信带来了很大的便利。在开发中,前端开发工程师可以借助于 JSON 生成器快速构建一个 JSON 用来模拟数据。 本题请你开发一个简易的 J…

chatgpt赋能python:Python快速安装库

Python快速安装库 Python作为一种功能强大且易于学习的编程语言,已经成为许多开发人员的首选。在Python中,库是重要的一部分,它们提供了各种功能和工具来简化开发过程。安装这些库的过程可能会比较繁琐,但我们可以通过一些简单的…

PHP的学习--Traits新特性

自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。 Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法集。Traits 和类组合的…

博客系统测试用例设计之自动化测试

测试用例设计之自动化测试 🌷 一 测试用例设计🌺 1 功能测试🌸 (1)登录功能🌸 (2)列表页功能🌸 (3)编辑博客功能🌸 (4&…

大厂设计师都在用的9个灵感工具

每一件伟大的设计作品都离不开设计师灵感的爆发。设计师有很多灵感来源,比如精美的摄影图片、酷炫的网站设计、APP的特色功能、友好的用户体验动画,或者一篇文章。 设计师每天都需要收集灵感,把灵感收集当成日常生活。在这篇文章中&#xff…

自动化测试工具比较:Selenium vs. Cypress

简介 Selenium是一个广泛应用的测试自动化工具,支持多种编程语言和浏览器。它使用WebDriver协议与浏览器进行通信,可以模拟用户在浏览器中的交互行为。Cypress是一个相对较新的测试自动化工具,它专注于现代Web应用程序的测试,并提…

LarkXR知识库 | 开发者社区FAQ合集(二)

LarkXR是一套基于GPU云化、图形容器、音视频实时编解码、网络传输优化等核心技术的通用型实时云渲染解决方案,帮助XR领域企业级用户及开发者快速搭建XR应用上云通道,使其在各类智能终端上流畅的运行、使用及传播。 平行云开发者社区上线以来&#xff0c…

Git基本知识

Git基本知识 1、Git 资料参考 Git 官网:https://book.git-scm.com/ Git 完整命令手册地址:http://git-scm.com/docs Git 中文文档:https://git-scm.com/book/zh/v2 2、Git安装 Git 各平台安装包下载地址为: http://git-scm…

F407标准库之定时器触发AD转换

关于ADC转换,正点原子的标准库开发中讲的是:软件触发一次转换,然后获取一个数据,没提及外部触发,也没提及ADC中断。 如果要多次读取数据,可以通过循环延时来实现。 这种情况就是通过多次调用,轮…

中国电子学会2023年05月份青少年软件编程Scratch图形化等级考试试卷三级真题(含答案)

2023-05 Scratch三级真题 分数:100 题数:38 测试时长:60min 一、单选题(共25题,共50分) 1. 关于变量,下列描述错误的是?(A )(2分) A.只能建一个变量 …