python脚本生成密码字典,暴力破解服务器root密码

版权声明:禁止转载至其它平台,转载至博客需带上此文链接。 https://blog.csdn.net/qq_41841569/article/details/85462882

大概在一年多前,我想做一个用于暴力破解md5加密的程序,原理是预先通过组合字符串,算出对应的md5加密,然后根据md5加密串来查询对应的字符串,这种方法从理论上是可行的,实际操作起来有一些困难。

python脚本生成密码字典,暴力破解服务器root密码

有的时候,一旦自己产生了一个想法,就自然有非常大的动力去努力实现这个想法。

我们算出字符串admin经过MD5加密过后得到的值:

python脚本生成密码字典,暴力破解服务器root密码

可以将原串和加密串以<K,V>对的格式保存,这样对于给定的加密串,可以很容易的查询到原串。

但是,过程这么容易的事情,为什么在网上找不到一个可以根据任意MD5加密串破解到原串的网站呢?

后来我知道了,使用字母、数字、特殊字符组合成字符串,随着字符串位数的增加,需要存储空间会呈现指数增长的规律,如果说使用94个字符生成1为到80位的字符串,把这写字符串保存下来所需要的硬盘空间是很大的,之前计算过,准备这些硬盘需要非常多的钱。

之所以没有这样的完全可以破解md5加密串的网站,最大的原因是:空间不够。

但是,根据一般的使用习惯,大家的密码长度一般不会太长,对于一些短密码的暴力破解,在自己的电脑上可以试一试。

今天准备了一个6位以内的密码字典。

用到的python脚本如下图:

python脚本生成密码字典,暴力破解服务器root密码

在python下给定字符自动组合字符串显得十分方便,之前用php写的时候,是用递归来实现的,代码要复杂一些。

将上面的脚本保存为gen.py,

在终端执行命令:

python脚本生成密码字典,暴力破解服务器root密码

程序开始生成字符串,并保存在文件中。

python脚本生成密码字典,暴力破解服务器root密码

脚本执行起来并不是很快,因为数量太多了,从上面的截图中可以看到,当前生成了少量的6位字符串,文件的体积已经到了1.77G,我终止了脚本,因为需要测试的密码已经在里面了,如果继续生成完整的所有6位字符串,我的电脑的硬盘是不够的。

到这里,密码字典文件就已经准备好了。

接下来,对目标服务器的root密码进行暴力破解。

目标服务器是linux的系统,开启了ssh服务,存在root账户,需要找到root账户的密码,并登录。

使用的工具是SPARTA,在上一篇四款用于信息收集的黑客工具文章中提到过,具有扫描端口和暴力破解的功能。

将本地电脑当作目标服务器,安装ssh服务,确保可以使用root进行远程登录。启动SPARTA,扫描端口,可以扫到22端口处于开启状态。

尝试第一次破解:不成功,因为密码文件行数太多

python脚本生成密码字典,暴力破解服务器root密码

[ERROR] Maximum number of passwords is 50000000, this file has 324567999 entries.

将密码文件修改一下,因为我的密码只有5位,那么为了达到测试效果,就只准备所有5位的密码。

python脚本生成密码字典,暴力破解服务器root密码

再次测试,成功基于密码字典的暴力破解root账户密码。

根据使用阿里云服务器的经历而言,阿里云的云盾是可以监测到暴力破解root密码攻击的,但是对于一些自己搭设的服务器,如果在安全防护这方面做的不到位,很有可能就会在暴力破解之下被攻破,进而有可能产生十分不好的影响。

猜你喜欢

转载自blog.csdn.net/qq_41841569/article/details/85462882