成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊聊鍵盤布局持久化技術,你懂了嗎?

商務辦公
鍵盤布局作為Windows下的特殊系統機制,其鍵盤布局DLL的生成與安裝都有相應的工具與API,利用成本很低,是較好的權限維持方式。

1.鍵盤布局簡介

鍵盤布局是按鍵在鍵盤上的分布模式,決定了鍵位順序。鍵盤布局在發展過程中,由于使用習慣的不同,各國間使用的鍵盤布局存在細微差別,因此在Windows系統上以國家為單位區分不同的鍵盤布局方案。我們最熟悉的布局模式當屬美式鍵盤。鍵盤布局以動態鏈接庫的形式存在System路徑下,在系統啟動時加載。本文將通過探究鍵盤布局文件的加載方式得到其潛在的利用方法。

1659428137_62e8dd29daabdb65dbb71.png!small?1659428138879

2.鍵盤布局方案加載過程

鍵盤布局文件的加載由winlogon.exe完成。Windows Logon Process(即winlogon.exe),是Windows NT 用戶登錄程序,用于管理用戶登錄和退出,且以 SYSTEM 用戶運行。在入口WinMain中,調用了函數UpdatePerUserSystemParameters:

1659428159_62e8dd3f1fd2134c4971f.png!small?1659428159786

該函數位于user*32.dll中:

1659428172_62e8dd4cc6666291d34b5.png!small?1659428173642

在函數UpdatePerUserSystemParameters中,首先調用GetActiveKeyboardName,通過查詢注冊表項:

計算機\HKEY_CURRENT_USER\Keyboard Layout\Preload

獲取默認加載的鍵盤布局文件:

1659428210_62e8dd7254765cb47ca23.png!small?1659428210998

在對應注冊表下,保存著默認加載的鍵盤布局編號:

1659428236_62e8dd8c2e7c2aad6329e.png!small?1659428236853

該編號指向注冊表

計算機\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000804

1659428273_62e8ddb13f30e24aebadc.png!small?1659428273891

可以看到,當前默認啟用的鍵盤布局文件是中文簡體環境下的鍵盤布局,即美式鍵盤布局。在獲取到當前啟用的鍵盤布局文件名后,以此為參數調用LoadKeyboardLayoutWorker:

1659428310_62e8ddd6add81c72488d9.png!small?1659428311496

在OpenKeyboardLayoutFile中,先調用GetKeyboardDllName判斷當前語言環境,主要是為了區分出日、韓兩種特殊鍵盤布局。各語言環境下的鍵盤布局可能略有差別,但是日韓因其文字的特殊性有其特定的鍵盤標準。接著OpenKeyboardLayoutFileWorker加載對應的DLL:

1659428341_62e8ddf5286d2330f43f7.png!small?1659428341823

OpenKeyboardLayoutFileWorker進一步調用LoadLibraryExW加載對應DLL:

1659428359_62e8de0701ffffccd0afb.png!small?1659428359684

在加載前沒有進行文件合法性相關的校驗,這為惡意利用留下了空間。

3.鍵盤布局文件利用

(1)鍵盤布局文件的構建

Windows支持自定義鍵盤布局,利用微軟官方的鍵盤布局生成器Keyboard Layout Creator(MSKLC.exe)可以生成鍵盤布局文件對應的源碼文件。首先加載已有鍵盤布局:

1659428402_62e8de32080eaac52fbb7.png!small?1659428402671

選擇當前語言地區的布局:

1659428413_62e8de3d97792379cb64d.png!small?1659428414294

保存源碼文件:

1659428766_62e8df9e783fcbe59e282.png!small?1659428767157

保存的結果是一個.klc文件:

1659428777_62e8dfa956bba7788908a.png!small?1659428778081

需要使用kbdutool.exe將.klc解析為鍵盤布局源碼文件:

kbdutool.exe-u -i -s out.klc

生成的源碼文件如下:

1659428814_62e8dfce80580fb7b5282.png!small?1659428815174

在Layout01.C末尾添加DllMain函數:

1659428833_62e8dfe1959d8e09d69e4.png!small?1659428834407

利用源碼文件創建工程,在安裝了WDK的環境下編譯成對應系統架構的DLL,即可生成自定義布局文件。

(2)鍵盤布局文件的安裝

鍵盤布局的安裝方式有兩種:

a)由上面的分析可知,在鍵盤布局加載時,會直接加載Preload注冊表項下保存的默認鍵盤布局,可以通過劫持或替換默認鍵盤布局DLL等方式實現安裝;

