HackLAB_Vulnix打靶记录

主机探测

ip为192.168.148.253

端口扫描

开放的端口比较多

2049 NFS 挂载

  • 通过rpcinfo命令来确定主机上是否运行或挂载了NFS服务

  • 通过showmount -e ip

  • 共享挂载sudo mount -t nfs 192.168.148.253:/home/vulnix /tmp -o nolock挂载到本地目录下

不过挂载之后不允许访问,应该是权限不够

  • 卸载挂载点sudo umount /tmp

79 finger 探测存在的用户

Finger 服务用于检索计算机用户的详细信息。通常,提供的信息包括用户的登录名、全名。

kali自带命令finger,可以探测存在哪些用户

如果存在则是以下这样的查询结果

不存在的用户则是这样:

网上的爆破工具我下载失败,于是写了个bash脚本,代入用户名字典执行finger指令,能爆破出,但速度较慢用时较长。还可以用msf进行探测use auxiliary/scanner/finger/finger_users

说明存在user用户

还可以用另一种方式

smtp-user-enum -M VRFY -U /usr/share/metasploit-framework/data/wordlists/unix_users.txt -t 192.168.148.253

hydra爆破用户密码

指定user进行爆破

得到密码为letmein

user用户ssh登录获取shell

账号密码登录,获取shell

经过一番信息收集,没有找到能提权的点,脏牛提权也许可以,但不到万不得已不是很想脏牛提权。

绕过NFS鉴权访问挂载点

之前挂载目录之后,无法访问,拿到shell之后看看是怎么配置的:

  • 允许网络中的任何主机挂载 /home/vulnix 目录。
  • 这些客户端将能读写该目录。
  • 任何客户端的 root 用户在 NFS 服务器上将拥有匿名用户权限(而不是 root 权限),以此增强安全性。

[!note] NFS 依赖于用户的 UID(用户标识符)和 GID(组标识符)进行文件和目录的权限控制。

当客户端请求访问 NFS 共享中的文件时,NFS 使用客户端的 UID 和 GID 来决定是否允许访问。

因此,服务器和客户端必须在用户 UID 和 GID 上保持一致,否则会出现权限问题。

查看命令:cat /etc/passwdcat /etc/group

因此,在本地创建一个用户,UID和GID都是2008即可

vulnix用户ssh登录

进入挂载点之后,创建.ssh,本地攻击机生成公钥后复制到authorized_keys中,注意赋予权限

直接-i id_rsa会提示让输入密码,主要原因是openssh 版本的升级

ssh -o 'PubkeyAcceptedKeyTypes +ssh-rsa' -i id_rsa vulnix@192.168.148.253 -p 22

sudoedit修改文件添加/root挂载点

sudo -l之后发现当前用户可以无密码以root身份修改nfs配置文件/etc/exports

添加挂载点/root,这样之后我们可以在本地挂载root目录,再次上传自己的公钥进行登录

ctrl+X 然后Y

查看一下,添加成功。如果没成功,重启虚拟机即可

如法炮制root用户ssh登录,提权

这个时候我们再次挂载,注意之前的目录要卸载挂载,就能拿到flag了

如法炮制上传自己的公钥,进行ssh登录,成功提权

ssh -o 'PubkeyAcceptedKeyTypes +ssh-rsa' -i id_rsa root@192.168.148.253 -p 22

Got flag

总结

1、之前也打过以nfs为突破口的靶机,不过没有遇到无权限访问。打完这台也清楚了nfs的鉴权方式是怎样的

2、finger 79端口,可以进行系统用户探测

3、上传自己的公钥进行ssh登录,这里要对ssh登录方式熟练

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计
本博客已稳定运行