DC-1靶机刷题记录
靶机下载地址:
链接:https://pan.baidu.com/s/1GX7qOamdNx01622EYUBSow?pwd=9nyo
提取码:9nyo
参考答案:
- https://c3ting.com/archives/kai-qi-vulnhnbshua-ti
- DC-1.pdf
- 【【基础向】超详解vulnhub靶场DC-1】 https://www.bilibili.com/video/BV1xN4y1V7Kq/?share_source=copy_web&vd_source=12088c39299ad03109d9a21304b34fef
- http://t.csdnimg.cn/b0gYE
开启Vulnhnb刷题
今天是DC-1介绍页:DC: 1 ~ VulnHub下载地址:http://www.five86.com/downloads/DC-1.zip
——来自C3ting
1、导入VMware虚拟机
下载完成后,得到DC-1.ova文件,导入到VMware后,设置靶机和kali的网络连接模式为NAT模式,靶机会自动获取ip地址。

试了半天DC-1都没有IP,原来是VMware没开这个DHCP


测试发现是这个129的IP

描述
DC-1是一个专门构建的易受攻击的实验室,目的是在渗透测试领域获得经验。它旨在为初学者带来挑战,但它的容易程度将取决于您的技能和知识以及您的学习能力。要成功完成此挑战,您将需要Linux技能,熟悉Linux命令行以及具有基本渗透测试工具的经验,例如可以在Kali Linux或Parrot
Security OS上找到的工具。有多种方法可以获得根,但是,我包含了一些包含初学者线索的标志。总共有五个标志,但最终目标是在root的主目录中找到并读取标志。您甚至不需要成为 root 用户即可执行此操作,但是,您将需要 root
用户权限。根据您的技能水平,您可以跳过查找这些标志中的大多数,直接找到root。初学者可能会遇到他们以前从未遇到过的挑战,但是Google搜索应该是获取完成此挑战所需的信息所需的全部内容。
使用工具
攻击者:kali 192.168.1.128
靶机:dc-1 192.168.1.129
一:信息收集
基础信息查询
0x01 查看存活主机
arp-scan -l 二层主机扫描,主动发送ARP包进行嗅探

发现192.168.1.129就是DC-1靶机的IP。
0x02 查看开放端口 和 0x03 查看端口服务
nmap -p- 192.168.1.129
nmap -p- 192.168.1.129命令是使用nmap工具进行针对IP地址为192.168.1.129的主机的端口扫描。在该命令中,-p-选项用于指定要扫描的所有端口范围。通常情况下,-p-表示扫描所有65535个端口。执行此命令后,nmap将尝试连接到目标主机的每个端口,并确定它们是否开放。扫描完成后,将显示每个开放端口及其相应的服务信息。请注意,在使用nmap进行端口扫描时,请确保您遵守适用的法律和道德规范,并且只在合法的环境中使用该工具。未经授权的扫描可能会违反法律,并对目标网络造成不良影响。同时也要注意的是,执行完整的端口扫描(例如扫描65535个端口)可能需要一些时间才能完成,因为扫描过程可能涉及大量的网络流量和主机响应。

然后直接去看它的这个网站

0x04 扫描网站根目录及指纹信息
- 可以用浏览器插件Wappalyzer来进行查看

