THM-Kenobi(克诺比)
侦查
- 用nmap扫描机器,打开了多少个端口?
枚举共享服务samba
Samba 是用于Linux和 Unix的标准 Windows 互操作程序套件。它允许最终用户访问和使用公司内联网或互联网上的文件、打印机和其他常用共享资源。它通常被称为网络文件系统
Samba 基于服务器消息块 (SMB) 的通用客户端/服务器协议。SMB 仅针对 Windows 开发,如果没有 Samba,其他计算机平台将与 Windows 机器隔离,即使它们是同一网络的一部分
使用 nmap 我们可以为 SMB 共享枚举一台机器。
Nmap 能够自动运行各种网络任务。有一个枚举股票的脚本!
nmap -p 445 --script=smb-enum-shares.nse,smb-enum-users.nse MACHINE_IP
SMB 有两个端口,445 和 139。
可以看的枚举出三个共享的目录
在大多数Linux发行版上,smbclient 已经安装,可以使用该命令连接samba
共享服务
smbclient //MACHINE_IP/anonymous
不输入用户名和密码,默认匿名登录,可以看到有一个log.txt
在共享服务,可以使用get 文件名
将该文件下载
可以递归下载SMB共享,不需要提供用户名密码
smbget -R smb:// MACHINE_IP /anonymous
打开共享上的文件。发现了一些有趣的东西:
- 为用户生成SSH密钥时为 Kenobi 生成的信息
- 有关 ProFTPD 服务器的信息。
您之前的 nmap 端口扫描将显示运行服务 rpcbind 的端口 111。这只是一个将远程过程调用 (RPC) 程序编号转换为通用地址的服务器。当一个 RPC 服务启动时,它告诉 rpcbind 它正在监听的地址和它准备服务的 RPC 程序号
在我们的例子中,端口 111 用于访问网络文件系统(NFS)。让我们使用 nmap 来枚举它
nmap -p 111 --script=nfs-ls,nfs-statfs,nfs-showmount MACHINE_IP
可以看到枚举出/var
目录,我们可以使用mount
将该目录挂载到本机目录
使用 ProFtpd 获得初始访问权限
ProFtpd 是一个免费的开源FTP服务器,兼容 Unix 和 Windows 系统。它在过去的软件版本中很容易受到攻击
可以使用netcat
或者nmap -sV -p21
扫描获取ProFtpd
的版本号
我们可以使用searchsploit
或者explot-db.com
来搜索ProFtpd
是否存在高危漏洞
可以看到1.3.5
版本存在四个漏洞利用代码
其中都是利用mod_copy
模块的漏洞
mod_copy 模块实现了SITE CPFR和SITE CPTO命令,可用于将文件/目录从服务器上的一个地方复制到另一个地方。任何未经身份验证的客户端都可以利用这些命令将文件从文件系统的任何部分复制 到选定的目的地
我们知道FTP服务以 **Kenobi **用户身份运行(从共享文件中),并且为该用户生成了一个 ssh 密钥
我们现在要 使用 SITE CPFR 和 SITE CPTO 命令复制 Kenobi 的私钥
上述在扫描NFS
服务的时候,我们知道了/var
目录是可以挂载的,所以才会将Kenobi
的私钥移动到 /var/tmp
目录
让我们将 /var/tmp
目录挂载到我们的机器上
mkdir mnt
mount 10.10.229.64:/var mnt
ls -la mnt
我们现在在部署的机器上有一个网络挂载!我们可以去 /var/tmp
并获取私钥,然后登录到 Kenobi
的帐户
什么是 Kenobi 的用户标志 (/home/kenobi/user.txt)?
使用路径变量操作进行特权升级
SUID 位可能很危险,某些二进制文件(例如 passwd)需要以提升的权限运行(因为它会在系统上重置您的密码),但是其他具有 SUID 位的自定义文件可能会导致各种问题。
要在系统中搜索这些类型的文件,请运行以下命令:find / -perm -u=s -type f 2>/dev/null
其中/usr/bin/menu
看起来不太寻常,运行查看:
猜测应该是使用系统命令实现的,使用strings
分析文件内容
可以看到实际上执行的是上面的三条命令curl、uname、ifconfig
,由于上述命令不是完成的运行路径,我们可以更改系统默认的PATH
目录
将当前目录更改为环境变量的目录,然后替换curl、uname、ifconfig
这三个命令的内容为/bin/bash
,由于该程序由root
用户运行,所以我们获得root
权限
可能该机器没有安装或者/bin/bash
有一些问题,我失败了
还是/bin/sh
比较通用,成功获取root
权限
什么是根标志 (/root/root.txt)?