一尘不染

解密混淆的Perl脚本

linux

服务器上出现了一些垃圾邮件问题,在找出并删除了一些Perl和PHP脚本后,我决定检查它们的实际作用,尽管我是高级PHP程序员,但对Perl经验很少,有人可以给我一个建议吗?在这里手写脚本:

http://pastebin.com/MKiN8ifp

(这是一长行代码,脚本称为list.pl)


脚本的开始是:

$??s:;s:s;;$?::s;(.*); ]="&\%[=.*.,-))'-,-#-*.).<.'.+-<-~-#,~-.-,.+,~-{-,.<'`.{'`'<-<--):)++,+#,-.{).+,,~+{+,,<)..})<.{.)-,.+.,.)-#):)++,+#,-.{).+,,~+{+,,<)..})<*{.}'`'<-<--):)++,+#,-.{).+:,+,+,',~+*+~+~+{+<+,)..})<'`'<.{'`'<'<-}.<)'+'.:*}.*.'-|-<.+):)~*{)~)|)++,+#,-.{).+:,+,+,',~+*+~+~+{+<+,)..})

它以很少的非标点字符继续,直到最后:

0-9\;\\_rs}&a-h;;s;(.*);$_;see;

阅读 894

收藏
2020-06-07

共1个答案

一尘不染

更换s;(.*);$_;see;print得到这个s;(.*);$_;see;再次用print有效负载的前半部分替换以获取this,这是解密代码。有效负载的后半部分是要解密的代码,但是我无法再对其作进一步介绍了,因为如您所见,解密代码正在寻找envvar或cookie中的密钥(因此只有脚本的创建者可以控制它或解码它,大概),而我没有那个钥匙。实际上,这是合理地巧妙完成的。

2020-06-07