赞
踩
前言(每日一遍):
“初闻不明劝离意,回头已是提桶人”
(本贴为自学记录贴)
在开始前我们需要明确以下几个概念
unix风格的哈希格式为$format$rounds$salt$hash
Linux,密码哈希存储在 /etc/shadow.此文件通常只能由root读取。它们过去存储在 /etc/passwd中,每个人都可以读取。
windows哈希密码使用的是NTLM,这是md4的一种变体,在Windows中,哈希密码存储在SAM中,而且那里的哈希又被分为NT哈希和LM哈希
下面是一些unix系统常见的哈希先序码
先序 | 算法 |
$1$ | md5crypt |
$2$, $2a$, $2b$, $2x$, $2y$ | Bcrypt |
$6$ | sha512crypt |
更多的哈希格式可以看这里【指路】,在线识别哈希在这里【指路】,通过hash-identify识别可以通过这里下载【指路】,可以通过:
wget https://gitlab.com/kalilinux/packages/hash-identifier/-/raw/kali/master/hash-id.py
下载后,运行py程序执行识别哈希格式
识别哈希后若想通过本地解码,可以下载John The Ripper解码基本哈希,执行命令如下
john --format=[format] --wordlist=[path to wordlist] [path to file]
此外,john还可以解密linux系统中/etc/shadow的哈希加密,为了破解shadow文件必须要有/etc/passwd文件,结合这两个文件可以使用如下命令
- unshadow [path to passwd] [path to shadow]
- 案例:unshadow local_passwd local_shadow > unshadowed.txt #输出为unshadowed.txt文件
然后再执行john程序对unshadowed.txt解密,命令如下
john --wordlist=/usr/share/wordlists/rockyou.txt --format=sha512crypt unshadowed.txt
此外,john工具还可以破解zip文件,具体命令如下
- zip2john [options] [zip file] > [output file]
- # example:zip2john zipfile.zip > zip_hash.txt
在得到zip_hash后可以通过如下命令破解
john --wordlist=/usr/share/wordlists/rockyou.txt zip_hash.txt
同时john还能破解rar文件,命令和上面zip破解的相似,不过改为rar2john [rar file] > [output file]
john在ctf比赛中还有个常用方法,破解私钥的密码,虽然可以通过私钥无密码登录服务器,但是在ctf比赛中仍存在创建私钥时对私钥进行加密认证的行为,这时在使用私钥时需要密码才能登录服务器(可看文章开头精选贴),因此需要使用john解密私钥的认证密码。同样的,需要使用john其中的一个内置命令:ssh2john,具体命令如下
- ssh2john [id_rsa private key file] > [output file]
- #example:ssh2john id_rsa > id_rsa_hash.txt
得到输出文件后可以通过以下命令破解
john --wordlist=/usr/share/wordlists/rockyou.txt id_rsa_hash.txt
john能实现的解密不止如此,例如单一模式、自定义模式等,都能很好地帮助破解哈希密码,这里不深入讨论,有兴趣的可以自行深入学习。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。