DC-2靶机刷题记录

靶机下载地址:

链接:https://pan.baidu.com/s/1p62uXOeEej7QL-zSbQeDZA?pwd=aqsi 
提取码:aqsi 

参考:

  • https://c3ting.com/archives/vulnhnbshua-ti—dc-2
  • http://t.csdnimg.cn/pNSCN
  • https://www.vulnhub.com/entry/dc-2,311/
  • 【【基础向】超详解vulnhub靶场DC-2】 https://www.bilibili.com/video/BV1LS4y1W7Yu/?share_source=copy_web&vd_source=12088c39299ad03109d9a21304b34fef

介绍页:DC: 2 ~https://www.vulnhub.com/entry/dc-2,311/下载地址:http://www.five86.com/downloads/DC-2.zip
DC-2靶机刷题记录_第1张图片
描述

与DC-1非常相似,DC-2是另一个专门构建的易受攻击的实验室,目的是在渗透测试领域获得经验。
与原始DC-1一样,它在设计时考虑了初学者的需求。
Linux技能和对Linux命令行的熟悉程度是必须的,基本的渗透测试工具的一些经验也是必须的。
就像DC-1一样,有五个flag,包括最后一个flag。
同样,就像DC-1一样,flag对初学者很重要,但对那些有经验的人来说并不那么重要。
简而言之,唯一真正重要的flag是最后一个flag。
对于初学者来说,谷歌是你的朋友。好吧,除了所有的隐私问题等等。
我还没有探索实现root的所有方法,因为我放弃了我一直在研究的先前版本,并且除了基本操作系统安装之外,完全重新开始。

使用工具

攻击者:kali:192.168.1.128
靶机:DC-2:192.168.1.130

1、导入VMware虚拟机

下载完成后,得到DC-2.ova文件,导入到VMware后,设置靶机和kali的网络连接模式为NAT模式,靶机会自动获取ip地址。

一.信息收集

基础信息查询

0x01 查看存活主机
arp-scan -l 二层主机扫描,主动发送ARP包进行嗅探

DC-2靶机刷题记录_第2张图片

0x02 查看开放端口 和 0x03 查看端口服务
nmap -p- 192.168.1.130 -A
# -A 参数可以更详细一点,-A参数是一个组合选项,用于启用"全面扫描"模式。使用该参数可以执行更全面的信息收集和服务识别。

DC-2靶机刷题记录_第3张图片
发现了7744端口是SSH服务,说明它把SSH的22端口改为7744端口了

0x04 扫描网站根目录及指纹信息
whatweb http://192.168.1.130

image.png

  • 也可以用浏览器插件Wappalyzer来进行查看

DC-2靶机刷题记录_第4张图片


Dirb是一个用于扫描Web服务器目录和文件的开源工具。它可以帮助您在目标网站上找到隐藏的目录、文件和备份文件,以及发现可能存在的敏感信息泄露或安全问题。
Dirb使用字典攻击的方式,通过将常见的目录和文件名组合成URL路径的形式,尝试访问这些路径来检测服务器上是否存在相应的目录或文件。它还提供了一些高级功能,如递归模式、指定扩展名等,以满足更多特定的扫描需求。
以下是使用Dirb的基本语法:

dirb  

其中:

  • 是要扫描的目标URL或IP地址。
  • 是包含要用于字典攻击的目录和文件名称的文本文件。

例如,要使用Dirb对网站http://example.com进行目录扫描,可以执行以下命令:

dirb http://example.com /path/to/wordlist.txt

Dirb将开始扫描目标网站,并尝试使用字典中的每个目录和文件名进行攻击。如果找到可访问的目录或文件,它将给出相应的提示。


二.漏洞发现

访问开放网页

0x01解决重定向问题

发现不能正常访问到目标靶机,据悉存在重定向到DC-2 但DNS不能解析此域名
DC-2靶机刷题记录_第5张图片
抓包发现重定向,抓包之后发现是已经重定向到dc-2了,那么我们直接修改kali(攻击机)的hosts文件就可以了。
DC-2靶机刷题记录_第6张图片

/etc/hosts linux下hosts文件目录

Hosts文件作用:将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从hosts文件中去寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,系统则会再将网址提交DNS域名解析服务器进行IP地址解析

image.png
把自己的IP地址和重定向的域名添加上
DC-2靶机刷题记录_第7张图片
然后重启一下网络
DC-2靶机刷题记录_第8张图片
现在便可以正常访问啦,还获得了flag1