也可以用命令whatweb [http://192.168.1](http://192.168.10.157).129 # 扫描网站指纹信息

WhatWeb是一个开源的Web应用程序识别工具,用于快速识别并获取目标网站的技术信息和已知漏洞。它通过分析HTTP响应报文、页面内容和其他特征来确定目标网站所使用的Web框架、CMS(内容管理系统)、服务器软件版本等信息。
WhatWeb可以帮助安全研究人员和渗透测试人员快速了解目标网站的技术栈,从而评估可能存在的漏洞和攻击面。它还提供了针对特定Web应用程序的插件系统,用于更详细地识别和探测特定的功能和配置。
以下是使用whatweb的基本语法:
whatweb <target>
其中:
- 是要扫描的目标网站URL或IP地址。
例如,要对网站example.com进行识别和扫描,可以执行以下命令:
whatweb example.com
WhatWeb会发送HTTP请求到目标网站,并分析响应以确定目标网站所使用的技术信息。它将显示Web框架、CMS、JavaScript库、服务器版本等相关信息。
接着继续:
发现CMS是Drupal 7,那么我们便可以去查找相关的漏洞了,有POC就可以直接利用
可以在kali的火狐浏览器自带的一个网站,漏洞库网站,搜索Drupal 7查看一下,对它进行一个简单的了解

二:漏洞发现
msf漏洞查询
kali的msf怎么用 - CSDN文库

0x01 启动msf
msfconsole
search Drupal 7


一个个尝试着使用(Rank 为excellent的成功概率大一点,比较好用)
use 1
set Rhosts 192.168.1.129
show options
expliot 或者 run

输入shell 后,python -c 'import pty;pty.spawn("/bin/bash")'开启终端

0x02 flag1
在当前目录下就发现了flag1.txt
内容为
Every good CMS needs a config file and so do you.每一个好的CMS都需要一个配置文件,你也是。

flag提示我们查看config配置文件,
百度之后发现,Drupal的配置文件(settings.php)在sites/default/ 中
cd到sites/default/中查看
0x03 flag2
一直滑到最上面,看到flag2和MySQL数据库账户及密码,尝试登录查找信息

0x04 查询数据库信息
mysql -u dbuser -p R0ck3t

登录成功,查询账号密码
show databases;
use drupaldb
show tables;
select* from users;

根据经验判断,其中的这个users表最重要,是用户表


查询到账户密码,这里的密码为密文加密,尝试使用md5解密,发现解密失败
三:漏洞利用
0x01 破解密码加密
drupal可以利用Drupal对数据库的加密方法,加密脚本位置在网站目录/var/www下的scripts文件夹下

我们利用脚本password-hash.sh对我们需要的密码进行加密,
结果出现报错了

报错中之处,'/var/www/srcipts/includes/password.ins’文件找不到,但是刚才发现,includes目录不在scripts目录下,因此会报错。
使用命令 cp -r ../includes ./复制整个includes目录到scripts目录里,再次执行,成功对123456进行加密

然后进入数据库更新admin密码
update users set pass='$S$DzkiWh8/yFmP15e/BB/CYd9TtEUTbrYpBe2vnqeP6B3bZLdrzyUu' where name='admin';
之后,成功进入后台,得到flag3




flag3提示:
提示到 find提权,-exec shadow文件 passwd文件

flag3指出,特殊全是是需要用到 find 和 -exec 命令,也提到了 shadow。就是说提权的话,需要用到以上两个命令,以及shadow文件。
于是,我们尝试查看shadow文件,提示权限不够

那么我们需要提权


那么我们输入find / -perm -u=s -type f2>/dev/null命令看一下哪些具有特殊权限位

结束输入find -name mysql -exec /bin/sh \;就获得了root权限

那么在继续查看刚才的shadow文件,发现flag4是一个用户
/etc/shadow是一个位于Linux系统中的文件路径,它存储了用户账户的加密密码信息。这个文件通常只有超级用户(root)有读权限。

那么我们就去/home目录下看flag4的文件,发现了flag4
/home是Linux系统中的默认用户主目录的位置。在大多数Linux发行版中,每个用户都有一个对应的主目录,该目录位于/home下,以用户的用户名命名。每个用户的主目录存储着用户的个人文件和配置信息。当用户登录时,系统会将用户导航到其相应的主目录,以提供用户特定的工作环境。用户可以在自己的主目录中创建、编辑和管理文件,保存个人数据、配置文件和其他与用户相关的内容。例如,如果系统上有一个名为"john"的用户,那么他的主目录路径将为/home/john。用户john可以在此目录下创建自己的文件夹和文件,并且只有他有权限访问这些文件。
flag4

提示可以用相同的方法获得最后的flag
flag4的方法二:
用到一个工具:
Hydra是一个密码破解工具,用于暴力破解各种网络服务的用户名和密码。它可以通过使用不同的用户名和密码组合进行自动化的登录尝试,从而尝试获取对目标系统或应用程序的访问权限。
Hydra支持多种协议和服务,包括但不限于SSH、FTP、HTTP、SMTP、POP3、Telnet等。它使用多线程方式进行破解尝试,以提高效率和速度。
以下是使用Hydra的基本语法:
hydra -l <username> -P <password_file> <target> <service>
其中:
- -l 选项用于指定要尝试的用户名。
- -P 选项用于指定密码文件,该文件包含要尝试的密码列表。
- 参数用于指定目标主机或IP地址。
- 是要攻击的目标服务,例如ftp、ssh、http等。
例如,要使用Hydra对FTP服务进行密码破解,用户名为"admin",密码列表保存在名为"passwords.txt"的文件中,并且目标主机为192.168.0.1,可以执行以下命令:
hydra -l admin -P passwords.txt 192.168.0.1 ftp
那么我们就开始操作
gzip -d rockyou.tar #解压密码字典
hydra -l flag4 -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.129
#尝试爆破flag4的密码

获得密码orange
然后ssh远程连接

flag5
那么去到root目录下就看见了flag5


完毕!
相关文章:
DC-1靶机刷题记录
靶机下载地址: 链接:https://pan.baidu.com/s/1GX7qOamdNx01622EYUBSow?pwd9nyo 提取码:9nyo 参考答案: https://c3ting.com/archives/kai-qi-vulnhnbshua-tiDC-1.pdf【【基础向】超详解vulnhub靶场DC-1】 https://www.bilibi…...
rust跟我学七:获取外网IP地址
图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info是怎么获取到本机的外网IP地址。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:[…...
华为:交换机忘记console密码重置
一、背景 许多旧项目经过长时间使用后,因为没有特定的管理运维人员,初始对接人也将初始账号密码等重要信息丢失,现需要进后台查看配置或更改网络配置,需重置密码 二、重置密码,不重置设备方法 1、使用console插入交…...
2024年甘肃省职业院校技能大赛信息安全管理与评估 样题三 模块一
竞赛需要完成三个阶段的任务,分别完成三个模块,总分共计 1000分。三个模块内容和分值分别是: 1.第一阶段:模块一 网络平台搭建与设备安全防护(180 分钟,300 分)。 2.第二阶段:模块二…...
Go 中 slice 的 In 功能实现探索
文章目录 遍历二分查找map key性能总结 之前在知乎看到一个问题:为什么 Golang 没有像 Python 中 in 一样的功能?于是,搜了下这个问题,发现还是有不少人有这样的疑问。 补充:本文写于 2019 年。GO 现在已经支持泛型&am…...
pyDAL一个python的ORM(终) pyDAL的一些性能优化
一、大批量插入数据 对于 大量数据插入时,虽然pyDAL也手册中有个方法:bulk_insert(),但是手册也说了,虽然方法上是一次可以多条数据,如果后端数据库是关系型数据库,他转换为SQL时它是一条一条的插入的&…...
springboot log4j配置xml实例说明
提供样本配置代码 xml <?xml version"1.0" encoding"UTF-8"?> <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --> <!-- status log4j2内部日志级别 --> <configurat…...
VsCode重新安装需要配机的ESLint和 Prettier - Code formatter 配置
新电脑安装完Vscode后,需要装几个插件,这里记录下: {"diffEditor.ignoreTrimWhitespace": false,"files.autoSave": "afterDelay","editor.codeActionsOnSave": {"source.fixAll.eslint"…...
录屏功能怎么打开?简单操作,一学就会!
录屏功能在当今互联网时代变得越来越重要,无论是游戏录制、在线课程录制还是屏幕操作演示,录屏功能都为我们提供了便捷的解决方案。可是您知道录屏功能怎么打开吗?接下来,让我们一起探索如何在电脑上开启录屏功能,记录…...
小程序显示兼容处理,home键处理
定义: env(safe-area-inset-bottom)和env(safe-area-inset-top)是CSS中的变量,用于获取设备底部和顶部安全区域的大小 示例: padding-bottom: calc(env(safe-area-inset-bottom) 12px); /* 兼容iOS> 11.2 */安全间距类型: …...
【java八股文】之JVM基础篇
【java八股文】之JVM基础篇-CSDN博客 【java八股文】之MYSQL基础篇-CSDN博客 【java八股文】之Redis基础篇-CSDN博客 【java八股文】之Spring系列篇-CSDN博客 【java八股文】之分布式系列篇-CSDN博客 【java八股文】之多线程篇-CSDN博客 【java八股文】之JVM基础篇-CSDN博…...
2024美赛数学建模思路 - 案例:异常检测
文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…...
【EI会议征稿通知】2024年通信技术与软件工程国际学术会议 (CTSE 2024)
2024年通信技术与软件工程国际学术会议 (CTSE 2024) 2024 International Conference on Communication Technology and Software Engineering (CTSE 2024) 2024年通信技术与软件工程国际学术会议 (CTSE 2024)将于2024年03月15-17日在中国长沙举行。会议专注于通信技术与软件工…...
Js面试之作用域与闭包
Js面试之作用域与闭包 作用域词法作用域动态作用域 闭包闭包使用场景封装私有变量模块化开发保持变量状态异步操作 注意事项 最近在整理一些前端面试中经常被问到的问题,分为vue相关、react相关、js相关、react相关等等专题,可持续关注后续内容ÿ…...
Go 爬虫之 colly 从入门到不放弃指南
文章目录 概要介绍如何学习官方文档如何安装快速开始如何配置调试分布式代理层面执行层面存储层面存储多收集器配置优化持久化存储启用异步加快任务执行禁止或限制 KeepAlive 连接扩展总结如果想用 GO 实现爬虫能力,该如何做呢?抽时间研究了 Go 的一款爬虫框架 colly。 概要…...
Ceph分布式存储(1)
目录 一.ceph分布式存储 Ceph架构(自上往下) OSD的存储引擎: Ceph的存储过程: 二. 基于 ceph-deploy 部署 Ceph 集群 20-40节点上添加3块硬盘,一个网卡: 10节点为admin,20-40为node&…...
制造业工厂为什么要实施MES系统呢?
MES是生产管理系统,生产管理是通过对生产系统的战略计划、组织、指挥、实施、协调、控制等活动,实现系统的物质变换、产品生产、价值提升的过程。在企业的价值链中,生产经营是企业核心能力的重要组成部分。 实施MES系统的原因 MES系统是中国比…...
Python 一行命令部署http、ftp服务
Python 一行命令部署http服务 文章目录 Python 一行命令部署http服务具体操作命令如下浏览器返回下载Python 一行命令部署FTP服务 具体操作命令如下 这个比nginx相对来说更加简单,可以用于部署特殊场景时如银行等部署时,各种权限控制,内网之间…...
DBA技术栈(三):MySQL 性能影响因素
文章目录 前言一、影响MySQL性能的因素1.1 商业上的需求1.2 应用架构规划1.3 查询语句使用方式1.4 Schema的设计1.5 硬件环境 总结 前言 大部分人都一致认为一个数据库应用系统(这里的数据库应用系统概指所有使用数据库的系统)的性能瓶颈最容易出现在数…...
SpringCloud GateWay 在全局过滤器中注入OpenFeign网关后无法启动
目录 一、问题 二、原因 1、修改配置 2、添加Lazy注解在client上面 3、启动成功 一、问题 当在gateway的全局过滤器GlobalFilter中注入OpenFeign接口的时候会一直卡在路由中,但是不会进一步,导致启动未成功也未报错失败 2024-01-18 22:06:59.299 I…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
vue3 daterange正则踩坑
<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...
6.9-QT模拟计算器
源码: 头文件: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMouseEvent>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);…...
flow_controllers
关键点: 流控制器类型: 同步(Sync):发布操作会阻塞,直到数据被确认发送。异步(Async):发布操作非阻塞,数据发送由后台线程处理。纯同步(PureSync…...
rm视觉学习1-自瞄部分
首先先感谢中南大学的开源,提供了很全面的思路,减少了很多基础性的开发研究 我看的阅读的是中南大学FYT战队开源视觉代码 链接:https://github.com/CSU-FYT-Vision/FYT2024_vision.git 1.框架: 代码框架结构:readme有…...
算法—栈系列
一:删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…...
大数据驱动企业决策智能化的路径与实践
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:数据驱动的企业竞争力重构 在这个瞬息万变的商业时代,“快者胜”的竞争逻辑愈发明显。企业如何在复杂环…...
