DC-2靶机通关记录
靶场环境
局域网网段:192.168.47.0/24
攻击机 kali:192.168.47.128/24
目标器 DC-2:192.168.47.136/24
打靶目标
找到藏在DC-2靶机中的五个flag。
信息收集
已知目标机器和攻击机器在同一个局域网内,网段为192.168.47.0/24。
寻找靶机真实IP
同样使用nmap扫描网段内的ip,使用命令:
nmap -sP 192.168.47.0/24 |
第一个为网关地址,192.168.47.128为本kali机地址,那么192.168.47.136就是目标机器地址了。
探测服务以及端口
nmap使用命令
nmap -A -p- -v 192.168.47.136/24 |
目标靶机开放了80端口的web服务和7744端口的ssh,7744端口并不是ssh的常见端口。
寻找flag
获取flag1
扫描到目标靶机开放了web服务,游览器访问靶机ip,跳转到域名:http://dc-2/,本机可能解析不了,在hosts文件中添加DNS域名解析记录,游览器访问,在当前页面中发现flag1。
它提示我们登录获取下一个flag。很明显,这个网站用的是WordPress框架。
获取flag2
提示我们登录进去,那么首先得找到后台登录页面,用kali自带的dirb扫描目录。
dirb扫描目录
dirb是kali自带的一种扫描工具,dirb是一个基于字典的web目录扫描工具,采用递归的方式来获取更多的目录,可以查找到已知的和隐藏的目录,基于字典扫描,就类似于dirsearch,命令也很简单,直接用dirb后面接上url |
有后台管理目录,访问跳转到后台登录页面。
一般登录网站的后台,首先都会想到弱口令和爆破。那么关于弱口令,怎么又去收集字典。
cewl生成字典
cewl是一个字典生成工具,kali自带。Cewl可以通过抓取指定的目标网页并提取其中的文本内容来构建字典。它会遵循链接,并递归地爬取其他页面。分析爬取的文本内容,提取其中的单词、短语和特定模式的字符串。基于提取的单词和短语,Cewl将它们组合成一个自定义字典(wordlist)。这个字典可以用于密码破解、社会工程学攻击、安全测试和其他相关用途。 |
枚举出用户名
前面我们提到用的是WordPress的站,那么可以用专门针对于WordPress的工具来进行渗透。
WPScan是一款用于WordPress网站的安全扫描工具,旨在帮助评估和增强WordPress网站的安全性。它是一个开源工具,具有广泛的功能和功能,可以用于渗透测试、漏洞评估和安全审计。 |
使用wpscan –url http://dc-2 –enumerate u命令对用户名进行枚举
枚举出三个可用用户名,分别为admin,jerry,tom这三个。
暴力破解密码
直接使用wpscan工具的弱密码爆破功能,使用相关命令:
wpscan --url http://dc-2 --passwords 1.txt |
爆破出了两个密码,用其中一组账号密码登录到后台。登录进去后随便翻翻看看,在Pages模块中找到flag2。
提示说如果你不能利用WordPress并采取一条捷径,还有另外一种方法。那么就是靶机开放的另一种服务了,也就是ssh。
获取flag3&&flag4
登录ssh
SSH登录远程主机的命令格式: |
使用相关命令:ssh tom@192.168.47.136 -p 7744登录。
在家目录中找到flag3,cat命令用不了,vi编译器查看文件。可以看到当我们使用cat命令查看的时候,会有rbash的报错,而rbash是一种受限制的命令解释器,rbash是Bash的一种配置,用于提供有限的操作和限制用户的权限,以增加系统安全性。那这种限制是否能够绕过呢?答案是可以的。
绕过rbash
试了一下几个命令cd,cat都不行。拿到的shell也是用处不大的,所以我们需要绕过rbash。这篇文章只记录绕过的方法,原理分析改天再记录,相关文章:https://www.freebuf.com/articles/system/188989.html
echo $PATH 输出环境变量 |
使用ls查看以下这个目录的相关信息
四个可用命令,使用以下命令来绕过rbash。
BASH_CMDS[a]=/bin/sh;a |
其实绕过rbash的限制的根本方法就是再执行一个/bin/bash命令,生成一个新的,没有添加限制的纯天然shell解释器。以上代码就是重新定义一个shell变量a,将/bin和/usr/bin拼接原有环境变量赋予给新的shell变量中,目的就是为了能够执行这两个路径下的命令。最后在这个shell变量中执行echo语句。
总的来说,这段代码的目的是通过利用关联数组来绕过rbash
的限制,并将/bin/sh
路径关联到键a
。然后,通过更新PATH
环境变量,添加/bin/
和/usr/bin
路径,以绕过rbash
对特定路径下命令的限制。这样,我们可以通过执行关联数组中的键a
间接执行/bin/sh
,并使用更新的PATH
环境变量来访问/bin/
和/usr/bin
中的命令。
成功绕过rbash。进入到jerry目录发现了flag4,可以用cat命令查看:
提示说还有最后一个旗帜,最后一句提示用git。
获取final_flag
提权
su jerry 切换到jerry用户 |
直接使用ssh远程登录到jerry用户是行不通的。切换账号后发现没有rbash的限制。
不能进入到root目录,因为权限不够。输入sudo -l列出当前用户在当前主机上的sudo特权
它允许用户”jerry”以root身份执行”/usr/bin/git”命令,而无需进行密码验证。那么我们就可以通过/usr/bin/git来提权。百度git提权,输入命令 sudo git help status 该命令打开git命令的帮助文档,在下面直接输入!/bin/bash进行提权。
提权成功,最后就进入root找到最后的flag了。
本靶场通关结束。