0x02 flag1

DC-2靶机刷题记录_第9张图片
flag1的大概意思就是让我们去使用意思应该就是用cewl。
那么我们先把密码的字典扒下来。

收集可能密码
cewl创建password字典

⾸先可以使⽤ cewl 爬取站点,收集可能密码
DC-2靶机刷题记录_第10张图片
得到了密码本,但是用户名我们还不清楚,这时想到了kali里面针对WordPress框架的扫描工具——wpscan


WPScan是一款用于WordPress网站安全扫描和漏洞检测的开源工具。它专门针对WordPress网站进行测试,可以帮助发现潜在的安全问题、弱点和漏洞。
通过使用WPScan,您可以执行以下任务:

  1. 用户枚举:探测WordPress网站上存在的用户。
  2. 弱密码攻击:尝试使用常见或弱密码进行登录破解。
  3. 主题和插件扫描:检测已安装的主题和插件是否存在已知的漏洞。
  4. 检查核心文件:验证WordPress核心文件的完整性,以检测是否被篡改。
  5. 数据泄露检查:检查敏感信息是否泄露,如数据库凭据、API密钥等。
  6. 配置审计:查找可能的安全配置问题,如目录浏览、文件权限等。

以下是使用WPScan的基本语法:

wpscan --url 

其中:

  • –url选项用于指定要扫描的目标WordPress网站URL。

例如,要使用WPScan对网站http://example.com进行扫描,可以执行以下命令:

wpscan --url http://example.com

WPScan将开始扫描目标网站,并报告任何发现的漏洞、弱点或配置问题。


我们直接开启扫描:

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

