靶机系列|VULNHUB|DC-2

免责声明:

笔记只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。

泷羽sec官网:https://longyusec.com/

泷羽sec B站地址:https://space.bilibili.com/350329294

泷羽sec帮会:https://wiki.freebuf.com/front/societyFront?invitation_code=5a2005d9\&society_id=239\&source_data=2

描述

与 DC-1 非常相似,DC-2 是另一个专门建造的易受攻击实验室,目的是获得渗透测试领域的经验。

与最初的 DC-1 一样,它的设计考虑到了初学者。

必须具备 Linux 技能和熟悉 Linux 命令行,以及具备一些基本渗透测试工具的经验。

就像 DC-1 一样,有五个标志,包括最后一个标志。

再说一次,就像 DC-1 一样,这些标志对初学者很重要,但对有经验的人来说并不那么重要。

简而言之,唯一真正重要的标志是最后一面旗帜。

对于初学者来说,Google 是您的朋友。嗯,除了所有的隐私问题等。

我还没有探索实现 root 的所有方法,因为我放弃了我一直在努力的上一个版本,除了基本操作系统安装之外,我完全从头开始。

Tips

请注意,您需要将渗透测试设备上的 hosts 文件设置为如下:

192.168.0.145 dc-2

显然,将 192.168.0.145 替换为 DC-2 的实际 IP 地址。

下载链接

https://download.vulnhub.com/dc/DC-2.zip

https://pan.baidu.com/s/1L9IJ8tsCfdm1YlMaAgXXkg?pwd=x749

攻击流程

使用arp-scan扫描内网中的机器,根据扫描结果可知,192.168.116.1192.168.116.1都是网关地址,而192.168.116.254是广播地址,所以靶机IP是192.168.116.134,继续进一步的信息收集

arp-scan -l 命令是用来进行局域网内ARP扫描的一个参数配置,命令中的 -l 参数意味着以"长格式"(long format)输出扫描结果。这种格式通常提供更详细的信息,比如设备的MAC地址、IP地址、厂商信息(根据MAC地址前缀推断出的设备制造商)等。
当使用 nmap -A 命令时,nmap 会执行以下操作:

  1. 端口扫描nmap 会扫描目标主机上的一系列端口,尝试确定哪些端口是开放的。这通常涉及到向每个端口发送数据包,并分析返回的响应。
  2. 服务检测 :一旦确定了哪些端口是开放的,nmap 会尝试进一步确定这些端口上运行的服务类型。这通常通过向开放端口发送特定类型的数据包,并查看服务的响应来实现。
  3. 操作系统检测-A 选项还会触发操作系统检测功能,尝试确定目标主机的操作系统类型。这可以通过分析网络栈的细微差别、特定的响应模式等方式来实现。
  4. 脚本扫描nmap 支持使用脚本来增强其功能。在高级扫描模式下,可能会自动运行一些脚本来进一步分析目标主机的特性或漏洞。

值得注意的是,80端口处的http.title有一句提示

http 复制代码
Did not follow redirect to http://dc-2

没有遵循重定向到 http://dc-2

需要手动修改hosts文件,Linux系统的hosts文件在/etc/hostsWindows系统的在C:\Windows\System32\drivers\etc\hosts,在文件中添加如下内容

修改完成之后,访问首页,即可获得flag1

html 复制代码
Your usual wordlists probably won't work,so instead,maybe you just need to be cewl.More passwords is always better,but sometimes you just can't win them all. Log in as one to see the next flag.If you can't find it, log in as another.

你常用的词典可能不起作用,所以,也许你只需要'cewl'。更多的密码总是更好,但有时你就是无法全部获取。以其中一个身份登录以查看下一个标志。如果你找不到,就以另一个身份登录

cewl是一个Ruby工具,主要用于爬取网站内容并生成字典,这些字典文件可用于密码破解。

  • 爬取网站内容:cewl能够爬取指定URL的网页内容,包括文本、图片文件名和链接文本等。
  • 生成字典:根据爬取到的内容,cewl可以生成一个包含网站中单词的列表,这个列表可以作为密码破解的字典。
  • 支持多种参数:cewl提供了多种参数选项,如爬取深度、最小词长、是否包含数字、是否包含电子邮件地址等,以满足不同用户的需求。
  • 支持代理和认证:cewl支持代理服务器和网页认证,可以绕过一些网站的限制,获取更多的内容。

