vulnhub-DC系列3
1.写在前面
这是DC系列的第3个,也是vulnhub靶场练习的第4篇文章。
“人在保持远视的时候,有选择总是好的”
Tips:DC3还是有很多值得学习和总结的,本次只有一个flag,全程没有提醒哦!
2.知识点速记
- exploitdb 漏洞速查
- mysql注入及sqlmap使用
- john密码破解
- Linux提权
- linux内核提权 - searchexploit
- linux提权自检工具 - linux-exploit-suggester-master
3.环境配置
直接去vulnhub官网下载 Vulnhub-DC3对应的ova文件即可,然后拖入vmware。这里为了方便宿主机与靶机通讯,将虚拟机的网络模式设置为了NAT模式
Win10 宿主机、kali2020 攻击机、vulnhub靶机
4.信息收集
环境配置好后,首先确认一下IP,在kali上查看当前IP为 192.168.114.128
4.1 常规探测
对当前网段的主机进行扫描
定位靶机IP:192.168.114.133
吸取DC2中的教训,这次针对存活IP进行详细的全端口扫描和指纹识别:
尴尬的是,只有80端口开放了,搜索了下 joomla是开源的内容管理CMS。
访问下看看:
按照以往的经验,这时候就得扫一波目录和文件了:
用我们的老工具gobuster 和 dirb
:
并没有什么惊喜,倒是发现了默认的管理后台。
4.2 CMS探测
渗透思路:
按照以往思路,发现CMS可以用对应的自动化测试工具进行扫描
比如之前的wordpress,就有wpscan工具,来识别版本、插件漏洞、目录等
这里看了下,joomla的CMS确实存在自动化工具:joomscan (其实是看别人的wp)
那就来扫一下:
这里发现CMS的版本:3.7.0
,同时,也扫到了默认的后台管理地址
这里真实情况是,当时用的msf的search模块,来识别的版本:
知识点1:exploit漏洞速查:
- exploit joomla 3.7.0 ## 搜索版本exp
- exploit -p 42033 ## 查看exp描述
- /usr/share/exploitdb/exploits/ ## path基础路径
拿到准确版本,我们就去搜一下有没有什么漏洞可利用:
哦豁,这不是来了个SQL注入吗!来看看这个exp咋个整:
5.漏洞利用
5.1 SQL注入利用
知识点2:mysql注入及sqlmap使用
这里建议根据上面这个文章,手工注入实现一遍。熟悉手注流程:
查数据库:information_schema.SCHEMATA
查表:information_schema.tables
查列:information_schema.COLUMNS
1 |
|
简单测试下漏洞确实存在:
这里由于limit偏移的缘故,所以借助了burp的intruder模块进行自动化爆破:
同时还学习了如何在intruder结果里筛选字段及信息:
经过筛选后,可以看到不同的数据库表,但这里显示不全,详见上面的文章。
这里仅复盘学习下手注的过程,我们还是直接上sqlmap一把梭:
1 |
|
扫到joomladb
,然后我们直接看users
表的列:
1 |
|
然后就是查看内容了:
1 |
|
这里得到的password并非明文,但应该也是某种HASH算法
admin / $2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu
5.2 hash密码爆破
知识点3: john密码爆破
这里按照之前DC1-Drupal的处理思路,其实有以下几种解决方案:
- 重置密码:包括前端邮件确认、mysql后台覆盖
- 服务器自带加解密脚本发现
但这里都不具备条件,邮件就不说了,后台覆盖需要更新数据,而sqlmap执行更新语句存在权限问题
这里查看了别人的wp后发现用了john
这个工具:
需要先把hash写入文件,john第一次碰撞后,后续再检测同样文件不会再次碰撞
直接--show
就可以查看密码:admin/snoopy
PS:这里如果真的走投无路,也可以直接爆破后台试试了
5.3 后台getshell
这里后台getshell,不同的CMS虽然各异,但基本原理还是相同的
总体上有三个思路:
- 主题模板的上传or修
- 媒体文件上传
- 模块化插件上传
这里简单写个一句话,待会连接蚁剑,方便文件管理:
1 |
|
坑点: shell文件路径
这里针对所有的CMS都是一样的,上传的shell需要定位路径
http://192.168.114.133/template/beez3/html/test.php
OK,连个蚁剑上去,没问题。
注意:提权需要tcp通道,而蚁剑是基于HTTP的瞬时协议,需要换个本地shell环境
反弹shell常用命令:
1 |
|
当然,搞个msf上传reverse_shell也没问题,这里就不演示了
7.提权
知识点4:Linux内核漏洞提权
除了之前的suid和sudo linux提权方式还有很多
可参考这篇:linux 提权方法总结
看了些文章,想到用内核提权。但由于c编译等问题,一直未果
7.1 主机信息获取
内核漏洞提权的前提是掌握主机的发行版本、内核版本等信息
1 |
|
- 内核版本:4.4.0-21-generic
- 发行版本:Ubuntu 16.04
- 架构:i686 (i386的子集) arm架构 -32位
7.2 内核漏洞检索
这里首先列一下exploitdb的内核漏洞搜索相关命令:
1 |
|
这里看下具体如何使用,需要下载对应的文件:
其实最开始并不知道要使用39772这个漏洞,但后面总结了一些规律:
- 发行版本、内核版本一致
- i686架构是arm的32位,不能选amd的x86相关exp
- 尽量选择不需要编译的(容易出错
通过蚁剑上传这几个提权文件
运行下compile.sh,会自动编译doubleput.c、hello.c、suidhelper.c
然后运行下编译好的doubleput
成功提权,拿到Flag,打完收工
7.3 主机提权自检工具
知识点5:使用提权自检工具自动化扫描
挖个坑:Linux自动化提权
这里马后炮一下,复盘其他wp的时候发现有位老哥蚁剑上传了一个sh,来实现自动化检索漏洞
看起来比较方便,后面搜了一下,可以使用这个工具来辅助检查:linux-exploit-suggester
简单测试下,也做个总结:
上面的脏牛试过,直接把服务器打崩了…..不过这里也列出了double_fdput
当然,linux自动化提权的方式还有很多,先挖个坑,后面补一下!
8.写在结尾
整个DC3还是有很多新内容学习的,比如漏洞点识别、sql注入与sqlmap使用、john爆破、内核提权等。
几个比较好的WP:
To Do List:
- 学习总结下Linux下的提权方式
- Linux自动化提权总结