DC-2是一个易受攻击的实验环境,最终目的是让攻击者获得root权限,并读取flag。
本篇文档中用到了vi提权和git提权。
1 环境搭建
下载靶场文件,使用Vbox或者VM打开即可;攻击机使用kali-2020。
2 主机发现
使用Kali中的arp-scan工具扫描结果如下:
172.16.12.145为DC-2靶机的IP地址。
3 端口探测
探测使用nmap工具
端口扫描结果如下:
由扫描结果知开放端口有两个: 80(http默认端口)和运行着SSH服务的7744端口。
4 访问web
访问web界面如下:
需要将172.16.12.145 dc-2加入hosts文件中如下:
再来访问web界面如下所示:
5 对网站信息收集
打开插件Wappalyzer进行网站指纹识别如下:
从指纹识别信息中提取出的信息有:
1 操作系统:Debian
2 内容管理系统(CMS):WordPress 4.7.10
3 编程语言:php
4 Web服务器:Apache 2.4.10
5 数据库:Mysql
6 JavaScript:JQuery 1.12.4 JQuery Migrate 1.4.1
点击查看flag1
由flag1中的提示我们可能会用到cewl(kali中的字典生成工具),既然我们知道网站CMS是wordpress了,先使用wpscan来扫描一波,看能枚举出哪些用户。
这里顺便介绍下wpscan的使用参数介绍:
扫描结果如下:
扫描出的页面有以下:
1 http://dc-2/xmlrpc.php
2 http://dc-2/readme.html 就是flag1页面
3 http://dc-2/wp-cron.php 空白页面
4 http://dc-2/index.php/feed/ 或http://dc-2/index.php/comments/feed
下图中是枚举出的用户:
分别是admin jerry tom三个用户
6 用户密码**
根据flag1提示中的cewl软件,我们先来了解下cewl的用法(用来生成字典)
Cewl是一款采用Ruby开发的应用程序,你可以给它的爬虫指定URL地址和爬取深度,还可以添额外的外部链接,接下来Cewl会给你返回一个字典文件,你可以把字典用到类似John the Ripper这样的密码**工具中。除此之外,Cewl还提供了命令行工具。
语法: cewl <url> [options]
接下来是使用cewl生成字典文件
将admin jerry tom 3个用户加入user文件中如下:
开始使用wpscan**密码;
**成功
使用jerry用户或tom用户登录系统,后台地址为:http://dc-2/wp-login/
登录成功
浏览翻找下web页面,找到了flag2
查看flag2
找到一上传文件的地方,上传图片后:
直接上传test.php文件不被允许
尝试改包上传
上传失败
接着想到使用**出的jerry用户名和密码登录服务器,前面扫描出ssh服务运行在7744端口上
登录失败,看来jerry用户的密码不能直接用来登录服务器,也使用tom用户也试过但是应该是输入密码错误导致没能登录上去(太粗心,导致在下一步浪费不少时间)。
接着想到使用hydra**ssh用户登录密码,开始行动
这里花了好长时间去**,但是未**出密码,看了其他人的过程发现是使用tom用户登录
使用tom登录成功,但是是受限shell(限制了可执行的命令)
随便执行命令看看,找到了flag3看看
Cat命令不能使用,可以使用less查看,类似的查看命令还有tac more tail head sort等等
Flag3内容
7 提权
查看tom可执行的命令和环境变量
尝试设置tom的shell环境,失败因为只读
使用vi查看tom的家目录下文件
.profile文件
.bashrc文件
发现不能直接在文档中修改内容。
接下来看利用vi能否做点事,vi打开任意文件
进入文档后
敲回车
再然后
敲回车就发现可以写入PATH变量了,export PATH=$PATH:/bin/,然后再尝试可发现可执行更多命令
再使用cat查看flag3
切换到jerry用户目录发现flag4文件,查看
Flag4文件中提到了git命令,查看下/etc/passwd文件
Tom用户限制太多,查看后切换到jerry用户,执行sudo –l可以很明显的看到git提权的提示
使用git命令提权sudo git –p –help 进入交互模式
输入“!whoami”,使用“!passwd root”修改root密码
修改root密码成功
这里也可使用以下进入交互模式:
1 git help –a
2 git help –g
3 git help –c
切换到root用户