首页 > 业界动态 > 正文

简单方法检测远端用户的反病毒软件
2016-11-24 14:11:00   来源:来源:FreeBuf   评论:0 点击:

我常使用的操作系统是 Windows7,为了确保更安全,我安装了卡巴斯基互联网安全防病毒软件。一天我在一个 Web 页面上看到了一段非常有趣的代码,在我看来它不该出现在页面上。

推广 | 令人窒息的奖品等你―2016最权威的全球开发者调研

我常使用的操作系统是 Windows7,为了确保更安全,我安装了卡巴斯基互联网安全防病毒软件。一天我在一个 Web 页面上看到了一段非常有趣的代码,在我看来它不该出现在页面上。

\

为什么 Facebook 会使用卡巴斯基网站的 js 代码?我立刻意识到是我的反病毒软件做了 MITM,在网页上注入代码来跟踪页面的活动。在客户端计算机上存在任何的反病毒软件的话,包括 KIS,为什么不创建一个特殊的页面来监视 Javascript 的代码呢?

创建服务器的第一个页面 iframe.html

  1. <!DOCTYPE html>  
  2. <html lang="en" 
  3. <head/>  
  4.         <img src=x /> 
  5.  
  6.     <script type="text/javascript" /> 
  7. </html> 

随后创建第二个页面 index.html

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <title>Remotely AV detection</title> 
  5. </head> 
  6. <body> 
  7. <iframe style="width:10px; height:10px; display:block; visibility:show" id="frmin" src="/iframe.html"></iframe> 
  8. <button onclick="myFunction()">Check AV</button> 
  9. <script> 
  10. function myFunction() { 
  11. var frm = document.getElementById("frmin"); 
  12. ka = frm.contentDocument.getElementsByTagName('html')[0].outerHTML; 
  13. if (ka.indexOf("kasperskylab_antibanner") !== -1) 
  14. alert("AV name is Kaspersky"); 
  15. </script> 
  16. </body> 
  17. </html> 

当我们打开 index.html 页面时,它将会加载 iframe.html 并注入 js 代码,在这个图片中我们可以看到更改的 iframe 页代码

\

KIS 反病毒软件需要从 iframe.html 中读取代码并分析字符串,如果页面有 kasperskylab_antibanner 我们就可以说客户端计算机已经安装了卡巴斯基反病毒软件。

我想看看这种方法对于其他反病毒软件的检出情况,是只能检出卡巴斯基还是其他的也可以。接下来对 Avira、Norton、DrWeb 反病毒软件进行检测,如果有人想继续研究,我很高兴听到研究的结果。

Avira、Norton、DrWeb 和 Chrome 搭配进行检测,甚至还要安装插件来让反病毒软件可以注入特定数据到页面以完成对页面的检测。

Dr.Web

DrWeb Security Space 11.0

\

Chrome 扩展的名字:Dr.Web Anti-Virus Link Checker Extension URL

在 index.html 中注入下列代码:

\

使用以下简单代码就可以检测出客户端是否安装了 DrWeb

  1. <script>  
  2. if (document.getElementsByClassName('drweb_btn').length > 0)  
  3.  
  4. alert("AV name is DrWeb");  
  5.  
  6. </script>  
  7. ##Avira 

当你安装了 Avira antivirus Pro 时,直接就给你安装了两个扩展:Avira Browser Safety 和 Avira Save Search Plus

\

Avira 会注入下列代码

\

如下简单代码就可以检测出 Avira

  1. var AV = document.getElementById("abs-top-frame"
  2. if (AV!==null
  3. if ( 
  4. AV.outerHTML.indexOf('/html/top.html')>=0 & AV.outerHTML.indexOf('chrome-extension://')>=0 
  5. alert("AV name is Avira"); 
  6. Norton 

诺顿会像 Avira 一样安装两个插件

\

会注入如下代码

\

通过下面的代码就可以检测出 Norton

  1. var NAV = document.getElementById('coFrameDiv');  
  2. if ( NAV !== null 
  3.  
  4. var nort = NAV.outerHTML;  
  5. if (nort.indexOf('coToolbarFrame')>=0 & nort.indexOf('/toolbar/placeholder.html')>=0 & nort.indexOf('chrome-extension://')>=0 )  
  6.  
  7. alert("AV name is Norton");  
  8.  

结论

1. 这种方法并不能保证百分之百检出反病毒软件,因为用户可以禁用安装的 Chrome 扩展。

2. 这篇文章的灵感主要来自于远程检测用户反病毒软件。

3. 相关代码可以在 GitHub 上找到。

【编辑推荐】

  1. 避免勒索软件威胁的十大技巧
  2. 由浅入深 恶意软件逃避检测的六个秘密之地
  3. Android N如何限制重置密码以遏制勒索软件
  4. 著名反恶意软件组织关闭博客网站 抗议 NSA 利用恶意软件攻击公共机构
  5. 专家解析:为什么要对勒索软件说不
【责任编辑:武晓燕 TEL:(010)68476606】

相关热词搜索:反病毒 软件 远端

上一篇:黑客心理学:社交工程中的四种情绪反应
下一篇:专栏

分享到: 收藏