溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

發(fā)布時間:2021-12-18 14:24:39 來源:億速云 閱讀:139 作者:柒染 欄目:網(wǎng)絡(luò)管理

今天就跟大家聊聊有關(guān)NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

0x01 前言

關(guān)于文章介紹到的權(quán)限維持的方法和步驟,筆者畫了簡易的流程圖 ,如下圖。

傳送門

探索基于.NET下實現(xiàn)一句話木馬之a(chǎn)shx篇

探索基于.NET下實現(xiàn)一句話木馬之Asmx篇

探索基于.NET下實現(xiàn)一句話木馬之SVC篇

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

隱藏手段說明
利用App_Code目錄攻擊者創(chuàng)建類文件并且在代碼中寫入一句話木馬,在別處文件中實例化調(diào)用該類
直接上傳DLL攻擊者本地制作一個DLL,可以選擇性的加殼后上傳到Bin目錄下
本地生成DLL攻擊者利用WebShell在Bin目錄下生成DLL后門

第一種方法考慮在App_Code目錄下創(chuàng)建類文件且在代碼中寫入一句話木馬,再回到根目錄下尋找可追加代碼的文件或者創(chuàng)建新的文件來調(diào)用類;第二種方法考慮在本地創(chuàng)建好一個DLL最好加上殼,再上傳到Bin目錄下后修改web.config文件增加handlers節(jié)點(diǎn)追加映射關(guān)系;第三種方法利用本地的環(huán)境生成DLL后修改映射訪問;這樣的好處顯而易見,一句話或 大小馬內(nèi)容全部保存在DLL中,傳統(tǒng)的文本查殺不奏效,并且訪問的時候通過GIF后綴名訪問回顯的是一個圖片驗證碼這樣也能逃逸一些基于流量特征檢測的IDS產(chǎn)品,下面分幾個小節(jié)來詳細(xì)說明實現(xiàn)的原理和步驟。

0x02 DLL型WebShell后門

在介紹DLL后門之前需要介紹.NET應(yīng)用中兩個特殊的目錄,一個是App_Code目錄、還有一個是Bin目錄;它們的作用都是在多個Web 應(yīng)用程序或多個頁之間共享代碼,App_Code 文件夾可以包含.vb、.cs等擴(kuò)展名的源代碼文件,,在運(yùn)行時將會自動對這些代碼進(jìn)行編譯,Web應(yīng)用程序中的其他任何代碼都可以訪問到,筆者為了更好的演示效果,新建了一個App_Code目錄,并且在About.aspx里實現(xiàn)了下面代碼:

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

Apptest.ashx中代碼如下,作用是輸出一句話“Hello World , this is App_Code ProcessRequest”

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

打開VS調(diào)試輸出的結(jié)果如下圖

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

若Web應(yīng)用里存在App_Code 目錄,攻擊者將一句話木馬隱藏在該目錄下的某個文件的方法里,恰好該方法可以被外界的其它的文件調(diào)用到,這樣就可以實現(xiàn)一個較為隱蔽的后門程序,但這種隱蔽依舊會被D盾或者安全狗查殺到,顯然這種方法不是最佳的選擇,所以可以考慮放到Bin目錄下的DLL文件中。

至于.NET應(yīng)用程序中Bin目錄有何作用,先來段介紹:Bin文件夾中存放著已經(jīng)編譯的程序集,并且 在Web 應(yīng)用程序任意處的其他代碼會自動引用該文件夾。典型的示例是您為自定義類編譯好的代碼。您可以將編譯后的程序集復(fù)制到Web應(yīng)用程序的 Bin文件夾中,這樣所有頁都可以使用這個類。Bin文件夾中的程序集無需注冊。只要.dll 文件存在于 Bin 文件夾中,.NET 就可以識別它。如果您更改了 .dll 文件,并將它的新版本寫入到了 Bin 文件夾中,則 .NET 會檢測到更新,并對隨后的新頁請求使用新版本的 .dll 文件。接下來筆者假定服務(wù)器上已經(jīng)存在一個WebShell,創(chuàng)建一個ashx的小馬,注意代碼是C#的即可,至于文件的后綴名可以任意指定,筆者指定為C:\inetpub\wwwroot\AdminWeb.txt如下圖

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

