最新消息:

关于网上一个加密的shell脚本的解密过程

Linux运维 大步 26330浏览 0评论

最近网友安装pptp vpn,到网上找了个脚本,我下下来Sublime Text3用看了下,代码第44行是乱码,因为代码后面被加密了,不过看加密的方式,使用gzexe加密的,其实就是被gzexe压缩了而已,网上看了下,用于加密的shell代码,很长,打算过段时间再写代码分析,这次就直接采用爆破的方式来直接得到解密后的shell脚本代码。

 

有兴趣的可以看下:这个用来加密其他脚本的shell脚本:

 

如果想安装pptp vpn 可以参考我写的《centos6.4安装搭建pptp vpn服务(附pptp vpn 一键安装包)|大步's blog

 

被加密的hot-pptp-vpn-v1.0.6.sh脚本下载地址:  地址一           地址二

开始,我google了下,用网上到处贴的gzexe解压缩命令来还原这个加密的shell脚本

#gzexe -d  m hot-pptp-vpn-v1.0.6.sh     #http://www.dabu.info/?p=4403

,但是无效,估计是压缩和改名的顺序不同了,我也懒得去看使用的加密代码了,直接走捷径。所以,这算不得真正的解密,因为没把算法给弄出来,不过不难。

思路:因为是通过压缩改名的方式加密shell脚本,所以,必定有个解压的过程,以此得到可执行的shell脚本。但是为什么我们看不到被解密还原的shell脚本呢?那是因为作者在解压执行后,删除了被还原的shell脚本,所以我们找不到。只要我们在删除命令之前,插入一条cat命令,将临时还原的shell脚本导入到a.txt里就可以了。

具体方法如下:#http://www.dabu.info/?p=4403
首先大概了解这个加密脚本的执行过程,因为即使加密了,他其实还是shell脚本,可以加上-x参数,来看加密脚本的执行过程。
我这里被加密的脚本名为:hot-pptp-vpn-v1.0.6.sh  是一个pptp vpn 一键安装脚本,不得不说这脚本的作者,真tm的小气,居然这玩意也加密,而且又用这样简单的方式,还不如不加密,省了麻烦。

#sh -x hot-pptp-vpn-v1.0.6.sh   #-x参数是让shell一步一步显示执行过程

运行显示结果如下:

+ skip=44
+ tab='    '
+ nl='
'
+ IFS='
'
++ umask
+ umask=0022
+ umask 77
+ gztmpdir=
+ trap 'res=$?
test -n "$gztmpdir" && rm -fr "$gztmpdir"
(exit $res); exit $res
' 0 1 2 3 5 10 13 15
+ type mktemp
++ mktemp -dt
+ gztmpdir=/tmp/tmp.VGXMV11806
+ gztmp=/tmp/tmp.VGXMV11806/hot-pptp-vpn-v1.0.6.sh
+ case $0 in
+ case `echo X | tail -n +1 2>/dev/null` in
++ echo X
++ tail -n +1
+ tail_n=-n
+ tail -n +44
+ gzip -cd
+ umask 0022
+ chmod 700 /tmp/tmp.VGXMV11806/hot-pptp-vpn-v1.0.6.sh
+ /tmp/tmp.VGXMV11806/hot-pptp-vpn-v1.0.6.sh
=========================================================================
* Hot CentOs install pptp vpn v1.0.6 Installer.Organized by blog.7QY.Com *
=========================================================================
*                                                                       *
*   This machine system: CentOS release 5.10 (Final)                     *
*                                                                       *
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
*                                                                       *
*   Tips: Select < 1 > to CentOs 5.x install pptp VPN                   *
*   Tips: Select < 2 > to CentOs 6.x install pptp VPN                   *
*                                                                       *
=========================================================================

Please input ( 1 or 2 ) to CentOs install pptp vpn
>> Or press Ctrl+C to cancel the installation (Ctrl+C?€?哄.瑁..?.
Select: (1) CentOs 5.x install pptp vpn |  (2) CentOs 6.x install pptp vpn
( 1/2):

直接看到:

+ chmod 700 /tmp/tmp.VGXMV11806/hot-pptp-vpn-v1.0.6.sh
+ /tmp/tmp.VGXMV11806/hot-pptp-vpn-v1.0.6.sh

会将临时解密的shell脚本放到/tmp/tmp.VGXMV11806/目录下,

而找到加密的shell脚本中,修改脚本执行权限的命令想对应的地方:

  umask $umask
chmod 700 "$gztmp"             #这行修改临时解密shell脚本为700权限,"$gztmp"就是临时解密的shell脚本
(sleep 5; rm -fr "$gztmpdir") 2>/dev/null &      #这样就会把执行完后的临时解密shell脚本所在目录删除,"$gztmpdir"就是临时目录
"$gztmp" ${1+"$@"}; res=$?

所以,我们将这其中的:

chmod 700 "$gztmp"

改成:

  cat  "$gztmp"  >a.txt

然后再次执行:

#sh hot-pptp-vpn-v1.0.6.sh

就可以在这个当前脚本所在目录看到一个a.txt的文件,就是被解密的shell脚本了。

####################over!!!!###########################################
很简单吧,确实如此。爆破确实容易,但是乐趣也少了很多,过段时间再把这个用于加密的shell脚本代码分析然后贴出来,最近什么都不想做,懒得没话说。

如果有人想完全的通过解压缩来获得原文件,那么我这说下大概的思路:
源代码有个skip变量,等于44。而用vi查看源代码,从第44行开始就是乱码了,说明要从第44行开始导入到另外一个文件中,来解压缩还原。
其中还有tail命令,所以,只要用-x参数稍微分析下,就可以得到完整的还原过程了。

 

##########################3

对了,忘了贴出解密后的shell脚本了,这个脚本的相关的软件下载地址失效了,不过只要稍微改下就可以用了

如下:

 

 

 

 

转载请注明:大步's Blog » 关于网上一个加密的shell脚本的解密过程

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (9)

  1. 嗨,博主~最近在安装新的脚本,发现这个脚本也是有加密的,不过好像更强了些,能否看下?http://file.kfj.cc/openvpn
    小桑子、1年前 (2016-05-19)Reply
    • 放弃吧,有这时间,手动装早装好了
      大步1年前 (2016-05-30)Reply
  2. : Permission denied
    梦游12个月前 (05-31)Reply
  3. 你好
    修改后执行显示 1.sh: line 39: /tmp/tmp.Icn3S2WzXm/1.sh: Permission denied
    cc12个月前 (06-02)Reply
    • 提示说没权限,具体怎么样我就不清楚了
      大步12个月前 (06-04)Reply
  4. 博主,为什么为得到的a.txt是ELF的乱码文件呢,谢谢!
    qly12个月前 (06-11)Reply
  5. http://sbwml.cn/vpn7
    这种怎么解密
    Anonymous11个月前 (06-15)Reply
  6. 非常感谢
    Linv29个月前 (09-01)Reply
  7. 修改直接报错了 直接运行不起来sh文件
    小马9个月前 (09-02)Reply
SiteMap