在之前,我碰到了一些加密的脚本。于是我通过Core Dump的方法对其进行了代码解密。而最近我在分析代码的时候,发现了另外一种shell脚本。这种脚本的特点就是将代码打乱,使得代码难以分析。于是我利用了调试Shell脚本的命令 bash -x test.sh ,通过调试的方法,将Shell脚本进行反混淆。在这里我将思路分享给大家
准备材料
- 被混淆的shell脚本
部署步骤
- 分析将反混淆的脚本,可以看到,第一和第二行是利用了无规律的变量名,将脚本内容分开存放于其中,第三行是利用了
eval方法,调用其变量的值
- 运行Shell脚本的调试命令,将脚本的内容显示出来
shell
1 |
bash -x test.sh |
- 可以看到,代码的真面貌就完全显示出来了
反混淆 Shell 脚本时的安全原则
分析混淆 Shell 脚本时,不要直接在生产服务器执行。应先在隔离环境中查看下载地址、解码逻辑、变量替换、远程命令和持久化行为,避免脚本在分析过程中执行危险操作。
- 先用文本方式查看,不要直接 `bash script.sh`。
- 把 base64、eval、curl、wget、chmod、crontab 等关键点单独拆开分析。
- 网络请求应在沙箱或断网环境里验证。
- 遇到删除、挖矿、后门或改 SSH 配置的逻辑要立即停止。
- 分析结果应记录原始样本和解码后的命令链。

