你们尽管绕dogByPass,绕不过算我输!

0x00 背景

这周学弟学妹经常提问到如何绕过安全防护软件的检测,那么本篇就以dog为例子带大家走一遍dogByPass的一条龙服务流程,本篇仅提供思路,后续可能由于软件规则的更新而需要重新设置或更改规则,所以先带大家走一遍流程,熟悉后各位便能自行去更改规则了。

dogByPass的一条龙服务: 上传ByPass -> 一句话ByPass -> cknife ByPass

0x01 UploadByPass

在目标站点有上传漏洞并使用dog防护的时候,可以使用如下的方式绕过。

在服务端写好未做任何限制的上传脚本,然后直接上传php文件,发现被dog拦截了。

最基本的方式可以通过对request的报文进行FUZZ,得到绕过防护软件的方式。 举个栗子在filename=后面加上空格,TAB等空字符再跟上文件名,可以绕过dog的上传检测。

又一个栗子在分号的前后加上一定数量的TAB,在测试中是加入了466个TAB字符,可以绕过dog的上传检测。

0x02 OneWordByPass

dog By Pass 的一句话可以参考往篇的文章: https://mp.weixin.qq.com/s/5EYc-foPPvu9B0DKkUKmMw https://mp.weixin.qq.com/s/vzNx1qz6iTnOUurW0hO2MQ

绕过上传后,普通的一句话会被dog查杀,因此需要特殊的一句话,又为了能够使用cknife连接而不是手动连接的方式,因此需要在传输的过程中对内容进行编码或加密,最简单的方式就是使用base64编码,上传后没有被查杀,因为这个一句话是免杀的。

使用手动连接的方式确认一句话可以正常使用,把POST请求中参数的值cmd=system(‘whoami’) 进行base64编码得到cmd=c3lzdGVtKCd3aG9hbWknKQ==,提交后正常执行。

0x03 CknifeByPass

正常情况下Cknife发送的数据是没有进行编码或加密的,因此会造成某些敏感关键字被dog检测到从而被拦截,所以为了能够让Cknife能够发送编码或加密的内容可以在cknife中的Config.ini配置发包规则。

首先查看默认情况下Cknife的发包规则,设置Cknife的代理地址和端口是BurpSuite的地址和端口。

使用BurpSuite拦截Cknife的请求包,然后发送的repeater,可以看到因为cmd参数的值中包含敏感关键字从而被dog拦截。cmd是免杀一句话的密码。

拦截后Cknife无法正常使用,直接报错。

接下来开始对Cknife进行修改,打开Config.ini文件,这里以PHP为例子,找到PHP_MAKE,将PHP_MAKE中的值eval(base64_decode($_POST[action]))进行base64编码,编辑好后保存config.ini。

重新启动Cknife,使用BurpSuite监测请求包,cmd参数的值成功被转成base64编码的数据,由于上一步的免杀一句话会进行base64解码,所以请求可以正常运行。

此时关闭BurpSuite的拦截,cknife可以正常使用,本篇介绍的流程也就到此结束。

0x04 小总结

本篇重在带大家走下dogByPass的一条龙服务流程,提供一些bypass的思路,但bypass的技巧都是要靠不断的学习和积累的,并且由于cknife是开源的所以为很多骚操作提供很好的支撑。cknife还要很多知识本篇没有涉及到后续再进行总结和探讨。期待大家的交流和讨论。

原文发布于微信公众号 - 漏斗社区(newdooneSec)

原文发表时间:2017-11-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏优启梦

emlog后台登录失败邮件通知

前面说到emlog后台登录参数加密,下面我们说说如何给emlog添加后台登录失败邮件通知的功能,本次我们需要用到mail函数,当然也就是需要25端口发信,如果是...

656120
来自专栏原创

个推推送iOS版 常见问题详解

1、提交了.p12文件后多久可以测试? 提交后10分钟左右才可以测试,并不是立即生效的。 2、应用在后台时接收不到消息,即APNS消息接收不到? 1.    先...

390110
来自专栏FreeBuf

文件上传限制绕过技巧

文件上传漏洞是web安全中经常利用到的一种漏洞形式。一些web应用程序中允许上传图片,文本或者其他资源到指定的位置,文件上传漏洞就是利用这些可以上传的地方将恶意...

42720
来自专栏云计算教程系列

如何在Ubuntu 16.04上使用Stunnel加密流量到Redis

Redis是一个开源键值数据存储,使用内存存储模型和可选的磁盘写入来实现持久性。它具有事务,发布/订阅消息传递模式以及其他功能之间的自动故障转移功能。Redis...

38240
来自专栏赵俊的Java专栏

搭建一个自己的私有云 + 离线下载站

4.1K40
来自专栏Android相关

Gradle解决多lib冲突

在引入第三方jar包的时候,可能会遇到很多库的冲突,例如均使用了OkHttp,RxJava等等,在打包的时候就会遇到Class多个定义的问题。而目前Androi...

29020
来自专栏Youngxj

emlog后台登录失败邮件通知

13530
来自专栏云计算教程系列

如何在Ubuntu 16.04上为用户目录设置vsftpd

FTP是文件传输协议的缩写,是一种曾经广泛用于在客户端和服务器之间移动文件的网络协议。它已被更快,更安全,更方便的文件传输方式所取代。许多休闲网民希望直接用ht...

27500
来自专栏云计算教程系列

如何在Ubuntu 18.04上为用户目录设置vsftpd

FTP是文件传输协议的缩写,是一种曾经广泛用于在客户端和服务器之间移动文件的网络协议。它已被更快,更安全,更方便的文件传输方式所取代。许多普通网民希望通过htt...

13800
来自专栏凉城

不借用外置设备---破解windows 10开机密码

72830

扫码关注云+社区

领取腾讯云代金券