一、核心目标
- 打扫战场:清除攻击痕迹(避免被 "防守方" 发现),恢复靶机环境(方便后续重复练习);
- 溯源模拟:站在 "防守方" 视角,还原攻击过程(理解漏洞利用路径,提升防御思维)。
二、打扫战场(攻击方视角:清除痕迹)
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)攻击路径还原(防守方分析)
- 攻击发起者 :IP 为
127.0.0.1(本地攻击,实战中为远程 IP); - 攻击工具 :请求特征符合 WPScan(高频访问
wp-login.php、xmlrpc.php,POST 请求密集); - 攻击行为 :
- 先访问
wp-login.php获取登录页面; - 多次 POST 请求尝试密码(401 状态码为失败,200 为成功);
- 访问
xmlrpc.php尝试备用攻击入口;
- 先访问
- 攻击结果 :成功破解
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和主题
四、"打扫战场 + 溯源" 核心知识点(必背)
- 攻击方清理重点 :
- 本地:清除 WPScan 缓存、命令行历史;
- 目标:删除服务器访问日志、WP 登录记录,重置密码。
- 防守方溯源关键证据 :
- Apache/Nginx 日志(记录所有 HTTP 请求,含攻击工具特征、IP、请求路径);
- MySQL 日志(记录数据库操作、用户登录);
- WP 用户元数据(
wp_usermeta表)。
- 闭环逻辑:攻击→插旗(确认破解成功)→打扫战场(清除痕迹)→溯源(还原攻击)→防御(加固漏洞),这是渗透测试的完整流程,缺一不可。
五、实战注意事项
- 真实渗透测试中,必须获得授权后才能进行攻击和溯源,禁止未授权操作;
- 测试环境中可反复练习 "攻击→清理→溯源",提升攻防思维;
- 日志是溯源的核心,实战中需确保服务器日志开启并定期备份。