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()
函数来对当前迭代得到的 password
和 cypher_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