一、介绍
运行环境:Virtualbox(攻击机)和VMware(靶机)
攻击机:kali(192.168.56.101)
靶机:HackLAB: Vulnix(192.168.56.110)
目标:获取靶机root权限和flag
靶机下载地址:https://www.vulnhub.com/entry/hacklab-vulnix,48/
二、信息收集
使用nmap主机发现靶机ip:192.168.56.110
使用nmap端口扫描发现靶机开放端口:22、25、79、、110、111、143、512-4、993、995、2049、37724、42131、48234、48665、50505
nmap -A 192.168.56.110 -p 1-65535
22端口:根据nmap的扫描结果发现openssh的版本为5.9 p1
,该版本的openssh存在用户名枚举漏洞CVE-2018-15473
下载exp枚举用户名,发现一个user用户
三、漏洞利用
使用john对user用户ssh进行暴力破解,得到密码:letmein
hydra -l user -P /usr/share/wordlists/rockyou.txt 192.168.56.110 ssh -t 64
登录user用户的ssh,但什么也没有发现
根据nmap的扫描结果,靶机开放了2049端口,nfs服务
使用showmount输出挂载的文件夹
showmount -e 192.168.56.110
挂载/home/vulnix到/nfs文件夹,访问
mount -t nfs 192.168.56.110:/home/vulnix /nfs
cd /nfs
显示权限不够,应该是设置了root_squash
1、no_root_squash:登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限。
2、root_squash 是 NFS(Network File System)中的一个安全特性,用于限制远程客户端以 root 用户身份访问共享目录时的权限。当启用
root_squash
选项时,NFS 服务器会将客户端以 root 用户身份发起的请求映射为一个特定的用户(通常是nobody
或nfsnobody
),从而限制客户端以 root 用户身份对共享目录的完全控制。
我们可以伪造文件所有者的UID来欺骗NFS服务器。由于该文件的UID与新用户的UID相同,因此系统会误认为这是文件权限的所有者,这样我们就可以以一个合法的用户身份来读取文件的内容了。
查看vulnix用户的UID和GID
在攻击机建立一个和靶机UID和GID用户一致的vulnix用户,就可以访问挂载的目录了,
groupadd -g 2008 vulnix #创建一个组并指定组的GID
adduser vulnix -uid 2008 -gid 2008 #创建一个用户指定UID和GID
切换vulnix用户,再次访问成功
里面没什么有用的信息
在共享目录下创建.ssh
目录mkdir .ssh
在攻击机使用ssh-keygen -t rsa
命令生成ssh密钥,将生成的私钥保存到:/nfs/.ssh/id_rsa
,然后使用命令cat /nfs/.ssh/id_rsa.pub > /nfs/.ssh/authorized_keys
将 SSH 公钥文件复制重命名为 authorized_keys
,用于 SSH 登陆认证
更改.ssh文件夹权限为700,将私钥复制到本地目录,并赋予600权限
使用id_rsa登录靶机,登录失败
ssh -i id_rsa vulnix@192.168.56.110
查看ssh配置文件:/etc/ssh/sshd_config,发现配置项AuthorizedKeysFile是注释状态,不知道是不是这个原因
后面查看了网上的wp,发现应该是openssh的版本的原因,使用下面的命令登录成功
ssh -o 'PubkeyAcceptedKeyTypes +ssh-rsa' -i id_rsa vulnix@192.168.56.110
四、提权
使用命令sudo -l
查看一下具有sudo
权限的程序,发现可以无密码以root权限运行sudoedit /etc/exports
查看/etc/exports
文件
我们可以编辑/etc/exports
,在后面添加一条数据
sudoedit /etc/exports
添加:/root *(rw,no_root_squash)
Ctrl x y 保存退出
重启靶机后,使用showmount查看靶机共享文件
挂载/root文件夹
mount -t nfs 192.168.56.110:/root /nfs2
创建.ssh
文件夹,将之前生成的公钥文件id_rsa.pub
复制重命名为 authorized_keys
,放到/root/.ssh
文件夹里面,用于 SSH 登陆认证
更改.ssh
文件夹的权限为700,更改.ssh/authorized_keys
文件的权限为600
使用私钥登录ssh,得到root权限
ssh -o 'PubkeyAcceptedKeyTypes +ssh-rsa' -i id_rsa root@192.168.56.110
获取flag
参考链接:https://blog.csdn.net/cjstang/article/details/131580330