最近闲着冲浪玩发现了DC系列漏洞靶场(下载了8个靶场:DC-1到DC-8),从信息收集到最后拿到超级管理员权限,可以说几乎贯穿了渗透测试的每一步,寻找一个个flag,通过flag中的指引内容,帮助我们拿到最后的root身份,过程还是挺有趣的!
DC系列靶机下载地址:https://download.vulnhub.com/dc/DC-6.zip(DC后的数字可以换成1-8中任意一个)
DC-1是一个易受攻击的实验环境,最终目的是让攻击者获得root权限,并读取flag。
DC-1提权关键词:find
1 环境搭建
下载靶机,解压后使用VM打开.ovf文件,打开时会显示错误,点击重试就可以正常导入;
攻击机使用kali-2020,在官网下载的VM文件,直接解压打开就可以使用,下载地址:https://www.kali.org/downloads/。
注意:靶机与攻击机应置于同一网络下,靶机默认是桥接模式,我是把攻击机与靶机都置于NAT模式下。
2 主机发现
使用Kali中的arp-scan工具扫描结果如下:
172.16.12.144为DC-1靶机的IP地址。
3 端口探测
探测使用nmap工具,端口扫描结果如下:
由扫描结果知开放端口有三个:22(ssh服务端口)、80(http默认端口)和111(rpcbind端口)。
4 访问web收集信息
访问web界面如下:
5 对网站信息收集
5.1 使用插件Wappalyzer进行网站指纹识别
从上图中可得知:
DC-1靶场使用的内容管理系统为:Drupal 7
编程语言为: PHP 5.4.45
Web服务器:Apache 2.2.22
操作系统为:Debian
JavaScript库:jQuery 1.4.4
5.2 查找dropal类CMS相关漏洞
选择其中最新的漏洞进行攻击尝试
查看需要设置的参数
设置参数开启攻击,获取shell如下所示
看到Meterpreter session 1 opened说明攻击成功。
5.3 shell获取
执行命令shell获取shell
使用ls命令查看下当前目录下的文件
查看flag1.txt
查看robots.txt文件
可以看到许多有用的信息如登出页面、登录页面、注册页面等等。
5.4 信息收集
翻了翻其他的文件没有啥,按照flag1.txt中的内容提示,切换到Drupal的配置文件即/site/default下的setting.php文件。
在settings翻找到数据库的配置信息如下:
数据库为mysql数据库,数据库名为drupaldb,用户名为dbuser,密码为R0ck3t,本地登录账号。
5.5 数据库登录
Python打开shell终端获取交互shell,登录mysql数据库
切换到Drupaldb数据库使用use drupaldb,查询users表;
drupal存储用户密码:把密码和用户名或其它随机字符串组合在一起后使用 MD5 方式加密。
5.6 用户密码**
**密码方法一:
exploitdb中有一个针对Drupal 7版本的攻击脚本,可以增加一个admin权限的用户账号,使用此方法简便了**admin的密码,更直接。
直接利用添加用户即可
用户添加成功
**密码方法二:
使用drupal自带的password-hash加密drupal
登录数据库重置admin账户密码,重置密码为drupal
**密码方法三:用hashcat暴力**(flag2处提示暴力**不是唯一的方法)
5.7 使用admin账号登录系统
登录成功,在页面随便翻翻发现flag3
Flag3内容如下
关键词:FIND、PERMS、-exec、shadow
查看shodow文件,但是普通用户查看不了shadow文件
查看是否有sgid位的可执行文件(0输入,1标准输出,2错误输出)
Find / –perm /4000 –print 2>/dev/null,这条命令是寻找有特殊执行权限的文件,并将错误输出到/dev/null下,/dev/null相当于linux中无底的垃圾桶
6 提权
Find命令提权成功
查看shadow文件,看到了flag4
Flag4是一个用户,flag4用户密码可以使用ssh登录进行**
Hydra**,**成功
登录flag4用户成功
查看flag4.txt
继续使用find提权,在root家目录下查看最后一个flag文件
Find ./ aaa –exec ‘/bin/sh’ \;
这里有人可能看到#键的这种shell感觉不习惯,可使用python -c "import pty;pty.spawn('/bin/bash');"进入我们常用的那种linux终端如下