Web蠕虫是Web前端僵尸自行传播的方法。这种机制利用的是传统前端漏洞,例如XSS漏洞。

本文没有尝试实现僵尸节点(Web前端)和控制端的交互,这需要更复杂的JS代码,顺便提一下已经实现此类功能的BeEF XSS框架。
这个框架很流行,集成了很,甚至能够结合MSF使用。但是这些不在本文的探究范围之内。本文只对这个框架控制端和僵尸节点的交互进行演示。
Kali Linux系统中集成了这个工具,本文用Kali Linux虚拟机进行演示。
打开BeEF框架之后如图所示,不要关闭这个终端,等待程序加载完成后,一般情况下浏览器会弹出,如果没有弹出,打开浏览器手动输入终端中显示的UI URL。

默认的用户名和密码都是beef。登录成功后的页面如下:


点击红色圆圈中的Execute之后,将会在用户浏览器执行上面方框中输入的Javascript代码,给用户的浏览器弹出一个对话框,下图是实体机的Safari浏览器中的效果:

通过这种方式,就可以在用户的浏览器中执行控制端需要僵尸节点执行的代码。僵尸网络有兴趣的朋友可以去读一下BeEF框架中hook.js文件源代码,应该会有很多启发。
测试的思路是:植入恶意Javascript代码,批量对某网站发送100次XMLHttpRequest,此次尝试的对象是腾讯的网站,因为单个节点的100次请求肯定对腾讯服务器无影响。
攻击url为:,用户访问的url为:,测试代码见附录。
通过Wireshark和chrome浏览器network开发者工具对测试结果进行分析:
Wireshark抓到的tcp流:

详细查看Response:

Chrome:


可以看到,Wireshark抓到了Response是有资源数据的,但是Chrome中得到的只有服务器返回的状态信息,这是CORS机制在浏览器层次对于跨域资源做了限制。
但是,Wireshark抓包得到的数据可以证明服务器实实在在地对每个请求都做出了正常的响应。当这样的僵尸节点数目和Web Worker并发数目都增大到一定的等级,理论上就可以形成强大的DDOS攻击了。
HTML5时代的Web前端已经不再那么简单。支持HTML5的浏览器,给了僵尸网络足够的生存空间。
附录:测试代码(根据《Web前端黑客技术揭秘》示例代码修改)
var worker_loc= 'worker.js';
var workers = new Array();
var i = 0;
var noWorker = typeof Worker =="undefined" ? true : false;
var target = 'http://news.qq.com/photo.shtml'
if (!noWorker) {
try {
for(i = 0; i < 1; i++) {
workers[i] = new Worker(worker_loc);
workers[i].postMessage(target);
}
}
catch(e) {
//comment out in release
e = e + "";
if(e.indexOf("Worker is not enabled") != -1) {
noWorker = true;
}
}
}
当浏览器支持Web Worker的时候,就会根据代码循环建立Worker。利用new worker(worker_loc)方式,创建Worker对象,并利用Worker的postMessage方法向worker发送指令等数据。多个Worker可以实现并发。但是本例只建立了一个Worker。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-28052-2.html
还是不加理睬