一种WiFi物理隔离环境下的隐蔽远程控制方法与流程

文档序号:16900217发布日期:2019-02-19 17:54阅读:1190来源:国知局
一种WiFi物理隔离环境下的隐蔽远程控制方法与流程

本发明涉及一种远程控制计算机的方法,更具体说,它涉及一种在wifi物理隔离环境下,通过构建隐蔽信道来远程控制计算机的方法。



背景技术:

隐蔽远程控制技术作为一种秘密传输信息的机制,能够在不接触远程计算机的情况下秘密控制远程计算机,在国防、国安、情报等领域有着重要的作用。它主要的原理是通过构建隐蔽信道,将数据报作为通信载体,将指定数据嵌入在数据报文中,使指定数据在网络中秘密输出而不被发现,从而达到远程控制计算机的目的。

隐蔽远程控制技术的核心在于构建隐蔽信道。随着现代隐蔽信道技术持续发展,目前国内外主要从网络应用服务、网络协议和移动网络三个角度来构建隐蔽信道,例如:王娟等人提出了一种基于浏览器帮助对象构建网络隐蔽信道的方法;姬国珍等人实现了基于icmp数据包时间间隔的时分型隐蔽信道;yu-antan等人对lte视频流过故意丢弃视频分组来调制屏蔽信息,提出了一种基于volte的构建隐蔽定时信道的方法。

然而,虽然这些构建隐蔽信道的方法具有隐蔽性强、传输效果好、灵活性高等特点,但是在wifi物理隔离的条件下,这些隐蔽信道均无法正常的使用,这也导致了基于这些隐蔽信道的隐蔽远程控制技术在wifi物理隔离环境下无法正常使用。因此,发明一种可以在wifi物理隔离环境下进行远程控制的技术势在必行。



技术实现要素:

为了克服现有远程控制技术无法在wifi物理隔离环境下使用的不足,本发明提供一种稳定的、灵活的、通用的、能够在wifi物理隔离环境下使用的隐蔽远程控制方法。

本发明解决其技术问题所采用的技术方案为:

一种wifi物理隔离环境下的隐蔽远程控制方法,包括以下步骤:

步骤一,控制端及被控端初始化,建立隐蔽信道,即,被控端调用系统wifi模块资源,持续发送包含特定信息头的proberequest帧;控制端启动网络监听功能,持续监听是否收到含有指定信息头的proberequest帧;

步骤二,控制端收到proberequest帧后,根据用户指令,发送包含当前时间哈希值及用户远程控制命令的proberesponse帧,并等待被控端返回包含当前发送帧所携带的时间哈希值的确认信息proberequest帧。如果超过一定时间依旧未收到确认信息,则增加发包量重新发送;

步骤三,被控端在收到proberesponse帧后,解析帧内容,提取时间哈希值以及控制命令字段,并根据帧的时间哈希值判断该帧命令是否执行过,若未执行,则创建进程执行命令;之后将接下来发送的proberequest帧内所携带的时间哈希字段更新为最新一次执行命令所属proberesponse帧的时间哈希值,并持续发送,等待下一个命令。

作为优选:所述步骤二中,用户与控制端的交互可通过“-c”参数指定发送的远程控制命令,通过“-p”参数指定发包初始量,通过“-t”参数指定判定超时的时间值,通过“-h”参数查看帮助手册。

本发明的有益效果表现在:(1)与主流方法相比,本发明建立隐蔽信道的方法允许在未建立wifi连接的情况下建立隐蔽信道,消除了主流方法中需要建立wifi连接的限制。(2)本发明实现了在wifi物理隔离的情况下,控制端通过远程发送指令,使控制端无感知执行该指令。(3)本发明实现了命令在控制端与被控端之间的可靠传输,提高了稳定性。(4)本发明允许控制端与被控端一次启动多次使用,提高了灵活性。(5)本发明实现了常用的windows控制命令均可在被控端执行,具有较高的通用性。

附图说明

图1为wifi物理隔离环境下隐蔽信道模型图;

图2为指令传输帧格式图;

图3为被控端完成一次隐蔽远程控制流程图;

图4为控制端完成一次隐蔽远程控制流程图;

图5为probe帧通信消耗时间统计图;

图6为隐蔽远程执行命令效果统计图。

具体实施方式

下面结合实施例对本发明做进一步描述。下述实施例的说明只是用于帮助理解本发明。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

参照图1~图6,一种wifi物理隔离环境下的隐蔽远程控制方法,包括以下步骤:

步骤一,控制端及被控端初始化,建立隐蔽信道,即,被控端调用系统wifi模块资源,持续发送包含特定信息头的proberequest帧;控制端启动网络监听功能,持续监听是否收到含有指定信息头的proberequest帧;

步骤二,控制端收到proberequest帧后,根据用户指令,发送包含当前时间哈希值及用户远程控制命令的proberesponse帧,并等待被控端返回包含当前发送帧所携带的时间哈希值的确认信息proberequest帧。如果超过一定时间依旧未收到确认信息,则增加发包量重新发送;

步骤三,被控端在收到proberesponse帧后,解析帧内容,提取时间哈希值以及控制命令字段,并根据帧的时间哈希值判断该帧命令是否执行过,若未执行,则创建进程执行命令;之后将接下来发送的proberequest帧内所携带的时间哈希字段更新为最新一次执行命令所属proberesponse帧的时间哈希值,并持续发送,等待下一个命令。

如图1所示,控制端与被控端之间在wifi物理隔离的环境下,会利用proberequest帧和proberesponse帧进行通信。被控端首先主动发送携带特定信息头的proberequest帧,控制端收到后回复携带特定控制信息proberesponse帧,被控端收到后解析并执行,从而完成一次通信工作。之后重复上述过程,直至控制端或被控端一端结束进程,具有较高的灵活性。

如图2所示,控制端与被控端之间通信时probe帧主体所携带的冗余信息元素采用指令传输帧格式。在指令传输帧中,elementid部分的目的在于标识该冗余信息元素,其值可设置为无效信息元素类型id标识的任意值;length部分功能在于标识第三部分的长度;information部分用于携带具体的信息,根据功能的不同,该部分分为4个字段:前3个字节为特殊字段,用于标识该帧的作用为执行命令;之后的8个字节为哈希值字段,其目的在于可靠传输,proberesponse帧携带当前帧发送的时间hash值,proberequest帧携带最后一次执行命令所属的proberesponse帧的hash值;之后的240字节用于携带的具体命令信息;最后4个字节为保留字段,用于未来扩展及优化。

如图3所示,被控端完成一次通信包括如下步骤:

步骤一,被控端调用系统资源,查询系统网卡列表,获取当前网卡状态,确认系统网卡能够正常发送proberequest帧。

步骤二,被控端按指令传输帧格式将指定信息封装到冗余信息元素中,并发送proberequest帧。

步骤三,被控端调用系统资源,判断是否收到proberesponse帧,如果未收到,则间隔1秒钟后返回步骤一并执行。如果收到,则执行步骤四。

步骤四,被控端解析收到的proberesponse帧,校验其哈希值字段,判断该帧的命令是否已经被执行过。若已被执行,则不进行任何操作;若未被执行,则解析该帧携带的具体命令信息,创建新进程并执行,之后将该帧所携带的哈希值字段存入本地已执行命令列表,并将被控端未来将发送的proberequest帧的哈希值字段也更新为该值,从而向控制端发送确认消息,达到可靠传输的目的。

如图4所示,控制端完成一次通信包括如下步骤:

步骤一,控制端从io设备获取用户配置的超时时间、发包量等参数及控制命令信息,并将控制命令信息打包成proberesponse帧。

步骤二,控制端调用系统资源,启动网络监听功能,持续监听是否收到由被控端发送的携带特殊elementid信息头的proberequest帧。如果收到,表明被控端已被激活,则执行步骤三;如果未收到,则持续监听,等待被控端被激活。

步骤三,控制端根据用户输入的发包量参数及叠加量发送指定个数的probereponse帧。

步骤四,控制端继续启动网络监听功能,持续监听是否收到由被控端发送的携带特殊elementid信息头的proberequest帧。如果收到,则执行步骤五;如果未收到,则持续监听,若在用户设置的超时时间内未收到有效的proberequest帧,则发包量在上一次发送时的基础上增加50,并执行步骤三。

步骤五,控制端解析收到proberequest帧,查看该帧内哈希值字段所携带的内容是否与本次发送时帧所携带的哈希值相同,如果相同,表示控制端收到了来自被控端的确认执行信息,控制端结束此次通信;如果不同,则返回步骤四。

其中,所述步骤一进一步包括:用户可通过“-c”参数指定发送的远程控制命令;可通过“-p”参数指定发包初始量;可通过“-t”参数指定判定超时的时间值;可通过“-h”参数查看帮助手册。

如图5所示,proberequest帧通信消耗时间指的是从被控端发送至控制端解析完成所花费的时间,proberesponse帧通信消耗时间指的是从控制端发送至被控端执行完成命令所花费的时间。该图展示了在执行cal指令时在不同距离下probe帧通信所消耗的时间,可以看出,probe帧通信的最佳距离为25米以内,在该距离内,该方法具有较高的稳定性。

如图6所示,在wifi物理隔离条件下,通过该方法测试执行了共计15大类90种windows系统命令,经过测试表明,90种系统命令均可在被控端远程被执行,说明该方法具有较高的通用性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1