补充章节:WPScan 实战后的 “打扫战场 + 溯源” 流程

一、核心目标

  1. 打扫战场:清除攻击痕迹(避免被 "防守方" 发现),恢复靶机环境(方便后续重复练习);
  2. 溯源模拟:站在 "防守方" 视角,还原攻击过程(理解漏洞利用路径,提升防御思维)。

二、打扫战场(攻击方视角:清除痕迹)

1. 清除 WPScan 扫描日志(本地 Kali 端)

WPScan 默认不会在目标服务器留下日志,但会在本地生成缓存,需清理:

bash

运行

复制代码
# 清除WPScan本地缓存(避免残留扫描记录)
rm -rf ~/.wpscan/cache/*
# 清除命令行历史(防止别人看到你的扫描命令)
history -c && rm -rf /root/.zsh_history && exec zsh

2. 清理目标服务器痕迹(WordPress 靶机端)

(1)删除爆破留下的登录日志

WP 默认记录登录尝试,需删除失败 / 成功的登录记录:

bash

运行

复制代码
# 1. 进入MySQL,删除WP登录日志表(wp_comments表不存储登录记录,核心日志在wp_usermeta和服务器日志)
mysql -u root -e "USE wpdb; DELETE FROM wp_usermeta WHERE meta_key LIKE '%login%';"

# 2. 删除Apache服务器访问日志(关键!记录了WPScan的所有请求)
rm -rf /var/log/apache2/access.log /var/log/apache2/error.log
# 重启Apache生成新日志(伪装无异常)
systemctl restart apache2

# 3. 删除PHP内置服务器日志(若启动过php -S)
pkill -f "php -S 127.0.0.1:8080"  # 停止PHP服务
rm -rf /tmp/php*.log  # 删除临时日志文件
(2)恢复靶机环境(方便下次练习)

bash

运行

复制代码
# 1. 重置WP管理员密码(避免残留已知密码)
mysql -u root -e "USE wpdb; UPDATE wp_users SET user_pass = MD5('random123!') WHERE user_login = 'wpuser';"

# 2. 清理WPScan枚举留下的临时文件
rm -rf /var/www/html/wordpress/wp-content/backup-db/*  # 删除备份目录残留
rm -rf /tmp/my-pass.txt  # 删除自定义小字典

# 3. 重启所有服务,确保环境干净
systemctl restart apache2 mysql
cd /var/www/html/wordpress && php -S 127.0.0.1:8080 &
(3)验证清理结果

bash

运行

复制代码
# 1. 检查Apache日志是否为空
cat /var/log/apache2/access.log  # 应显示新日志(无WPScan请求)

# 2. 尝试用旧密码登录WP后台(应失败)
# 访问 http://127.0.0.1:8080/wp-admin,用wpuser/123456登录,提示"密码错误"即成功

三、溯源模拟(防守方视角:还原攻击过程)

溯源的核心是 "从服务器日志、数据库记录中找到攻击痕迹,还原攻击路径",下面模拟真实溯源流程:

1. 溯源准备(假设你是防守方,发现服务器异常)

bash

运行

复制代码
# 1. 查看Apache访问日志(关键溯源证据)
cat /var/log/apache2/access.log | grep -E "wpscan|wp-login|xmlrpc"  # 过滤WP相关请求

# 2. 查看MySQL用户登录记录(若有远程登录)
mysql -u root -e "SELECT user, host, login_time FROM mysql.user_login_history;"  # 需提前开启登录审计(Kali默认未开启,实战中需配置)

# 3. 查看WP用户操作记录
mysql -u root -e "USE wpdb; SELECT * FROM wp_usermeta WHERE meta_key LIKE '%action%';"

2. 关键溯源证据与攻击还原

(1)从 Apache 日志中提取攻击痕迹(示例日志)

plaintext

复制代码
127.0.0.1 - - [14/Jan/2026:20:36:42 +0800] "GET /wp-login.php HTTP/1.1" 200 5000
127.0.0.1 - - [14/Jan/2026:20:36:43 +0800] "POST /wp-login.php HTTP/1.1" 401 1200  # 密码错误(401)
127.0.0.1 - - [14/Jan/2026:20:36:45 +0800] "POST /wp-login.php HTTP/1.1" 200 3000  # 密码正确(200)
127.0.0.1 - - [14/Jan/2026:20:36:50 +0800] "GET /xmlrpc.php HTTP/1.1" 200 1500
(2)攻击路径还原(防守方分析)
  1. 攻击发起者 :IP 为127.0.0.1(本地攻击,实战中为远程 IP);
  2. 攻击工具 :请求特征符合 WPScan(高频访问wp-login.phpxmlrpc.php,POST 请求密集);
  3. 攻击行为
    • 先访问wp-login.php获取登录页面;
    • 多次 POST 请求尝试密码(401 状态码为失败,200 为成功);
    • 访问xmlrpc.php尝试备用攻击入口;
  4. 攻击结果 :成功破解wpuser账号密码,登录 WP 后台。

3. 溯源后的防御措施(闭环关键)

作为防守方,溯源后需针对性加固,形成 "攻击→溯源→防御" 的完整闭环:

bash

运行

复制代码
# 1. 禁用XML-RPC(关闭备用攻击入口)
echo "add_filter('xmlrpc_enabled', '__return_false');" >> /var/www/html/wordpress/wp-content/themes/twentytwentytwo/functions.php

# 2. 限制WP登录尝试次数(防止暴力破解)
# 安装登录限制插件(实战中操作,测试环境可手动修改配置)
wget https://downloads.wordpress.org/plugin/login-lockdown.2.18.zip -O /tmp/login-lockdown.zip
unzip /tmp/login-lockdown.zip -d /var/www/html/wordpress/wp-content/plugins/
# 启用插件(需登录WP后台操作:插件→已安装插件→启用"Login Lockdown")

# 3. 更改WP管理员账号和密码(避免被再次破解)
mysql -u root -e "USE wpdb; UPDATE wp_users SET user_login = 'admin_secure', user_pass = MD5('StrongPass@2026') WHERE user_login = 'wpuser';"

# 4. 升级WP版本和主题(修复已知漏洞)
# 登录WP后台→仪表盘→更新→更新WordPress和主题

四、"打扫战场 + 溯源" 核心知识点(必背)

  1. 攻击方清理重点
    • 本地:清除 WPScan 缓存、命令行历史;
    • 目标:删除服务器访问日志、WP 登录记录,重置密码。
  2. 防守方溯源关键证据
    • Apache/Nginx 日志(记录所有 HTTP 请求,含攻击工具特征、IP、请求路径);
    • MySQL 日志(记录数据库操作、用户登录);
    • WP 用户元数据(wp_usermeta表)。
  3. 闭环逻辑:攻击→插旗(确认破解成功)→打扫战场(清除痕迹)→溯源(还原攻击)→防御(加固漏洞),这是渗透测试的完整流程,缺一不可。

五、实战注意事项

  1. 真实渗透测试中,必须获得授权后才能进行攻击和溯源,禁止未授权操作;
  2. 测试环境中可反复练习 "攻击→清理→溯源",提升攻防思维;
  3. 日志是溯源的核心,实战中需确保服务器日志开启并定期备份。
相关推荐
地球资源数据云2 小时前
1960年-2024年中国农村居民消费价格指数数据集
大数据·数据库·人工智能·算法·数据集
程序媛Dev3 小时前
用这个开源AI,实现了与数据库的“自然语言对话”
数据库·人工智能
v***59834 小时前
redis 使用
数据库·redis·缓存
MarkHD7 小时前
智能体在车联网中的应用:第51天 模仿学习与离线强化学习:破解数据效率与安全困局的双刃剑
学习·安全
tokepson9 小时前
Mysql下载部署方法备份(Windows/Linux)
linux·服务器·windows·mysql
Drawing stars10 小时前
JAVA后端 前端 大模型应用 学习路线
java·前端·学习
崇山峻岭之间10 小时前
Matlab学习记录33
开发语言·学习·matlab
nbsaas-boot10 小时前
SQL Server 存储过程开发规范(公司内部模板)
java·服务器·数据库
zgl_2005377910 小时前
ZGLanguage 解析SQL数据血缘 之 Python + Echarts 显示SQL结构图
大数据·数据库·数据仓库·hadoop·sql·代码规范·源代码管理