Monitor WMIExportsToC++Use DiskCleanup bypass UAC

作者:嘶吼吼
链接:https://zhuanlan.zhihu.com/p/23473665
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

About:

Use odbcconf to load dll
Use powershell to get dll exports
Use Event Tracing for Windows to log keystrokes from USB keyboards

目录:

1. 介绍为什么通过odbcconf加载dll可以绕过在命令行下对regsvr32的拦截
2. 比ExportsToC++更方便的批量输出dll导出函数的工具——ExportsToC++
3. 通过ETW实现对USB键盘的键盘记录,记录测试心得

01 Use odbcconf to load dll

简介

如图,Casey Smith在twitter分享的一个技巧,如果将执行regsvr32加载dll的代码写在.rsp文件中,再通过odbcconf.exe去调用,这样可以绕过在命令行下对regsvr32的拦截。本文将要 介绍为什么可以绕过在命令行下对regsvr32的拦截。

odbcconf:

用于配置ODBC驱动和数据源

详细说明见如下链接: https://msdn.microsoft.com/en-us/library/ee388579(v=vs.85).aspx

用法如图

值得注意的是odbcconf包含一个注册dll的功能,我在之前的文章《Code Execution of Regsvr32.exe》中具体介绍过如何开发可被regsvr32调用的dll,编写一个测试dll进行测试 (此处略,不再重复介绍)。

cmd下运行:

odbcconf.exe /a {regsvr c:\test\odbcconf.dll}

如图,成功调用dll,弹出对话框

站在防御者的角度,为了防止利用regsvr32调用dll的方法被滥用,常常会选择监控命令行的 输入(如通过EMET创建规则),只要发现命令行中包括regsvr的字符就会对其拦截

当然,上述操作包含了字符regsvr,将会被拦截

使用Process Explorer查看odbcconf进程的命令行,包含字符 regsvr

但是,使用odbcconf的另一个功能却可以绕过,那就是/F参数

用法:

odbcconf.exe /f my.rsp

my.rsp为响应文件,里面包含执行的操作:

REGSVR c:\test\odbcconf.dll

注: 这里需要填入dll的绝对路径

如图,成功调用dll,弹出对话框

使用Process Explorer再次查看命令行,不包含字符regsvr

NickTyrer根据这个方法分享了他的代码,实现了在dll中运行powershell命令,地址如下:

https://gist.github.com/NickTyrer/6ef02ce3fd623483137b45f65017352b

编译工程之前,需要如下设置:

1. 设置编译平台为x86或者x64
2. 安装UnmanagedExports和System.Management.Automation
在Visual Studio控制面板选择TOOLS-Library Package Manager-Package Manager Console,输入:
     Install-Package UnmanagedExports
     Install-Package System.Management.Automation

02 Use powershell to get dll exports

简介

在《Study-Notes-Weekly-No.1(Monitor-WMI-ExportsToC++-Use-DiskCleanup-bypass- UAC)》介绍过一款批量输出dll 导出函数的工具——ExportsToC++ ,运行的前提是需要.NET Framework 2.0和安装 Microsoft Visual Studio

[email protected]对此作了改进,开源了powershell下的Get-Exports,特点是不再需要 Microsoft Visual Studio的开发环境,更简便快捷,同时支持32位和64位的dll

测试代码如下:

Get-Exports -DllPath c:\Windows\system32\dimsjob.dll -ExportsToCpp
C:\test\export.txt

运行后如图,显示导出函数信息

同时生成可供使用的c++代码并保存在C:\test\export.txt下,如图

03 Use Event Tracing for Windows to Log Keystrokes from USB Keyboards

简介

CyberPoint SRT在Ruxcon介绍了他们对ETW的新用法,实现了对USB键盘的键盘记录,并且公布了一个测试POC,本文将对其进行测试,分析测试心得。

ETW:

1. 是Event Tracing for Windows的缩写
2. 提供了一种对用户层应用程序和内核层驱动创建的事件对象的跟踪记录机制
3. 通常用于协助管理员和开发人员解决和测量系统和应用程序的性能
4. 公开资料显示尚未有利用ETW实现键盘记录的方法

介绍ETW的一些学习资料: https://randomascii.wordpress.com/2015/09/24/etw-central/

POC下载地址: Ruxcon2016ETW/KeyloggerPOC at master · CyberPoint/Ruxcon2016ETW · GitHub

注:该POC已经被杀毒软件查杀,测试需要放行

要求:

1. Windows 7 (USB 2.0)
2. Windows 8+(USB 2.0 and USB 3.0)
3. 管理员权限运行
注: 不支持PS/2接口的键盘

测试环境:

