Vulnhub DC-1 Writeup
Talk is cheap, show me writeup
用到的工具和知识
nmap、whatweb、searchsploit、netcat、SUID提权
0x01 信息搜集
我们先开启靶机和kali,两者均为NAT模式
我用mobaxterm连上kali(192.168.206.128),用nmap扫描局域网找到靶机ip(192.168.206.137)
扫一下靶机端口,发现开启了ssh、http、rpc
我们再查看一下所有信息
可以看到相应的ssh版本,google了一下发现此版本不能爆破
验证:
爆破之后报错
[ERROR] target ssh://192.168.206.137:22/ does not support password authentication.
网上解答,并不支持password认证可能是设定要用键盘键入提示框那种认证
ssh放掉,那我们继续往下,看到扫描记录有http服务和相应的目录,我们顺势firefox访问一波主页
上网搜了一下 Drupal,是个广泛应用的开源cms,当然也有相应的CVE
尝试创建账号,发现还需要管理员认可才能创建账号,GG,还是按照正常程序走吧。
用whatweb
探查一下所用的技术,发现
PHP:5.4.45-0+deb7u14
Apache:2.2.22
OS:debian
Drupal version:7
我们得到了一些基本信息,可是比较重要的cms详细版本号没搞到,而且试图查看CHANGELOG.txt也不可用(被删或改名)
0x02 漏洞挖掘与利用
既然想高效一点,我们还是先找找exp,这里可以上exp-db去找,当然我也可以在kali里用searchsploit drupal 7
找找kali自带离线库内所有version 7的exp
选择红框内脚本,添加一个admin用户
可以看到我们的脚本成功执行了,我们直接用刚才创建的账号登进去,一番搜查发现有个flag3页面,
这句话似乎给我们打了个哑谜,能发现他强调了FIND、PERM和exec,继续找找发现并没有什么可以利用的,于是google了一下思路,ε=ε=ε=┏(゜ロ゜;)┛
其实可以装个shell插件的,对于web后端可能会有这样的服务,学习了,我们继续往下进行
我们找到后台的模块安装处,直接点击安装模块
有两种安装模式,直接用链接模式,我们在原来的shell module页面底部找到插件,提取链接,粘贴到相应位置,安装
安装完成,我们看看模块,发现任何用户都可以使用这个shell模块,可是在模块处并不能直接打开shell,找了找shell的位置,在dashboard发现了shell链接,我们点开
cool!看看OS版本和用户信息,find查找flag文件,发现了一个flag1.txt
1
2
3
Linux DC-1 3.2.0-6-486 #1 Debian 3.2.102-1 i686 GNU/Linux
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Debian GNU/Linux 7 \n \l
我这里先采用nc拿个反弹shell,再用python pty升级为交互shell
1 |
|
找到flag4.txt
,我们能用相同的方式找到root的flag吗?可能吧,不过没那么简单,又或许很简单
0x03 提权&GetFlag
从寻找flag1 3 4 过程中我们能够体会到,作者一直在提find,而且我们用find查找的时候也不那么顺心,似乎权限有限制。
好那么就顺着作者引导的思路,再次google find 提权
除去第一个结果(考试的时候泄题机ji率ben较wei小ling),别的搜索结果比较让人满意,看来思路还没跑偏,确实有这么个东西,赶紧拿过来学学
我试了试vim提权,结果到文件里出不来,反弹shell都亲手干掉了
看了下root权限的可执行文件,vim也不在其中,算了,直接find提权
条件是:
- find要查询的文件要存在,否则其后
-exec
并不会执行 - find要查询的文件要尽可能只有一个,否则
-exec
语句会被执行多次(这条某些情况下可以忽略)
这里有两种方式:
- 直接在
/var/www
下查找一个单一的文件 - 创建一个唯一的文件
测试成功,读取到最后的flag,然鹅这里只有用/bin/sh
才能提权而/bin/bash
无法提权,查了点资料,不过也不在点上,暂且留坑了
- /bin/bash(Bourne-again shell)是sh的扩展版,Linux默认shell就是bash,与 sh(Bourne shell) 完全向后兼容,并且在Bourne shell 的基础上增加、增强了很多特性。Bash放在/bin/bash中,它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能,它还包含了很多 C shell 和 Korn shell 中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。
- 在一般的linux系统当中(如redhat),使用sh调用执行脚本相当于打开了bash的POSIX标准模式,也就是说 /bin/sh 相当于 /bin/bash –posix
- GNU/Linux 操作系统中的 /bin/sh 本是 bash (Bourne-Again Shell) 的符号链接,但鉴于 bash 过于复杂,有人把 ash 从 NetBSD 移植到 Linux 并更名为 dash (Debian Almquist Shell),并建议将 /bin/sh 指向它,以获得更快的脚本执行速度。Dash Shell 比 Bash Shell 小的多,符合POSIX标准(某条语句错误则不往下执行)。
0x04 彩蛋
咦!(⊙﹏⊙)做完了发现,收集了flag134,那2呢?
回头看看flag1的提示
1 |
|
他是在说网站配置文件,我们找到/val/www/sites/default/settings.php
教我们暴力并不是王道,反推可以暴力啰
好!用给的账户密码登入mysql
1 |
|
拿到各个账户密码,用hashcat,这里就打住了,小辣机没有强大的GPU,不硬跑了
0x05 总结
- 有时候尝试愚蠢的想法也有奇效,但是对于输出结果一定要敏感,思路要灵活
- 第一遍做尽量不使用msf,oscp只能一台机器用
0x06 参考资源
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!