跪求Hash(MD5校验工具) V3.2.0 绿色版软件百度云资源
链接: https://pan.baidu.com/s/1BNzeZAYB9L8n4_tRe26-mA
软件名称:Hash(MD5校验工具)V3.2.0绿色版
语言:简体中文
大小:1.71MB
类别:系统工具
介绍:Hash是一款十分实用的MD5校验工具,这款软件可以计算文件MD5、SHA1、CRC32的值。这款软件采用的是并行计算,利用多核CPU性能计算文件哈希值效验。界面简洁,使用起来非常简单,如果有需要的朋友可以来本站下载试试哦。
可以读出Windows用户的密码Hash的工具有哪些?
你好
不过比较推荐用SAMInside抓取,因为pwdump7不太稳定,有时候抓到的hash不一定正确,甚至还有可能抓不出来……图开界面下用SAMInside抓取,命令行下用SAMInside自带的那个小工具GetHashes.exe抓取,hash一般保存为txt文件即可。下面再介绍一些上面没提到的工具如何抓取hash,这些工具自己能抓,也能破解,比较强大。
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_command):
缺点:只能运行单条命令,不支持网段格式批量验证
优点:奇怪的是其他普通用户的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好用,成功率更高一些
项目地址:
安装参考: https://github.com/byt3bl33d3r/CrackMapExec/wiki/Installation
Kali安装步骤:
使用命令:
注意:这里的 IP 可以是单个IP也可以是IP段
如果命令使用失败,可能没安装其依赖项(坑点,我弄了两个小时。。。心态爆炸):
项目地址: https://github.com/SecureAuthCorp/impacket
安装过程:
wmi内置在windows操作系统,用于管理本地或远程的 Windows 系统。wmiexec是对windows自带的wmic做了一些强化。攻击者使用wmiexec来进行攻击时,不会记录日志,不会写入到磁盘,具有极高的隐蔽性。
安装成功后,切换到examples目录下,执行如下命令:
exe版本:
项目地址: https://github.com/maaaaz/impacket-examples-windows
执行命令类似
powershell版本:
项目地址: https://github.com/Kevin-Robertson/Invoke-TheHash
注意:这里要先加载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的共享文件夹:
这里也不知道算成功没有
详情请参考谢公子博客: https://blog.csdn.net/qq_36119192/article/details/103941590
LocalAccountTokenFilterPolicy 值默认设置为 0 来禁止非administrator账号的远程连接(包括哈希传递攻击),但是administrator用户不受影响
将LocalAccountTokenFilterPolicy设置为1,就可以使用普通管理员账号进行哈希传递攻击
利用工具:hashcat
比如说密码为:admin888?
NTLM加密之后为:c4e51613d9ab888ac3d43538840b271c
hashcat具体用法参考: Hashcat的使用手册总结
这里可以看到成功破解出了密码:
当然也可以去cmd5等破解网站,有钱的话直接冲个会员多香啊
Pass The Hash(Key) 凭据传递攻击PTH
哈希传递攻击(Pass-the-Hash,PtH)
Windows用户密码的加密与破解利用
横向渗透之Pass The Hash
2022-05-21ArrayMap和HashMap
首先我们来说一下什么是HashMap:
hash:也称“散列”,就是将任意长度的输入,通过散列算法,变换成为固定长度的输出,,该输出就是散列值,散列值的空间远远小于输入的空间,不同散列可能会得到相同的输出。
HashMap默认是一个容量为16的数组来存储数据,这个数组之中每一个元素又都是存储的Entry类型链表的头结点。
当我们有一个Entry数据想要存储进来的时候,首先计算key对应的hash值,然后使用hash值对数组的长度取余,获取到的数值就是所要存储的数组下标的位置。
这里就引入一个问题:Hash冲突!
当我们的多个元素的hash值相同的时,应该怎么办?这里就体现了链表的作用,会直接的将后来添加的元素加在链表的末尾。
在此补充一个知识点,处理hash冲突的方法有以下几种:
1开放地址法
2再哈希法
3链地址法
4建立公共溢出区
我们知道容量为16的数组,刚开始的时候创建HashMap对象的时候就会分配容量为16的数组,随着我们的元素的加入,当我们的元素的数量达到一定的限制(HashMap的容量>容量*加载因子(0.75))时候就会触发扩容机制,将我们的容量扩大为原来的二倍。
所以一旦我们触发扩容机制,空间就会二倍数的进行增大,若是我们存在很大的数据,那么就要不断地做Hash运算并且进行扩容,这将会对内存空间造成恒大的消耗,所以在Android汇总HashMao是比较耗内存的。
这个时候就出现了ArrayMap数据结构,它更多的考虑内存优化的问题
其中内部采用两个一维数组。
一个用来存储key的hashcode,其下标代表添加元素的起始下标;一个用来存储添加元素的key和value。它属于哈希表。
具体的原理可以看这篇博客: ArrayMap解析 - (jianshu.com)
大致来说就是使用了二分法来进行查找和添加。其中每次扩容原来容量一般的增量,
当对应的容量为8或是4的时候有缓存容的功能,提供相应的内存使用效率。默认容量为0;
优点:相比于HashMap内存空间更占优比HashMap少了一个实体类进行修饰。
容量为4或者8时存在缓存复用的功能,
扩容比HashMap高效。需要重新计算hash值和移动元素,而ArrayMap只需要拷贝。
缺点:数据量大的情况下查询效率比HashMap差。
存取效率低,每次都要进行二分查找找到对应的下标。
没有实现Serializable,不便进行Androidbundle的传输。
使用场景:
1.数据量小。
2.内存要求高。
全域hash 均匀分布 2022-07-18
对于单一hash,如果攻击者获悉了hash算法,就可能构造大量hash值相同的key进行攻击。大量key进入同一个hash slot,让hash table的查询从o(1)退化成o(n)。 HashDoS
针对HashDoS,一个朴素的思想就是随机选取hash函数,这样构造的攻击key就很大可能失效
具体来看,我们的根本目的是什么?
我们的根本目的是 让key均匀分布在hash table的各个slot上
在给定单hash函数的情况下,均匀分布需要达到什么数学条件:
对于n个独立不同的keys,容量为m的hash table,如果满足均匀分布,则每个slot的使用量应当为 |n/m|
也就是说,对于特定的key k,从剩余(n-1)个key中随机挑选一个k‘,则 (k, k’) 落到同一slot的概率为1/m ,这样k所在slot的使用量才会满足 (n-1) * 1/m = |(n-1)/m| = |n/m|
而我们需要变化的hash函数,那么扩展一下思维, 给定一个hash函数=>给定一组hash函数 ,使用时随机选择一个hash函数,剩下的部分就转换为了上文刚刚讨论的单hash函数情况——
于是,我们需要一个hash函数集合,使得对任意 (k, k’) from keys,从哈希函数集中随机选择一个哈希函数, (k, k’) 发生冲突的概率是1/m
于是,我们有全域hash的定义:
Proof: Each y ∈ S (y ≠ x) has at most a 1/M chance of colliding with x by the definition of “universal”. So,