linux shadow文件爆破脚本编写

1.首先需要在kali内下载安装vscode

使用官方的APT存储库在Kali Linux上安装Visual Studio Code。在添加存储库之前,请更新系统并安装以下软件包。

sudo apt update
sudo apt install curl gpg software-properties-common apt-transport-https 

 将Microsoft GPG密钥导入Kali Linux。

curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

将VS Code APT存储库添加到Kali Linux。

echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" | sudo tee /etc/apt/sources.list.d/vscode.list

在Kali Linux上安装Visual Studio Code。

sudo apt update
sudo apt install code

2.安装好后下载chinese模块和python模块

查看shadow文件 这里选取kali的,将其复制下来

 打开vscode,以下是整段代码,会对其每句做出解释

import crypt
shadow_text="kali:$y$j9T$dl4ti9p1KPx6HrZ59TPMJ/$drMOLlRW8BZmsDQ0riDlPnUDsfyIvRL4qfgODnuZVz4:19500:0:99999:7:::"
cypher_text = shadow_text.split(':')[1]
cypher_salt = cypher_text[0:cypher_text.rfind('$')]

print(f"shadow_text:{shadow_text}")
print(f"cypher_text:{shadow_text}")
print(f"cypher_salt:{cypher_salt}")



password_pass="/home/kali/password.txt"

with open(file= password_pass,mode="r") as f:
    for password in f:
        print(password)

        if crypt.crypt(password,cypher_salt)==cypher_text:
            print("password")
            break

首先调用crypt模块,crypt模块在Python中,crypt 模块是一个用于密码加密和验证的模块。它提供了一些函数和常量,可以用于处理密码相关的操作。

import crypt

然后将自己刚刚复制的密码赋值给shadow_text这个变量

shadow_text="kali:$y$j9T$dl4ti9p1KPx6HrZ59TPMJ/$drMOLlRW8BZmsDQ0riDlPnUDsfyIvRL4qfgODnuZVz4

将这段密码用split函数以:做分割取出下标为1的部分,也就是密码的哈希值

cypher_text = shadow_text.split(':')[1]

 接下来必须要获取到密码的盐值,

截取 cypher_text 字符串中从开头到最后一个 $ 符号之前的部分,这正好是盐值部分。

这样做的目的是将盐值与明文密码进行组合,并使用相同的加密算法对其进行哈希运算,以便于验证密码是否匹配。

cypher_salt = cypher_text[0:cypher_text.rfind('$')]

找一个密码字典,因为是做实验,所以我把kali写进了密码字典,把这个文件的绝对路径赋值给了变量

password_pass="/home/kali/password.txt"

 接下来使用with open这行代码打开了名为 password_pass 的文件,并将其赋值给变量 f。使用 mode="r" 参数表示以只读模式打开文件。

这个循环遍历文件中的每一行,将每一行的内容赋值给变量 password,然后打印出来。这里假设密码文件的每一行都是一个密码。

在这个条件判断语句中,使用 crypt.crypt() 函数来对当前迭代得到的 passwordcypher_salt 进行加密运算。然后将加密结果与变量 cypher_text 进行比较,看是否匹配。如果匹配,则打印 "password" 并跳出循环。

整体来说,这段代码的目的是读取密码文件中的每个密码,并与预先给定的哈希值进行比较,以验证密码的正确性。如果找到匹配的密码,则输出 "password" 并结束循环。注意,这段代码仅仅提供了一个验证密码的框架,具体的密码哈希算法和实际的密码文件需要根据实际情况进行设置和处理。

with open(file= password_pass,mode="r") as f:
    for password in f:
        print(password)

        if crypt.crypt(password,cypher_salt)==cypher_text:
            print("password")
            break

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值