保存后到WebShell的CMD窗口下去調(diào)用csc.exe編譯這個AdminWeb.txt,csc.exe是 .NET提供的可以在命令行下編譯cs文件的工具,安裝了.Net環(huán)境的主機(jī)csc.exe的默認(rèn)位置在 C:\Windows\Microsoft.NET\Framework\[.NET具體版本號]目錄下,例如筆者裝了VS之后也會自動安裝2.0/3.5/4.0版本,在命名行下輸入 /? 看到所有的幫助

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

其中 /t:library 表示生成dll,/r參數(shù)表示引用DLL,-out參數(shù)表示生成dll的位置,這里很顯然得放到Bin目錄下,完整命令如下:

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

看到下列內(nèi)容的輸出,表示命令執(zhí)行成功!

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

WebShell執(zhí)行結(jié)果如圖

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

再跳轉(zhuǎn)到站點(diǎn)Bin目錄下看到成功創(chuàng)建了想要的AdminWeb.dll文件,至此DLL版本的后門程序已經(jīng)制作完成。

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

到了這步攻擊者肯定會想到在一個已經(jīng)存在的文件中去調(diào)用這個DLL里的方法,筆者新建了c.aspx文件,里面寫上一段代碼去實例化DLL里的AdminWeb類會觸發(fā)其構(gòu)造方法,代碼如下

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

預(yù)覽后得到下圖結(jié)果,在實例化類的過程中自動調(diào)用了構(gòu)造方法,執(zhí)行了DOS下的Set命令。

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

按照這樣的思路在服務(wù)器上已經(jīng)找不到ASPX馬兒的任何特征,最多可以發(fā)現(xiàn)新建的c.aspx文件可疑,但調(diào)用的方法名看上去很平常,即使管理員用D盾或者安全狗也掃不出任何的蛛絲馬跡,也實現(xiàn)了一種后門權(quán)限維持的方法。但筆者還不滿足,接下來還要介紹一種更隱蔽的方法。

0x03 HttpHandler映射

筆者在第一篇介紹ashx中我們提到過 ISAPI,它是根據(jù)文件名后綴把不同的請求轉(zhuǎn)交給不同的處理程序。幾乎一大半的文件訪問都交給 aspnet_isapi.dll 去處理了,很明顯aspnet_isapi.dll對不同的請求采取不同的處理方式,查看C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config配置定義,可以知道ashx是可以自定義配置實現(xiàn)映射關(guān)系,例如下面的配置:

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

配置項中path屬性是必選的,它的作用是指定路徑可以包含單個URL或者簡單的通配符字符串如 *.ashx ;  其它的屬性參考下表

屬性說明
name處理映射程序的名稱
type必選的屬性,指定逗號分割的類/程序集組合,一般對應(yīng)的就是Bin目錄下的DLL
verb必選的屬性,可以是GET/POST/PUT;也可以是腳本映射如通配符*
preCondition可選屬性,可以是集成模式(Integrated)/ 經(jīng)典模式(Classic)
validate可選的屬性,一般為true

下面筆者演示將通過瀏覽器訪問驗證碼圖片達(dá)到命令執(zhí)行的效果:首先name屬性設(shè)置為一個偽裝成正常處理程序的名字PageHandlerFactory-ISAPI-2.0-32;path屬性設(shè)置為任意名稱的gif圖片,這里是實現(xiàn)的驗證碼;verb屬性為*表示任意請求都可以;type是最重要的命名空間.類名 ;preCondition屬性設(shè)置為集成模式(IIS7性能好)

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

