haoyu007 发表于 2016-11-24 08:28

简单方法检测远端用户的反病毒软件

本帖最后由 haoyu007 于 2016-11-24 08:33 编辑

我常使用的操作系统是 Windows7,为了确保更安全,我安装了卡巴斯基互联网安全防病毒软件。一天我在一个 Web 页面上看到了一段非常有趣的代码,在我看来它不该出现在页面上。http://www.hackbase.com/data/attachment/portal/201611/23/qH238pjS2Z99ni80lP8823.png.thumb.jpg为什么 Facebook 会使用卡巴斯基网站的 js 代码?我立刻意识到是我的反病毒软件做了 MITM,在网页上注入代码来跟踪页面的活动。在客户端计算机上存在任何的反病毒软件的话,包括 KIS,为什么不创建一个特殊的页面来监视 Javascript 的代码呢?创建服务器的第一个页面 iframe.html<<!DOCTYPE html><html lang="en"><head/>      <img src=x />    <script type="text/javascript" /></html>随后创建第二个页面 index.html<!DOCTYPE html><html><head><title>RemotelyAV detection</title></head><body><iframe style="width:10px; height:10px; display:block; visibility:show" id="frmin" src="/iframe.html"></iframe><button onclick="myFunction()">CheckAV</button><script>function myFunction() {var frm = document.getElementById("frmin");ka = frm.contentDocument.getElementsByTagName('html').outerHTML;if (ka.indexOf("kasperskylab_antibanner") !== -1){      alert("AV name is Kaspersky");}}</script></body></html>当我们打开 index.html 页面时,它将会加载 iframe.html 并注入 js 代码,在这个图片中我们可以看到更改的 iframe 页代码http://www.hackbase.com/data/attachment/portal/201611/23/zSDSKD2OPePem2SEYE32GM.pngKIS 反病毒软件需要从 iframe.html 中读取代码并分析字符串,如果页面有 kasperskylab_antibanner 我们就可以说客户端计算机已经安装了卡巴斯基反病毒软件。我想看看这种方法对于其他反病毒软件的检出情况,是只能检出卡巴斯基还是其他的也可以。接下来对 Avira、Norton、DrWeb 反病毒软件进行检测,如果有人想继续研究,我很高兴听到研究的结果。Avira、Norton、DrWeb 和 Chrome 搭配进行检测,甚至还要安装插件来让反病毒软件可以注入特定数据到页面以完成对页面的检测。Dr.WebDrWeb Security Space 11.0http://www.hackbase.com/data/attachment/portal/201611/23/OgaVatnXN7xRD728dI3V2a.pngChrome 扩展的名字:https://chrome.google.com/webstore/detail/drweb-anti-virus-link-che/aleggpabliehgbeagmfhnodcijcmbonb?hl=en-US)]Dr.Web Anti-Virus Link Checker Extension URL在 index.html 中注入下列代码:http://www.hackbase.com/data/attachment/portal/201611/23/MORCFlAARCAN5cRrnqL7rX.png.thumb.jpg使用以下简单代码就可以检测出客户端是否安装了 DrWeb<script>if (document.getElementsByClassName('drweb_btn').length > 0){      alert("AV name is DrWeb");}</script>##Avira当你安装了 Avira antivirus Pro 时,直接就给你安装了两个扩展:Avira Browser Safety 和 Avira Save Search Plushttp://www.hackbase.com/data/attachment/portal/201611/23/B8HkFd2Q983N02Pqzk9pZ3.png.thumb.jpgAvira 会注入下列代码http://www.hackbase.com/data/attachment/portal/201611/23/zgDQxGJ13gSxdpW5xjydXx.png.thumb.jpg如下简单代码就可以检测出 Aviravar AV = document.getElementById("abs-top-frame")if (AV!==null){if (AV.outerHTML.indexOf('/html/top.html')>=0 & AV.outerHTML.indexOf('chrome-extension://')>=0){    alert("AV name is Avira");}}Norton诺顿会像 Avira 一样安装两个插件http://www.hackbase.com/data/attachment/portal/201611/23/S0Fi9I4wywUt03iBE0G0Fi.png.thumb.jpg会注入如下代码http://www.hackbase.com/data/attachment/portal/201611/23/chL69ASrsUa5U496Jp55HJ.png通过下面的代码就可以检测出 Nortonvar NAV = document.getElementById('coFrameDiv');if ( NAV !== null){    var nort = NAV.outerHTML;    if (nort.indexOf('coToolbarFrame')>=0 & nort.indexOf('/toolbar/placeholder.html')>=0 & nort.indexOf('chrome-extension://')>=0 )    {      alert("AV name is Norton");    }}结论1. 这种方法并不能保证百分之百检出反病毒软件,因为用户可以禁用安装的 Chrome 扩展。2. 这篇文章的灵感主要来自于远程检测用户反病毒软件。3. 相关代码可以在 GitHub 上找到。

tomcath 发表于 2016-12-1 20:05

感谢楼主分享,我也是用卡巴斯基,之前看网页源代码的时候也发现了,不过没像你这样深入研究

hlxdj 发表于 2016-11-24 08:41

不懂,向你学习吧~

Frustrate 发表于 2016-11-24 08:42

感谢楼主分享学习一下

磨人的小妖精 发表于 2016-11-24 08:43

好高端啊

palard 发表于 2016-11-24 08:45

厉害了。

任驰骋 发表于 2016-11-24 08:52

反正我什么都不懂,你说的都是对的

等了快半年 发表于 2016-11-24 09:00

看不懂,   你说的都对。

66666688888888 发表于 2016-11-24 09:16

进来学习一下,感谢楼主

ghvmy12 发表于 2016-11-24 09:22

有点意思{:301_1001:}

小白学习中 发表于 2016-11-24 13:34

666666的飞起。
页: [1] 2
查看完整版本: 简单方法检测远端用户的反病毒软件