Kenobi
Kenobi
信息收集
首先对其端口信息进行一个扫描。
21 22 139 445 以及80端口开放。
其中samba服务是开启的。
nmap 有一个脚本是枚举samba共享的。
nmap -p 445 --script=smb-enum-shares.nse,smb-enum-users.nse 10.10.25.79
使用enum4linux 也能枚举samba服务。
比nmap那个更清晰。
我们使用smbclient连接到远程samba服务共享。
然后经过测试发现,anonymous和IPC$ 是无密码的,然后print$ 无密码的话是登录不进去的,同时只有anonmous 在ls下有文件。
递归下载文件。
smbget -R smb:// 10.10.25.79 /anonymous
我这个不知道为什么下载不了…
shell
上面开启了21端口,我们试一下ftp登录。
发现ProFTPD的版本信息,去搜索一下对应的漏洞信息。
有4个可以利用的。
漏洞利用思路:
大体上就是利用漏洞将用户的ssh密钥文件移动到我们可以看见的挂载的地方,因为它是一个smb服务,创建一个共享目录,将可看见的挂载的地方挂载到共享目录去,然后我们就能在攻击机上面得到该ssh私钥文件,利用该文件进行ssh登录。
下面是详细的过程:
mod_copy 模块实现了SITE CPFR和SITE CPTO命令,这些命令可用于将文件/目录从服务器上的一个位置复制到另一个位置。任何未经身份验证的客户端都可以利用这些命令将文件从 文件系统的任何部分复制到选定的目标。
我们知道 FTP 服务以 Kenobi 用户身份运行(从共享上的文件),并且为该用户生成了一个 ssh 密钥。
我们现在将 使用 SITE CPFR 和 SITE CPTO 命令复制 Kenobi 的私钥。
我们知道 /var 目录是我们可以看见的挂载 因此,我们现在将 Kenobi 的私钥移至 /var/tmp 目录。
现在/mnt/fsrm/tmp目录下存放着ssh的私钥,我们可以利用这个登录Kenobi用户。
记得需要修改id_rsa的权限 修改为600
提权
然后下面就是尝试提权,sudo提权不太行,那就查看一下哪些具有suid位。
这里利用的是/usr/bin/menu
先运行一下这个程序
选择1,这个功能就相当于curl,然后我们可以将/bin/sh 写入到curl中,并将curl设置成777权限,然后再将其添加到PATH中,当这个suid程序再次运行1时,就会触发这个curl。
通过:PATH 环境变量提权。
先来看一下$PATH里面有什么。
有/tmp,可以将curl添加到/tmp中。
提权成功。