筆者編寫了一個C#的小馬,保存名稱為IsapiModules.Handler.cs ,實現(xiàn)三個功能,一是生成驗證碼,二是創(chuàng)建一個aspx的一句話文件,三是執(zhí)行cmd命令;生成驗證碼的目的是為了更好的隱藏自己,從HTTP返回的數(shù)據(jù)里輸出的是一張圖片文件,代碼片段如下圖

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

再在命令行下生成 IsapiModules.Handler.dll,生成DLL的命令如下:

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

最后只需要在站點(diǎn)根目錄下的Web.config文件新增handlers/httpHandlers節(jié)點(diǎn) ; 注意在IIS6添加如下配置

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

在IIS7集成模式下這樣配置

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

配置好了之后,IIS7服務(wù)管理器映射列表中就會注冊筆者自定義的映射程序 PageHandlerFactory-ISAPI-2.0-32,名字和系統(tǒng)的 PageHandlerFactory-ISAPI-2.0很接近,但確實是一個偽裝者

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

打開瀏覽器隨便輸入http://ip/anything.gif?a=c&p=cmd.txt&c=ipconfig ,這個時候界面是一個驗證碼圖片,偽裝的很好,IDS也不好檢測。

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

這個時候已經(jīng)在服務(wù)器上生成了cmd.txt,得到IP配置信息!

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

試想留下這樣一個完美的后門程序,參數(shù)加不加的時候都會輸出驗證碼圖片,這樣就可以繞過一些終端產(chǎn)品和流量檢測,達(dá)到了很好的隱藏效果。

0x04 菜刀一句話的隱藏

實現(xiàn)菜刀可用的一句話就必須要引入Jscript.Net,而且需要利用.NET FrameWork自帶的jsc.exe去編譯js腳本。有關(guān)jsc.exe的命令可以參考 https://docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2010/7435xtz6(v=vs.100)

筆者新建IsapiModu1e.Handler.js,實現(xiàn)代碼如下

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

在WebShell里調(diào)用jsc.exe編譯js腳本,輸入

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析跳轉(zhuǎn)到Bin目錄下得到編譯后的DLL

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析修改Web.config配置,添加新的DLL映射關(guān)系,完成這步整個菜刀后門配置完成。

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

訪問圖片菜刀地址 http://ip/news.gif ,看到下圖表示菜刀馬運(yùn)行成功!

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析菜刀也毫無壓力的連接成功!

NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析

最后筆者下載了常見的幾款查殺工具,不出預(yù)料之前探索出來的一句話木馬和混淆后的DLL均免殺。

0x05 小結(jié)

1.   這樣實現(xiàn)的后門非常隱蔽,管理員很難發(fā)覺,可以長期權(quán)限維持;

2.   生成的DLL也可以在本地,或者再進(jìn)一步可以混淆或者加殼等等對抗服務(wù)端殺軟;

3.   文章的代碼片段和DLL下載請參考https://github.com/Ivan1ee ;

4.   Github上已經(jīng)有編譯好的并且加了混淆的DLL;

5.   未加混淆的DLL MD5分別是

IsapiModu1e.Handler.dll  => MD5 (39cbf41b99a3751b3ff755509e35b1ae)、IsapiModules.Handler.dll => MD5 (e891914d65f28822aaf2d13ae984eee6)

6.   加殼混淆后的DLL MD5分別是 

IsapiModu1e.Handler.dll => MD5 (8cc5a23e925aa52d0ae80bec8ab28f88) 、IsapiModules.Handler.dll => MD5 (7cbba64946ecbc824c2cca1192b16684)

0x06 防御措施

1.   作為管理員可以通過查看Web.config里的handlers映射關(guān)系排查;

2.   通過IIS服務(wù)器管理程序排查非法的映射關(guān)系;

3.   對于隱藏的大馬或者小馬,傳統(tǒng)的IDS不好檢測,需要終端防護(hù)聯(lián)動起來排殺;

看完上述內(nèi)容,你們對NET下妙用DLL處理映射實現(xiàn)后滲透權(quán)限維持的示例分析有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI