DC-2靶机
环境搭建
详情:
名称 | DC- 2 |
---|---|
发布日期 | 2019年3月22日 |
作者 | DCAU |
系列 | DC |
网页 | https://www.vulnhub.com/entry/dc-2,311/ |
描述
与DC-1非常相似,DC-2是另一个专门构建的易受攻击的实验室,目的是在渗透测试领域获得经验。
与原始DC-1一样,它在设计时考虑了初学者的需求。
Linux技能和对Linux命令行的熟悉程度是必须的,基本的渗透测试工具的一些经验也是必须的。
就像DC-1一样,有五个标志,包括最后一个标志。
同样,就像DC-1一样,标志对初学者很重要,但对那些有经验的人来说并不那么重要。
简而言之,唯一真正重要的标志是最后一面旗帜。
对于初学者来说,谷歌是你的朋友。好吧,除了所有的隐私问题等等。
我还没有探索实现root的所有方法,因为我放弃了我一直在研究的先前版本,并且除了基本操作系统安装之外,完全重新开始。
使用工具
攻击者:kali:192.168.10.153
靶机:DC-2:192.168.10.156
一.信息收集
基础信息查询
0x01 查看存活主机
netdiscover -i eth0 -r 192.168.10.0/24
0x02 查看开放端口
masscan --rate=10000 --ports 0-65535 192.168.10
0x03 查看端口服务
nmap -sV -T4 -O -p 80,7744 192.168.10.156
0x04 扫描网站根目录及指纹信息
whatweb http://192.168.10.156
dirb http://192.168.10.156 /usr/share/dirb/wordlists/big.txt
二.漏洞发现
访问开放网页
0x01解决重定向问题
发现不能正常访问到目标靶机,据悉存在重定向到DC-2 但DNS不能解析此域名
“C:\Windows\System32\drivers\etc\hosts” windows 下hosts文件目录
/etc/hosts linux下hosts文件目录
Hosts文件作用:将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从hosts文件中去寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,系统则会再将网址提交DNS域名解析服务器进行IP地址解析
发现可以进行登录,查找到一个wordpress登录界面
0x02 flag1
找到flag1
提示到可以使用cewl创建字典进行爆破
cewl创建password字典
cewl dc-2 >password.txt
0x03wpscan爆破用户名及密码
wpscan --url http://dc-2/ -e u 用户枚举
将tom,jerry,admin设为user.txt字典,尝试wordpress爆破
wpscan --url http://dc-2/ -U user.txt -P password.txt
jerry;adipiscing
tom;parturient
0x04登录后台
登录Jerry,发现flag2
三.漏洞利用
远程连接
根据flag2的提示,再查找后发现并无其他可用信息,这时已经得到两组口令,尝试ssh远程连接
0x01ssh远程登录
注意ssh端口为7744,此处要选定端口
ssh -p 7744 jerry@192.168.10.156
发现此用户未经许可,不可以登录,使用tom的账号密码,成功登录
但会出现-rbash: id: command not found 的命令限制
echo $0后查询得到,shell命令受到限制(-rbash)
有很多不同的限制外壳可供选择。其中一些只是普通的shell,有一些简单的常见限制,实际上并不是可配置的,例如rbash(限制Bash)rzsh和rksh(受限模式下的KornShell),这些都非常容易绕过。其他人有一个完整的配置集,可以重新设计以满足管理员的需求,如lshell(Limited Shell)和rssh(Restricted Secure Shell)。
一旦配置可以被管理员收紧,可配置的shell就更难以绕过。在这些shell上绕过技术通常依赖于管理员有点被迫为普通用户提供某些不安全命令的事实。。如果在没有适当安全配置的情况下允许,它们会为攻击者提供升级权限的工具,有时还会向root用户升级。
其他原因是,有时管理员只是Linux系统管理员,而不是真正的安全专业人员,因此从渗透测试人员的角度来看,他们并不真正了解部队的方式,并最终允许太多危险命令。
0x02突破rbash限制
方法一:
用vi编辑器穿件shell文件
用vi的末行模式下输入 ——> :set shell=/bin/bash
然后应用这个shell ——> : shell
方法二:
或者BASH_CMDS[a]=/bin/sh;a
然后 /bin/bash
突破shell限制后,记得尝试使用tab键,查询可用命令
0x03添加环境变量
export PATH=$PATH:/bin/ 添加环境变量
0x04 flag3
查看flag3
提示到使用jerry用户登录
四.提权
flag4
使用Jerry登录后,查看Jerry目录下的flag4
查看哪些命令有suid 权限
find / -user root -perm -4000 -print 2>/dev/null
发现可用使用sudo 命令
sudo -l 查看sudo配置文件,发现提示git是root不用密码可以运行,搜索git提权
使用上边的方法,可以直接提权,原理大概就是通过交互模式来绕过受限环境,已达到提权的效果
或者
我知道的是在输入git help
status时,会进入一个页面,然后输入!/bin/sh可以进入命令执行页面,使用什么用户进入这个页面,这个页面就拥有什么权限区执行。这里我们拥有sudo,可以暂时成为root用户,但是已经够我们提升为root用户了。
我们使用sudo git help status和 !/bin/sh便可提权
总结
本关主要是利用wordPress框架的漏洞,这个框架主要是用来搭建博客的,使用wpscan专门利用该cms的漏洞。通过wpscan查找到服务器的关键用过tom和Jerry。可以想想自己的博客一般都会发布和自己兴趣有关的东西,某些东西可能就会暴露密码,通过cewl爬去网页获取关键词密码。通过wpscan利用爬取的字典,爆破出密码。然后使用密码登录。发现其中一个用户的功能更多,并从中获取了敏感信息。
经过漏洞的挖掘,和msf上面已经存在的漏洞探测,发现这个网站可能并没有好利用的漏洞。我们便转换思路,寻找其它端口。通过扫描所有端口,发现了一个开放ssh的端口,加上我们前面获取的密码,我们便可以成功登录ssh服务。登录后发现我们的shell受到了很大的限制。只能运行有限命令如vi。我们便通过vi绕过受限shell,修改了环境变量,给我们添加了很多命令的使用,我们便使获取了该用户的基本全部shell能力。
通过su我们可以获取其它用户的敏感信息。最终我们找到sudo和git的缺陷,成功利用这两个命令提权为root权限。