当前位置: 首页 > article >正文

利用空闲主机进行Nmap隐匿扫描:IP伪造与空闲扫描技术

IP伪造与空闲扫描技术

在网络安全领域,扫描和识别目标主机的开放端口是攻击者获取目标信息的重要手段。传统的扫描方法可能会暴露扫描者的真实IP地址,从而引起目标主机的警觉。然而,IP地址伪造是一种巧妙的方式,可以帮助攻击者在扫描过程中保持隐蔽性,避免被目标发现。然而,IP伪造技术并非在所有网络设置下都能有效运作,它依赖于攻击者能够监控网络流量,并且仅在特定环境下才有实际作用。考虑到这些限制,IP地址伪造的使用场景并不多,但我们可以通过一种“空闲扫描”技术(也叫“僵尸扫描”)对其进行升级。

1. 空闲扫描(Idle Scan)的原理

空闲扫描是一种巧妙的技术,它利用网络中一个处于空闲状态的主机来执行扫描操作,而不会暴露攻击者的真实IP地址。简单来说,空闲扫描依赖于一个处于空闲状态且已连接到网络的主机(通常被称为“僵尸”主机),通过伪造源IP地址,使得所有扫描请求看起来像是来自空闲主机。

Nmap(网络映射工具)就可以利用这种空闲扫描技术来检测目标主机的端口是否开放。具体操作时,Nmap会使每一个探测请求看起来像是来自空闲主机,然后根据空闲主机是否收到响应来判断端口的状态。此过程通过检查IP头部的IP标识符(IP ID)来实现。

假设你想要对一个目标进行空闲扫描,可以使用如下Nmap命令:nmap -sI ZOMBIE_IP 10.10.17.111,其中,ZOMBIE_IP是空闲主机的IP地址,10.10.17.111是目标主机的IP地址。

2. 空闲扫描的具体操作步骤

空闲扫描的工作过程包含以下三个步骤,以确定目标端口的开放状态:

  1. 触发空闲主机响应:首先,攻击者通过向空闲主机发送请求,记录下空闲主机当前的IP ID(IP标识符)。

  2. 向目标主机发送SYN包:然后,攻击者向目标主机的某个TCP端口发送一个SYN包,但该包的源IP被伪装成空闲主机的IP地址。目标主机根据该SYN包的状态作出响应。

  3. 再次触发空闲主机响应:最后,攻击者再次触发空闲主机响应,比较空闲主机新的IP ID与之前记录的IP ID,来判断目标端口的状态。

3. 示例分析:通过空闲扫描确定端口状态

为了更好地理解空闲扫描,我们可以通过以下图示来说明:

假设攻击者正在对一台空闲的设备(例如一台多功能打印机)进行扫描。首先,攻击者会向空闲设备发送SYN/ACK包,并收到空闲设备回应的RST包,这个RST包的IP ID会递增。

接下来,攻击者会向目标主机的某个TCP端口发送一个SYN包,但该包的源IP是空闲设备的IP地址。这时,可能出现三种情况:

  • 情况一:目标端口关闭。目标主机回应空闲主机一个RST包,但空闲主机并未做出响应,因此它的IP ID不会递增。
    在这里插入图片描述

  • 情况二:目标端口开放。目标主机回应空闲主机一个SYN/ACK包,空闲主机会对这个意外的SYN/ACK包做出响应,发送一个RST包,这样空闲主机的IP ID会递增。
    在这里插入图片描述

  • 情况三:目标主机由于防火墙规则等原因不响应任何数据包。在这种情况下,空闲主机的IP ID与情况一相同,不会递增。

在这里插入图片描述

在第三步,攻击者再次向空闲主机发送SYN/ACK包,空闲主机响应并发送一个RST包,导致空闲主机的IP ID再次递增。然后,攻击者将第一步和第三步中空闲主机的IP ID进行对比:

  • 如果IP ID的差值为1,则表示目标端口是关闭或被过滤。
  • 如果IP ID的差值为2,则表示目标端口是开放的。

4. 小结:空闲扫描的优势与局限

空闲扫描技术的一个重要优势是,它允许攻击者隐匿地扫描目标主机,而无需直接暴露自己的真实IP地址。然而,空闲扫描的成功依赖于网络中必须存在一个空闲主机。如果该空闲主机处于繁忙状态或频繁发送数据包,所有返回的IP ID值将变得毫无意义,从而影响扫描结果的准确性。

总的来说,空闲扫描技术虽然十分巧妙且有助于隐匿扫描,但它的使用环境相对较为严格,需要满足一定的网络条件。对于那些希望通过扫描端口来收集信息的攻击者来说,了解并掌握空闲扫描无疑是一项值得学习的技术。


http://www.kler.cn/a/422239.html

相关文章:

  • 【机器学习】—Transformers的扩展应用:从NLP到多领域突破
  • mvc命令
  • MATLAB —— 机械臂工作空间,可达性分析
  • Nginx学习-安装以及基本的使用
  • redis核心命令全局命令 + redis 常见的数据结构 + redis单线程模型
  • 电脑关机的趣味小游戏——system函数、strcmp函数、goto语句的使用
  • GIT的使用方法以及汉化方法
  • 【JMX JVM监控】Prometheus读取Trino的JMX数据到Grafana展示
  • 杂7杂8学一点之PCI碰撞和混淆
  • uniapp 添加loading
  • 网络安全-使用HTTP动词篡改的认证旁路
  • 力扣35. 搜索插入位置
  • Web API基本认知
  • 系统--线程互斥
  • CTF-PWN: WEB_and_PWN [第一届“吾杯”网络安全技能大赛 Calculator] 赛后学习(不会)
  • 瑞芯微方案主板Linux修改系统串口波特率教程,触觉智能RK3562开发板演示
  • yarn install遇到问题处理
  • 【html网页页面007】html+css制作旅游主题内蒙古网页制作含注册表单(4页面附效果及源码)
  • Python入门(7)--高级函数特性详解
  • GPT vs Claude到底如何选?
  • 跑一下pyapp
  • 基于springboot在线租房和招聘平台源码和论文
  • GNU/Linux - make 60s介绍
  • vue引入并调用electron插件在网页报错Dynamic require of “electron“ is not supported
  • H3C OSPF实验
  • 大疆T100大载重吊运植保无人机技术详解