靶机渗透测试(fourandsix2):
Vulnhub靶机 fourandsix2
靶机:修改靶机的网络配置为桥接模式。
攻击机:Kali虚拟机,同样使用桥接模式,即可访问靶机。
靶机难度:(中等)
目标:成功渗透进入靶机,获取root权限并且读取/root/flag.txt 。
渗透流程:
1.探测主机ip(此靶机开机时已经给出)
ip:192.68.10.210
2.nmap进行靶机端口服务扫描
22端口: ssh服务
111端口: rpcbind服务
2049端口: nfs服务
发现特殊开放了2049/tcp —nfs服务;
3.根据端口服务进行渗透
3.1. ssh-22端口
利用msf进行22-ssh爆破,由于密码本太小,失败!!!
3.2. nfs–2049端口
nfs服务:
主要功能是通过网络让不同的机器系统之间可以彼此共享文件和目录。NFS服务器可以允许NFS客户端将远端NFS服务器端的共享目录挂载到本地的NFS客户端中。
用metasploit挂载目录,nfs在metasploit的运行后命令是:
use auxiliary/scanner/nfs/nfsmount
3.2.1 可以看到存在挂载目录是/home/user/storage
用户名是user
3.2.2 用nfspysh(nfspysh是一个类FTP的交互式Shell,可以用来查询NFS export。它不需要使用FUSE库,因此它可以在非Linux平台上运行。)来挂载目录/home/user/storage;
挂载目录:nfspysh -o server=172.17.135.30:/home/user/storage /tmp/storage
发现挂载目录下有一个backup.7z。在本地文件下解压。发现backup.7z这个压缩包,使用7z e backup.7z命令尝试解压,提示需要密码 ;使用7z命令进行字典爆破,即可得到密码为chocolate;
使用7z命令进行字典爆破 :
cat $2 | while read line;do if 7z e 1 − p " 1 -p" 1−p"line" 1>/dev/null 2>/dev/null;then echo “FOUND PASSWORD:”$line;break;fi;done
使用方法:
bash 7z-crack.sh /tmp/storage/backup.7z /usr/share/wordlists/rockyou.txt
说明:1>/dev/null 2>/dev/null,是为了把解压密码错误时,多余的文字都输入到/dev/null,而不是输出到终端上显示
3.3. 解压backup.7z发现一堆图片,以及id_rsa和id_rsa.pub
3.4. 解压出来后有公私钥,以及八张hellokitty。将私钥放进/root/.ssh,于是猜测可以通过公私钥登录服务器,将私钥放到/root/.ssh目录下(cp id_rsa /root/.ssh),连接服务器 ; 提示需要输入密码,需要爆破私钥密码;
写shell脚本破解私钥密码 :
cat /usr/share/wordlists/rockyou.txt | while read line;do if ssh-keygen -p -P $line -N l i n e − f / t m p / t e s t / i d r s a 1 > / d e v / n u l l 2 > / d e v / n u l l ; t h e n e c h o " P A S S W O R D F O U N D : " line -f /tmp/test/id_rsa 1>/dev/null 2>/dev/null;then echo "PASSWORD FOUND : " line−f/tmp/test/idrsa1>/dev/null2>/dev/null;thenecho"PASSWORDFOUND:"line;break;fi;done;
使用方法:
bash id_rsa-crack.sh /tmp/storage/id_rsa /usr/share/wordlists/rockyou.txt
3.5. 爆破得到密码为12345678
连接服务器ssh user@192.168.10.210
查看当前用户权限及系统信息
id
uname -a
groups
查看/etc目录,有doas.conf,
doas是BSD系列系统下的权限管理工具,类似于Debian系列下的sudo命令
从doas.conf文件可以看到,当前用户能够以root权限使用less命令查看/var/log/authlog文件,并且不需要当前用户密码以及root密码,那么我们可以通过less进行提权:
首先用doas /usr/bin/less /var/log/authlog查看日志文件,然后直接按v,可进入编辑模式,但是会提示只读,进入编辑模式后,可以通过vi编辑器操作方式,执行系统命令,即:!/bin/sh,此时便会提升到root权限 !!!
在root目录下发现flag.txt:
NFS服务总结:
1.NFS介绍:
NFS是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于 服务器 磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。
NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输;
2.nfs配置文件
1.sync
同步
同时将数据写入到内存与硬盘中,保证不丢失数据
直接写入数据
2.async
异步
优先将数据保存到内存,然后再写入硬盘;但可能会丢失数据
先写到内存 再通过内存写入硬盘
3.rw
读写权限
4.ro
只读权限
5.all_squash
所有用户都压缩,访问nfs服务端都变成nfsnobody用户
6.root_squash
只有root用户被压缩,访问nfs服务端只有root变成nfsnobody,其他用户不变
7.no_all_squash
不是所有用户都压缩,一般和root_squash一起使用默认情况
8.anonuid=xxx,anongid=xxx
指定访问客户端时的用户(一般为虚拟用户)