什么是 Web Shell?
Web shell 是一种恶意程序,用于在网络攻击期间远程访问 Web 服务器。它是一个类似于 shell 的接口,黑客使用它来访问通过某些预定义的网络钓鱼方法被黑客入侵的应用程序。 web shell 本身并不能攻击整个调查,因此它总是在后期利用阶段与其他一些技术结合使用。
它可以用任何服务器端编程语言(如PHP等)编写。如今,Web shell 的使用越来越多,因为它们难以追踪并且可以用于很多目的。
在职的
为了访问远程服务器,攻击者找到了 web shell 交付的位置。攻击者在系统中寻找可以充当主机站点的漏洞,并在该位置提供 Web Shell。
成功交付 Web shell 后,它可用于发出 shell 命令以执行所需任务。攻击者可能能够上传、删除、下载和执行文件。
Web shell 常用于:
- 使用水坑方法用恶意软件感染网站用户,这是一种计算机攻击策略,攻击者猜测或观察组织经常访问的网站并感染其中一个或多个。
- 通过不当修改文件损害品牌形象。
- 分布式拒绝服务 (DDoS) 攻击。
- 在无法通过 Internet 访问的网络内传输命令。
- 充当指挥和控制基地,用于攻击其他外部网络。
Web Shell 的类型
1. 绑定外壳:绑定外壳是安装在目标设备上的一种外壳。它绑定到主机上的某个端口并侦听与设备的传入连接。然后,黑客可以远程访问这个 web shell 并使用它在目标主机上执行脚本。
2. 反向壳:反向壳也称为“连接回壳”。黑客需要寻找远程命令执行漏洞并利用它来传递 Web shell。与绑定 shell 不同,目标主机连接回黑客的设备,并在该设备上侦听传入连接。
3、双反壳:双反壳是反壳的一种特殊情况。目标主机连接回已经在监听传入连接的黑客设备。但是,在这种情况下,有两个不同的端口连接回黑客的设备。输入和输出流量被分成两个不同的通道。
黑客如何使用 Web Shell?
为了使用 web shell,攻击者首先在系统中找出一个可以传递 web shell 的漏洞点。它们通常是通过利用服务器或服务器配置的漏洞来安装的。这可能包括:
- 应用程序、文件系统和服务中的漏洞。
- 远程文件包含 (RFI) 和本地文件包含 (LFI) 中的漏洞。
- 远程代码执行。
- 公开的管理界面。
成功安装 Web Shell 后,攻击者可以使用它在目标主机上远程运行脚本,从而可以访问存储在组织服务器中的敏感信息。
检测
以下表示系统中可能存在 Web shell -
- 非常高的服务器使用率(因为黑客通常会上传和下载非常大量的数据)
- 文件上的错误时间戳。
- 服务器上存在外来文件。
- 具有可疑名称的文件。
- 服务器端日志中存在未知连接。
预防和缓解
为避免安装 web shell,可以采取以下预防措施:
- 及时修补Web服务器和插件漏洞:想法是通过尽快修补来修复系统的漏洞。这将减少黑客可利用的攻击面。
- 减少插件的使用:这将减少系统的漏洞。减少插件的数量将减少服务器上存在的潜在攻击面的数量。
- 文件完整性监控:这会持续监控存储在服务器端的文件并删除无法识别的文件。由于 web shell 需要驻留在 web 服务器的代码目录中,因此,删除文件将使其无用。
- 恶意软件扫描/端点保护软件:使用恶意软件检测软件扫描存储的服务器端文件,以发现存储的恶意软件。但是,这种方法不是很可靠,因为 web shell 脚本看起来像真正的脚本。
- 从源头重新发布应用程序:在没有开发人员帮助的情况下,无法在服务器端彻底检查应用程序的代码库。因此,为了检测代码库中的意外文件,请在将它们完全从开发环境中擦除后重新发布它们。
- 网络分段防止横向移动:通过隔离网段,避免黑客横向遍历访问整个网络。
- 服务器配置审查和加固:通过运行完整的服务器配置检查来识别和纠正应用服务器和操作系统中的漏洞。
- 缓解远程文件包含 (RFI) 和本地文件包含 (LFI) 漏洞:在发送之前验证用户输入数据以缓解远程文件包含 (RFI) 和本地文件包含 (LFI) 漏洞。
- 部署防火墙:使用专门设计的防火墙,如 Web 应用程序防火墙 (WAF),用于防止系统中的 Web Shell 注入。