1. Win8.1 x86
2. vs2013
3. 安装.NET Framework .net 4.5.2
4. Install-Package Microsoft.Diagnostics.Tracing.TraceEvent
5. USB 2.0的键盘

管理员权限运行exe,记录测试如图

POC最大的不足:

1.记录存在延迟
2.不稳定,常常报错[!] ignoring non-usb keyboard device: 0xFFFFFFFF8CFF6070

从POC到工具还有很长的的一段路要走,但这个思路值得学习,ETW的利用方法值得总结, 期待CyberPoint SRT的后续文章

时间: 2024-08-09 09:41:23

Monitor WMIExportsToC++Use DiskCleanup bypass UAC的相关文章

通过调用Windows本地RPC服务器bypass UAC提权

备战一个月比赛,导致近期都没啥时间更新博客,正好今天看到一篇通过调用本地RPC服务的文章,觉得非常有意思,就拿来充充博客. 在1.0版本的APPINFO.DLL中的RPC服务调用接口ID为:201ef99a-7fa0-444c-9399-19ba84f12a1a 用RAiLaunchAdminProcess函数调用本地RPC [ uuid (201ef99a-7fa0-444c-9399-19ba84f12a1a), version(1.0), ] long RAiLaunchAdminProc

自动化安装一些渗透工具的脚本

原文 http://oleaass.com/kali-linux-additional-tools-setup/ #!/bin/bash echo "" echo "==========================================================================" echo "= Pentest Attack Machine Setup =" echo "= Based on the

Metasploit 笔记

一.名词解释 exploit 测试者利用它来攻击一个系统 ,程序,或服务,以获得开发者意料之外的结果 .常见的 有内存溢出,网站程序漏洞利用,配置错误 exploit. payload 我们想让被攻击系统执行的程序,如 reverse shell 可以从目标机器与测试者之间建立一 个反响连接,bind shell 绑定一个执行命令的通道至测试者的机器 .payload 也可以是只 能在目标机器上执行有限命令的程序. shellcode 是进行攻击时的一系列被当作 payload 的指令,通常在目

Kali-linux免杀Payload生成工具Veil

Veil是一款利用Metasploit框架生成相兼容的Payload工具,并且在大多数网络环境中能绕过常见的杀毒软件.本节将介绍Veil工具的安装及使用. 在Kali Linux中,默认没有安装Veil工具.这里首先安装Veil工具,执行如下所示的命令: [email protected]:~# apt-get install veil 执行以上命令后,如果安装过程没有提示错误的话,则表示Veil工具安装成功.由于安装该工具依赖的软件较多,所以此过程时间有点长. 启动Veil工具.执行命令如下所

metasploit 常用命令备忘

metasploit 常用命令备忘    MSFconsole Commands-------------------------------------24show exploits 查看所有exploitshow payloads 查看所有payloadshow auxiliary 查看所有auxiliarysearch name 搜索exploit 等info 查看加载模块的信息use name 加载模块LHOST 本机IPRHOST 目标IPset function 设置选项值setg

metasploit msfconsole 命令

metasploit msfconsole 命令 msf > help db_autopwn Commands =================== Command Description ------- ----------- db_autopwn Automatically exploit everything Core Commands ============= Command Description ------- ----------- ? Help menu banner Dis

[转]Win7 UAC的安全、兼容及权限

http://www.cnblogs.com/mydomain/archive/2010/11/24/1887132.html 网上关于这个问题讨论较多,但也不外乎几种方法.总结一下,如附中.顺便了解一个UAC. UAC,全称User Account Control(用户帐户控制) System Safe Monitor(主机入侵防御系统) UAC是如何工作的[3] 我 们可以简单的把UAC当作权限临时重分配的工具.在默认情况下,所有的非系统核心进程都只拥有标准权限,这一权限不能对系统关键区域进

Windows 7开发:UAC数据重定向 - Win32 Native

目标 本动手实验中,您将会学习如何: • 故障排除一个文件重定向 问题 • 使用Process Monitor查找引起问题的根本原因 系统要求 您必须符合下面的条件以完成这次实验: • Microsoft Visual Studio 2008 • Microsoft Windows 7 • Windows 7 SDK • Microsoft TechNet上的Process Monitor (http://technet.microsoft.com/en-us/sysinternals/bb89

sql monitor生成不了报告& FFS hint不生效两个问题思考

事情的发生就是这么偶然,一步步的深入才能汲取到更深入的知识~~ -------------------START-------------------------------------------   来了一个query running longer than 4hours的邮件,来看看里面有哪些sql: SID    SERIAL#    INST_ID SQL_ID        Run_in_sec OS_user     MACHINE       SQL_TEXT