来源:自学PHP网 时间:2015-04-17 12:00 作者: 阅读:次
[导读] 以前发现的一个技巧性的东西,由于一般的webserver都会记录日志,而且在目前的后期后门以及漏洞追踪中主要的证据都是日志,如果有可能让日志变得不可信,我们就有可能成功了。访...
以前发现的一个技巧性的东西,由于一般的webserver都会记录日志,而且在目前的后期后门以及漏洞追踪中主要的证据都是日志,如果有可能让日志变得不可信,我们就有可能成功了。
访问shell.php,会得到日志:
<?php
phpinfo();
?>
127.0.0.1 - - [20/Oct/2012:22:21:54 +0800] "GET /shell.php HTTP/1.1" 200 66918
稍微改变下后门,添加header一句代码之后就会是
<?php
header('HTTP/1.1 404');
ob_start();
phpinfo();
ob_end_clean();
?>
127.0.0.1 - - [20/Oct/2012:22:21:54 +0800] "GET /shell.php HTTP/1.1" 404 -
标准的一次扫描结果,它无法说明任何问题了
:)
网友评论:
Mujj 2012-10-20 22:45
学习了,这招不错,下次必须连404都要看
xsser (十根阳具有长短!!) | 2012-10-20 22:49
@Mujj 404就没意义了 因为无法区分是解析器层导致的404还是前端webserver上导致的404 事实上随着架构的越来越复杂,日志越来越会不可信了
Mujj (www.80host.com) | 2012-10-20 22:50
@xsser 日志分析结合本地文件名和关键词分析呢,这样不就查到了么
xsser (十根阳具有长短!!) | 2012-10-20 22:58
@Mujj 往往事成之后本地都没有文件了.....
Mujj | 2012-10-20 23:05
太猥琐了,睡觉去看来,webserver有必要记录访客行为了,比如访问了啥,提交了啥,一搜索全部列出来
horseluke (微碌) | 2012-10-20 23:15
日志分析如果采取手工的话,这种伪装还是有点勉强啊,因为最大的特征源ip是不可伪造的(虽然可代理),那么就可以依ip构造出一个完整的证据链。
而自动化日志分析,这种错误码会被当作异常来归类,那么只要有人对异常敏感,那也是逃不过的.....总体来讲,有点勉强.....
horseluke (微碌) | 2012-10-20 23:18
@Mujj 假如这个提交是更改密码,那么就等于免费送给黑客一个密码记录器了——你还别说,有程序真这么做的,结果.....
xsser (十根阳具有长短!!) | 2012-10-20 23:21
@horseluke 在找到ip之前往往先应该分析出哪个文件被异常访问
iv4n | 2012-10-21 08:13
有点yd,不过第一次在日志没找到东东,往往会再check一次,增加了排查的成本
also (popok是我的孙子!!) | 2012-10-21 08:49
@xsser 异常访问?!修改时间呢,再涂鸦掉日志记录
Mujj (www.80host.com) | 2012-10-21 08:54
@horseluke @xsser 可以搞完了再用工具全站爬行一遍,有可能逃过IP的检查,被当作扫描器
byr5ec | 2012-10-21 10:22
还是不错的,因为一般在最先分析的是web日志,分析web日志第一看到就是源IP,然后就是这个源IP的动作了;放在公网上的WEB,难免有很多被扫描及访问时产生的404错误的页面,对于这些404相信很多人也不怎么会关心的。还是能骗过一部分人的。
tmp | 2012-10-21 16:26
@xsser 这个技巧太猥琐了...@also 有些日志你是没办法涂的.在你触发时.管理员就知道了.如远程日志服务器
@horseluke "那么就可以依ip构造出一个完整的证据链" 靠这个太不可靠... xsser说通过异常访问这个比较来排除这个相对靠谱.一般都是排查的第一链.另外可以在系统分级分层次设置多链警报日志
also (popok是我的孙子!!) | 2012-10-21 20:13
对于新手,一帮人都建议直接全清,而后者则挑选伪造。前者就是告诉人家你日了他,后者则扰乱管理员思维。
嘿嘿,我觉得WEB日志还是比较好清理的,只清自己的访问记录呗、或者把自己的IP改成别人的。。windows的登陆日志和系统日志很难收拾。。
popok (我是你们的大爷)?(宗祖的们你是我) | 2012-10-22 00:35
不太懂php,如果
ob_start();
phpinfo();
ob_end_clean(); www.2cto.com
这样,是不是把输出缓存在服务端了,不会输出到客户端,所以是
[22/Oct/2012:08:28:49 +0800] "GET /11.php HTTP/1.1" 404 -
但是如果不用ob
phpinfo();
可以输出结果到客户端,但是日志是
[22/Oct/2012:08:29:46 +0800] "GET /11.php HTTP/1.1" 404 57669 "-"
其中有字节数,一般服务器的404页面字节数应该是固定的吧?你如何伪造那个字节数呢?
xsser (十根阳具有长短!!) | 2012-10-22 00:38
@popok 字节数是由webserver控制的 想伪造也很简单 clean输出缓冲区之后自己再伪造一个固定字节的
popok (我是你们的大爷)?(宗祖的们你是我) | 2012-10-22 00:38
一般后门目的就是要和客户端有数据传输吧?只要有输出到客户端的数据,日志里就会有字节数记录吧?
不知道说的对不对
popok (我是你们的大爷)?(宗祖的们你是我) | 2012-10-22 00:41
@xsser php不太懂,clean能把缓冲区内容输出到客户端么?我本地测试客户端根本没数据,后门目的不就是需要在客户端输出吗?
tmp | 2012-10-22 02:22
@cnrstar 直接清日志... 很多时候日志不仅是在你进入的机器. 如果管理员经验丰富点.无论是直接清,还是伪装日志...都是吃力不讨好的差事..因为管理员直接diff..啥都出来了.. 最好的做法是.做些肤浅的动作.满足一下管理员的虚荣.这样你的另外一个部署也许能藏得久些. 话说回来.这个404的技巧..确实淫荡..一不注意就pass了...
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com