网络攻防|Web后门知识详解

您所在的位置:网站首页 webshell使用的函数 网络攻防|Web后门知识详解

网络攻防|Web后门知识详解

2024-02-15 11:23| 来源: 网络整理| 查看: 265

作者: h0we777 免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。

0x00 简介

web后门泛指webshell,其实就是一段网页代码,包括ASP. ASP.NET. PHP. JSP. 代码等。由于这些代码都运行在服务器端,攻击者通过这段精心设计的代码,在服务器端进行一些危险的操作获得某些敏感的技术信息,或者通过渗透操作提权,从而获得服务器的控制权。这也是攻击者控制服务器的一个方法,比一般的入侵更具隐蔽性。

0x01 Webshell是什么 1.1 Shell(计算机壳层)

在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。Shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

Linux 的 Shell 种类众多,常见的有:

Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash) C Shell(/usr/bin/csh) K Shell(/usr/bin/ksh) Shell for Root(/sbin/sh) 1.2 Webshell

webell顾名思义:web指的是web服务器,而shell是用脚本语言编写的脚本程序,webshell就是web的一个管理工具,可以对web服务器进行操作的权限,也叫webadmin。webshell一般是被网站管理员用于网站管理、服务器管理等等一些用途,但是由于webshell的功能比较强大,可以上传下载文件,查看数据库,甚至可以调用一些服务器上系统的相关命令(比如创建用户,修改删除文件之类的),通常被攻击者利用,攻击者在入侵了一个网站后,通常会将asp或php后门文件与网站服务器web目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。攻击者通过一些上传方式,将自己编写的webshell上传到web服务器的页面的目录下,然后通过页面访问的形式进行入侵,或者通过插入一句话连接本地的一些相关工具直接对服务器进行入侵操作。

0x02 分类

webshell根据脚本可以分为PHP脚本木马,ASP脚本木马,也有基于.NET的脚本木马和JSP脚本木马。在国外,还有用python脚本语言写的动态网页,当然也有与之相关的webshell。

根据功能分为大马与小马:

2.1 小马

2.1.1 简介 一句话木马短小精悍,而且功能强大,隐蔽性非常好,在入侵中始终扮演着强大的作用。

2.1.2 示例 通常把这句话写入一个文档里面,然后文件名改成xx.asp。然后传到服务器上面。这里eval方法将request(“pass”)转换成代码执行,request函数的作用是应用外部文件。这相当于一句话木马的客户端配置。

2.1.3 工作原理 首先,找到数据库是asp格式的网站,然后,以留言板,或者发表文章的方式,把一句话添加到asp数据库,或者加进asp网页.记住!我们的目的是把一句话添加到数据库,无论任何方式!然后打开客户端(就是你电脑上面的那个htm文件),填上加入了一句话的asp文件,或者是asp网页,然后进入此网站服务器。

2.1.4 常见客户端 一句话客户端增强版;中国菜刀;lanker一句话客户端;ZV新型PHP一句话木马客户端GUI版。

2.2 大马

大马的工作模式简单的多,他没有客户端与服务端的区别,就是一些脚本大牛直接把一句话木马的服务端整合到了一起,通过上传漏洞将大马上传,然后复制该大马的url地址直接访问,在页面上执行对web服务器的渗透工作。但是有些网站对上传文件做了严格的限制,因为大马的功能较多,所以体积相对较大,很有可能超出了网站上传限制,但是小马的体积可以控制(比如把代码复制很多遍,或者在一个乱码文件中夹入代码),但是小马操作起来比较繁琐,可以先上传小马拿到webshell,然后通过小马的连接上传大马拿到服务器。 在这里插入图片描述

0x03 原理

webshell含有相同的本质,即:执行系统命令的函数+接收web参数的功能函数。使用webshell就像打开一个特殊的web页面,只有当传入的参数正确时才能顺利使用。例如:1.php 内容为:只有打开1.php页面且数据包参数有"A"时,才能正确连接使用该后门。通过连接webshell,执行系统命令,可以查看计算机本机文件,查看用户、密码等敏感信息,还可以直接生成、修改文件(生成木马病毒文件或者网页挂马,数据库添加xss代码等),以及直接下载上传更多文件。

JSP的简单webshell

ASP的简单webshell

PHP的简单webshell

0x04 特点

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

0x05 变种类型 函数调用拼接语句字符操作编码混淆其他:文件名利用 0x06 危害 长期控制web服务器、主机;上传任意文件或者其他危害性病毒,例如勒索、挖矿等,也可以从主机下载任意文件;修改web主页,篡改图片,造成不良社会影响(例如篡改国旗等);偷窃删除数据(数据库数据、用户密码、个人信息之类);控制服务器当肉鸡、攻击跳板,对其他用户实现DDos等攻击。 0x07 Webshell检测

