在前面的总结,遇见多参数的传值,可以尝试wfuzz来查看是否存在隐藏参数或者检测LFI漏洞
找到目标机器的IP为192.168.1.110
使用nmap来扫描一下开放的端口以及服务
- 80端口http服务(敏感目录爆破,十大常规漏洞的检测,中间件解析漏洞)
- 111端口rpc服务 NFS网络文件共享(showmount -a ip来查看具体的文件)
我先使用showmount命令来查看一下 ,现在发现rpcbind服务,我一般都会尝试使用showmount -a命令
卒
并不能挂载到目标主机的NFS
打开目标网站,查看
我们提交一些随意的信息,来查看
利用get方式提交,多个参数,可以试试让他报错
注意观察脚注这个位置
在不断刷新的时候,脚注也是在不断变化,这里很有可能会存在LFI(文件包含)漏洞
我在后面继续添加一个参数名file值为/../../../../etc/passwd时,验证了这一点
这里就可以提供一个思路
- nmap的80端口信息是nginx
- nginx的日志位置为/var/log/nginx/accsess.log或者error.log
- 如果我们输入一句话木马之后,让日志记录,再利用日志进行命令执行的话就可以反弹shell
让日志记录一句话木马
这样,nginx的error(错误日志中)就会存在一句话木马了
我这里使用Bp查看,比较明显
在本地使用nc监听444端口,让目标主机发送shell
关于提权,目前学到了两个方法:
- 如果登入的用户本身就存在root用户的权限(sudo -l)命令来查看具体权限
- 如果用户是低权限(find / -perm -u=-s -type f 2>/dev/null)来参看SUID的二进制文件位置
这里就可以看到screen 4.5.0,进入search 查看漏洞
根据这个41154.sh的内容一步一步来操作
创建一个libhax.c的文件,内容如下:
第二步(注意当前文件位置是不是/tmp下)
第三步
创建rootshell.c文件
同样的,注意文件位置
最后,创建一个exp.sh文件,内容如下:
使用python的简单的http协议
我们到获取目标shell的窗口,查看
发现,tmp文件内拥有777权限,进入tmp文件,下载本地的三个文件
使用wget命令rootshell和libhax.so文件也是相同的方法
最后给exp.sh文件赋777权限
运行exp.sh
获取root权限了,查看flag