(1).webshell流量检测:市场上主流的NDR/TDR产品,会检测请求体内的whoami和响应体内的nt authoritysystem,就会触发攻击成功的告警。
(2).web指纹检测:常见的web指纹识别工具,就是通过GET或者POST请求url,然后去识别响应包内的特征,例如1.12.4/dist/jquery.min.js,我们可以判断出来是jquery框架。
3.开发前的科普,在PHP中有一个函数叫ob_get_contents,返回输出缓冲区的内容。
4.举例说明,把网站代码包含到ob_start()和ob_end_clean()中间的时候,网站不会直接输出,可以使用ob_get_contents函数去复制内部缓冲区的内容到一个字符串变量内。
6.可以通过ob_get_contents函数取出内部缓冲区的内容,进行echo输出。
7.利用这个特性,我可以使用aes加密,对内部缓冲区的内容进行加密之后再输出,aes密钥是取当前时间戳,格式化到分钟,进行一次md5加密,然后取前16位字符当作key和iv,因为AES-128-CBC设置的就是需要16位,这样可以实现每分钟更换一次密钥。
9.同时输出javascript加密库crypto、时间戳生成的key和iv、加密结果,然后通过javascript解密内容,document.write对页面进行重写。
11.同时可以加载第三方库,对进行javascript代码二次加密。
12.效果如下
13.最后再对请求参数加密,然后后端进行解密,这样就可以实现了前端参数加密和后端响应包的加密了。
18.目前只写了PHP版本,后续有计划增加jsp,asp版本,该方法可以干掉一大片的脚本小子了。
19.作者简介:前QAX搞基渗透测试工程师。
20.文章中案例用到的工具:关注公众号,暗号:”流量加密”
原文始发于微信公众号(弥天安全实验室):HVV之开发从流量中去除蜜罐和webshell特征工具