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

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

商務(wù)辦公
鍵盤布局作為Windows下的特殊系統(tǒng)機(jī)制,其鍵盤布局DLL的生成與安裝都有相應(yīng)的工具與API,利用成本很低,是較好的權(quán)限維持方式。

1.鍵盤布局簡介

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

1659428137_62e8dd29daabdb65dbb71.png!small?1659428138879

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

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

1659428159_62e8dd3f1fd2134c4971f.png!small?1659428159786

該函數(shù)位于user*32.dll中:

1659428172_62e8dd4cc6666291d34b5.png!small?1659428173642

在函數(shù)UpdatePerUserSystemParameters中,首先調(diào)用GetActiveKeyboardName,通過查詢注冊(cè)表項(xiàng):

計(jì)算機(jī)\HKEY_CURRENT_USER\Keyboard Layout\Preload

獲取默認(rèn)加載的鍵盤布局文件:

1659428210_62e8dd7254765cb47ca23.png!small?1659428210998

在對(duì)應(yīng)注冊(cè)表下,保存著默認(rèn)加載的鍵盤布局編號(hào):

1659428236_62e8dd8c2e7c2aad6329e.png!small?1659428236853

該編號(hào)指向注冊(cè)表

計(jì)算機(jī)\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000804

1659428273_62e8ddb13f30e24aebadc.png!small?1659428273891

可以看到,當(dāng)前默認(rèn)啟用的鍵盤布局文件是中文簡體環(huán)境下的鍵盤布局,即美式鍵盤布局。在獲取到當(dāng)前啟用的鍵盤布局文件名后,以此為參數(shù)調(diào)用LoadKeyboardLayoutWorker:

1659428310_62e8ddd6add81c72488d9.png!small?1659428311496

在OpenKeyboardLayoutFile中,先調(diào)用GetKeyboardDllName判斷當(dāng)前語言環(huán)境,主要是為了區(qū)分出日、韓兩種特殊鍵盤布局。各語言環(huán)境下的鍵盤布局可能略有差別,但是日韓因其文字的特殊性有其特定的鍵盤標(biāo)準(zhǔn)。接著OpenKeyboardLayoutFileWorker加載對(duì)應(yīng)的DLL:

1659428341_62e8ddf5286d2330f43f7.png!small?1659428341823

OpenKeyboardLayoutFileWorker進(jìn)一步調(diào)用LoadLibraryExW加載對(duì)應(yīng)DLL:

1659428359_62e8de0701ffffccd0afb.png!small?1659428359684

在加載前沒有進(jìn)行文件合法性相關(guān)的校驗(yàn),這為惡意利用留下了空間。

3.鍵盤布局文件利用

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

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

1659428402_62e8de32080eaac52fbb7.png!small?1659428402671

選擇當(dāng)前語言地區(qū)的布局:

1659428413_62e8de3d97792379cb64d.png!small?1659428414294

保存源碼文件:

1659428766_62e8df9e783fcbe59e282.png!small?1659428767157

保存的結(jié)果是一個(gè).klc文件:

1659428777_62e8dfa956bba7788908a.png!small?1659428778081

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

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

生成的源碼文件如下:

1659428814_62e8dfce80580fb7b5282.png!small?1659428815174

在Layout01.C末尾添加DllMain函數(shù):

1659428833_62e8dfe1959d8e09d69e4.png!small?1659428834407

利用源碼文件創(chuàng)建工程,在安裝了WDK的環(huán)境下編譯成對(duì)應(yīng)系統(tǒng)架構(gòu)的DLL,即可生成自定義布局文件。

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

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

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

b)利用input.dll導(dǎo)出函數(shù)InstallLayoutOrTip進(jìn)行安裝。

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

根據(jù)MSDN的InstallLayoutOrTip調(diào)用示例,可以通過在鍵盤布局注冊(cè)表項(xiàng)

計(jì)算機(jī)\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts

下新增一個(gè)新編號(hào),并添加相關(guān)字段信息:

1659428886_62e8e016616d17c3daab4.png!small?1659428887078

創(chuàng)建后,將惡意的鍵盤布局文件部署在system目錄下,調(diào)用InstallLayoutOrTip啟用目標(biāo)鍵盤布局文件。函數(shù)第一個(gè)參數(shù)構(gòu)造如下:

語言標(biāo)識(shí)符(LangID):鍵盤布局ID(KLID)

1659428906_62e8e02a00b438308996b.png!small?1659428906578

第二個(gè)參數(shù)默認(rèn)為0,調(diào)用InstallLayoutOrTip啟用指定布局文件,利用過程如下:

1659428932_62e8e044770818a1ee843.png!small?1659428933269

安裝結(jié)果:

1659428950_62e8e056298588702440a.png!small?1659428950934

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

1659429000_62e8e0880fed382257f6b.png!small?1659429000907

安裝過程需要管理員權(quán)限,且需要對(duì)相關(guān)注冊(cè)表項(xiàng)進(jìn)行更改,在防護(hù)措施不足的終端上容易被利用實(shí)現(xiàn)權(quán)限維持與持久化。

4.總結(jié)

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

參考

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

InstallLayoutOrTip調(diào)用示例:https://docs.microsoft.com/zh-cn/windows/win32/tsf/installlayoutortip

責(zé)任編輯:武曉燕 來源: ??FreeBuf.COM??
相關(guān)推薦

2024-04-07 08:23:01

JS隔離JavaScript

2022-06-06 07:58:52

勒索軟件惡意軟件解密

2022-08-19 08:06:00

MySQL數(shù)據(jù)庫解析器

2022-06-07 08:14:35

PGPAGETUPLE

2022-06-15 08:00:50

磁盤RedisRocketMQ

2021-10-10 20:36:49

Android Root權(quán)限

2022-12-08 10:49:43

2011-06-14 12:56:55

SQL Server復(fù)災(zāi)

2018-01-04 00:10:52

物聯(lián)網(wǎng)技術(shù)信息

2022-01-06 07:59:32

WebGPUOpenGL引擎

2022-04-28 08:24:16

阿里云idaaspython

2022-05-06 08:26:32

JavaSPI機(jī)制

2024-05-28 10:08:05

2022-10-19 08:19:32

動(dòng)態(tài)基線預(yù)警

2022-04-07 08:20:22

typeinterface前端

2022-07-27 08:01:29

CMS垃圾回收器

2020-10-25 08:45:38

IPv6網(wǎng)絡(luò)協(xié)議網(wǎng)絡(luò)

2024-08-12 12:30:27

2023-06-27 07:09:39

2022-06-28 08:42:03

磁盤kafka高性能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久久久久国产 | 天天躁日日躁狠狠躁2018小说 | 福利社午夜影院 | 成人国产综合 | 日韩一区二区三区在线观看视频 | 中文字幕在线看 | 91不卡 | 日韩中文一区二区三区 | 免费高清成人 | 日本中出视频 | 成人h动漫精品一区二区器材 | 2019精品手机国产品在线 | 天天操天天射综合 | 免费簧片视频 | 欧美国产亚洲一区二区 | 日韩在线免费视频 | 国产在线中文字幕 | 国产高清一区二区 | 欧美黑人又粗大 | 中文字幕成人av | 亚洲国产视频一区二区 | 欧美精品v国产精品v日韩精品 | 亚洲最大av网站 | 国产日韩一区二区三区 | 国产精品一区视频 | 请别相信他免费喜剧电影在线观看 | 国产视频在线观看一区二区三区 | 久久视频精品 | 成人国产免费观看 | www.99re| 亚洲第一视频网 | 精品无码久久久久久久动漫 | 久久aⅴ乱码一区二区三区 亚洲国产成人精品久久久国产成人一区 | 久久91| 九九热这里 | 美女一区二区在线观看 | 九九九久久国产免费 | 久久99精品久久久久久琪琪 | 国产精品久久久久久久久久免费看 | 久久久久se| 亚洲一区免费 |