活跃主机发现技术指南
活跃主机发现技术指南
- 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协议扫描的方式,而不会使用你所指定的方式。
相关文章:

活跃主机发现技术指南
活跃主机发现技术指南 1.活跃主机发现技术简介2.基于ARP协议的活跃主机发现技术3.基于ICMP协议的活跃主机发现技术4.基于TCP协议的活跃主机发现技术5.基于UDP协议的活跃主机发现技术6.基于SCTP协议的活跃主机发现技术7.主机发现技术的分析 1.活跃主机发现技术简介 在生活中有这…...

手机抓包fiddler配置及使用教程
本文基于Fiddler4讲解基本使用 fiddler抓包原理 注意:Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,这样就不会影响别的 程序。不过如果Fiddler非正常退出&…...

STM32单片机(四)第一节:OLED调试工具
❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…...
自用的一些网址,码住!
京东羚珑智能抠图网站https://ling.jd.com/live/fm#all:主要用于商品抠图,而且还有多种直播背景设计,非常方便。国外的免费抠图网站https://www.remove.bg/zh/upload:有一个魔法棒的设计,可以自己选择抠图的范围和形状…...

银行vr元宇宙全景虚拟展馆提供更加真实、立体、高效的数字资产交易场景
为了贯彻国家普惠金融政策,使金融如无惠及广大群体,宇宙技术在金融行业中的应用将进一步提升金融消费体验感觉和金融管理水平。打造元宇宙金融服务平台,构建虚实结构的金融服务世界,培育和管理好数字机器人员工队伍,提升金融业务各…...

C++ 泛型编程 类型萃取器的运用
C 泛型编程 类型萃取器的运用 一、C类型萃取器的基本概念与应用(Type Traits in C)1.1 类型萃取器的定义与作用(Definition and Role of Type Traits)1.2 类型萃取器的分类与特性(Classification and Characteristics …...

C++ String类(上篇)
绪论 放弃时间的人,时间也会放弃他。——莎士比亚 ; 本篇章是关于string类内一些函数的介绍以及使用方法,都是我们编程必须掌握的基础! 全文共7000字左右. 话不多说安全带系好,发车啦(建议电脑观看&…...
nested exception is java.lang.NoClassDefFoundError
出现这种问题,一般都是jar有问题,排查是哪个jar包,重新导入maven仓库一下就行了,有的时候需要把原来仓库里的包删掉,重新打包,有的时候要切换分支,到其他分支打包。 打包时候没有打进去…...
科普:python怎么使用Pyinstaller模块打包成可执行文件
目录 1. 使用conda创建虚拟环境2. 列出所有虚拟环境查看是否创建成功3. 激活虚拟环境4. 安装Pyinstaller模块5. Pyinstaller模块常用参数6. 例子:Windows打包成单个文件并可使用命令行窗口并自定义文件logo 1. 使用conda创建虚拟环境 创建个虚拟环境来打包…...
企业级应用高性能可扩展架构设计
前言 马上又要618了,每年到了这个时候,商家就开始促销,价格低会吸引来超多用户,对系统来说就是更多的流量,技术上如何确保网站稳定运行,且不被超卖,同时还要让用户有个良好的购物体验。 12306…...

【安全架构】
概念 安全是产品的属性,安全的目标是保障产品里信息资产的保密性(Confidentiality)、完整性(Integrity)和可用性(Availability),简记为CIA。 保密性: 保障信息资产不被未…...

RabbitMq-高级
参考:https://blog.csdn.net/dingd1234/article/details/125032383 1 TTL TTL QUEUE 声明args TTL MESSAGE postmessage中设置 区别:过期消息会直接删除消息,过期队列若配置死信队列会移到死信队列 ps:同时配置两个已小的为准 2…...

iOS App的打包和上架流程
转载:iOS App的打包和上架流程 - 掘金 1. 创建账号 苹果开发者账号几种开发者账号类型 个人开发者账号 费用:99 美元/年(688.00元)协作人数:仅限开发者自己不需要填写公司的邓百氏编码( D-U-N-S Number…...
Net6中遇到的一个很奇葩的问题
先来看一段代码,是控制台应用程序 internal class Program{static void Main(string[] args){Test().Wait();}private static async Task Test(){await Task.Run(() >{Debug.WriteLine("线程内输出");});Debug.WriteLine("线程外输出");}}执…...
2940. 花坛的最小改变次数
Powered by:NEFU AB-IN Link 文章目录 2940. 花坛的最小改变次数题意思路代码 2940. 花坛的最小改变次数 题意 略 思路 首先需要区间查询gcd,想到st表 其次思路,固定左端点,二分右端点,找gcd与区间长度相等的右端点,个…...
安装源代码 QT 4.8.7
在centos7.9.2009 (Core)操作系统上,安装qt 4.8.7 查看centos版本:cat /etc/centos-release 安装g:sudo yum install gcc gcc-c g版本查看(gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)):g -v 先安装…...

PINN学习与实验之拟合sin(x)
首先给出数学上的知识。 1. 2. 3. 其次给出PINN最基础的理解与应用说明。 1.PINN中的MLP多层感知机的作用? 答:目的是用来拟合出我们需要的那个 常微分方程,即函数逼近器。 2.PINN中物理信息的作用? 答:用于约束MLP反向…...

Java中进制转换的两种方法你知道吗?
目录 十进制转其他进制 其他进制转十进制 实战: A进制转B进制 关于大数运算可以参考躲不掉的高精度计算,蓝桥杯必考_高精度算法在哪些比赛考_无忧#的博客-CSDN博客 十进制转其他进制 使用 Integer.toString(int n,int radix) 方法,该方法…...

Qemu搭建ARM Vexpress开发环境
Qemu搭建ARM Vexpress开发环境 文章目录 Qemu搭建ARM Vexpress开发环境Qemu简介QEMU安装前的准备工作QEMU 安装的两种方式通过网络在线安装源码编译安装源码获取QEMU依赖库安装编译安装 命令选项qemu的标准选项qemu显示选项网络属性相关选项kvm的网络模型 Ubuntu 双网卡&#x…...

JMM如何实现volatile写/读的内存语义
内存屏障类型表 StoreLoad Barriers是一个“全能型”的屏障,它同时具有其他3个屏障的效果。现代的多处理器大多支持该屏障(其他类型的屏障不一定被所有处理器支持)。执行该屏障开销会很昂贵,因为当前处理器通常要把写缓冲区中的数…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
FTP(File Transfer Protocol)本身是一个基于 TCP 的协议,理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况,主要原因包括: ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...

Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
前言:本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中,跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南,你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案,并结合内网…...