通过whatweb扫描网站,获知这是一个wordpress搭建的

wordpress网站的登陆页面urlwp-login.php,拿到了登陆页面,下面就是爬取密码字典
-w表示写入文件

拿到密码字典之后,利用wpscan枚举用户名

wpscan是一款开源的命令行工具,专门用于扫描和识别WordPress网站中的漏洞和安全问题。

  1. 漏洞扫描:wpscan能够扫描WordPress网站中的多种安全漏洞,包括WordPress核心文件的漏洞、插件漏洞以及主题漏洞。其数据库中包含了大量的漏洞信息,以确保对最新威胁的有效防护。
  2. 枚举功能:wpscan提供了丰富的枚举选项,如枚举用户名、已安装的插件、主题信息等,有助于进一步了解目标站点的安全状况。
  3. 暴力破解:对于未加防护的WordPress站点,wpscan还支持暴力破解用户名和密码,以获取站点的访问权限。但请注意,暴力破解可能涉及法律风险,应在合法合规的前提下使用。
  4. 敏感文件检测:wpscan能够检测WordPress站点中的敏感文件,如robots.txt等,以发现潜在的安全隐患。
  5. 多线程扫描:为了提高扫描效率,wpscan支持多线程扫描,用户可以自定义最大线程数以满足不同的扫描需求。

wpscan --url http://dc-2/ -e u

得到三个用户名,分别是adminjerrytom,将其写入文件。

得到用户名字典和密码字典之后,利用wpscan的爆破功能破解密码

得到的结果分别是

html 复制代码
jerry/adipiscing
tom/parturient

登陆后即可看到flag2

html 复制代码
If you can't exploit WordPress and take a shortcut,there is another way. Hope you found another entry point.

如果你不能利用WordPress走捷径,那么还有另一种方法。希望你能找到另一个入口点。

重新进行端口扫描,nmap -p- 192.168.116.134

重点对7744端口扫描

发现是OpenSSH服务,那下一步思路就开拓了

ssh连接jerry账号失败,尝试连接tom账号

