前段时间忙着项目,awd比赛等,都没怎么写博客,不是没学,是不知道写啥。
好了,话不多说,2022年的第一篇博客。

WebShell基础

什么是WebShell?

顾名思义,web的含义是显然需要服务器开放web服务,shell的含义是取得对服务器某种程度上操作权限。
webShell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限。由于webShell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。

webShell就是以aspphpjsp或者cgi等网页文件形式存在的一种代码执行环境,也可以将其称做为一种网页后门。

入侵者在入侵了一个网站后,通常会将asp或php后门文件与网站目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。

Shell是一个人机交互页面,能操控服务器并获取权限。

Shell文件有个变态的地方,就是可从服务器那边接收数据并执行、返回结果,也就是说只要把shell文件上传到目标服务器,就能操控服务器了。

利用webShell可以在Web服务器上执行系统命令、窃取数据、植入病毒、勒索核心数据、SEO挂马等恶意操作,危害极大。

WebShell的特点

入侵者使用webShell的第一步通常是将其上传到可访问的服务器中,例如利用用户CMS系统的第三方插件中的漏洞上传一个简单的php webShell。

当然,webShell类型和作用也不完全相同
一些简单的webShell只起到连接外界的作用,允许入侵者插入更加精准的恶意脚本,执行他们所需要的指令;
另外一些则可能更加复杂,带有数据库或文件浏览器,让入侵者能够从数千英里之外的地方查看入侵系统的代码和数据。

无论何种设计,webShell都极其危险,是网络罪犯和高级持续威胁(APTs)的常用工具。

webShell常见的攻击特点主要有以下几点:

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

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

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

WebShell的分类

webShell根据脚本可以分为php脚本木马,asp脚本木马,jsp脚本木马,也有基于.NET的脚本木马。

根据时代和技术的变迁,也有用pythonlua编写的脚本木马,常用有如下几种:

  1. 大马

    • 体积大,功能全
    • 会调用系统关键函数
    • 以代码加密进行隐藏
    • 一般入侵者会设置密码进入
  2. 小马

    • 体积小,功能少
    • 一般只有一个上传功能,用于上传大马
  3. 一句话木马

    • 代码短 使用场景大,
    • 可单独生成文件,可插入文件
    • 安全性高,隐藏性强,可变形免杀
    • 框架不变,数据执行,数据传递

    对一句话木马的具体详细讲解可参考下面大佬的文章:
    WebShell①一句话木马
    那些强悍的PHP一句话后门
    写得很好,就不班门弄斧了嘻嘻

  4. 打包马

    • 主要用于打包网站源码
  5. 拖库马

    • 主要用于导出网站数据库
  6. 内存马(也叫不死马)

    • 无文件落地
    • 极难检测和发现
    • 难以清除