当前位置:   article > 正文

学习使用口令破解工具:hashcat、LC、SamInside

hashcat

在学习使用口令破解工具之前,我们要先创建一个用户账号,原理是利用其哈希值进行破解。
很关键的一点是,要在虚拟机里面创建用户!!!
很关键的一点是,要在虚拟机里面创建用户!!!
很关键的一点是,要在虚拟机里面创建用户!!!
重要的事情一定要说三遍。在宿主机(我是win10系统)创建用户获取的hash值是假的,根本无法用于破解。我个人猜测,是由于宿主机存在某种保护机制,使得不让获取到真正的hash。因为自己的无知,整整一天都在用假的哈希值破解,浪费了时间和精力。

创建用户

在这里插入图片描述

获取hash值

在这里插入图片描述

我创建的新用户名为‘sgbuser’,它的哈希值是“5036······D02C”一段。

在这里插入图片描述

使用hashcat破解

hashcat简介

对于hashcat,我们只需要知道这么几点

1.它自称是世界上最快的口令恢复工具(真的很快,不过一会我们可以简单测试一下是否是第一)
2.它支持多种计算核心,如CPU和GPU
3.它没有图形界面,需要用命令行输入
4.它有很多种散列算法来恢复口令
  • 1
  • 2
  • 3
  • 4

hashcat使用简介

攻击模式

  0 | Straight(字段破解)
  1 | Combination(组合破解)
  3 | Brute-force(掩码暴力破解)
  6 | Hybrid Wordlist + Mask(字典+掩码破解)
  7 | Hybrid Mask + Wordlist(掩码+字典破解)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
hash id

在这里,我们用的是代表数字为1000的模式,表示是对LM和NT哈希进行破解,因为我们获取的哈希值是NT哈希。

掩码设置

这个是比较重要的,不知道这个,没办法破解密码
常见掩码字符集有

l | abcdefghijklmnopqrstuvwxyz          纯小写字母
u | ABCDEFGHIJKLMNOPQRSTUVWXYZ          纯大写字母
d | 0123456789                  纯数字
h | 0123456789abcdef                常见小写子目录和数字
H | 0123456789ABCDEF                常见大写字母和数字
s |  !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~       特殊字符
a | ?l?u?d?s                    键盘上所有可见的字符
b | 0x00 - 0xff                 可能是用来匹配像空格这种密码的
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这个我一开始也不怎么看的懂,往下就能看懂了,下面是掩码的设置

八位数字密码:?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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

如果我们想自定义一个字符集,应该怎么办呢?

--custom-charset1 [chars]等价于 -1
--custom-charset2 [chars]等价于 -2
--custom-charset3 [chars]等价于 -3
--custom-charset4 [chars]等价于 -4
在掩码中用?1?2?3?4来表示。
  • 1
  • 2
  • 3
  • 4
  • 5

在chars里面输入自己想表示的字符就可以了。

hashcat破解实例

先打开运行文件,我这里是“hashcat64.exe”
然后输入命令行

hashcat64 -a 3 -m 1000 ****(在此表示哈希值) ?l?l?l?l?l?l?l?l
  • 1

-a 3表示攻击方式为暴力破解,-m 1000表示LM NT哈希值破解,8个?l(英文的问号)表示8位密码且都是小写字母

在这里插入图片描述
破解出来结果如下,用时1分2秒,密码为:jhogamcj
在这里插入图片描述

使用lc5破解

lc5简介

这是一个比较老的密码恢复软件了,它用于破解用LM加密的SAM。我个人认为,因为它需要SAM文件,所以操作稍微繁琐一些。

破解过程

将SAM文件导入lc5中

破解的关键,在于如何获取SAM文件,sam文件是windows NT的用户帐户数据库,所有NT用户的登录名及口令等相关信息都会保存在这个文件中。
由于自从win XP以来,系统用户的安全性大大提高,使得SAM文件的复制读取都变得尤为艰难。如果单纯地想复制出来的话,会发现显示文件正在运行中。这是因为在系统刚开始启动的时候,就已经对该文件进行了保护。
按照常规操作,要想对SAM文件进行操作,有两种途径,一是在BIOS中复制出来,二是通过提权的方式。但是这两种方式都过于麻烦,我在此采用的是使用大神级工具——pwdump来搞定SAM。
pwdump有个用法是

pwdump7.exe -d <filename> [destionation] (Copy filename to destionation)
  • 1

-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

在这里插入图片描述
其中1.bmp就存放了SAM的所有信息,这一步,是使用lc5的关键之举,也是我花费时间最长的一步。

注册并调试lc5

首先要用注册机获取lc5的注册码,进行注册,不注册是无法破解的
打开lc5是如下页面,这个页面先客套一阵子,然后问是否使用向导,不用鸟他,直接点下一步即可
在这里插入图片描述
这个页码是问从哪里导入需要破解的口令,对于本次实验,我选择local machine
在这里插入图片描述
这一个是选择破解方式,我选择custome,并打开opinion
在这里插入图片描述
由于事先知道是8位小写字母,所以我选择暴力破解,并选择alphabet一项。
不过说实话,他的选择条件实在是太少了,没有大小写和位数选项,我认为这是他破解慢的重要原因。
在这里插入图片描述
这个是选择报告风格,对于我们这类菜鸡来说,系统默认的就够了
在这里插入图片描述
打开后,在“session”一栏中选择,import,打开如下
在这里插入图片描述
把文件放进去后就是如下页面
在这里插入图片描述

并不存在的攻击成功页面

到了这一步,我很荣幸的说,我并没有破解出来密码(手动微笑)。费了九牛二虎之力,最后啥也没出来,必须要手动微笑。运行到100%,什么结果也没有,具体原因暂不清楚。我改用lc7进行试验。

lc7使用方法

lc7简介

L0phtCrack7是一款计算机密码解析工具,可以有效,快速的破解电脑中的各种密码,同时也可以快速恢复Windows管理员帐号密码,还可以用来检测Windows、LUNIX 用户是否使用了不安全的密码,同时也可以帮助用户暴力破解xp、win7、vista以及Lunix系统的计算机密码,但仅限于较简单的密码,复杂的目前还没办法,是一款准专业级别的黑客工具。

破解过程

下载安装lc7

找个注册机随便注册一个账号,破解了再用。

打开lc7

在这里插入图片描述
啊,这个页面一看就比渣渣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!

Saminside

导入用户

在这里插入图片描述
打开文件,选择“导入本地用户通过计划程序”
稍等片刻,页面如下。我的“sgbuser”用户的密码已经显示出来了,原因是因为我破解过一次了,如果没破解的话,密码显示为“??????”
在这里插入图片描述

开始攻击

在这里插入图片描述
打开审计,选择暴力攻击,开始攻击,对了不要忘记勾选“sgbuser”。
因为我“sgbuser”已经破解过了,所以只能破解其他用户,滥竽充数了。这里我破解的是“Jason”
在这里插入图片描述

攻击成功

这个破解页面是破解出来“sgbuser”的页面
在这里插入图片描述

四个破解工具的比较

名称破解速度(对于我的用户来说)有无图形界面
hashcat1分2秒
lc5辣鸡有,然并卵
lc71分9秒
Saminside2小时左右(具体时间没有计算,大体是这个时间,在虚拟机运行,速度可能慢一些)

个人认为,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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/488679
推荐阅读
相关标签
  

闽ICP备14008679号