Windows提權實戰————4、DLL注入

FLy_鵬程萬里發表於2018-05-23

前言

DLL注入是一種允許攻擊者在另一個程式的地址空間的上下文中執行任意程式碼的技術。如果某程式以過多的許可權執行,那麼可以會被攻擊者加以利用,以DLL檔案的形式執行惡意程式碼以提升許可權。

手動注入

通過Metasploit的msfvenom建立DLL,該檔案可以生成包含特定有效內容的DLL檔案。應該注意的是,如果DLL被注入的程式是64位,那麼應該使用64位有效負載。

下一步是設定metasploit監聽,以便在將惡意DLL注入程式後接受連結

有許多可以執行DLL注入的工具,但最可靠的工具之一 就是使用CreateRemoteThread技術的Remote DLL Injector,它可以將DLL注入啟用ASLR的程式。程式ID和DLL的路徑是工具需要的兩個引數:


從Remote DLL Injector執行的那一刻起,為了實現DLL注入,將提供執行的完整步驟。


如果DLL被成功注入,它將返回一個具有程式許可權的更改會話。因此,具有比標準更高許可權的程式可能會被濫用以進行特權升級。

Metasploit注入

Metasploit框架具有執行DLL注入的特定模組。它只需要連結到一個傳輸器會話,並指定程式的PID和DLL的路徑。



PowerSploit

通過DLL注入提升許可權也可以與PowerSploit一起使用。msfvenom可以用於生成惡意DLL,然後通過工作管理員可以獲得目標程式的PID。如果程式作為SYSTEM執行,則注入的DLL將以相同的許可權執行。


Invoke-DLLInjection模組將執行DLL注入,如下所示:

DLL內的有效內容將被執行,並且將獲得SYSTEM許可權。


參考

https://clymb3r.wordpress.com/2013/04/06/reflective-dll-injection-with-powershell/

http://blog.opensecurityresearch.com/2013/01/windows-dll-injection-basics.html

https://disman.tl/2015/01/30/an-improved-reflective-dll-injection-technique.html

https://github.com/stephenfewer/ReflectiveDLLInjection

https://www.nettitude.co.uk/dll-injection-part-two/


相關文章