Shell脚本自动化

分享一个使用穷举法免字典破解十位以内纯数字RAR加密压缩包的shell/bash脚本

Shell Script与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。

所以在Linux中编写shell/bash脚本使用穷举法破解10位以内纯数字密码的RAR加密压缩包成为可能。虽然破解速度一般,单线程破解,但shell/bash脚本中实用的思路可以值得借鉴参考。

xLinux-Windows_00.png插图

使用的时候只需要输入加密rar包的绝对地址即可开始破解,测试中4位数纯数字密码破解只需几分钟(实测:华为云服务器1核1G 8分解完,更快的cpu时间更短),破解成功后会自动解压文件到/root/rarfile/目录,同时也会提示已解密的密码。如果几分钟内没被破解可以加入后台中运行,如nohup ./脚本名 &,这样即使关闭终端脚本依旧后台运行。

shell/bash穷举破解脚本代码实例如下:

#!/bin/bash
#Auto RAR Cracker -- AndyX.Net

echo -e "3[41m####自动破解十位以内纯数字rar加密压缩包的shell脚本[穷举法]####3[0m"
if test -e '/usr/local/bin/rar'
then
  sleep 1s
  echo -e "3[32m解压工具已准备就绪!3[0m"
else
  echo -e "检测到你系统未安装rar解包工具,即将为你安装rar解压工具..."
  #预准备编译环境
  sudo yum -y install gcc make; sudo apt -y install gcc make
  #下载RAR FOR LINUX源码包
  wget -c https://www.rarlab.com/rar/rarlinux-x64-5.8.b2.tar.gz
  tar -xzvf rarlinux-x64-5.8.b2.tar.gz
  cd rar*
  make && make install
  cd ..
  echo ..
  rm -rf rar*
  if test -e '/usr/local/bin/rar'
  then
    echo "rar工具安装成功!"
  else
    echo "rar工具安装失败,请手工检查编译环境以及源码包地址"
    exit
  fi
  sleep 1s
fi
sleep 1s
echo -e "开始破解:"
echo -e "提示:破解成功后文件会自动保存到/root/rarfile/目录中\n"
if( ! test -d '/root/rarfile' )
then
mkdir -p /root/rarfile/
fi
 
echo -n "请输入你的压缩包文件的绝对路径和文件名:"
read filename
 
if ( ! test -f $filename );then
  echo "文件路径错误,文件没找到,脚本退出"
  exit
fi
 
for((i=1;i《=9999999999;i++))
do
  echo -e "${i}\n" | unrar e $filename /root/rarfile/
  if [ $(ls /root/rarfile/|wc -w) -gt 0 ];then
    echo 'success! 破解成功!'
    echo "破解密码为:${i}"
    exit
  else
    echo "正在尝试密码:${i}"
  fi
done

注:RAR源码包更新地址请参见官网:https://www.rarlab.com/download.htm