补充章节: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.php、xmlrpc.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. 日志是溯源的核心,实战中需确保服务器日志开启并定期备份。
相关推荐
IvorySQL6 小时前
PostgreSQL 日报|修复截断 zstd 备份检测(10 月 9 日)
数据库·postgresql
敬往事一杯酒哈7 小时前
海康 AGV 导航读码器学习
学习
刘胡子大叔7 小时前
SQL 脚本的导入顺序
数据库·sql
代码什么用7 小时前
Spring对IoC的实现
数据库·spring
qq_284274058 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
hz567899 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC9 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
程序员Sunday9 小时前
MySQL 为什么使用 B+ 树索引?把范围查询、回表和覆盖索引连起来
数据库·mysql
qq_284274059 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
半杯咖啡半行码10 小时前
Qt开发实战:数据库、MV 模式、QProcess与串口通信全攻略
数据库·qt