b)利用input.dll導出函數InstallLayoutOrTip進行安裝。

第一種安裝方式簡單粗暴,通過修改Preload注冊表改變默認加載的鍵盤布局文件。下面重點看第二種安裝方式:

根據MSDN的InstallLayoutOrTip調用示例,可以通過在鍵盤布局注冊表項

計算機\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts

下新增一個新編號,并添加相關字段信息:

1659428886_62e8e016616d17c3daab4.png!small?1659428887078

創建后,將惡意的鍵盤布局文件部署在system目錄下,調用InstallLayoutOrTip啟用目標鍵盤布局文件。函數第一個參數構造如下:

語言標識符(LangID):鍵盤布局ID(KLID)

1659428906_62e8e02a00b438308996b.png!small?1659428906578

第二個參數默認為0,調用InstallLayoutOrTip啟用指定布局文件,利用過程如下:

1659428932_62e8e044770818a1ee843.png!small?1659428933269

安裝結果:

1659428950_62e8e056298588702440a.png!small?1659428950934

重啟靶機后,惡意鍵盤布局文件被成功加載,彈出管理員權限cmd:

1659429000_62e8e0880fed382257f6b.png!small?1659429000907

安裝過程需要管理員權限,且需要對相關注冊表項進行更改,在防護措施不足的終端上容易被利用實現權限維持與持久化。

4.總結

鍵盤布局作為Windows下的特殊系統機制,其鍵盤布局DLL的生成與安裝都有相應的工具與API,利用成本很低,是較好的權限維持方式。但是,鍵盤布局的利用方式同樣存在其弊端,除了持久化的DLL需要放置在System目錄下以外,還需要管理員權限實現安裝,且行為容易被攔截。如果沒有終端防護設備,通過這種方式實現的持久化與維*權還是能夠達到很好的效果。

參考

自定義鍵盤布局持久化:https://github.com/NtQuerySystemInformation/CustomKeyboardLayoutPersistence

InstallLayoutOrTip調用示例:https://docs.microsoft.com/zh-cn/windows/win32/tsf/installlayoutortip

責任編輯:武曉燕 來源: ??FreeBuf.COM??
相關推薦

2024-04-07 08:23:01

JS隔離JavaScript

2022-06-06 07:58:52

勒索軟件惡意軟件解密

2022-08-19 08:06:00

MySQL數據庫解析器

2022-06-07 08:14:35

PGPAGETUPLE

2022-06-15 08:00:50

磁盤RedisRocketMQ

2021-10-10 20:36:49

Android Root權限

2022-12-08 10:49:43

2011-06-14 12:56:55

SQL Server復災

2018-01-04 00:10:52

物聯網技術信息

2022-01-06 07:59:32

WebGPUOpenGL引擎

2022-04-28 08:24:16

阿里云idaaspython

2022-05-06 08:26:32

JavaSPI機制

2022-10-19 08:19:32

動態基線預警

2024-05-28 10:08:05

2022-07-27 08:01:29

CMS垃圾回收器

2022-04-07 08:20:22

typeinterface前端

2020-10-25 08:45:38

IPv6網絡協議網絡

2023-06-27 07:09:39

2024-08-12 12:30:27

2022-06-28 08:42:03

磁盤kafka高性能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 视频一区在线 | 国产丝袜一区二区三区免费视频 | 日本欧美大片 | 久久精品亚洲 | 久久i | 欧美黄色一区 | 中文字字幕一区二区三区四区五区 | 超碰在线97国产 | 在线视频91 | 成人影院在线视频 | 一级片在线观看视频 | 日韩精品中文字幕在线 | 日韩不卡在线观看 | 久久久久久久久久久久91 | 欧美综合一区二区 | 国产亚洲精品久久19p | 羞羞视频网站在线观看 | 国产视频不卡一区 | 亚洲 中文 欧美 日韩 在线观看 | 国产亚洲精品美女久久久久久久久久 | 亚洲成人网在线播放 | 国产乱人伦 | 久久大| a黄毛片 | 日韩播放| 精品国产一区二区三区久久影院 | 亚洲国产一区二区视频 | 69堂永久69tangcom | caoporn免费在线视频 | 久久精品综合 | 久久久精品一区 | 99福利| 亚洲经典一区 | 久久av网站| 午夜影晥 | 国产精品99精品久久免费 | 久久青视频 | 国产精品一区二区久久久久 | 欧美激情在线精品一区二区三区 | 日韩精品三区 | 国产在线精品免费 |