内网横传之哈希传递(Pass The Hash)

简介

Pass The Hash 即PTH,也是内网渗透中较未常见的一个术语,就是通过传递Windwos 本地账户或者域用户的hash值,达到控制其他服务器的目的

在进入企业内网之后,如果是Windows PC或者服务器较多的环境,极有可能会使用到hash传递来进行内网的横传,现在企业内部一般对于口令强度均有一定的要求,抓取到本地hash后可能无法进行破解,同时从Windows Vista和Windows Server 2008开始,微软默认禁用LM hash.在Windows Server 2012 R2及之后版本的操作系统中,默认不会在内存中保存明文密码,这时可以通过传递hash来进行横传。

适用场景:内网中大量主机密码相同。

原理

hash 传递的原理是在认证过程中,并不是直接使用用户的密码进行认证的,而是使用用户的hash值,因此,攻击者可以直接通过LM Hash和NTLM Hash访问远程主机或服务,而不需要提供明文密码。在Windows系统中,通常会使用NTLM身份认证,NTLM是口令加密后的hash值。PTH是基于smb服务(139端口和445 端口)。详细可以查看这篇文章进行了解。:https://www.4hou.com/posts/V0xO

哈希传递
msf hash 传递

现在有多种hash传递的方式,本篇文章使用msf 来进行hash传递,也没啥别的理由,就是因为操作比较简单,

hash 传递的模块

执行单个命令的PTH模块
auxiliary/admin/smb/psexec_command

执行直接就获取到meterpreter的PTH模块
exploit/windows/smb/psexec

支持对一个网段进行PTH进行验证的模块
exploit/windows/smb/psexec_psh

需要在高权限下才可以执行hashdump的操作,个人在使用merterpreter中自带的hashdump时总是报错,不知道为什么,错误提示的意思应该是权限不够,可是我都在系统权限下执行了还是报告,错误截图如下,目前还不知道原因

在这里插入图片描述

而使用其他模块却可以成功

run post/windows/gather/hashdump

hash值的部分就是图中500后面的值,第一个是LM,第二个是NTML,在实际操作中,经过实验,确定LM的值对错与否是不重要的,只要NTML的值正确即可

在这里插入图片描述

下面这张图为exploit/windows/smb/psexec,使用时的配置,SMBPASS 就是抓取的hash.

在这里插入图片描述

可以看到执行成功后的效果
在这里插入图片描述

在测试时 win12 hash 抓取时候会报以下的报错,所有的模块都不好使,不知道为啥,而且跟UAC时没有关系的,因为hash传递之后获取就是system 权限的session了。

在这里插入图片描述

通过导入mimikatz可以成功导出

在这里插入图片描述

不过在msf 中使用mimikatz 有一点小小的插曲,因为之前没有在msf 中使用过mimikatz 所以相当不熟练,而且连实验都没有做过。

在msf中使用mimikatz

通过load mimikatz 进行导入,这里下面发黄的提示的工具kiwi就是msf内置的mimikatz模块的升级版,后续会进行学习的。

在这里插入图片描述

help mimikatz 查看帮助,执行命令的话就使用mimikatz_command 命令进行使用

在这里插入图片描述

mimikatz_command -f a:: 输入一个错误的模块,可以列出所有模块

在这里插入图片描述

获取hash的话就是

mimikatz_command -f samdump::hashes

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W4RcQqSZ-1637850072244)(18978A9C096242158FD69AA722E3C925)]

总结

传递hash是在没办法获取密码时可以进行横传的方法,而且可以用在windows Server 2012以及之上版本的(笔者只实验了到了 2012) ,LM 的值对错对于是否能够传递hash无关。

参考

https://www.cnblogs.com/Xy–1/p/13216686.html
https://blog.csdn.net/fageweiketang/article/details/86580213
https://hackergu.com/metasploit-%E6%9D%83%E9%99%90%E4%B8%8Ehashdump%E4%B9%8B%E9%97%B4%E7%9A%84%E8%AE%A4%E8%AF%86/
http://www.xiaoheidiannao.com/70971.html
https://blog.csdn.net/weixin_45116657/article/details/103147716

### 关于头歌平台第3关 MySQL Hash 实现方法 在MySQL中,Hash索引是一种高效的查找方式,其底层结构实际上是哈希表。当执行查询操作时,通过调用一次哈希函数即可快速定位到对应的键值位置[^1]。然而,在InnoDB存储引擎中,默认并不使用Hash索引作为主索引机制,而是采用B+树来实现有序性和范围查询的支持。 如果需要利用Hash索引提升特定场景下的性能,可以选择Memory存储引擎或者自定义哈希列的方式。以下是两种常见的实现方案: #### 方案一:使用 Memory 存储引擎 Memory存储引擎天然支持Hash索引,并且能够显著提高点查(Point Query)的速度。创建一张带有Hash索引的表可以通过如下SQL语句完成: ```sql CREATE TABLE my_table ( id INT NOT NULL, name VARCHAR(50), PRIMARY KEY (id) USING HASH ) ENGINE=MEMORY; ``` 此语法中的`USING HASH`关键字明确了该主键将基于Hash算法构建索引[^2]。 #### 方案二:引入计算字段模拟 Hash 功能 对于不支持原生Hash索引的情况,可以在设计表结构时增加一个额外的字段用于保存原始数据经过某种固定逻辑处理后的摘要值(例如MD5或CRC32),从而间接达到加速检索的效果。下面是一个简单的例子: ```sql ALTER TABLE user ADD COLUMN hash_value CHAR(32); UPDATE user SET hash_value = MD5(email); -- 查询时先匹配 hash 值再验证具体条件 SELECT * FROM user WHERE hash_value='d41d8cd98f00b204e9800998ecf8427e' AND email='test@example.com'; ``` 需要注意的是,上述做法虽然提升了某些情况下的访问速度,但也可能带来额外的空间开销以及更新成本。 --- ### 性能优化工具介绍 为了更好地监控和调整数据库表现,可以借助一些内置命令来进行深入剖析。例如 `myisamchk` 工具可以帮助我们检查、修复甚至压缩MyISAM类型的表格文件大小以节省资源消耗[^3]。 另外还有诸如慢日志分析、SHOW STATUS/PROCESSLIST 等手段均能在不同程度上揭示潜在瓶颈所在之处,进而指导后续改进措施制定工作流程。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值