靶机下载地址:
链接:https://pan.baidu.com/s/1p62uXOeEej7QL-zSbQeDZA?pwd=aqsi
提取码:aqsi
参考:
介绍页:DC: 2 ~https://www.vulnhub.com/entry/dc-2,311/下载地址:http://www.five86.com/downloads/DC-2.zip
描述
与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地址。
arp-scan -l 二层主机扫描,主动发送ARP包进行嗅探
nmap -p- 192.168.1.130 -A
# -A 参数可以更详细一点,-A参数是一个组合选项,用于启用"全面扫描"模式。使用该参数可以执行更全面的信息收集和服务识别。
发现了7744端口是SSH服务,说明它把SSH的22端口改为7744端口了
whatweb http://192.168.1.130
Dirb是一个用于扫描Web服务器目录和文件的开源工具。它可以帮助您在目标网站上找到隐藏的目录、文件和备份文件,以及发现可能存在的敏感信息泄露或安全问题。
Dirb使用字典攻击的方式,通过将常见的目录和文件名组合成URL路径的形式,尝试访问这些路径来检测服务器上是否存在相应的目录或文件。它还提供了一些高级功能,如递归模式、指定扩展名等,以满足更多特定的扫描需求。
以下是使用Dirb的基本语法:
dirb <target> <wordlist>
其中:
例如,要使用Dirb对网站http://example.com进行目录扫描,可以执行以下命令:
dirb http://example.com /path/to/wordlist.txt
Dirb将开始扫描目标网站,并尝试使用字典中的每个目录和文件名进行攻击。如果找到可访问的目录或文件,它将给出相应的提示。
发现不能正常访问到目标靶机,据悉存在重定向到DC-2 但DNS不能解析此域名
抓包发现重定向,抓包之后发现是已经重定向到dc-2了,那么我们直接修改kali(攻击机)的hosts文件就可以了。
/etc/hosts linux下hosts文件目录
Hosts文件作用:将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从hosts文件中去寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,系统则会再将网址提交DNS域名解析服务器进行IP地址解析
把自己的IP地址和重定向的域名添加上
然后重启一下网络
现在便可以正常访问啦,还获得了flag1
flag1的大概意思就是让我们去使用意思应该就是用cewl。
那么我们先把密码的字典扒下来。
?先可以使? cewl 爬取站点,收集可能密码
得到了密码本,但是用户名我们还不清楚,这时想到了kali里面针对WordPress框架的扫描工具——wpscan
WPScan是一款用于WordPress网站安全扫描和漏洞检测的开源工具。它专门针对WordPress网站进行测试,可以帮助发现潜在的安全问题、弱点和漏洞。
通过使用WPScan,您可以执行以下任务:
以下是使用WPScan的基本语法:
wpscan --url <target>
其中:
例如,要使用WPScan对网站http://example.com进行扫描,可以执行以下命令:
wpscan --url http://example.com
WPScan将开始扫描目标网站,并报告任何发现的漏洞、弱点或配置问题。
我们直接开启扫描:
wpscan --url http://dc-2/ -e u
发现3个用户
成功拿到3个用户名,那么就还差登录的地方, 直接上kali的扫描工具——dirb
扫描完毕之后发现了网站登录后台[http://dc-2/wp-admin/](http://dc-2/wp-admin/)
接下来就有两个办法,第一使用bp抓包之后使用字典自动进行爆破,还可以使用wpscan爆破账号密码。这里我就直接使用wpscan,先把刚才得到的3个用户名写到记事本中去,然后直接使用wpscan扫描就即可得出:
wpscan --url http://dc-2/ -U user.txt -P password.txt
获得密码
jerry / adipiscing
tom / parturient
接下来进入后台[http://dc-2/wp-admin/](http://dc-2/wp-admin/)
尝试登录:
登录Jerry,发现flag2
发现第二个flag:提示说不能使用WordPress走捷径,得使用其他得办法,那么我们在最开始扫描得时候还发现了一个ssh,我们可以使用刚才我们爆破得到得两个用户名和密码试试能不能登录。
根据flag2的提示,再查找后发现并无其他可用信息,这时已经得到两组口令,尝试ssh远程连接
注意ssh端口为7744,此处要选定端口,使用-p
参数
尝试发现jerry不能登录ssh,但是tom可以
出现-rbash: cat: command not found 的命令限制
echo $0后查询得到,shell命令受到限制(-rbash)
我们可以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中,或者直接指定完整的文件路径来运行它。
echo $PATH 之后,查看里面的内容,发现 less 和 vi 可以用
有很多不同的限制外壳可供选择。其中一些只是普通的shell,有一些简单的常见限制,实际上并不是可配置的,例如rbash(限制Bash)rzsh和rksh(受限模式下的KornShell),这些都非常容易绕过。其他人有一个完整的配置集,可以重新设计以满足管理员的需求,如lshell(Limited Shell)和rssh(Restricted Secure Shell)。
一旦配置可以被管理员收紧,可配置的shell就更难以绕过。在这些shell上绕过技术通常依赖于管理员有点被迫为普通用户提供某些不安全命令的事实。。如果在没有适当安全配置的情况下允许,它们会为攻击者提供升级权限的工具,有时还会向root用户升级。
其他原因是,有时管理员只是Linux系统管理员,而不是真正的安全专业人员,因此从渗透测试人员的角度来看,他们并不真正了解方式,并最终允许太多危险命令。
参考绕过文章一
绕过文章二
方法一:
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
找不到cat,因为它是在/home/tom/usr/bin下面找的
所以我们需要修改环境变量(全局变量)
export PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 添加环境变量
这样便可以成功cat flag3.txt了
查看flag3
提示到使用jerry用户登录
尝试本地利?密码复?切换到
jerry 成功切换
使用Jerry登录后,查看Jerry目录下的flag4
查看哪些命令有suid 权限
find / -user root -perm -4000 -print 2>/dev/null
发现可用使用sudo 命令
sudo -l 查看sudo配置文件,发现提示git是root不用密码可以运行,搜索git提权
利? git sudo 提权
sudo git branch --help config
!/bin/sh
获取最终的flag,* (星号表示通配符匹配)
cat /root/f*
本关主要是利用wordPress框架的漏洞,这个框架主要是用来搭建博客的,使用wpscan专门利用该cms的漏洞。通过wpscan查找到服务器的关键用过tom和Jerry。可以想想自己的博客一般都会发布和自己兴趣有关的东西,某些东西可能就会暴露密码,通过cewl爬去网页获取关键词密码。通过wpscan利用爬取的字典,爆破出密码。然后使用密码登录。发现其中一个用户的功能更多,并从中获取了敏感信息。
经过漏洞的挖掘,和msf上面已经存在的漏洞探测,发现这个网站可能并没有好利用的漏洞。我们便转换思路,寻找其它端口。通过扫描所有端口,发现了一个开放ssh的端口,加上我们前面获取的密码,我们便可以成功登录ssh服务。登录后发现我们的shell受到了很大的限制。只能运行有限命令如vi。我们便通过vi绕过受限shell,修改了环境变量,给我们添加了很多命令的使用,我们便使获取了该用户的基本全部shell能力。
通过su我们可以获取其它用户的敏感信息。最终我们找到sudo和git的缺陷,成功利用这两个命令提权为root权限。