系統安全攻防戰 DLL注入技術詳解

2021-09-08 13:25:24 字數 1963 閱讀 8499

dll注入是一種允許攻擊者在另乙個程序的位址空間的上下文中執行任意**的技術。攻擊者使用dll注入的過程中如果被賦予過多的執行特權,那麼攻擊者就很有可能會在dll檔案中嵌入自己的惡意攻擊**以獲取更高的執行許可權。

具體而言,該技術遵循以下步驟:

1. 需要將dll寫入磁碟中;

2. 「createremotethread」呼叫「loadlibrary」;

3. 反射引導程式功能將嘗試使用適當的cpu暫存器找到目標程序的程序環境塊(peb),並從中嘗試查詢記憶體中的kernel32dll和任何其他必需庫的位址;

4. 發現所需的api函式(如loadlibrarya,getprocaddress和virtualalloc)的記憶體位址;

5. 上述功能將用於將dll正確載入到記憶體中,並呼叫其將執行dll的入口點dllmain。

本文將介紹使用powersploit,metasploit和自定義工具以及使用這些工具執行dll注入的過程。

手動注入可以從頭開始建立dll,也可以通過metasploitmsfvenom建立dll,該檔案可以生成包含特定有效內容的dll檔案。 應該注意的是,如果dll被注入的程序是64位,那麼應該使用64位有效負載。

下一步是設定metasploit偵聽器,以便在將惡意dll注入程序後接受連線。

有許多可以執行dll注入的工具,但最可靠的工具之一是出自securityxploded技術團隊的remote dll injector,該工具在實現上使用的是createremotethread技術,它可以將dll注入到啟用了aslr的程序中,工具使用的過程中只需要提供程序id和dll路徑兩個引數:

remotedllinjector在初始執行的時候會展示為了完成dll注入所涉及到的所有步驟, 如下圖所示。

如果dll被成功注入,它將返回乙個具有和被注入程序相同許可權的meterpreter 會話。因此,具有高許可權的程序可能會是攻擊者首選要注入的程序以執行提權操作。

metasploit框架具有執行dll注入的特定模組。它只需要指定程序的pid和dll的路徑並和meterpreter 成功建立會話。

也可以通過使用powersploit完成dll注入以提公升程式執行許可權。 msfvenom可以用於生成惡意dll,然後通過任務管理器可以獲得目標程序的pid。 如果目標程序作為system執行,則注入的dll將以相同的許可權執行。

invoke-dllinjection模組將執行dll注入,如下所示:

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

系統安全攻防戰 DLL注入技術詳解

dll注入是一種允許攻擊者在另乙個程序的位址空間的上下文中執行任意 的技術。攻擊者使用dll注入的過程中如果被賦予過多的執行特權,那麼攻擊者就很有可能會在dll檔案中嵌入自己的惡意攻擊 以獲取更高的執行許可權。具體而言,該技術遵循以下步驟 需要將dll寫入磁碟中 createremotethread...

系統安全攻防戰 DLL注入技術詳解

dll注入是一種允許攻擊者在另乙個程序的位址空間的上下文中執行任意 的技術。攻擊者使用dll注入的過程中如果被賦予過多的執行特權,那麼攻擊者就很有可能會在dll檔案中嵌入自己的惡意攻擊 以獲取更高的執行許可權。具體而言,該技術遵循以下步驟 1.需要將dll寫入磁碟中 2.createremoteth...

web安全攻防 sqlmap注入技術引數

sqlmap注入技術引數 sqlmap設定具體sql注入技術 引數 technique 此引數用於指定檢測注入時所用技術。預設情況下sqlmap會使用自己支援的全部技術進行 檢測。此引數後跟表 示檢測技術的大寫字母,其值為b e u s t或q,含義如下 b boolean based blind ...