从前期的信息收集,发现web端存在疑似RCE的入口尝试直接RCE反弹shell无果,发现url中存在疑似文件包含漏洞,针对中间件的日志存放路径进行测试后发现存在文件包含漏洞,使用恶意命令访问网页导致错误日志中存在我们的恶意语句,本地nc开启监听获取shell,也可以使用curl –A在访问的user-agent中添加恶意语句,但这个靶机的重点是后期的提权:
- 首先查看passwd文件下存在/bin/bash权限的用户
原本是以为从uid1004-1003—1002—1001—1000—0逐个提权,结果我在备份文件中找到hash之后的密码,使用john进行破解出marvin的密码marvinthemartian并且ssh登录成功。
- 登录marvin的ssh
从这里开始常规的提权操作,我总结为以下几点:
- 首先查看uname –a以及lsb_release –a 查看内核漏洞使用gcc编译后提权。
- 查看suid权限。
什么是suid权限?
就是在程序运行后成为进程时,属主不是发起者的权限,而是程序属主的权限。加入程序的属主时root,我们是非root并且程序被设置了suid的权限,我们可以运行这个程序并且是以属主(root)的权限运行。
我最常用的查询语句是 find / -perm –u=s –type f 2>/dev/null
chmod u+s filename 设置SUID位
chmod u-s filename 去掉SUID设置
查询后的操作:
- 通过https://gtfobins.github.io/在线查询相对应的命令
- 查看有没有可疑的文件,毕竟是靶机如果想让你从suid提权肯定会有可疑的文件就比如这台,存在/usr/bin/Lucas_Access文件,通过简单的调试后获取了luacs权限。
- 查看sudo –l ,查看哪些用户存在sudo权限。什么是sudo权限?就是可以让授权的普通用户暂时获取root用户的执行权限,我们还会在这台靶机中看到NOPASSWD这种操作,这种就是在sudo的配置信息中sudoers文件里面配置了(ALL) ALL这种规则。
-
通过sudo –l我们看到nano古老的编辑器存在不需要密码就可以以maria的权限执行的操作。
针对nano编辑器提权的操作是:
- 打开nano然后回车进入
- 进入之后,Ctrl+r
- Ctrl+x 就可以执行命令 每次只能执行一条,执行完之后需要重新ctrl+r-ctrl+x进入执行下一条。
- 直接反弹nc,然后配置ssh公钥通过ssh链接。默认公钥名称为authorized_keys
- 借用Linux提权辅助脚本,pspy等,https://github.com/DominicBreuker/pspy,这里分为大端序和小端序的32/64位的脚本。
-
可以看到uid=1003在执行/home/pedro/Reporting_System_Info.sh文件,我们查看下发现/home/pedro/Reporting_System_Info.sh文件会定期运行/home/maria/Send_Reporting_Email.sh文件,但是我们没有修改的权限,只能伪造email文件让他反弹shell。
- 在laura用户下发现另一个py文件,这里我们无法针对py文件进行修改,但是我们可以针对python的官方库文件进行修改,使其import包含后执行py文件运行我们的恶意代码,这次的恶意代码是插入在import的库中。
- 最后直接sudo –l提权为root
-
查找subprocess库文件位置,然后进行修改。