Mount
靶机说明
- QQ群:
660930334
一、信息收集
1、主机探测
1 | |
2、端口扫描
1.全端口扫描
1 | |
开放端口:22、79、80、111、2049、34109、37331、46281、49849
2.详细信息扫描
1 | |
- 22端口: ssh服务
- 79端口: finger服务
- 80端口: http服务
- 111端口: rpcbind服务,版本支持
rpcbind 2-4,rpcbind是NFS中用来进行消息通知的服务,一般开启了rpcbind,会有nfs网络共享的功能,nfs端口是2049 - 2049端口: nfs服务,提供网络文件系统共享服务,支持跨主机文件挂载,默认无加密,可能暴露敏感文件系统
3.UDP端口扫描
1 | |
3、服务探测
1.79端口-Finger服务
Finger 程序/服务用于检索计算机用户的详细信息。通常,提供的信息包括 用户的登录名、全名,在某些情况下,还包括其他详细信息。这些额外的详细信息可能包括办公室位置和电话号码(如果可用)、用户登录的时间、非活动时间(闲置时间)、用户最后一次阅读邮件的时间,以及用户的计划和项目文件的内容。
Finger可以访问远程主机的用户信息
- 若用户存在,则返回具体的信息
Login:... - 若用户不存在,则返回
no such user
详细信息:
2.80端口-http服务
访问80端口服务,未发现任何东西,同时进行目录扫描,也没有找到任何有用的信息
1 | |
3.111端口-rpcbind服务
Portmapper是一种用于将网络服务端口映射到 RPC(远程过程调用)程序编号的服务,通常与 NFS (Network File System)、NIS (Network Information Service) 和其他 RPC-based services 一起使用,以有效管理网络服务。
RPC服务的核心端口映射器,负责将RPC程序号(如NFS的100003)映射到实际端口(如2049)
详细信息:
4.2049端口-nfs服务
NFS 是一个为 客户端/服务器 设计的系统,使用户能够像访问本地目录中的文件一样,无缝地通过网络访问文件。
服务器可挂载的文件
1
showmount -e <IP>挂载命令
1
mount -t nfs [-o vers=2] <ip>:<remote_folder> <local_folder> -o nolock
详细信息:
二、渗透测试
1、NFS服务利用
1.查看NFS共享
使用showmount查看可挂载的文件
1 | |
找到/home目录下面存在用户ll104567下面的文件可以进行挂载
2.挂载NFS共享
- 创建挂载点
1
2┌──(root㉿kali)-[~/miaosec/maze-sec/mount]
└─# mkdir mnt - 挂载NFS共享
1
2┌──(root㉿kali)-[~/miaosec/maze-sec/mount]
└─# mount -t nfs 192.168.2.8:/home/ll104567 ./mnt -o nolock,rw,vers=3 - 查看挂载目录的权限
1
2
3┌──(root㉿kali)-[~/miaosec/maze-sec/mount]
└─# ls -ls
4 drwx------ 2 6666 6666 4096 8月21日 11:45 mnt - 进入
mnt,提示权限不够1
2
3┌──(root㉿kali)-[~/miaosec/maze-sec/mount]
└─# cd mnt
cd: 权限不够: mnt - 查看是否已经挂载成功成功挂载至mnt目录下
1
2
3
4
5┌──(root㉿kali)-[~/miaosec/maze-sec/mount]
└─# df
文件系统 1K的块 已用 可用 已用% 挂载点
...
192.168.2.8:/home/ll104567 29801472 2471168 25791232 9% /root/miaosec/maze-sec/mount/mnt
可以看出其实共享已经实现,估计设置了root_squash标志,只是不允许我们去访问,只允许指定的用户ID6666去访问。
3.NFS权限匹配
创建匹配UID的用户
1
2┌──(root㉿kali)-[~/miaosec/maze-sec/mount]
└─# useradd -u 6666 nfsuser切换到用户
nfsuser1
2
3
4
5┌──(root㉿kali)-[~/miaosec/maze-sec/mount]
└─# su - nfsuser
su: warning: cannot change directory to /home/nfsuser: 没有那个文件或目录
$ bash
nfsuser@kali:/root/miaosec/maze-sec/mount$
2、写入SSH公钥
挂载成功后,能够成功进入到远程挂载的目录mnt
1 | |
生成公钥
1
2
3
4
5
6┌──(root㉿kali)-[~/miaosec/maze-sec/mount]
└─# ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key (/root/.ssh/id_ed25519):
/root/.ssh/id_ed25519 already exists.
Overwrite (y/n)?将公钥
id_ed25519.pub移动到用户nfsuser目录下1
2┌──(root㉿kali)-[~/miaosec/maze-sec/mount]
└─# cp ~/.ssh/id_ed25519.pub /home/nfsuser将公钥写入到挂载的文件
mnt里面,并赋予执行权限1
2nfsuser@kali:/root/miaosec/maze-sec/mount/mnt$ cat /home/nfsuser > .ssh/
nfsuser@kali:/root/miaosec/maze-sec/mount/mnt$ chmod +x .ssh/authorized_keys
三、获取ll104567权限
直接执行即可
1 | |
四、权限提升
查看sudo属性
1 | |
发现/sbin/reboot具有root权限
1、NFS配置文件
查看配置文件
1 | |
发现里面是配置了具体可以挂载的文件,同时配置了root_squash,限制了root权限
查看文件的属性,发现用户ll104567具有写权限
1 | |
2、NFS配置劫持
修改配置文件,添加不受root_squash影响的路径,直接挂载根目录/
1 | |
重启系统使配置生效
1 | |
再次查看挂载的路径,发现根目录可挂载
1 | |
将根目录挂载到当前目录下的m_root
1 | |
3、写入ROOT-SSH公钥
将ssh公钥复制到/root/.ssh目录下
1 | |
4、获取ROOT权限
1 | |
五、获取FLAG
1 | |