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.mzph.cn/news/765911.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年阿里云优惠活动整理_云服务器活动大全

2024阿里云优惠活动大全包括云服务器优惠价格、优惠券免费领取入口、域名优惠口令、域名优惠、云数据库优惠活动、对象存储OSS优惠活动、企业邮箱优惠、阿里云建站优惠、无影云电脑优惠价格、CDN特惠等,阿里云服务器网aliyunfuwuqi.com长期更新阿里云优惠活动大全&a…

uniapp套壳打包成apk

不管是vue项目还是uniapp项目,只要能打包成 index.html都可以通过uniapp打包成apk 1.首先把这个项目发布到线上 拿百度举例: 发布到百度服务器用 www.baidu.com能访问到 2.然后到uniapp上发布项目用默认的 vue2,如果你的项目是vue3也用vue2 3.废话我觉得说太多了,直接…

MySQL知识总结

一条 SQL 语句过来的流程是什么样的? ①当客户端连接到 MySQL 服务器时,服务器对其进行认证。可以通过用户名与密码认证,也可以通过 SSL 证书进行认证。登录认证后,服务器还会验证客户端是否有执行某个查询的操作权限。 ②在正式…

C++项目 -- 负载均衡OJ(一)compile_server

C项目 – 负载均衡OJ(二)compile_server 文章目录 C项目 -- 负载均衡OJ(二)compile_server一、compile_server设计1.总体服务流程 二、compiler.hpp三、runner.hpp四、compile_run.hpp五、compile_server.cc5.1.编译功能调试&…

【十二】【算法分析与设计】滑动窗口(3)

30. 串联所有单词的子串 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如,如果 words ["ab","cd","ef"]&#xff…

【计算机视觉】Gaussian Splatting源码解读补充(二)

第一部分 本文是对学习笔记之——3D Gaussian Splatting源码解读的补充,并订正了一些错误。 目录 三、相机相关scene/cameras.py:class Camera 四、前向传播(渲染):submodules/diff-gaussian-rasterization/cuda_rast…

Python 类的学习

当前Python 版本 Python 3.7 # -*- coding: UTF-8 -*-# 父类 class Car:"""一次模拟汽车的简单尝试"""def __init__(self, make, mode, year):if __name__ __main__:self.make makeself.mode modeself.year yeardef get_descriptive_name(s…

schweizer-electronic 公司 safedat2 操作使用说明

schweizer-electronic 公司 safedat2 操作使用说明

基于Java中的SSM框架实现矿场仓储管理系统项目【项目源码+论文说明】

基于Java中的SSM框架实现矿场仓储管理系统演示 摘要 随着数字化的建设,根据当时的发展和用户的需求,选择使用矿产资源管理的信息都是可以用作示范。物质生活已经达到了人们的基本要求,人们追求生活层次越来越高,享受生活成为人们…

Element Plus 基本使用

一、概述 1.1介绍 Element Plus 基本使用 element-ui 是基于vue 开发的一套ui组件库,提供丰富的网页开发组件,可用快速开发网站,降低前端开发成本版本 element目前有两个版本 element-ui:基于vue2element-plus: 基于vue3 官网地址…

机器学习:智能时代的核心引擎

目录 一、什么是机器学习 二、监督学习 三、无监督学习 四、半监督学习 五、强化学习 一、什么是机器学习 机器学习是人工智能的一个分支,它主要基于计算机科学,旨在使计算机系统能够自动地从经验和数据中进行学习并改进,而无需进行明确…

VUE3 换肤/根据主题动态切换图片

1.建立相关主题的less文件\src\assets\style\theme\theme.less :root[themelight] { --text_primary_color: rgba(34, 34, 48, 1); --background_primary_color: rgba(255, 255, 255, 1); ... }:root[themedark] { --text_primary_color: rgba(245, 245, 245, 1); --backgroun…

【数据结构】猛猛干7道链表OJ

前言知识点 链表的调试技巧 int main() {struct ListNode* n1(struct ListNode*)malloc(sizeof(struct ListNode));assert(n1);struct ListNode* n2(struct ListNode*)malloc(sizeof(struct ListNode));assert(n2);struct ListNode* n3(struct ListNode*)malloc(sizeof(struc…

从零开始学习在VUE3中使用canvas(六):lineCap(线条端点样式)

一、简介 lineCap能够让我们设置线条的端点样式,例如 1. butt const ctx canvas.getContext("2d");ctx.lineCap "butt"; // 默认样式,也可以显式指定 2.round const ctx canvas.getContext("2d");//圆头ctx.lineCap …

阿里云服务器“镜像”操作系统选择方法(超详细)

阿里云服务器镜像怎么选择?云服务器操作系统镜像分为Linux和Windows两大类,Linux可以选择Alibaba Cloud Linux,Windows可以选择Windows Server 2022数据中心版64位中文版,阿里云服务器网aliyunfuwuqi.com来详细说下阿里云服务器操…

探索MySQL中的SQL_MODE数据模式

在MySQL中,SQL_MODE是一个用于控制数据库服务器行为的配置选项。它定义了MySQL在执行查询时应该遵循的规则和限制。通过设置不同的SQL_MODE值,我们可以改变MySQL的行为,以满足不同的需求。本文将对MySQL中的SQL_MODE进行详细解析,…

pyecharts 模块(创建简单的折线图和柱状图)

1.pyecharts 是个数据可视化,产生图标; 2.构建一个基础的折线图: from pyecharts.charts import Line lineLine() # 创建一个折线图对象 line.add_xaxis(["数据库","计算机组成原理","算法设计"]) # 给折线图对象添加x轴…

MATLAB:函数与数值积分

一、数学函数图像的绘制 clc,clear fh (x)2*exp(-x).*sin(x); Xrange [0,8]; gx (x)3*exp(-x)*0.8.*sin(x); fplot(fh,Xrange,r-*,LineWidth,1.5) hold on grid on fplot(gx,Xrange,b-o,LineWidth,1.5) axis([-0.5,8.5,-0.1,0.85]) legend(fh (x)2*exp(-x).*sin(x),gx (x…

有了 unique_ptr 和 shared_ptr,要weak_ptr 有什么用?【C++】

有了 unique_ptr 和 shared_ptr,要weak_ptr 有什么用? 说明使用场景防止循环引用临时访问共享资源 说明 weak_ptr是C中智能指针的一种,与shared_ptr配合使用,weak_ptr不对对象的生命周期进行管理,即它持有对象的引用…

Docker之docker compose!!!!

一、概述 是 Docker 官方提供的一款开源工具,主要用于简化在单个主机上定义和运行多容器 Docker 应用的过程。它的核心作用是容器编排,使得开发者能够在一个统一的环境中以声明式的方式管理多容器应用的服务及其依赖关系。 也就是说Docker Compose是一个…