dc-7打靶日记
1. nmap扫描
1.1 确认目标ip地址
1 |
|
通过开关靶机查看以及通过MAC地址的标识可以确定目标靶机的ip地址
目标靶机ip地址:192.168.31.170
1.2 目标开放TCP端口
1 |
|
开放tcp端口为:22,80
1.3 目标开放UDP端口
1 |
|
udp留着备用,一般用不上,走走形式
1.4 开放TCP端口详细信息
1 |
|
扫到了robots.txt,
robots.txt
是一个用于网站根目录的文本文件主要作用是告诉搜索引擎爬虫(例如 Googlebot)哪些页面或文件不应被抓取或索引。所以我们可以通过该文件去获取网站目录信息,从而绕过目录爆破的过程
还有就是Drupal 8
其他信息主要就是操作系统相关的信息Linux3.2-4.9,这种信息一般没办法起到多大的作用
1.5 nmap漏洞扫描
1 |
|
扫到了一堆CSRF,没用还有就是robots.txt,端口详细扫描已经扫到了;还有扫到了Drupal version,这个有用,能够确定cms还有一个readme文件,可以看看
/rss.xml
/robots.txt
/INSTALL.txt
/README.TXT
2. 信息检索
2.1 网页框架信息
- 目录结构
- 指纹信息
- 靶场提示
靶场的提示说:
dc-7引出了一些新概念,但是我想让你找出来那么新概念 :-)
然而这个靶场并不是所有的都是技术问题,可能你也需要求助于暴力破解和字典攻击,可能并不会成功
去思考怎么跳出这个盒子是你必须要做的,跳出盒子的方法。:-)
怎么说呢,意思就是想说我们不要被传统固执的思维给囚禁吧,不要老是尝试技巧绕过的东西,有时候可能就是暴力破出来的,或者直接翻找资源找出来的.尝试找一下源码,最好是通过各种作者信息和版本寻找,因为drupal 8,可以尝试找找源码分析也可以找作者的相关博客等分析
2.2 作者信息检索
因为这个位置暴露了作者的信息,我们可以直接通过搜索引擎搜索该作者及相关信息内容。
可以看到其相应的github账户,通过检索github仓库的信息内容,最后可以在该文件啊中找到相应的账号和密码,但是并不知道有什么作用
username=dc7user
password=MdR3xOgB7#dW
可以对数据库、ssh和后台管理系统分别进行登录尝试
系统后台登录失败;
尝试两边,数据库登录失败
尝试ssh登录,ssh成功登录
这里我们先跳转到[3.1 命令提权](##3.1 dc7user用户命令提权)进行尝试命令提权
2.3 信息收集
欸嘿,刚才执行exit
退出的时候发现点不一样的东西
什么?它说:“You have new mail in /var/mail/dc7user”
这不得去看看?
看了一下,好像是dc7user用户执行命令操作的记录
这似乎是root用户备份网页的文件,且通过/opt/scripts/backups.sh
执行进行备份,查看一下该脚本是否存在可利用的地方;因为我并没有执行该命令又记录到了dc7user的邮箱中,所以查询了一下该文件夹的功能,发现;
原来Cron是定时任务的意思,又学到了新东西
那么邮箱的内容也就清晰了,就是说root用户设置了一个定时任务,定时备份网页内容;
查看脚本的内容可以知道里面执行了挺多的命令的,其中比较迷惑的命令有drush
和gpg
ok清晰,加密命令可以不管,八成用不上,drush命令,这个有用,说不定dc7user用户可以执行呢;查查看能不能修改密码什么的
1 |
|
ok,查到命令所在路径了,没有问题,可以执行该命令;
drush命令也可以修改管理员密码,那么我们来到/var/www/html/
目录下,执行相应命令修改admin管理员密码登录后台
1 |
|
成功啦!冲冲冲~!
至此,成功登录后台管理系统;
后续想要找到能够写入一句话木马的地方,但是添加内容时的文本解析并没有能够解析php语言;
由于缺乏php语言解析,这个可以再extend插件中进行下载补充
这里可以找到所有版本的php解析,然后我们找到其中一个支持drupal 8的进行查看下载
右键复制连接即可得到下载连接,然后我们粘贴到相应的地方进行下载安装即可。
安装完毕以后,我们再搜索框输入php,然后选中PHP Filter
安装到该网页中;
再次回到内容发布网页即可看到存在php语言解析的内容了,那么我们就可以再这里发布一句话木马进行解析了;
我们直接对它本身的首页进行编辑,加入一句话木马,并修改为php语言解析;(也可以直接使用php语言反弹shell脚本)
使用蚁剑测试连接效果
使用蚁剑的虚拟终端向攻击机反弹一个shell
1 |
|
这里我们就已经成功的拿到了www-data用户的权限,这时候我们来到[3.2 命令提权](##3.2 www-data用户命令提权)
3. 提权
3.1 dc7user用户命令提权
首先查看是否存在可以进行提权的命令
1 |
|
可以发现存在可能可以提权的命令有
exim4
、mount
、passwd
等等可以尝试
毫无以为的是:mount和passwd完全不可能成功
查看一下exim4的版本,说不定可以和dc5一样提权成功
可以知道exim4的版本是4.89
可以通过searchsploit查看一下是否存在该版本exim4的漏洞
1 |
|
可以看到确实是又存在该版本的exim4的本地提权漏洞的
将该漏洞下载到本地并启动apache2服务,并将其复制到web目录下让目标机器下载该攻击脚本
1 |
|
1 |
|
尝试执行获取最高权限
1 |
|
似乎并没有成功,尝试一下其他办法吧,这条路就先到这把。继续从该用户收集信息进行提权回到[2.3 信息收集](##2.3 信息收集)
3.2 www-data用户命令提权
与上述的用户提权命令相似,也可以发现exim4命令,再次尝试同样的方式进行提权,好吧,又失败了
3.3 backups.sh文件
还记得刚才这种图嘛,这个脚本似乎是以root用户的身份进行执行的
然后通过查看www-data用户对backups.sh文件的权限,发现可写可读可执行
那么我们向其中写入一个反弹shell命令,将root权限的shell反弹至我们的攻击主机即可
1 |
|
攻击机监听22222端口,等待反弹shell(不能由www-data用户执行,因为由该用户执行反弹回来的shell依旧是www-data用户)
1 |
|
通过观察邮件中的时间规律可知,root用户大概是15分钟执行一次这个定时任务,所以我们只需要等待15分钟,shell自然就反弹回来了
成功反弹回来了root的权限
1 |
|
4. 总结
- 注意一些特殊的文件可能存在root定时执行
- 一些脚本文件中可能存在可以利用的地方
- 后台管理系统最重要的就是能够获取webshell,拿到站点才有机会进一步提权
- 命令提权可能没有效果,可以想象其他的办法,但是也需要进行尝试
- 信息检索非常重要,去获取一个系统中比较重要的信息脚本,连接它们之间的关联性进行利用。