赞
踩
在学习使用口令破解工具之前,我们要先创建一个用户账号,原理是利用其哈希值进行破解。
很关键的一点是,要在虚拟机里面创建用户!!!
很关键的一点是,要在虚拟机里面创建用户!!!
很关键的一点是,要在虚拟机里面创建用户!!!
重要的事情一定要说三遍。在宿主机(我是win10系统)创建用户获取的hash值是假的,根本无法用于破解。我个人猜测,是由于宿主机存在某种保护机制,使得不让获取到真正的hash。因为自己的无知,整整一天都在用假的哈希值破解,浪费了时间和精力。
我创建的新用户名为‘sgbuser’,它的哈希值是“5036······D02C”一段。
对于hashcat,我们只需要知道这么几点
1.它自称是世界上最快的口令恢复工具(真的很快,不过一会我们可以简单测试一下是否是第一)
2.它支持多种计算核心,如CPU和GPU
3.它没有图形界面,需要用命令行输入
4.它有很多种散列算法来恢复口令
0 | Straight(字段破解)
1 | Combination(组合破解)
3 | Brute-force(掩码暴力破解)
6 | Hybrid Wordlist + Mask(字典+掩码破解)
7 | Hybrid Mask + Wordlist(掩码+字典破解)
在这里,我们用的是代表数字为1000的模式,表示是对LM和NT哈希进行破解,因为我们获取的哈希值是NT哈希。
这个是比较重要的,不知道这个,没办法破解密码
常见掩码字符集有
l | abcdefghijklmnopqrstuvwxyz 纯小写字母
u | ABCDEFGHIJKLMNOPQRSTUVWXYZ 纯大写字母
d | 0123456789 纯数字
h | 0123456789abcdef 常见小写子目录和数字
H | 0123456789ABCDEF 常见大写字母和数字
s | !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 特殊字符
a | ?l?u?d?s 键盘上所有可见的字符
b | 0x00 - 0xff 可能是用来匹配像空格这种密码的
这个我一开始也不怎么看的懂,往下就能看懂了,下面是掩码的设置
八位数字密码:?d?d?d?d?d?d?d?d
八位未知密码:?a?a?a?a?a?a?a?a
前四位为大写字母,后面四位为数字:?u?u?u?u?d?d?d?d
前四位为数字或者是小写字母,后四位为大写字母或者数字:?h?h?h?h?H?H?H?H
前三个字符未知,中间为admin,后三位未知:?a?a?aadmin?a?a?a
6-8位数字密码:--increment --increment-min 6 --increment-max 8 ?l?l?l?l?l?l?l?l
6-8位数字+小写字母密码:--increment --increment-min 6 --increment-max 8 ?h?h?h?h?h?h?h?h
如果我们想自定义一个字符集,应该怎么办呢?
--custom-charset1 [chars]等价于 -1
--custom-charset2 [chars]等价于 -2
--custom-charset3 [chars]等价于 -3
--custom-charset4 [chars]等价于 -4
在掩码中用?1、?2、?3、?4来表示。
在chars里面输入自己想表示的字符就可以了。
先打开运行文件,我这里是“hashcat64.exe”
然后输入命令行
hashcat64 -a 3 -m 1000 ****(在此表示哈希值) ?l?l?l?l?l?l?l?l
-a 3表示攻击方式为暴力破解,-m 1000表示LM NT哈希值破解,8个?l(英文的问号)表示8位密码且都是小写字母
破解出来结果如下,用时1分2秒,密码为:jhogamcj
这是一个比较老的密码恢复软件了,它用于破解用LM加密的SAM。我个人认为,因为它需要SAM文件,所以操作稍微繁琐一些。
破解的关键,在于如何获取SAM文件,sam文件是windows NT的用户帐户数据库,所有NT用户的登录名及口令等相关信息都会保存在这个文件中。
由于自从win XP以来,系统用户的安全性大大提高,使得SAM文件的复制读取都变得尤为艰难。如果单纯地想复制出来的话,会发现显示文件正在运行中。这是因为在系统刚开始启动的时候,就已经对该文件进行了保护。
按照常规操作,要想对SAM文件进行操作,有两种途径,一是在BIOS中复制出来,二是通过提权的方式。但是这两种方式都过于麻烦,我在此采用的是使用大神级工具——pwdump来搞定SAM。
pwdump有个用法是
pwdump7.exe -d <filename> [destionation] (Copy filename to destionation)
-d 是把一个文件复制到另一个位置,PwDump7.exe -d c:\pagefile.sys pagefile.dmp
这个用法的强大之处在于可以把进程正在调用的文件复制成功,如复制“pagefile.sys ”文件。
所以,我们用这个来复制SAM文件。
代码如下
PwDump7.exe -d C:\Windows\System32\config\SAM C:\Users\Jason\Desktop\7\pwdump7\1.dmp
其中1.bmp就存放了SAM的所有信息,这一步,是使用lc5的关键之举,也是我花费时间最长的一步。
首先要用注册机获取lc5的注册码,进行注册,不注册是无法破解的
打开lc5是如下页面,这个页面先客套一阵子,然后问是否使用向导,不用鸟他,直接点下一步即可
这个页码是问从哪里导入需要破解的口令,对于本次实验,我选择local machine
这一个是选择破解方式,我选择custome,并打开opinion
由于事先知道是8位小写字母,所以我选择暴力破解,并选择alphabet一项。
不过说实话,他的选择条件实在是太少了,没有大小写和位数选项,我认为这是他破解慢的重要原因。
这个是选择报告风格,对于我们这类菜鸡来说,系统默认的就够了
打开后,在“session”一栏中选择,import,打开如下
把文件放进去后就是如下页面
到了这一步,我很荣幸的说,我并没有破解出来密码(手动微笑)。费了九牛二虎之力,最后啥也没出来,必须要手动微笑。运行到100%,什么结果也没有,具体原因暂不清楚。我改用lc7进行试验。
L0phtCrack7是一款计算机密码解析工具,可以有效,快速的破解电脑中的各种密码,同时也可以快速恢复Windows管理员帐号密码,还可以用来检测Windows、LUNIX 用户是否使用了不安全的密码,同时也可以帮助用户暴力破解xp、win7、vista以及Lunix系统的计算机密码,但仅限于较简单的密码,复杂的目前还没办法,是一款准专业级别的黑客工具。
找个注册机随便注册一个账号,破解了再用。
啊,这个页面一看就比渣渣lc5高大上多了,顿时我对lc7充满了信心。赞美过后,让我们点击“start a new session”选项。
点击左侧的 Import 选项,发现它既可以导入pwdump文件,也可以导入Sam文件。这次,我选择导入pwdump文件(真的被Sam和lc5伤透了心)。
输入对应的txt文件,点击“run import immediately”
他就会把所有用户对应的hash导入,我们只保留要破解的“sgbuser”用户,其余的都删除
如上图
选择 Audit 选项,依次选择“Brute Force”(暴力破解),在中间编辑口令格式,分别为8位,小写,然后点击“Save Change”
点击“Run Audit Immediately”
破解页面如上
不得不表扬lc7一通,这个软件比lc5好多了,首先导入文件不受限制,最重要的是破解速度不仅快,还能破解出来!!!这个软件是我这种菜鸡的福音,让我少掉了好多头发。
一分钟多一点就跑出来了,这也太快了吧。不得不说一句:lc7 NB!
打开文件,选择“导入本地用户通过计划程序”
稍等片刻,页面如下。我的“sgbuser”用户的密码已经显示出来了,原因是因为我破解过一次了,如果没破解的话,密码显示为“??????”
打开审计,选择暴力攻击,开始攻击,对了不要忘记勾选“sgbuser”。
因为我“sgbuser”已经破解过了,所以只能破解其他用户,滥竽充数了。这里我破解的是“Jason”
这个破解页面是破解出来“sgbuser”的页面
名称 | 破解速度(对于我的用户来说) | 有无图形界面 |
---|---|---|
hashcat | 1分2秒 | 无 |
lc5 | 辣鸡 | 有,然并卵 |
lc7 | 1分9秒 | 有 |
Saminside | 2小时左右(具体时间没有计算,大体是这个时间,在虚拟机运行,速度可能慢一些) | 有 |
个人认为,hashcat的功能更为强大一些,它自称世界上最快的破解工具也是有一定底气的。lc5·······算了,不说了。lc7也很好用,支持多种文件导入,而且运行速度也很快,对不习惯使用命令行的人来说,就是一种福音。saminside的操作最为简单,但是设置量也比较少,所以运行也比较慢。
最后,让我们对生成用户这个应用程序简单的分析一下代码。
这一类的文件,单纯地用笔记本或者notepad++是打不开的,要先进行解码破解。
我用的解码软件是decodescript,这个操作起来很简单,大家可以尝试用一下。
破解出来代码,及注释如下
dim xnumber,lastlet,warn xnumber=inputbox("input your number:","Messagebox") xnumlen = Len(xnumber) warn = "Wrong number,please try again!" If xnumlen < 3 Then msgbox(warn) wscript.quit Else lastlet=Right(xnumber,3) //返回倒数三位字符,输出顺序是从左至右,038 If Not isnumeric(lastlet) then//如果lastlet的内容是数字,为真 msgbox(warn) wscript.quit End if End If 'msgbox(lastlet) 'get the number to chara arr = array("o","i","z","m","f","s","b","l","g","q")//创建多维数组 t=Left(lastlet,1) //t=0 tempstr=arr(t) //tempstr=‘o’ 'msgbox(tempstr) t=Mid(lastlet,2,1)//从第二个开始取一个 t=3 'msgbox(t) tempstr=tempstr+arr(t) //tempstr='oz' t=Right(lastlet,1) //t=8 tempstr=tempstr+arr(t) //tempstr='ozl' 'msgbox(tempstr) lastlet=tempstr //lastlet='ozl' '取三个随机字毿 dim letters dim xrand dim lett letters="acdehjknprtuvwxy" for i=1 to 3 xrand=GetRandomMath(1,16)//xrand=16*rnd+1,范围是1到16 lett=lett+Mid(letters, xrand, 1)//lett是个三位字符 Next 'msgbox (lett) 'letcomb=lett+lastlet 'msgbox (letcomb) 'combine string x=Right(lastlet,1) //x=‘l' y=Left(lastlet,1) //y=’o’ 'msgbox(x) 'msgbox(y) insert1=GetRandomMath(1,3)//范围是1到3 'msgbox(insert1) lettemp=Left(lett,insert1)+x+Right(lett,3-insert1)//左边insert1个+‘l'+右边3-insert1个,共四个 'msgbox(lettemp) insert2=GetRandomMath(1,4)//范围是1到4 'msgbox(insert2) lettemp=Left(lettemp,insert2)+y+Right(lettemp,4-insert2) 'msgbox(lettemp) letcomb=lettemp+Mid(lastlet,2,1)//末尾是'o',此时为6位 'msgbox (letcomb) 'at last add two random letters for i=1 to 2 xrand=GetRandomMath(1,16) letcomb=letcomb+Mid(letters, xrand, 1) //加上letter选出来的两位,一共8位 Next 'msgbox (letcomb) dim wsh dim str str="net user sgbuser "+letcomb+" /add" set wsh=CreateObject("Wscript.Shell") wsh.run str,0 wsh.run "net localgroup administrators sgbuser /add",0 Function GetRandomMath(m,n) Randomize //Randomize 语句初始化随机数生成器,使得rad每次产生的种子都不同 GetRandomMath = Int(((n-m+1) * Rnd) + m) End Function
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。