发现3个用户
DC-2靶机刷题记录_第11张图片
成功拿到3个用户名,那么就还差登录的地方, 直接上kali的扫描工具——dirb
DC-2靶机刷题记录_第12张图片
扫描完毕之后发现了网站登录后台[http://dc-2/wp-admin/](http://dc-2/wp-admin/)
接下来就有两个办法,第一使用bp抓包之后使用字典自动进行爆破,还可以使用wpscan爆破账号密码。这里我就直接使用wpscan,先把刚才得到的3个用户名写到记事本中去,然后直接使用wpscan扫描就即可得出:

0x03wpscan爆破用户名及密码

DC-2靶机刷题记录_第13张图片

wpscan --url http://dc-2/ -U user.txt -P password.txt

DC-2靶机刷题记录_第14张图片
获得密码

jerry / adipiscing
tom / parturient

DC-2靶机刷题记录_第15张图片
接下来进入后台[http://dc-2/wp-admin/](http://dc-2/wp-admin/)尝试登录:
DC-2靶机刷题记录_第16张图片
登录Jerry,发现flag2
DC-2靶机刷题记录_第17张图片
发现第二个flag:提示说不能使用WordPress走捷径,得使用其他得办法,那么我们在最开始扫描得时候还发现了一个ssh,我们可以使用刚才我们爆破得到得两个用户名和密码试试能不能登录。

三.漏洞利用

远程连接

根据flag2的提示,再查找后发现并无其他可用信息,这时已经得到两组口令,尝试ssh远程连接

0x01ssh远程登录

注意ssh端口为7744,此处要选定端口,使用-p参数
DC-2靶机刷题记录_第18张图片
尝试发现jerry不能登录ssh,但是tom可以
DC-2靶机刷题记录_第19张图片
出现-rbash: cat: command not found 的命令限制
echo $0后查询得到,shell命令受到限制(-rbash)
image.png
我们可以echo $PATH查看一下


P A T H 是一个环境变量,用于存储操作系统在执行命令时搜索可执行文件的路径列表。当您输入一个命令时,操作系统会按照 PATH是一个环境变量,用于存储操作系统在执行命令时搜索可执行文件的路径列表。当您输入一个命令时,操作系统会按照 PATH是一个环境变量,用于存储操作系统在执行命令时搜索可执行文件的路径列表。当您输入一个命令时,操作系统会按照PATH中定义的顺序在这些路径下查找对应的可执行文件。
要查看当前系统中设置的$PATH变量的值,可以使用以下命令:

echo $PATH

执行上述命令后,系统将会输出当前环境中$PATH的值,多个路径之间以冒号分隔。例如,可能会输出类似如下的内容:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

这意味着当您输入命令时,系统将首先在/usr/local/bin目录中搜索可执行文件,然后依次在/usr/bin、/bin、/usr/sbin和/sbin目录中进行搜索。
了解 P A T H 的值对于确定系统能够找到特定命令的位置非常有帮助。如果您想运行一个不在默认路径中的可执行文件,您可以将其添加到 PATH的值对于确定系统能够找到特定命令的位置非常有帮助。如果您想运行一个不在默认路径中的可执行文件,您可以将其添加到 PATH的值对于确定系统能够找到特定命令的位置非常有帮助。如果您想运行一个不在默认路径中的可执行文件,您可以将其添加到PATH中,或者直接指定完整的文件路径来运行它。


DC-2靶机刷题记录_第20张图片
echo $PATH 之后,查看里面的内容,发现 less 和 vi 可以用
image.png

方法二:

有很多不同的限制外壳可供选择。其中一些只是普通的shell,有一些简单的常见限制,实际上并不是可配置的,例如rbash(限制Bash)rzsh和rksh(受限模式下的KornShell),这些都非常容易绕过。其他人有一个完整的配置集,可以重新设计以满足管理员的需求,如lshell(Limited Shell)和rssh(Restricted Secure Shell)。

一旦配置可以被管理员收紧,可配置的shell就更难以绕过。在这些shell上绕过技术通常依赖于管理员有点被迫为普通用户提供某些不安全命令的事实。。如果在没有适当安全配置的情况下允许,它们会为攻击者提供升级权限的工具,有时还会向root用户升级。

其他原因是,有时管理员只是Linux系统管理员,而不是真正的安全专业人员,因此从渗透测试人员的角度来看,他们并不真正了解方式,并最终允许太多危险命令。

0x02突破rbash限制

参考绕过文章一
绕过文章二
方法一:
vi绕过:
可以进入vi中执行set命令将shell改为/bin/bash

用vi编辑器穿件shell文件
用vi的末行模式下输入 ——> :set shell=/bin/bash				# 给shell赋值
然后应用这个shell ——> : shell		# 执行shell

方法二:

或者BASH_CMDS[a]=/bin/sh;a
然后 /bin/bash

DC-2靶机刷题记录_第21张图片DC-2靶机刷题记录_第22张图片

0x03添加环境变量

DC-2靶机刷题记录_第23张图片
找不到cat,因为它是在/home/tom/usr/bin下面找的
所以我们需要修改环境变量(全局变量)
export PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 添加环境变量
image.png
这样便可以成功cat flag3.txt了

0x04 flag3

查看flag3
提示到使用jerry用户登录
尝试本地利⽤密码复⽤切换到
jerry 成功切换
使用Jerry登录后,查看Jerry目录下的flag4
DC-2靶机刷题记录_第24张图片
查看哪些命令有suid 权限
find / -user root -perm -4000 -print 2>/dev/null
发现可用使用sudo 命令
sudo -l 查看sudo配置文件,发现提示git是root不用密码可以运行,搜索git提权
DC-2靶机刷题记录_第25张图片

权限提升

利⽤ git sudo 提权

sudo git branch --help config 
!/bin/sh  

DC-2靶机刷题记录_第26张图片
获取最终的flag,* (星号表示通配符匹配)
cat /root/f*

总结

本关主要是利用wordPress框架的漏洞,这个框架主要是用来搭建博客的,使用wpscan专门利用该cms的漏洞。通过wpscan查找到服务器的关键用过tom和Jerry。可以想想自己的博客一般都会发布和自己兴趣有关的东西,某些东西可能就会暴露密码,通过cewl爬去网页获取关键词密码。通过wpscan利用爬取的字典,爆破出密码。然后使用密码登录。发现其中一个用户的功能更多,并从中获取了敏感信息。
经过漏洞的挖掘,和msf上面已经存在的漏洞探测,发现这个网站可能并没有好利用的漏洞。我们便转换思路,寻找其它端口。通过扫描所有端口,发现了一个开放ssh的端口,加上我们前面获取的密码,我们便可以成功登录ssh服务。登录后发现我们的shell受到了很大的限制。只能运行有限命令如vi。我们便通过vi绕过受限shell,修改了环境变量,给我们添加了很多命令的使用,我们便使获取了该用户的基本全部shell能力。
通过su我们可以获取其它用户的敏感信息。最终我们找到sudo和git的缺陷,成功利用这两个命令提权为root权限。

完毕!

你可能感兴趣的:(CTF,网络安全,web安全,http,网络,笔记)