哈希是什么,它的玩法是什么?(利用哈希值怎么做用户运营, 哈希值应用)

哈希算法有很多种,如MD5、SHA-1、SHA-256等。这些算法接收任意长度的输入,经过一系列的变换和计算,最终得到固定长度的输出,即哈希值。哈希算法是一种不可逆的算法,即无法根据哈希值反推出原始输入。

文章目录:

  1. 哈希是什么,它的玩法是什么?
  2. 什么是哈希算法?具体怎么用啊???有什么用啊?
  3. 为什么用户账户的密码通常以哈希形式存储?
  4. Windows之hash利用小结

一、哈希是什么,它的玩法是什么?

哈希(Hash)是一种将任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间。哈希值通常用字母和数字的组合表示,其长度固定,且具有唯一性,即不同的输入不会产生相同的输出。

哈希算法有很多种,如MD5、SHA-1、SHA-256等。这些算法接收任意长度的输入,经过一系列的变换和计算,最终得到固定长度的输出,即哈希值。哈希算法是一种不可逆的算法,即无法根据哈希值反推出原始输入。

哈希在很多领域都有应用,例如文件校验、密码学、数据检索等。在密码学中,哈希算法常用于存储用户密码的摘要,而不是直接存储密码本身。这样即使黑客获取到存储的哈希值,也无法直接得到用户的原始密码。而要破解哈希值,需要使用暴力破解的方法,逐一尝试可能的输入,直到找到一个与哈希值匹配的输入,这个过程非常耗时且计算量大。

总之,哈希是一种将任意长度的输入通过散列算法变换成固定长度的输出的过程,其不可逆性使得它广泛应用于数据安全和密码学领域。

哈希其实就是一个算法,它有很多种的玩法,而且有一个很大的特点,就是你不能从结果推算出输入。所以哈希游戏是最公平的一种游戏,如果你也感兴趣的话,可以到Τ6hɑsh·огg这里了解一下,具体怎么玩都有详细的介绍。

二、什么是哈希算法?具体怎么用啊???有什么用啊?

1、哈希是一种加密算法,也称为散列函数或杂凑函数。哈希函数是一个公开函数,可以将任意长度的消息M映射成为一个长度较短且长度固定的值H(M),称H(M)为哈希值、散列值(HashValue)、杂凑值或者消息摘要。

2、哈希算法就是一种特殊的函数,不论输入多长的一串字符,只要通过这个函数都可以得到一个固定长度的输出值,这就好像身份证号码一样,永远都是十八位而且全国唯一。哈希算法的输出值就叫做哈希值。

3、哈希又称作“散列”,是一种数学计算机程序,它接收任何一组任意长度的输入信息,通过哈希算法变换成固定长度的数据指纹输出形式,如字母和数字的组合,该输出就是“哈希值”。

4、简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。使用哈希查找有两个步骤:使用哈希函数将被查找的键转换为数组的索引。

三、为什么用户账户的密码通常以哈希形式存储?

在Windows操作系统中,用户账户的密码通常以哈希形式存储。哈希是一种单向的加密算法,可以将密码转换为一段固定长度的字符串,通常是一串数字和字母的组合。存储在系统中的哈希值是无法通过简单的逆向计算还原成原始密码的,这样可以保护用户密码的安全性。

当用户在Windows操作系统中设置或更改密码时,系统会使用哈希算法对密码进行处理,生成哈希值,并将其存储在系统的安全账户数据库中,例如Windows安全账户管理器(Security A***ounts Manager,SAM)数据库。在用户登录时,系统会将用户输入的密码再次进行哈希处理,并与存储在账户数据库中的哈希值进行比对,以验证密码的正确性。

这种哈希方式的存储方式可以增加密码的安全性,因为即使未经授权的人获得了存储的哈希值,也无法轻易地还原出原始密码。同时,为了增加哈希的安全性,通常会在哈希算法中添加一些额外的处理,例如加盐(Salt),即在密码哈希时添加随机生成的字符串,以进一步增加密码的复杂度和防止彩虹表等攻击。这样可以提高账户密码的安全性,减少密码被破解的风险。

四、Windows之hash利用小结

攻击机:kali 2020(192.168.107.129)

DC:Windows Server 2012 R2(192.168.107.137)

msf已成功通过msf获取到DC的shell

刚获取的shell为普通用户权限,需要进行提权,然后获取hash

直接使用getsystem失败,使用ps命令查看当前进程及运行用户权限

可以看到所运行的进程皆为普通用户权限

这里为了方便,直接使用msf提供的模块,用于快速识别系统中可能被利用的漏洞:

具体原理参考: BypassUAC------使用EVENTVWR.EXE和注册表劫持实现“无文件”UAC绕过

成功绕过UAC获取shell:

通过进程注入获取system权限,并获取hash

原理:

哈希传递攻击是基于NTLM认证的一种攻击方式。哈希传递攻击的利用前提是我们获得了某个用户的密码哈希值,但是解不开明文。这时我们可以利用NTLM认证的一种缺陷,利用用户的密码哈希值来进行NTLM认证。在域环境中,大量计算机在安装时会使用相同的本地管理员账号和密码。因此,如果计算机的本地管理员账号密码相同,攻击者就能使用哈希传递攻击登录内网中的其他机器。

