,,想想好久没更新博客了,今天在群里看到讨论关于shell脚本加密的事情。
,,想想也是,我们在写脚本有时候会配置相关账号和密码的事情,这样只要能权限都能看到该信息,非常的不安全,有没有在正常运行的情况下对文件进行加密。大致有以下两个特点:
- <李>
加密文件,防止别人看到我写的具体内容。
李> <李>可以对隐藏敏感性知识点,比如脚本涉及到用户和密码,如mysql
我特意搜了一下,有两种方法,涨知识了,所以验证了一下,过程如下:
李>
第一种方法(gzexe):基于ubuntu14.04
,,这种加密方式不是非常保险的方法,但是能够满足一般的加密用途。它是使用系统自带的gzexe程序,它不但加密,同时压缩文件。
使用方法:gzexe文件。sh它会把原来没有加密的文件备份为xx。sh ~,同时xx。sh即被变成加密文件
root@leco: ~/测试#,ls test.sh root@leco: ~/测试#,cat test.sh # !/bin/bash echo “日期” root@loocha50: ~/测试#,sh test.sh Mon Jul 17, 15:08:01 HKT 2017 root@loocha50: ~/测试#,gzexe , test.sh test.sh: 25.0% root@loocha50: ~/测试#,ls test.sh test.sh ~ root@loocha50: ~/测试#,sh test.sh Mon Jul 17, 15:08:14 HKT 2017 root@loocha50: ~/测试#,sh test.sh ~ Mon Jul 17, 15:08:18 HKT 2017 root@loocha50: ~/测试#,cat test.sh ~ # !/bin/bash echo “日期” root@loocha50: ~/测试#,cat test.sh # !/bin/bash 跳过=44 选项卡=" 问=' ” IFS=",选项卡问美元" umask=' umask ' umask 77 gztmpdir=trap “res=$ ? test 才能;-n “gztmpdir美元”,,,,rm -fr “gztmpdir美元” (exit res美元)才能;exit $ res ',0,1,2,3,5,10,13号,15 ,if type  mktemp 的在/dev/null 2祝辞,1;然后 gztmpdir才能=' mktemp dt的 其他的 gztmpdir才能=/tmp/gztmp $ $; mkdir gztmpdir美元 fi | |, {, (exit 127); exit 127;,} gztmp=$ gztmpdir/$ 0 case $ 0, - *,|,*/*’ ”),mkdir -p “gztmp美元”,,,,rm -r “gztmp美元”;; */*),gztmp=$ gztmpdir/basename “0”的;; esac | |, {, (exit 127); exit 127;,} case ,“echo X  |, tail -n + 1, 2在/dev/null”, X), tail_n=n;; *),tail_n=;; esac if tail  tail_n 美元;+ skip 美元;& lt;“0”, |, gzip -cd 祝辞,“gztmp美元”;然后 umask 才能;umask美元 chmod 700年,才能“gztmp美元” (才能sleep 5, rm -fr “gztmpdir美元”),2在/dev/null 及 “gztmp美元”,才能$ {1 +“$ @”};,res=$ ? 其他的 echo 才能祝辞,2,“Cannot decompress $ 0” (exit 127);才能res=127 fi;, exit $ res
此时我们可以看出测试。上海文件已经被加密了,但是不影响运行。此时你删除测试。sh ~文件,别人就彻底看不到了(自己也看不到,请酌情删除)。
root@leco: ~/测试#,ls test.sh test.sh ~ root@leco: ~/测试#,rm test.sh ~ root@leco: ~/测试#,ls test.sh root@leco: ~/测试#,sh test.sh Mon Jul 17, 15:10:36 HKT 2017年
建议使用,一方面系统自带命令,达到目的即可,没人闲的破解你的脚本,就算要破解,先进入你系统再说。
我基于centos6.8 (ubuntu14.04有问题,没具体排查)
方法2:人体自燃现象自燃
常用参数
- e date ,,
,有效期以dd/mm/yyyy格式(没有)(指定过期日期)
- m消息,消息display upon expiration [" Please 请联系您的供应商”)(指定过期提示的信息)
,
- f script_name
,编译脚本的文件名(指定要编译的壳的路径及文件名)
,
-r ,放松安全又是;
,,Make a redistributable binary executes > [root@leco ~] #, wget http://www.datsi.fi.upm.es/frosal/资源/shc-3.8.6.tgz吗
——2017 - 07 - 17,15:23:39——,http://www.datsi.fi.upm.es/~ frosal//shc-3.8.6.tgz来源
Resolving www.datsi.fi.upm.es…138.100.9.22
Connecting 用www.datsi.fi.upm.es | 138.100.9.22 |: 80……,连接。
HTTP request 发送,awaiting 反应…,200,好吧
长度:35071,(34 k),[应用程序/x-gzip]
Saving :“shc-3.8.6.tgz”
100%(=============================================================================================================================祝辞],35071,,,,,,21.9 k/s ,, 1.6 s 拷贝,,,
2017 - 07 - 17,15:23:46 (21.9, KB/s),安康;“shc-3.8.6.tgz”, saved [35071/35071]
(root@leco ~) #, tar xf shc-3.8.6.tgz
[root@leco ~) #, mkdir -p /usr/地方/人/男士一