利用 Flash 远程检测客户端安装的杀软
本文将提供一种检测用户已安装的杀软的可能的方法。如果我们想对用户发起攻击,那么获取该用户已安装的杀软信息是非常有用的。
本文所提供的方法主要基于以下两点:
1.现在的主流AV在检测恶意软件时会进行网络流量的分析。
通常情况下,http 和 smtp/pop3/imap 这类协议已经被分析了。然而,随着 TLS 加密传输越来越被广泛的使用,因此,杀软要分析被加密的网络传输信息,就需要针对用户的应用程序和远程服务器执行类似中间人攻击(MITM)的行为。为了绕过证书链的检测,杀软需要安装它自己的根证书到用户电脑上。之后,对加密的网络传输信息进行拦截,解密和分析。
如下图所示:
2. Flash 支持原始的TCP套接字。
事实上,内嵌在浏览器网页中的swf文件即Flash 可以接受或发送任意TCP数据包到一个远程服务器的任何一个端口。但是为了安全起见,Flash socket 也支持跨域策略。如果一个Flash想要通过 socket 连接到一台服务器时,它会连接远程服务器的 843 端口并且发送一个请求,这个请求的目的是获取 跨域策略对应的xml文件,即crossdomain.xml也就是我们所说的“主策略文件”。这个xml文件包含了安全策略的具体信息,比如:哪些域名才能连接该服务器的哪些端口等等。
利用以上两点,就可以产生奇妙的结果。当我们利用一个Flash文件发起TLS连接,连接请求到远程服务器的指定端口(如:443,587等等),之后杀软将会拦截该请求。因此,Flash就会接受到一个由杀软生成的TLS证书,那么,通过根证书的名称就可以判断出用户安装了何种杀软。
整个攻击流程如下:
0) 用户访问我们的网站,用户的浏览器加载了网站中的恶意swf文件。
1)Flash通过socket连接我们的服务器的843端口请求crossdomain.xml文件的内容并获取请求权限。
2)Flash连接到我们的服务器的一个端口(如443,465等等)并且发送了一个“Client Hello”的TLS数据包。
3)服务器发送“Server Hello”的TLS响应数据包,该数据包携带有服务器的证书信息。
4)杀软拦截了此次传输,生成了新的证书并且利用杀软自己的根证书进行了签名。
5)Flash接收到了上一步中(已经被杀软处理过)的TLS数据包,之后再发送给我们的服务器。
6)通过解析TLS数据包获取根证书的名称,名称中包含了杀软的名称。
我创建了一个POC (https://github.com/GrrrDog/FlashAV)可能离实际的攻击效果相差很远,POC包含了一个特定的Flash和一个Python编写的 Socket Server。swf 发送原始的TLS请求(SSLv3),并且发送被杀软处理过的响应数据包到Python Socket Server。Python Socket Server 被用于解析数据包的证书名称以及构建crossdomain.xml文件内容。
我最初利用 Avast 杀软进行了测试,IE 和 Chrome 可以测试成功,但是Firefox却不行,在火狐浏览器中 Avast 并未对Flash连接443端口的请求做拦截。但是,在火狐浏览器中的Flash连接远程服务器的465或者587,993等端口时杀软则会拦截并且也能成功获取到用户安装的杀软名称。
之后我测试了卡巴斯基,但是并没有成功,卡巴斯基虽然会对浏览器的请求做拦截,但是并未拦截Flash的连接请求。
本文转自d1net(转载)
利用 Flash 远程检测客户端安装的杀软相关推荐
- 利用RIS远程安装Windows系统
目前常见的Windows系统安装方式通常都是直接利用Windows系统启动安装光盘进行Setup式一步步安装,或者将安装文件复制到硬盘上在DOS下运行执行Winnt来安装,无论用哪种方法都须用到Win ...
- NSIS脚本检测和安装Adobe Flash Player 插件
1. 检测当前设备是否安装了Flash插件 /******************************* 检查设备是否安装Flash插件 ** 定义函数块,用于检测设备注册表是否存在 ****** ...
- 浏览器检测是否安装flash插件,若没有安装,则弹出安装提示
说白了其实就是在html中前途flash的使用代码 <!-- html嵌入flash,检测浏览器是否安装flash插件,并提示安装.--> <object type=& ...
- linux远程日志rsyslog服务端和客户端安装(亲测)--自定义接收日志格式
linux远程日志rsyslog服务端和客户端安装 用rsyslog的缘由: 1.防止系统崩溃无法获取系统日志分享崩溃原因,用rsyslog可以把日志传输到远程的日志服务器上 2.使用rsyslo ...
- 检测客户端是否安装 Silverlight 插件和判断IE是否安装或支持Silverlight(限IE)
1.检测客户端是否安装 Silverlight 插件 <script type="text/javascript"> function CheckSilverl ...
- Windows 远程控制(经典IPC$入侵、psexec类工具、利用WMI远程入侵、PsRemoting远程命令执行、使用wmic命令远程执行)
一.经典IPC$入侵 利用ipc$和默认共享入侵远程电脑的过程 1. C:\>net use \\127.0.0.1\IPC$ "密码" /user:"用户名&qu ...
- SCCM2007客户端安装
在前面的两篇文章中,试验SCCM主站点的安装与主站点的配置,今天试验如何在SMS的站点内发现被管理的客户机以及给这些客户机安装客户端软件.客户机是SCCM服务器管理的最重要的资源,在站点内发现客户机是 ...
- 03-STM32+BC26丨260Y远程升级篇(自建物联网平台)-功能测试-STM32+BC26丨260Y实现利用http远程更新STM32程序(单片机程序检查更新)
说明 这节测试一下STM32+BC26丨260Y实现利用http远程更新STM32程序 提供了BC26 和 BC260Y两份程序 两份程序代码是一样的,只有小小个别的差别 这节以STM32+BC260 ...
- 利用XRDP远程登陆linux系统
利用XRDP远程登陆linux系统 一般情况下我们用ssh客户端远程登陆inux系统,至于图形界面下的linux远程登陆工具,我们一般都会想到vnc,但它的安全性不够,在这里,我将介绍XRDP的安 ...
最新文章
- 使用 Angular 打造微前端架构的 ToB 企业级应用
- 施一公:优秀博士如何养成(全文) 清华大学演讲
- Please copy/symlink the 'missing image' image at xxx
- [CSA49G][XSY3315] Bunny on Number Line (DP)
- 信息学奥赛一本通 1021:打印字符 | OpenJudge NOI 1.2 08
- ubuntu换系统下载路径源
- 【路径规划】基于matlab粒子群和遗传算法求解机器人栅格地图避障路径规划问题【含Matlab源码 202期】
- 程序人生-Hello‘sP2P
- 星淘惠告诉你跨境平台那么多,凭什么要选亚马逊?
- 【Android】虚拟环绕声
- Android aosp10,AOSP Android10 hook dlsym
- 字符串和转义字符的知识和应用
- 抓取chrome所有版本密码
- Wiremock的使用
- 5G上下行传输方案及资源块映射
- 记录一次Linux下MySQL中文乱码,没有my.cnf
- 极简Vue3教程--Pinia状态管理
- nginx批处理(winds操作系统)
- 【2022黑马程序员】SQL优化
- 备忘录app能否治愈拖延症?
热门文章
- [BUUCTF-pwn]——jarvisoj_fm
- 21.3.3 原子性与易变性 21.3.4 原子类
- mysql int 补零_mysql int(11)字段左边自动补零了
- struts2 去掉或修改后缀名
- 资产支持证券(Asset-Backed Security)
- inkscape 无法打开文档属性
- Java四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor...
- [恢]hdu 1865
- 基于灰度变换的图像增强
- Python 的字符串转int