哈希传递攻击适用情况:

在工作组环境中:

在域环境中:

Metasploit下面有3个psexec模块都可以进行Hash传递利用

第一个模块(auxiliary/admin/smb/psexec_***mand):

缺点:只能运行单条命令,不支持网段格式批量验证

优点:奇怪的是其他普通用户的hash也可以执行系统命令,这个模块可能不属于hash传递的范畴?这个坑以后再来解,我太菜了,望大佬指点~

设置命令的时候可以配合exploit/multi/script/web_delivery从而获取meterpreter

在上面进行Hash传递的时候,只要后面的NTLM Hash是正确的,前面填写什么都是可以顺利登陆成功的。

第二个模块(exploit/windows/smb/psexec):

利用条件:

优点:该模块支持网段格式批量验证,成功后可直接获取meterpreter且为system权限,在实战中优先使用

第三个模块(exploit/windows/smb/psexec_psh):

使用powershell作为payload。这个模块也支持网段批量验证,这里就不再赘述了

当我们获得了内网中一台主机的NTLM哈希值,我们可以利用mimikatz对这个主机进行哈希传递攻击,执行命令成功后将会反弹回cmd窗口

mimikatz中pth功能的原理:

windows会在lsass中缓存hash值,并使用它们来ntlm认证,我们在lsass中添加包含目标账号hash的合法数据结构,就可以使用类似dir这些命令进行认证

目标主机:192.168.107.140

domain:SWS-PC

执行后会弹出cmd,执行以下命令即可远程连接:

创建计划任务反弹shell:

理论上来说是可行的,win7复现的时候,任务一直在运行,就是没结束,我也是醉了.....

当然这里使用powershell远程加载也是可以的,但由于环境因素无法复现

前提条件:获取到的beacon为system权限,user中带有*号的用户

在得到一个beacon的基础上,先在该网段portscan,探测存活主机后

选择View-->Target-->Login-->psexec,可批量选择主机pth

个人觉得还是Msf好用,成功率更高一些

项目地址:

安装参考: /wiki/Installation

Kali安装步骤:

使用命令:

注意:这里的 IP 可以是单个IP也可以是IP段

如果命令使用失败,可能没安装其依赖项(坑点,我弄了两个小时。。。心态爆炸):

项目地址:

安装过程:

wmi内置在windows操作系统,用于管理本地或远程的 Windows 系统。wmiexec是对windows自带的wmic做了一些强化。攻击者使用wmiexec来进行攻击时,不会记录日志,不会写入到磁盘,具有极高的隐蔽性。

安装成功后,切换到examples目录下,执行如下命令:

exe版本:

项目地址:

执行命令类似

powershell版本:

项目地址:

注意:这里要先加载Invoke-WMIExec.ps1脚本,因为Invoke-TheHash 里要用到 Invoke-WMIExec方法

该命令执行后该进程会在后台运行,可以结合定时任务执行尝试反弹shell。

KB2871997 补丁将使本地帐号不再可以用于远程接入系统,不管是 Network logon 还是 Interactive login。其后果就是:无法通过本地管理员权限对远程计算机使用 Psexec、WMI、smbexec、IPC 等,也无法访问远程主机的文件共享等。

在安装了kb2871997 这个补丁后,常规的Pass The Hash已经无法成功。但administrator(SID=500) 账号例外,使用该账号的散列值依然可以进行哈希传递攻击。这里需要强调的是 SID=500 的账号。即使将administrator账号改名,也不会影响SID的值

普通用户测试:

前提:只适用于域环境,并且目标主机需要安装 KB2871997补丁

利用获得到的AES256或AES128进行Key攻击:

弹出cmd后,查看DC的共享文件夹:

这里也不知道算成功没有

详情请参考谢公子博客:

LocalA***ountTokenFilterPolicy 值默认设置为 0 来禁止非administrator账号的远程连接(包括哈希传递攻击),但是administrator用户不受影响

将LocalA***ountTokenFilterPolicy设置为1,就可以使用普通管理员账号进行哈希传递攻击

利用工具:hashcat

比如说密码为:admin888?

NTLM加密之后为:c4e51613d9ab888ac3d43538840b271c

hashcat具体用法参考: Hashcat的使用手册总结

这里可以看到成功破解出了密码:

当然也可以去cmd5等破解网站,有钱的话直接冲个会员多香啊

Pass The Hash(Key) 凭据传递攻击PTH

哈希传递攻击(Pass-the-Hash,PtH)

Windows用户密码的加密与破解利用

横向渗透之Pass The Hash

到此,以上就是小编对于利用哈希值怎么做用户运营的问题就介绍到这了,希望介绍关于利用哈希值怎么做用户运营的4点解答对大家有用。

转载请说明出处内容投诉
CSS教程_站长资源网 » 哈希是什么,它的玩法是什么?(利用哈希值怎么做用户运营, 哈希值应用)

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买