利用 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(转载)

时间: 2024-10-05 09:17:18

利用 Flash 远程检测客户端安装的杀软的相关文章

一种远程检测用户杀软的简单方法

本文讲的是一种远程检测用户杀软的简单方法,Windows7是我经常工作使用的操作系统,为了进一步保证安全性,我安装了卡巴斯基网络安全反病毒软件--KIS.有一天,我在一个网页中发现一段有趣的代码,然而这段代码本身并不应该出现在这样的网页中. 为什么 FaceBook 的网站嵌入了卡巴斯基站点的js文件?我马上意识到,我所安装的杀软(卡巴斯基)针对https进行了类似中间人攻击(MITM)的行为,并在当前活动的页面中注入了它自己的代码以便跟踪分析网页. 嗯--,为什么不创建一个特定的网页来监视那段

c#-C#怎么用代码检测客户端是否安装了asp.net

问题描述 C#怎么用代码检测客户端是否安装了asp.net C#怎么用代码检测客户端是否安装了asp.net,可以用类似根据注册表判断客户端是否安装了某软件一样吗? 解决方案 一般是插件,如果你限定了浏览器,如ie,可以js判断navigator.userAgent,安装过frameword会有.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E;类型

用Flash远程调用增强J2EE表示层

对Macromedia公司的Flash的远程调用使得Java开发者除了JSP(JavaServer Pages)和Swing之外又有了一种全新的方式来构建J2EE(Java 2 Platform, Enterprise Edition)应用. 本文调查了Flash远程调用,解释了为何它有如此作用,并且提供了一个如何实现的例子 在任何多层体系中选择表示层技术时,Java开发者通常有两种选择: JSP或者Swing/AWT(Abstract Windowing Tookit).借助JSP,开发者可以

高级:利用Flash制作精彩的迷宫游戏

高级 网页教学网:在以前的教程中我们讲解了利用Flash制作游戏的一些方法,比如碰撞的检测等,在这个教程中我们利用以前学的知识创建一个不错的迷宫游戏!该教程主要是Flash利用材质和遮照创建真实的小球动画的延续,利用创建好的小球滚动动画制作迷宫游戏. 在学习这个教程前请大家查看 利用材质和遮照创建真实的小球动画 教程.教程中所使用的背景请看:利用Photoshop Action打造精美的宇宙星空特效 在这篇教程中没有新的知识,就是利用一个舞台(地图),然后还有一个运动的小球实现的一个小的Flas

FlashObject详解:Flash的检测和嵌入Javascript脚本

javascript|object|脚本|详解 可能很多人并不太了解FlashObject,特意把官网翻译整理了下.(E文有限,如有错误,敬请指正.) 官方地址:http://blog.deconcept.com/flashobject/目前最新版本:FlashObject 1.3下载地址:http://blog.deconcept.com/flashobject/flashobject1-3.zip 特点:1.支持所有flash内置参数设置.且设置更简单方便.2.内嵌flash player升

如何使用远程安装服务在远程计算机上安装Windows 2003 Server 2

概要 本文分步介绍了如何使用"远程安装服务"(RIS) 在远程计算机上安装 Windows Server 2003. 您可以通过将 RIS 网络共享文件夹用作 Windows Server 2003 文件的源,使用 RIS 来远程设置基于 Microsoft Windows Server 2003 的新计算机.您可以在具有远程启动功能的客户端计算机上安装操作系统.客户端计算机会被连接到网络,然后使用具有"预启动执行环境"(PXE) 功能的网络适配器或远程启动盘启动它

利用向日葵远程控制软件实现远程局域网联机

利用向日葵远程控制软件实现远程局域网联机 玩游戏离不开好基友,一起联机趣味无穷,战略游戏更需要紧密配合.和基友们玩局域网对战游戏,一般都是使用浩方对战平台,但是玩久了却越来越不爽,不是广告太多,就是自动弹出很多东西,非常影响游戏流畅度,于是,一个虚拟局域网软件便是必须的了. 虽然很多专用软件如VNN等可以进行网联,但在校内网却无法实现,因为使用这些软件要联机,建立服务器的端口必须在外网,而校内网属于内网用户,又不可能去网络中心去做端口映射.如此下来,最后只剩下可实现虚拟网络的远程控制软件,虽然国

【转载】使用ubuntu12.04自带Remmina 远程桌面客户端远程登录

ubuntu12.04自带Remmina 远程桌面客户端 1.Remmina 远程桌面客户端 1)点击主按钮,在搜索中输入 remmina ,打开程序,或者依次点"主按钮.所有程序.过滤结果.互联网.Remmina 远程桌面客户端": 2)点工具栏上一个带加号的"新建"按钮g,出来连接对话框,默认是 RDP-远程桌面协议: 3)从上到下依次输入名称.选择 VNC-虚拟网络协议,输入服务器地址.用户名.密码,点"保存"可以保存这个连接,点"

FlashObject之Flash的检测和嵌入Javascript脚本_Flash As

其特点:1.支持所有flash内置参数设置.且设置更简单方便.2.内嵌flash player升级探测器,并提示升级.3.完全通过XHTML 1.0 Strict验证.4.可以解决IE升级对flash的影响,支持绝大部分浏览器版本. 使用方法:1.首先下载上面的flashobject.js文件,放到你的网页目录下.2.调用js文件,在<head></head>中加入:<script type="text/javascript" src="flas