webshell是什么?

webshell是什么?

百度百科的定义:webshell就是以aspphp、jsp或者cgi等网页文件形式存在的一种代码执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。

通俗来讲,Webshell是黑客经常使用的一种恶意脚本,其目的是获得对服务器的执行操作权限,比如执行系统命令、窃取用户数据、删除web页面、修改主页等,其危害不言而喻。黑客通常利用常见的漏洞,如SQL注入、远程文件包含(RFI)、FTP,甚至使用跨站点脚本攻击(XSS)等方式作为社会工程攻击的一部分,最终达到控制网站服务器的目的。

webshell的特点

黑客使用Webshell的第一步通常是将其上传到可以访问的服务器中,例如利用用户CMS系统的第三方插件中的漏洞上传一个简单的php Webshell。当然,Webshell类型和作用也不完全相同,一些简单的Webshell只起到连接外界的作用,允许黑客插入更加精准的恶意脚本,执行他们所需要的指令;另外一些则可能更加复杂,带有数据库或文件浏览器,让黑客能够从数千英里之外的地方查看入侵系统的代码和数据。无论何种设计,Webshell都极其危险,是网络罪犯和高级持续威胁(APTs)的常用工具。Webshell常见的攻击特点主要有以下几点:

持久化远程访问

Webshell脚本通常会包含后门,黑客上传Webshell之后,就可以充分利用Webshell的后门实现远程访问并控制服务器,从而达到长期控制网站服务器的目的。此外,在上传完Webshell之后,黑客会选择自己修复漏洞,以确保没有其他人会利用该漏洞。通过这种方式,黑客就可以一种低调的姿态,避免与管理员进行任何交互,同时仍然获得相同的结果。

提权

在服务器没有配置错误的情况下,Webshell将在web服务器的用户权限下运行,而用户权限是有限的。通过Webshell,黑客可以利用系统上的本地漏洞来实现权限提升,从而获得Root权限,这样黑客基本上可以在系统上做任何事情,包括安装软件、更改权限、添加和删除用户、窃取密码、阅读电子邮件等等。

隐蔽性极强

Webshell可以嵌套在正常网页中运行,且不容易被查杀。它还可以穿越服务器防火墙,由于与被控制的服务器或远程主机交互的数据都是通过80端口传递,因此不会被防火墙拦截,在没有记录流量的情况下,Webshell使用post包发送,也不会被记录在系统日志中,只会在Web日志中记录一些数据提交的记录。

如何隐藏Webshell

Webshell几乎适用于所有Web编程语言,尤其以PHP居多。

修改报头

黑客使用用户代理字符串而不是通过$_POST 请求参数来传递命令的。

<?php system($_SERVER['HTTP_USER_AGENT'])?

然后黑客可以通过将命令放在user-agent http包头中来制作特定的http请求。
在这里插入图片描述
在服务器日志中可以看到这一行为的效果,其中第二个请求中的HTTP User-Agent被cat /etc/passwd命令替换了。

隐藏在正常文件中

黑客用来隐藏Webshell最简单的一个方法是将它们上传到深层子目录中和/或使用随机名称。

此外,一种更有效的方法是将Webshell代码嵌入到现有的合法文件中。

注意:黑客通常会在函数前使用@运算符,以防发生任何错误,写入错误日志。

混淆

黑客使用各种混淆技术,以避免被管理员检测到。他们不断提出新的更复杂的方法来隐藏其代码并绕过安全系统。下面是我们看到的一些最常用的技术。

(1)删除空格换行符

通过从代码块中删除空格换行符,代码看起来像一个大字符串,这就使得代码的可读性降低并且更难识别脚本要实现什么目的。

(2)加密技术

该技术可以对代码进行加密,降低代码的可读性,并且充分利用运行时可以重建代码的各种函数。

(3)使用Hex进行混淆

ASCII字符的十六进制值也可以用于进一步混淆Webshell命令,下面的例子可以很好地说明混淆技术在Webshell中的应用。

(4)通过可控输入实现混淆

PHP常用的可控输入包括: $_GET, $_POST, R E Q U E S T , _REQUEST, REQUEST,_FILES,$_SERVER $_COOKIE等,是PHP预定义的变量,可以将黑客自定义的值传递给浏览器中。

Webshell检测和预防

检测

如果管理员怀疑其系统中存在Webshell或只是进行例行检查,则需要检查以下内容。

首先,必须针对Webshell正在使用的常见关键字过滤服务器访问和错误日志,包括文件名称和/或参数名称。必须在文件系统(通常是Web服务器根目录)中搜索文件或文件名中的通用字符串。

监视网络中存在异常的网络流量和连接。

通常,黑客会利用Web服务器软件中存在的漏洞来安装Webshell。因此,消除这些漏洞对于避免失陷Web服务器的潜在风险很重要。以下是一些与Webshell相关的预防措施。

如果不使用,要禁用危险的PHP函数,例如exec()、shell_exec()、passthru()、system()、show_source()、proc_open()、pcntl_exec()、eval()与assert()。

如果必须要启用这些命令,请确保未授权用户无法访问这些脚本。此外,使用escapeshellarg()和escapeshellcmd()可以确保不能将用户输入注入到shell命令中,从而导致命令执行漏洞。

如果Web应用程序正在使用上传表单,请确保上传的表单是安全的,并且仅允许上传白名单所允许的文件类型。

不要相信用户输入的信息。

不要盲目使用在线论坛或网站上的代码。

对于WordPress,如果不需要,要避免安装第三方插件。如果需要使用插件,请确保插接件其信誉良好且经常更新。

在敏感目录(如图片或上传)中禁用PHP执行。

锁定Web服务器用户权限。

上面给出的是一些简单的Webshell检测和预防措施。面对较为复杂的Webshell攻击,则需要采用一些专业的Webshell检测工具来实现了。

参加文献

1,https://www.freebuf.com/articles/web/235651.html

2,https://zhuanlan.zhihu.com/p/344629093

  • 9
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Webshell是黑客经常使用的一种恶意脚本,其目的是获得对服务器的执行操作权限,比如执行系统命令、窃取用户数据、删除web页面、修改主页等。它是一种常见的攻击工具,黑客通常利用常见的漏洞,如SQL注入、远程文件包含(RFI)、FTP,甚至使用跨站点脚本攻击(XSS)等方式作为社会工程攻击的一部分,最终达到控制网站服务器的目的。Webshell的特点是多样的,有些只起到连接外界的作用,允许黑客插入更加精准的恶意脚本,执行他们所需要的指令;而另一些则可能更加复杂,带有数据库或文件浏览器,让黑客能够从远程地方查看入侵系统的代码和数据。总之,Webshell是一种极其危险的工具,常被网络罪犯和高级持续威胁(APTs)使用。\[2\]\[3\] #### 引用[.reference_title] - *1* [常用的WebShell管理工具](https://blog.csdn.net/qq15577969/article/details/109060585)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [webshell是什么?](https://blog.csdn.net/Anakin6174/article/details/115658654)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值