草庐IT

【靶机详解】DC-2

tkm-share 2023-03-28 原文

环境搭建

  1. 下载靶机(DC-2 靶机下载
  2. 解压后,使用 VMware 打开,并将攻击机和靶机的网卡,设置为 NAT 模式。

NAT 模式:将攻击机与靶机设置在同一网段下

环境信息

  • 攻击机:kali -> IP:192.168.237.128
  • 靶机:DC-2(Linux)

就像 DC-1 一样,有五个 flag,包括最终的 flag 。

请注意,您需要将渗透测试设备上的 hosts 文件设置为:
192.168.0.145 dc-2
显然,将 192.168.0.145 替换为 DC-2 的实际 IP 地址。
它将使生活变得更加简单(如果没有它,某些 CMS 可能无法工作)。

渗透思路

1信息收集

  1. 使用 nmap -sS -O 192.168.237.0/24 扫描网段,找寻靶机的 IP。

  1. 根据扫描出的系统信息,以及端口的开放情况,判断 192.168.237.162 是目标靶机的 IP,然后按照环境信息修改 hosts 文件。

Windows:C:\Windows\System32\drivers\etc\hosts
Linux:/etc/hosts

  1. 使用 nmap -A -T4 -p- 192.168.237.162 对靶机进行全面扫描。

  2. 发现靶机开放了 80 端口,并且靶机的 http 站点的 CMS 为 WordPress ,使用 http://192.168.237.162 尝试进行访问。

  3. 成功访问到靶机的 http 站点,根据首页内容,再次确认这是一个 WordPress 站点。

2漏洞发现

  1. 尝试点击首页的 Flag 选项,成功找到了第一个 flag。

您通常的单词表可能不起作用,因此,也许您只需要成为 cewl。
更多的密码总是更好,但有时你无法赢得所有密码。
以一个身份登录以查看下一个标志。
如果找不到,请以另一个身份登录。

  1. 根据 flag1 的内容,使用 cewl http://dc-2/ -w password.txt 制作密码字典。
  2. 因为 flag1 中提到需要登录,但是网页中找不到相关的登录界面入口,所以使用 dirsearch -u http://dc-2/ 爆破网站目录,寻找登录界面。

  1. 成功找到登录界面,使用 http://dc-2/wp-login.php 进行访问。

  2. 访问成功后,由于目前只有密码字典,所以还需要使用 wpscan --url http://dc-2/ -e u 枚举 WordPress 站点中注册过的用户名,来制作用户名字典。

  3. 成功枚举出三个用户名,将这三个用户名写入到一个文件中,作为用户名字典。

  4. 使用 wpscan --url http://dc-2/ -U user.txt -P password.txt 调用相关的字典文件对网站进行爆破。

  5. 成功爆破出两个用户,尝试使用 jerry:adipiscing 进行登录。

  6. 登录成功后,把每个选项都点击一遍试试效果,在 Pages -> All Pages 下发现了 flag2。

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

3漏洞利用

  1. 根据 flag2 中的内容,想到了在信息收集阶段中扫描出的 ssh 服务,并且当前我们知道两对用户名和密码,所以分别使用 ssh jerry/tom@192.168.237.162 -p 7744 尝试登录。

  2. 使用 tom:parturient 登录成功,使用 whoami 查看当前权限。

  3. 发现当前为 rbash,被限制的 Shell,所以可以考虑进行 rbash 绕过。

  4. 使用 la -al 浏览一下当前目录,发现了 flag3.txt

  5. 使用 cat flag3.txt 进行查看,发现无法使用该命令,所以尝试使用 vimvi 进行查看。

可怜的老汤姆总是追着杰瑞跑。 也许他应该为他造成的所有压力感到不安。

  1. 使用 vi 查看成功,观察 flag3 中的内容,发现文本中包含 Jerrysu ,所以猜测需要使用 su jerry 登录到 jerry 用户下,尝试后发现 su 命令无法使用,所以下一步尝试进行 rbash 绕过。
  2. 使用 export -p 发现可以使用 export 命令,所以使用以下命令进行 rbash 绕过:
BASH_CMDS[a]=/bin/sh;a       #注:把 /bin/sh 给a变量并调用
export PATH=$PATH:/bin/      #注:将 /bin 作为PATH环境变量导出
export PATH=$PATH:/usr/bin   #注:将 /usr/bin 作为PATH环境变量导出

  1. 绕过成功,使用 su jerry 和之前爆破出的密码尝试进行登录。

  2. 登录成功,使用 cd /home/jerry/ 访问家目录,发现了 flag4.txt

很高兴看到你已经走到了这一步——但你还没有回家。
您仍然需要获得最终标志(唯一真正重要的标志!!!)。
这里没有任何提示——你现在就靠你自己了。 ?
继续 - 离开这里!!!!

  1. 根据 flag4 的内容,可以推断下一步需要进行提权,来获取 root 权限,访问 /root 目录。

  2. 观察 flag4 中的内容,发现了 git 这个字眼,猜测需要使用 git 提权,所以使用 sudo -l 查看当前用户可以以 root 身份执行的命令。

  3. 发现可以以 root 身份执行 git 命令,所以下一步使用 git 进行提权,使用 sudo git help config 使 git 被动调用 more 进行显示。

  4. 输入 !/bin/bash 即可提权成功。

  5. 使用 cd /root/ 访问 /root 目录,找到了 final-flag.txt

恭喜!!!
特别感谢所有给我发推文并为我提供反馈的人——非常感谢。
如果你喜欢这个 CTF,请通过@DCAU7 给我发一条推文。

  1. 渗透结束!!!

知识点汇总

  1. 使用 nmap 找寻并扫描靶机。
  2. 使用 dirsearch 爆破网站目录。
  3. 使用 cewl 制作字典。
  4. 使用 wpscan 对 WordPress 站点进行扫描和爆破。
  5. rbash 绕过
  6. sudo 提权
  7. git 提权
  8. 修改 hosts 文件来访问网站。

参考资料

DC-2 官网
rbash 绕过


如果您觉得哪里有问题,可以在评论区进行留言,我会马上进行修正的,谢谢!

有关【靶机详解】DC-2的更多相关文章

  1. 物联网MQTT协议详解 - 2

    一、什么是MQTT协议MessageQueuingTelemetryTransport:消息队列遥测传输协议。是一种基于客户端-服务端的发布/订阅模式。与HTTP一样,基于TCP/IP协议之上的通讯协议,提供有序、无损、双向连接,由IBM(蓝色巨人)发布。原理:(1)MQTT协议身份和消息格式有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。MQTT传输的消息分为:主题(Topic)和负载(payload)两部分Topic,可以理解为消息的类型,订阅者订阅(Su

  2. Tcl脚本入门笔记详解(一) - 2

    TCL脚本语言简介•TCL(ToolCommandLanguage)是一种解释执行的脚本语言(ScriptingLanguage),它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。•实际上包含了两个部分:一个语言和一个库。首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。由于TCL的解释器是用C\C++语言的过程库实现的,因此在某种意义上我们又可以把TCL看作C库,这个库中有丰富的用于扩展TCL命令的C\C++过程和函数,所以,Tcl是

  3. 【详解】Docker安装Elasticsearch7.16.1集群 - 2

    开门见山|拉取镜像dockerpullelasticsearch:7.16.1|配置存放的目录#存放配置文件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/config#存放数据的文件夹mkdir-p/opt/docker/elasticsearch/node-1/data#存放运行日志的文件夹mkdir-p/opt/docker/elasticsearch/node-1/log#存放IK分词插件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/plugins若你使用了moba,直接右键新建即可如上图所示依次类推创建

  4. 【Elasticsearch基础】Elasticsearch索引、文档以及映射操作详解 - 2

    文章目录概念索引相关操作创建索引更新副本查看索引删除索引索引的打开与关闭收缩索引索引别名查询索引别名文档相关操作新建文档查询文档更新文档删除文档映射相关操作查询文档映射创建静态映射创建索引并添加映射概念es中有三个概念要清楚,分别为索引、映射和文档(不用死记硬背,大概有个印象就可以)索引可理解为MySQL数据库;映射可理解为MySQL的表结构;文档可理解为MySQL表中的每行数据静态映射和动态映射上面已经介绍了,映射可理解为MySQL的表结构,在MySQL中,向表中插入数据是需要先创建表结构的;但在es中不必这样,可以直接插入文档,es可以根据插入的文档(数据),动态的创建映射(表结构),这就

  5. 最强Http缓存策略之强缓存和协商缓存的详解与应用实例 - 2

    HTTP缓存是指浏览器或者代理服务器将已经请求过的资源保存到本地,以便下次请求时能够直接从缓存中获取资源,从而减少网络请求次数,提高网页的加载速度和用户体验。缓存分为强缓存和协商缓存两种模式。一.强缓存强缓存是指浏览器直接从本地缓存中获取资源,而不需要向web服务器发出网络请求。这是因为浏览器在第一次请求资源时,服务器会在响应头中添加相关缓存的响应头,以表明该资源的缓存策略。常见的强缓存响应头如下所述:Cache-ControlCache-Control响应头是用于控制强制缓存和协商缓存的缓存策略。该响应头中的指令如下:max-age:指定该资源在本地缓存的最长有效时间,以秒为单位。例如:Ca

  6. IDEA 2022 创建 Spring Boot 项目详解 - 2

    如何用IDEA2022创建并初始化一个SpringBoot项目?目录如何用IDEA2022创建并初始化一个SpringBoot项目?0. 环境说明1.  创建SpringBoot项目 2.编写初始化代码0. 环境说明IDEA2022.3.1JDK1.8SpringBoot1.  创建SpringBoot项目        打开IDEA,选择NewProject创建项目。        填写项目名称、项目构建方式、jdk版本,按需要修改项目文件路径等信息。        选择springboot版本以及需要的包,此处只选择了springweb。        此处需特别注意,若你使用的是jdk1

  7. 详解Unity中的粒子系统Particle System (二) - 2

    前言上一篇我们简要讲述了粒子系统是什么,如何添加,以及基本模块的介绍,以及对于曲线和颜色编辑器的讲解。从本篇开始,我们将按照模块结构讲解下去,本篇主要讲粒子系统的主模块,该模块主要是控制粒子的初始状态和全局属性的,以下是关于该模块的介绍,请大家指正。目录前言本系列提要一、粒子系统主模块1.阅读前注意事项2.参考图3.参数讲解DurationLoopingPrewarmStartDelayStartLifetimeStartSpeed3DStartSizeStartSize3DStartRotationStartRotationFlipRotationStartColorGravityModif

  8. VMware虚拟机与本地主机进行磁盘共享(详解) - 2

    VMware虚拟机与本地主机进行磁盘共享前提虚拟机版本为Windows10(专业版,不是可能有问题)本地主机为家庭版或学生版(此版本会有问题,但有替代方式)最好是专业版VMware操作1.关闭防火墙,全部关闭。2.打开电脑属性3.点击共享-》高级共享-》权限4.如果没有everyone,就添加权限选择完全控制,然后应用确定。5.打开cmd输入lusrmgr.msc(只有专业版可以打开)如果不是专业版,可以跳过这一步。点击用户-》administrator密码要复杂密码,否则不行。推荐admaiN@1234类型的密码。设置完密码,点击属性,将禁用解开。6.如果虚拟机的windows不是专业版,可

  9. ElasticSearch之 ik分词器详解 - 2

    IK分词器本文分为简介、安装、使用三个角度进行讲解。简介倒排索引众所周知,ES是一个及其强大的搜索引擎,那么它为什么搜索效率极高呢,当然和他的存储方式脱离不了关系,ES采取的是倒排索引,就是反向索引;常见索引结构几乎都是通过key找value,例如Map;倒排索引的优势就是有效利用Value,将多个含有相同Value的值存储至同一位置。分词器为了配合倒排索引,分词器也就诞生了,只有合理的利用Value,才会让倒排索引更加高效,如果一整个Value不进行任何操作直接进行存储,那么Value和key毫无区别。分词器Analyzer通常会对Value进行操作:一、字符过滤,过滤掉html标签;二、分

  10. Educational Codeforces Round 146 (Rated for Div. 2)(B,E详解) - 2

    题外话:抑郁场,开局一小时只出A,死活想不来B,最后因为D题出锅ura才保住可怜的分。但咱本来就写不到DB-LongLegs(数论)本题题解法一学自同样抑郁的知乎作者幽血魅影的题解,有讲解原理。法二来着知乎巨佬cup-pyy(大佬说《不难发现》呜呜)题意三种操作:向上走mmm步向右走mmm步给自己一次走的步数加111,即使得m=m+1m=m+1m=m+1问从(0,0)(0,0)(0,0)走到(a,b)(a,b)(a,b)的最小操作次数,值得注意的是操作三不可逆。解析假设我们最终一步的大小增长到mmm,那么在这个过程中我能以[1,m][1,m][1,m](当步数增长到该数时)之间的任何数字向上或

随机推荐