黑客入侵日记 小白入门拿权限webshell
黑客花无涯 带你走进黑客世界系列文章
学习黑客经典书籍 网络黑白 某宝有售
对于渗透方面的各种教程,看了也不少了,其中黑客攻防技术宝典web实战篇这本对我帮助甚大,真正让我入门了。brup suite ,w3af,sqlmap,nmap,metasploit,xss beef,各 种工具也都基本会用。最近国内某著名安全公司的工程师来我们公司与我们进行了安全技术交流,交流中展示了一种基于PHP内核来检测php的webshell的demo,的确很牛,但访问一个页面就会出现很多信息,在页面较多访问量较大的情况下会产生海量日志,感觉真正投入使用还需要进行较多优化。
这里我介绍一下我以前使用的两种方法来检测webshell,应该说效果比这个明显很多,一旦有人利用webshell执行命令都会被发现,在介绍我的思路之前,有兴趣的也可以关注一下花无涯微博。我们先简单小结一下常见的webshell检测方法。
但是接下来有点不知道该怎么办。各种sql注入,xss,phpinfo,robots.txt即使是一些老网站也找不出漏洞。虽然对各种漏洞都知道,就是找不出来,不知道如何攻下自己的第一个站点。
关于webshell的检测与绕过,网上有较多的文章进行过讨论。我按自己的理解简单总结如下:
基于特征码对文件进行扫描
Webshell与正常的网页文件肯定存在着一些特定的区别,利用这些区别就可以找到webshell,我们把这些特定的区别称之为特征码。Webshell的特征码包括:一些关键的函数如eval、system、shell_exec等;也包括一些黑客的版权信息比如4ngel、wofeiwo、c99shell等。这种方法存在着误报和漏报的问题,误报主要在于正常的页面可能也会调用eval等函数,漏报在于特征码收集的是否全面以及存在着相应的规避措施。
比如下面这个某牛的webshell:
我自己写的webshell扫描工具能发现它主要因为我把preg_replace这个函数也做为了特征码,不太明白preg_replace函数作用的人可能就不会认识到这一点。当然如果扫描发现了一些黑客版权特征那基本上断定是webshell了。下图为我以前自己写的一个webshell扫描工具的效果图:
基于文件属性变化
除了扫描文件特征码之外,还可以结合文件变化来进行,比如html目录正常情况下不会有动态文件但突然哪天多了一个xx.php,或者其它目录多出一个属主为nobody的文件等。
一种思路就是监控文件的变化,当有变化的时候自动调用检测脚本进行检测等。
基于网络访问特征
现在有一些IPS会将webshell.php、diy.asp、cn99.php等做为特征报警,其实是在网络上截获url然后匹配特征进行。顺着这个思路,如果开发一套系统对网络上的http流量进行分析,提取出所有的访问页面、参数、访问方式等信息存入数据库,当有新增的页面或页面新如来一个访问参数或者请求方式由GET变为POST时就可能存在异常。但是这种方案实施和运维工作量会比较大,而且无法支持https网站(除非导入网站证书解密)。
基于php内核的检测
不管webshell代码怎么变形,最终都要经过php解析引擎解析后执行,在这个时候所有的操作对你都是可见的。基于这个思路,一些牛人开始设计基于php内核的检测方式,目前还没有一款相对成熟的产品,本次某安全公司过来演示的也只是一个demo。
另类思路检测webshell
上传webshell上来之后,黑客会进行什么操作?用webshell的浏览目录功能到处逛?还是会用到其执行命令的功能比如反弹个shell?执行这些操作与正常的用户访问页面到底有什么区别?基于此,在和一些朋友的讨论下,我提出了基于进程上下文的方案,并且在真实环境进行了测试。后面我又研究了基于系统调用的方案并且在真实环境进行了测试,这里一并介绍给大家。
基于进程上下文的检测
linux上的webshell基本上都具备反弹shell功能,一旦有人利用此功能反弹shell,系统上就会出现相应的进程变化,利用这种变化就能发现一些异常。比如某系统是nginx以php-cgi方式运行php,而且nginx以nobody权限运行,那执行:ps-ef|grep
nobody|grep-vphp-cgi|grep-vnginx|grep-vgrep就能获取到可疑的进程,写一个脚本把可疑的进程记录并发邮件出来,然后做个crontab一分钟执行一次这个脚本。以安全天使的phpwebshell为例进行测试,得到以下数据:当使用c代码模式反弹时会发现。
当我得到一个网站的webshell:检测到了,服务器存在安全软件。各种杀各种阻碍,然后你各种尝试,各种工具上传测试。最后只能跪求某大牛,抽了根烟后,某大牛不想说话并向你扔了个管理员权限的账户。案例分析:像这种情况,第一思路要清晰,收集好服务器各种信息。第二学会模拟服务器环境,问题可能不在安全软件,而是在于系统的安全策略。第三尝试无果可以实行下一个思路,比如人的安全问题第四很多不成功的原因在于你经验不足和你对服务器系统的不熟悉,还有要懂得思路扩展。
当我用工具找到一个CMS(PHP)的文件包含漏洞:百度谷歌各种搜索,各种尝试,找不到相关的漏洞。但是能下载到这个CMS的源码,然后去看里面的代码,发现怎么看都是天文乱码,最后还是得扔给某大牛抽根烟。某大牛说了句你是猪吗,那么明显都看不到并向你扔了个webshell。
所以说学习还是非常重要的,技术入门到精通。学习黑客经典书籍 网络黑白 某宝有售。
中国黑客协会 普及网络安全知识,让更多的人学习并重视网络安全和信息安全。
中国黑客协会是一种精神的传承,黑客代表是一种精神,它是一种热爱祖国、坚持正义、开拓进取的精神。