连接成功,但是无法执行whoami 通过命令echo $SHELL发现当前的shell环境为rbash
RBASH是Restricted BASH的缩写,即受限制的BASH。它是一种特殊的shell,用于限制用户的一些操作和权限,以提高系统的安全性,防止用户执行一些危险或不合法的操作。

  1. 命令限制:在RBASH中,一些常用的命令如cd(用于改变目录)、set(用于设置环境变量或shell选项)、unset(用于取消环境变量或shell函数)等可能会被限制使用。
  2. 路径限制:RBASH通常只允许执行PATH环境变量中指定的命令。这意味着,即使某些命令存在于系统中,但如果它们不在PATH环境变量中,用户也无法在RBASH中执行它们。
  3. 符号限制:RBASH可能会限制使用某些符号,如/(用于指定目录路径)、>(用于重定向输出)、<(用于重定向输入)等。这些限制可以防止用户执行一些复杂的命令或脚本。
    echo /home/tom/usr/bin/*这条命令的作用是在终端上打印出/home/tom/usr/bin/目录下的所有文件和目录的名称,也就是打印出可用的命令

列举后发现有ls命令,展开目录文件后发现有flag

通过vi,查看flag3的内容

html 复制代码
Poor old Tom is always running after Jerry.Perhaps he should su for all the stress he causes

可怜的老汤姆总是追着杰瑞跑。或许他应该为他所造成的压力负责

翻译之前看不懂,翻译之后还是看不懂,不要紧,看到了一个命令su,也许是要切换到jerry账户上继续做事,试试看

vi编辑界面,设定一个变量shell,赋值为/bin/bash解释器,然后执行:shell

  1. :set shell=/bin/sh 命令
    这个命令用于设置 Vi在执行外部命令时所使用的 shell。默认情况下,Vi可能会使用系统的默认 shell,但通过设置 shell 选项,可以指定 Vi使用另一个 shell,如 /bin/sh
  2. :shell 命令
    这个命令用于从 Vi会话中启动一个新的 shell 会话。这意味着可以暂时离开 Vim 编辑器,进入一个命令行界面,在那里可以执行其他命令。当完成 shell 会话后,可以通过输入 exit 或按 Ctrl-D 来返回到 Vi编辑器。

执行完毕后,继续通过修改环境变量,完成rbash逃逸

【渗透测试】--- rbash逃逸方法简述-CSDN博客

sh 复制代码
export PATH=$PATH:/bin
export PATH=$PATH:/usr/bin

cat命令可以使用之后,就切换到jerry用户

发现了flag4

html 复制代码
Good to see that you've made it this far - but you're not home yet.You still need to get the final flag(the only flag that really counts!!!).No hints here - you're on your own now. Go on - git outta here!!!!

很高兴看到你已经走到了这一步------但你还没有到家。你还需要拿到最后的旗帜(唯一真正重要的旗帜!!!)。这里没有提示------现在你得靠自己了。继续吧------快从这里出去!!!!

flag中提到了git,大概率后续会涉及到git提权

Git提权是一种在Linux环境中,利用Git命令的特定配置或漏洞来提升用户权限的攻击技术。以下是对Git提权的详细解释:

一、Git提权的前提

Git提权通常发生在以下情况下:

  1. 用户具有使用sudo执行Git命令的权限,并且sudo配置允许用户在执行这些命令时无需输入密码。
  2. Git命令本身存在缓冲区溢出漏洞或其他可利用的安全缺陷。

二、Git提权的方法

以下是一些常见的Git提权方法:

  1. 利用sudo git help config命令
  • 执行sudo git help config命令。
  • 在命令输出的末尾,进入Vim的末行模式(通常通过按:进入)。
  • 输入!/bin/bash!'sh',然后按下回车键。这将尝试启动一个新的bash或sh shell,并可能以root权限运行。
  1. 利用sudo git -p help命令
  • 执行sudo git -p help命令。
  • 在分页器显示的帮助文本中,找到合适的位置输入!/bin/bash
  • 按下回车键,尝试启动一个新的bash shell,并可能以root权限运行。

三、Git提权的原理

Git提权的原理通常涉及以下几个方面:

  1. SUID权限:如果Git命令被设置为具有SUID权限(即setuid bit被设置),则当用户执行该命令时,它将以文件所有者的权限(通常是root)运行。这为攻击者提供了一个机会,通过精心构造的命令或输入来利用这一特性。

  2. 缓冲区溢出漏洞:在某些版本的Git中,可能存在缓冲区溢出漏洞。当攻击者向Git命令传递过长的输入或特定格式的输入时,可能会触发这些漏洞,导致任意代码执行或权限提升。

然后执行!/bin/bash

成功提权,并且拿到最后一个flag

html 复制代码
Congratulatons!!!

A special thanks to all those who sent me tweets and provided me with feedback - it's all greatly appreciated.
If you enjoyed this CTF,send me a tweet via @DCAU7

恭喜!!!

特别感谢所有给我发送推特消息并提供反馈的人------我非常感激大家的支持。

如果你喜欢这次的CTF,请通过@DCAU7给我发送推特消息。

打完收工!!!

相关推荐
__雨夜星辰__19 分钟前
Linux 学习笔记__Day2
linux·服务器·笔记·学习·centos 7
云空6 小时前
《DeepSeek 网页/API 性能异常(DeepSeek Web/API Degraded Performance):网络安全日志》
运维·人工智能·web安全·网络安全·开源·网络攻击模型·安全威胁分析
doubt。6 小时前
8.攻防世界Web_php_wrong_nginx_config
网络·安全·web安全·网络安全
Fhd-学习笔记6 小时前
《大语言模型》综述学习笔记
笔记·学习·语言模型
简知圈7 小时前
【04-自己画P封装,并添加已有3D封装】
笔记·stm32·单片机·学习·pcb工艺
YxVoyager8 小时前
GAMES101学习笔记(五):Texture 纹理(纹理映射、重心坐标、纹理贴图)
笔记·学习·图形渲染
Buring_learn8 小时前
代理模式 -- 学习笔记
笔记·学习·代理模式
池佳齐9 小时前
《AI大模型开发笔记》DeepSeek技术创新点
人工智能·笔记
圆圆滚滚小企鹅。9 小时前
刷题记录 HOT100回溯算法-6:79. 单词搜索
笔记·python·算法·leetcode
aaaweiaaaaaa9 小时前
php的使用及 phpstorm环境部署
android·web安全·网络安全·php·storm