webshell的运行流程:hacker -> HTTP Protocol -> Web Server -> CGI。简单来看就是这样一个顺序:黑客通过浏览器以HTTP协议访问web server上的一个CGI文件。棘手的是,webshell就是一个合法的TCP连接,在TCP/IP的应用层之下没有任何特征(当然不是绝对的),只有在应用层进行检测。黑客入侵服务器,使用webshell,不管是传文件还是改文件,必然有一个文件会包含webshell代码,很容易想到从文件代码入手,这是静态特征检测;webshell运行后,B/S数据通过HTTP交互,HTTP请求/响应中可以找到蛛丝马迹,这是动态特征检测。

目前针对Webshell的特征检测一般是通过特征比对及文件属性异常的静态检测和基于访问情况、行为模式特征的动态检测方式进行查杀,由于窃密型Webshell通常会伪装成正常的WEB脚本文件,静态特征检测及动态行为检测都无法有效的针对此类后门进行检测。

7.1 静态检测

静态特征检测是指脚本文件中所使用的关键词、高危函数、文件修改的时间、文件权限、文件的所有者以及和其他文件的关联性等多个维度的特征进行检测。即先建立一个恶意字符串特征库,例如:“组专用大马|提权|木马|PHP\s?反弹提权cmd执行”,“WScript.Shell、 Shell.Application、Eval()、Excute()、Set Server、Run()、Exec()、ShellExcute()”,同时对WEB文件修改时间,文件权限以及文件所有者等进行确认。通常情况下 WEB文件不会包含上述特征或者特征异常,通过与特征库的比对检索出高危脚本文件。 7.1.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:fpassthru()、fsockopen()

7.1.2 优点 可快速检测,快速定位。

7.1.3 缺点 容易误报,无法对加密或者经过特殊处理的webshell文件进行检测。无法查找0day型webshell,而且容易被绕过。尤其是针对窃密型webshell无法做到准确的检测,因为窃密型webshell通常具有和正常的web脚本文件具有相识的特征。所以用这样一种思路:强弱特征。即把特征码分为强弱两种特征,强特征命中则必是webshell;弱特征由人工去判断。

7.2 动态检测

动态特征检测通过webshell运行时使用的系统命令或者网络流量及状态的异常来判断动作的威胁程度,webshell通常会被加密从而避免静态特征的检测,当webshell运行时就必须向系统发送系统命令来达到控制系统或者操作数据库的目的,通过检测系统调用来检测甚至拦截系统命令被执行,从行为模式上深度检测脚本文件的安全性。先前我们说到过webshell通信是HTTP协议。只要我们把webshell特有的HTTP请求/响应做成特征库,加到IDS里面去检测所有的HTTP请求就好了。webshell起来如果执行系统命令的话,会有进程。Linux下就是nobody用户起了bash,Win下就是IIS User启动cmd,这些都是动态特征。再者如果黑客反向连接的话,那更容易检测了,Agent和IDS都可以抓现行。Webshell总有一个HTTP请求,如果我在网络层监控HTTP,并且检测到有人访问了一个从没反问过得文件,而且返回了200,则很容易定位到webshell,这便是http异常模型检测,就和检测文件变化一样,如果非管理员新增文件,则说明被人入侵了。 7.2.1 优点 可用于网站集群,对新型变种脚本有一定的检测能力。

7.2.2 缺点 针对特定用途的后门较难检测,实施难度较大。

7.3 日志分析

使用Webshell一般不会在系统日志中留下记录,但是会在网站的web日志中留下Webshell页面的访问数据和数据提交记录。日志分析检测 技术通过大量的日志文件建立请求模型从而检测出异常文件,称之为:HTTP异常请求模型检测。例如:一个平时是GET的请求突然有了POST请求并且返回 代码为200、某个页面的访问者IP、访问时间具有规律性等。

使用Webshell一般不会在系统日志中留下记录,但是会在网站的web日志中留下Webshell页面的访问数据和数据提交记录。日志分析检测技术通过大量的日志文件建立请求模型从而检测出异常文件,称之为:HTTP异常请求模型检测。例如:一个平时是GET的请求突然有了POST请求并且返回代码为200、某个页面的访问者IP、访问时间具有规律性等。

7.3.1 优点 采用了一定数据分析的方式,网站的访问量达到一定量级时这种检测方法的结果具有较大参考价值。

7.3.2 缺点 存在一定误报,对于大量的访问日志,检测工具的处理能力和效率会较低。

7.4 流量检测

根据抓取的流量显示,对WebShell所做的操作的结果,都会以字符串的形式返回给菜刀进行处理,并显示出来。字符串形式为 “->|xxxx|



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3