内网后渗透攻击过程(实验环境)--2、权限提升

用途限制声明
本文仅用于网络安全技术研究、教育与知识分享。文中涉及的渗透测试方法与工具,严禁用于未经授权的网络攻击、数据窃取或任何违法活动。任何因不当使用本文内容导致的法律后果,作者及发布平台不承担任何责任。渗透测试涉及复杂技术操作,可能对目标系统造成数据损坏、服务中断等风险。读者需充分评估技术能力与潜在后果,在合法合规前提下谨慎实践。

在内网后渗透攻击中,进行信息收集后就是要进行权限的提升,通常在渗透中很有可能只能获得一个系统的Guest或者User权限,低权限会受到很多的限制,在实施横向渗透或者提权攻击会很困难,所以我们需要进行权限的提升,比如将访问权限从Guset提升到User,再到Administrator,最后到System级别。

渗透的最终目的是获取服务器的最高权限,既是windows管理员账号的权限,或者linux系统的root权限。提升权限的方式有以下两类。

纵向提权:低权限角色获得高权限角色的权限。例如,一个webshell权限通过提权之后拥有管理员的权限,那么就是纵向提权。

横向提权:获得同级别角色的权限。

那么,如何进行权限提升呢,有四种方法:

  1. 利用系统或软件漏洞的权限提升
    主要通过攻击目标系统(如 Windows、Linux)或运行的应用软件(如数据库、Web 服务等)存在的安全漏洞(如内核漏洞、缓冲区溢出、提权漏洞等),从低权限账户直接提升至最高权限(管理员 /root)。

  2. 利用配置错误的权限提升
    针对目标系统或服务的不安全配置(如弱密码、默认凭证、不当的文件 / 服务权限设置、凭证泄露、服务以高权限运行但存在可利用的配置缺陷等),通过获取高权限凭证、滥用配置缺陷等方式提升权限。

  3. 令牌窃取

  4. Hash攻击

一、利用系统或软件漏洞的权限提升

接下来进行操作,首先我们已经通过漏洞获得一个内网服务器的权限,查看当前的权限,

命令:whoami/groups

通过查询可以看到属于标准用户,那么就需要将提升至管理员权限。

我们使用第一个办法来进行权限提升,就是本地溢出漏洞来进行提高权限,我先介绍以下原理以及流程。

一、核心原理

本地溢出提权的本质是 “滥用高权限程序的内存漏洞”,具体逻辑如下:

  1. 程序权限与漏洞基础
    目标系统中存在某些以高权限(如 Windows 的SYSTEM、Linux 的root)运行的程序(如系统服务、SUID 程序、驱动等),这些程序因开发时未严格校验输入长度(如未限制用户输入的字符串长度),存在缓冲区溢出漏洞

    缓冲区是程序在内存中开辟的一块连续存储空间,用于临时存放数据。当输入数据的长度超过缓冲区的容量时,多余的数据会 “溢出” 到相邻的内存区域(如存放程序执行地址、函数返回值的区域)。

  2. 控制程序执行流
    攻击者构造的恶意输入(即 “ exploit )会包含两部分:

    • 大量填充数据(用于填满缓冲区,覆盖相邻内存);
    • 恶意代码(如获取高权限 shell 的代码,称为 “payload”);
    • 特定的 “返回地址”(指向恶意代码在内存中的位置)。

    当有漏洞的高权限程序处理该输入时,溢出的数据会覆盖程序原本的 “返回地址”(即程序执行完当前函数后应跳转的位置),迫使程序跳转到攻击者预先设置的恶意代码地址,从而执行 payload。

  3. 继承高权限
    由于触发漏洞的程序本身以高权限运行(如root),其执行的恶意代码也会继承该权限,攻击者因此获得目标系统的最高权限(如root shell)。

二、操作逻辑(简化流程)

在授权测试中,利用本地溢出漏洞提权的大致步骤如下(具体细节因漏洞和系统而异)

  1. 信息收集:定位目标漏洞

    • 确认目标系统版本(如 Linux 内核版本、Windows 系统版本)、已安装的程序 / 服务,排查已知的本地溢出漏洞(可参考漏洞库如 CVE、Exploit-DB)。
    • 重点关注以高权限运行的程序:
      • Linux 中可通过ps aux查看进程权限,或find / -perm -4000 2>/dev/null查找 SUID 程序(SUID 程序执行时会继承所有者权限,若所有者为 root 则风险极高);
      • Windows 中可通过 “服务” 管理界面查看以 “Local System” 权限运行的服务。
  2. 漏洞分析:确定溢出细节

    • 若漏洞已公开,可直接获取公开的 exploit 代码(需注意适配系统版本);
    • 若为未知漏洞,需通过调试工具(如 GDB、x64dbg)分析程序:确定缓冲区大小(通过 “模糊测试” 逐步增加输入长度,观察程序崩溃时的输入长度)、找到可覆盖的返回地址位置、判断内存保护机制(如 ASLR、DEP 是否开启,需针对性绕过)。
  3. 构造并调试 exploit

    • 根据漏洞细节构造 exploit:用填充数据覆盖缓冲区,设置返回地址指向 payload,加入适配系统的 payload(如 Linux 的execve("/bin/sh", ...)、Windows 的CreateProcessA启动 cmd)。
    • 若系统开启内存保护(如 ASLR 随机化内存地址),需通过 “信息泄露” 漏洞获取内存地址,或利用 “ROP 链”(Return-Oriented Programming)绕过保护。
  4. 执行 exploit,获取权限

    • 在目标系统中以低权限执行 exploit,触发有漏洞的高权限程序;
    • 若成功,程序会执行 payload,返回高权限 shell(如 Linux 的#提示符、Windows 的 “管理员” cmd)。

首先输入getuid命令查看已经获得的权限

先尝试利用getsystem进行提权

无法提权,那就利用系统相关漏洞进行提权了,首先查询系统相关信息以及补丁

我们可以看到属于windows7 并且只打了两个补丁,我们可以使用最新的ms16-032来尝试提权,对应的补丁编号是KB3139914,基本每一个补丁都对应一个漏洞。

接下来准备提权,先把会话转为后台执行,然后搜索ms16_032

然后使用,设置“session"进行提权操作,这里指定”session"为5,在使用本地提权模块前,必须先建立一个低权限会话(例如通过远程漏洞攻击或其他方式获得的普通用户权限),然后指定该会话 ID,

直接进行exploit或者run即可.

成功,使用getuid查看当前权限

成功提权至system级别的权限。那么除了这种办法,还有其他方法进行权限提升,比如令牌窃取、Hash攻击,接下来我先介绍一下这两个操作,

一、令牌窃取(Token Stealing)

简介:令牌(Token)是操作系统(如 Windows、Linux)用于标识进程或用户权限的凭证。令牌窃取通过劫持或伪造这些凭证,让攻击者的进程继承高权限用户(如管理员、root)的访问权限,无需破解密码即可获得控制权。

核心原理

  1. Windows 令牌机制

    • Windows 使用访问令牌(Access Token)存储用户权限信息(如用户 SID、组成员身份、特权列表)。当用户登录时,系统创建主令牌(Primary Token),进程启动时会继承该令牌。
    • 高权限进程(如系统服务)运行时携带管理员或 SYSTEM 级令牌。
  2. 令牌窃取技术

    • 进程注入:通过漏洞或工具(如 Mimikatz 的sekurlsa::pth)将代码注入高权限进程,获取其令牌。
    • 令牌复制:利用 Windows API(如DuplicateTokenEx)复制高权限进程的令牌,将其附加到攻击者控制的进程中。
    • 会话劫持:针对已登录的高权限用户会话(如 RDP 会话),直接接管其令牌。
  3. 典型场景

    • 攻击者已获得低权限 shell,发现系统中存在高权限进程(如 SYSTEM 权限的服务),通过令牌窃取提升权限。
    • 横向移动:在域环境中,窃取域管理员令牌后访问其他域内主机。

Hash 攻击

简介:Hash 攻击是指通过获取、破解或利用系统存储的密码哈希值(而非明文密码)来获取权限的技术。操作系统通常不存储明文密码,而是存储经过哈希算法处理后的密码哈希值,攻击者通过各种手段获取这些哈希值并尝试还原或直接利用。

核心原理

  1. 密码哈希存储机制

    • Windows:在 SAM 数据库或域控的 NTDS.DIT 文件中存储 NTLM 哈希(如LM:NTLM格式)。
    • Linux:在/etc/shadow文件中存储经盐值(salt)处理的 SHA-512/MD5 哈希。
  2. Hash 攻击的两种方式

    • Offline Cracking(离线破解)

      1. 获取哈希值:通过漏洞(如 LSASS 内存转储)或工具(如 Mimikatz、LaZagne)提取哈希。
      2. 暴力破解:使用字典或掩码攻击(如 Hashcat、John the Ripper)尝试匹配哈希值对应的明文密码。
      3. 彩虹表攻击:预计算大量密码哈希值的对照表,直接查表匹配(适用于无盐值或盐值可预测的场景)。
    • Pass-the-Hash(哈希传递)
      无需破解哈希,直接利用获取的 NTLM 哈希值进行认证。例如:

      • Windows 中使用psexec或 Mimikatz 的sekurlsa::pth,将哈希值注入新会话,通过 SMB/NTLM 协议访问其他主机。
      • 域环境中,利用域管理员的 NTLM 哈希可直接访问域内任意主机(黄金票据攻击的基础)。

我们比较一下四种方法的区别

技术类型依赖条件是否需要破解密码权限来源典型工具
令牌窃取已有低权限会话、高权限进程劫持现存高权限令牌Mimikatz、Incognito
Hash 攻击能获取密码哈希值部分需要(离线破解)破解或利用存储的哈希凭证Mimikatz、Hashcat、psexec
漏洞利用(如溢出)系统 / 软件存在提权漏洞利用漏洞执行高权限代码msfvenom、自定义 exploit
配置错误利用弱密码、SUID 程序、服务权限错可能需要(弱密码)滥用错误配置的高权限资源LinPEAS、WinPEAS

二、令牌窃取 

接下来我们来使用令牌窃取进行权限提升,上面我们已经介绍关于令牌的简介以及原理,通过令牌窃取我们可以通过假冒令牌来进行权限提升,在假冒令牌中我们需要使用Kerberos协议,所以在使用假冒令牌前我们先来介绍kerberos协议。

Kerberos 协议是一种网络身份认证协议,旨在解决非安全网络环境中(如互联网)实体(用户、服务、设备)的身份验证问题,核心目标是在不可信网络中安全地验证 “谁是谁”,并防止窃听、重放攻击、中间人攻击等威胁。它广泛应用于 Windows 域环境、企业内网(如 Hadoop、LDAP)等场景,是现代网络认证的核心协议之一。

Kerberos 协议涉及 3 个核心角色,以及两种关键 “票据”:

1. 核心角色

  • 客户端(Client):需要访问服务的用户或设备(如用户的 PC、应用程序)。
  • 服务端(Service):提供资源的服务(如文件服务器、数据库、邮件服务)。
  • 密钥分发中心(KDC,Key Distribution Center):协议的 “核心信任机构”,负责管理认证逻辑,包含两个子组件:
    • 认证服务器(AS,Authentication Server):验证客户端身份,发放 “票据授予票据(TGT)”;
    • 票据授予服务器(TGS,Ticket Granting Server):基于 TGT 向客户端发放访问特定服务的 “服务票据(ST)”。

2. 关键票据

  • TGT(Ticket Granting Ticket,票据授予票据):由 AS 发放,相当于 “身份凭证的凭证”,客户端用它向 TGS 请求访问具体服务的权限。
  • ST(Service Ticket,服务票据):由 TGS 发放,客户端用它向目标服务证明自己的身份,获取服务访问权限。

认证流程(核心步骤)

Kerberos 的认证过程可简化为 “三次交互”,核心是通过对称加密(避免非对称加密的性能开销)和 “票据” 传递实现安全认证。假设用户 “Alice” 需要访问 “文件服务器(Service)”,流程如下:

步骤 1:客户端向 AS 请求 TGT(获取 “身份凭证的凭证”)

  1. Alice 在客户端输入用户名 / 密码,客户端将密码通过哈希算法(如 AES)生成用户密钥(Client Key)(密钥不会传输,仅在客户端本地保存);
  2. 客户端向 AS 发送 “认证请求”,包含:用户名(Alice)、目标服务类型(如 “需要访问文件服务”)、时间戳(防止重放攻击);
  3. AS 验证 Alice 的身份(查询本地用户数据库,如 Windows 的 SAM 或域控的 NTDS.DIT),生成:
    • 会话密钥(Session Key AS-C):用于后续客户端与 AS/TGS 的加密通信;
    • TGT:包含 Alice 的身份(SID)、会话密钥 AS-C、有效期(通常 8 小时),并用TGS 的密钥(TGS Key) 加密(客户端无法解密 TGT 内容,仅 TGS 可解密);
  4. AS 将 “加密的 TGT” 和 “用 Alice 的密钥加密的会话密钥 AS-C” 返回给客户端;
  5. 客户端用自己的用户密钥解密得到会话密钥 AS-C(若密码错误,解密失败,认证终止)。

步骤 2:客户端向 TGS 请求服务票据 ST(获取 “访问服务的凭证”)

  1. 客户端生成 “票据请求”,包含:
    • 之前获取的 TGT(完整转发,无需解密);
    • 用会话密钥 AS-C 加密的 “客户端信息 + 时间戳”(证明自己拥有会话密钥,即身份合法);
    • 目标服务的名称(如 “文件服务器”);
  2. TGS 收到请求后,用自己的密钥(TGS Key)解密 TGT,得到会话密钥 AS-C;
  3. TGS 用会话密钥 AS-C 解密客户端发送的加密信息,验证时间戳(防重放)和身份合法性;
  4. 验证通过后,TGS 生成:
    • 服务会话密钥(Session Key C-S):用于后续客户端与服务端的加密通信;
    • ST(服务票据):包含 Alice 的身份、服务会话密钥 C-S、有效期,并用目标服务的密钥(Service Key) 加密(仅目标服务可解密);
  5. TGS 将 “加密的 ST” 和 “用会话密钥 AS-C 加密的服务会话密钥 C-S” 返回给客户端;
  6. 客户端用会话密钥 AS-C 解密得到服务会话密钥 C-S。

步骤 3:客户端用 ST 访问服务端(完成最终认证)

  1. 客户端向目标服务(如文件服务器)发送 “服务访问请求”,包含:
    • 之前获取的 ST(完整转发,无需解密);
    • 用服务会话密钥 C-S 加密的 “客户端信息 + 时间戳”;
  2. 服务端用自己的密钥(Service Key)解密 ST,得到服务会话密钥 C-S;
  3. 服务端用服务会话密钥 C-S 解密客户端发送的加密信息,验证时间戳和身份合法性;
  4. 验证通过后,服务端返回 “用服务会话密钥 C-S 加密的确认信息”(双向认证:客户端验证服务端是否拥有正确密钥);
  5. 客户端解密确认信息,验证服务端合法性,最终建立安全连接。

接下来就是通过假冒令牌来进行权限提升,首先通过getuid来查询当前权限,

尝试使用getsystem来进行权限提升,

不出意料,失败了,那么先输入use incognito命令,然后输入list_tokens -u列出可用的token,

输出信息分析一下,

1. Delegation Tokens(委派令牌)

委派令牌允许进程代表用户访问 远程资源(如其他计算机上的共享文件、服务)。你获得的委派令牌包括:

  • HACK\jie123:域用户 jie123 的委派令牌,属于域 HACK。这意味着该用户可以通过此令牌访问域内其他资源。
  • NT AUTHORITY\LOCAL SERVICE:Windows 系统内置的低权限账户,用于运行某些服务。通常具有有限的系统访问权限。
  • NT AUTHORITY\NETWORK SERVICE:比 LOCAL SERVICE 权限略高的内置账户,可访问网络资源,常用于网络服务(如 IIS)。
  • NT AUTHORITY\SYSTEM:Windows 系统中权限最高的账户,拥有完全控制权限,可访问系统的所有资源。

2. Impersonation Tokens(模拟令牌)

模拟令牌允许进程临时 模拟用户身份 访问 本地资源,但不能用于远程访问。你的输出显示 No tokens available,表示当前没有可用的模拟令牌。

那么接下来我们就是在incognito中调用impersonate_token命令假冒System用户来进行攻击,

假设我们需要将权限变成HACK\jie123,

那么我们只需要使用命令,

命令:impersonate_token HACK\\jie123

知识点:在输入HOSTNAME\USERNAME时需要输入两个反斜杠

超时了没有成功,更改其超时时间就行,这里就不再演示,成功了我们就能够在shell命令输入whomai即可.

三、Hash攻击

最后我们使用Hash攻击来进行提权.

1、使用Hashdump来抓取密码

先介绍一下Hashdump,hashdump 是 Metasploit 中用于提取 Windows 系统密码哈希的模块,其原理和作用涉及 Windows 系统安全机制的核心概念,

一、原理:Windows 密码哈希存储机制

1. SAM 数据库

  • Windows 将本地用户账户的密码哈希存储在 %SystemRoot%\System32\config\SAM 文件中(即 Security Account Manager 数据库)。
  • 该文件加密存储,密钥来自系统启动时生成的 SYSTEM 注册表项(%SystemRoot%\System32\config\SYSTEM)。

2. 密码哈希格式

  • Windows 使用 LM Hash 和 NTLM Hash 两种格式存储密码:

    plaintext

    用户名:RID:LM哈希:NTLM哈希
    
  • LM Hash:已过时,易被破解(将密码转为大写、分割为 7 字节处理)。
  • NTLM HashNTLM = MD4(UTF-16LE(明文密码)),安全性较高,但仍可通过彩虹表或暴力破解。

3. hashdump 的工作流程

  • 权限要求:必须以 SYSTEM 权限运行(因 SAM 文件仅 SYSTEM 可访问)。
  • 内存提取
    1. 从内存中读取 lsass.exe 进程(Local Security Authority Subsystem Service),该进程包含解密后的 SAM 数据库。
    2. 提取 SYSTEM 注册表项中的密钥,用于解密 SAM 文件。
    3. 导出用户名和对应的哈希值。

二、作用:密码哈希的价值

1. 横向移动(Lateral Movement)

  • Pass-the-Hash(PtH)攻击:利用提取的 NTLM 哈希直接进行认证,无需破解明文密码。例如:
    meterpreter > psexec_psh -d cmd.exe -u Administrator -H <NTLM哈希> -c
    

2. 离线破解

  • 将哈希导出后,使用工具(如 John the Ripper、Hashcat)尝试破解明文密码:
    hashcat -m 1000 <哈希文件> <字典文件>  # 破解NTLM哈希
    

    在shell提示符下输入hashdump命令,导出目标机SAM数据库中Hash

只能通过SYSTEM权限来运行hashdump命令,不然会失败.

还有另一个模块smart_hashdump的功能更加强大,可以导出域所有用户的Hash,

smart_hashdump 是 Metasploit 中用于提取 Windows 系统密码哈希的高级模块,相比传统的 hashdump,它集成了多种技术以绕过防御机制。以下是其功能和工作流程的详细说明:

核心功能

  1. 多技术融合
    自动尝试多种哈希提取方法(如直接读取 lsass.exe、卷影复制服务、WMI 等),根据目标环境选择最优方案。

  2. 防御绕过

    • 检测并绕过 Credential Guard(需配合 mimikatz 或特殊技术)。
    • 规避杀毒软件对 lsass.exe 的监控。
  3. 域环境支持
    可提取域控制器中的域用户哈希(通过 lsadump::dcsync 等技术)。

  4. 哈希质量提升
    尝试获取更完整的哈希信息(如 Kerberos 票据),支持 Pass-the-Ticket 攻击。

工作流程

阶段 1:环境探测

  1. 权限检查
    验证当前会话是否具有 SYSTEM 或管理员权限(必要条件)。

    meterpreter > getuid  # 需为 NT AUTHORITY\SYSTEM
    
  2. 系统版本识别
    检测目标 Windows 版本(如 Win10/Server 2016+),判断是否启用 Credential Guard

    meterpreter > run post/windows/recon/checkvm  # 检查虚拟化/安全功能
    
  3. 防御机制检测
    扫描内存保护工具(如 Defender、第三方 AV)和安全策略(如 UAC、LSA 保护)。

阶段 2:哈希提取策略选择

根据探测结果选择以下方法之一:

方法 1:直接内存读取(传统方法)

  • 适用场景:无 Credential Guard 且无严格 AV 监控。
  • 流程
    1. 注入 lsass.exe 进程。
    2. 提取内存中的 NTLM/LM 哈希。
    3. 格式化为 用户名:RID:LM哈希:NTLM哈希

方法 2:卷影复制服务(VSS)

  • 适用场景:文件被锁定或直接读取失败。
  • 流程
    1. 使用 VSS 创建 SAM 和 SYSTEM 文件的影子副本。
    2. 从副本中提取加密的哈希和密钥。
    3. 离线解密(需导出文件至攻击机)。

方法 3:WMI 远程执行

  • 适用场景:目标存在 WMI 漏洞或权限允许。
  • 流程
    1. 通过 WMI 远程调用目标系统的命令行工具(如 reg.exe)。
    2. 导出 SAM 和 SYSTEM 注册表项。
    3. 解密并提取哈希。

方法 4:域控哈希提取(针对域环境)

  • 适用场景:当前会话为域管理员权限。
  • 流程
    1. 使用 lsadump::dcsync 从域控制器同步用户哈希。
    2. 获取域用户的 krbtgt 账户哈希(用于 Golden Ticket 攻击)。

与传统 hashdump 的对比

特性smart_hashdumphashdump
自动化程度自动选择最优提取方法单一方法(直接读取 lsass)
防御绕过能力支持 Credential Guard 检测与绕过易被 Credential Guard 阻断
域环境支持支持域控哈希提取(dcsync)仅支持本地账户
错误恢复机制失败后自动尝试其他方法失败即终止
输出信息包含 Kerberos 票据等高级凭证仅输出 NTLM/LM 哈希

那么使用smart_hash_dump模块

能够看出抓取的信息更加详细,对于抓取的Hash可以使用暴力或者彩虹表进行破解,推荐一个网站md5在线解密破解,md5解密加密 

2、使用Quarks PwDump抓取密码

Quarks PwDump 是一款用于从 Windows 系统中提取密码哈希的工具,常用于渗透测试和安全审计。下面说一下原理以及如何使用,

一、工作原理

1. 密码哈希存储机制

  • Windows 将本地用户密码以哈希形式存储在 SAM 数据库%SystemRoot%\System32\config\SAM)中。
  • 域环境中,用户密码哈希存储在 Active Directory 中,由域控制器管理。

2. Quarks PwDump 的核心技术

  • 内存提取:从 lsass.exe 进程(Local Security Authority Subsystem Service)中提取明文密码或 NTLM/LM 哈希。
  • 解密密钥:从 SYSTEM 注册表项获取解密 SAM 数据库所需的密钥。
  • 多版本兼容:支持 Windows XP 至 Windows 10/Server 2019 等多个版本。

二、使用流程

步骤 1:获取管理员权限

Quarks PwDump 需要管理员或 SYSTEM 权限才能运行

步骤 2:上传并执行 Quarks PwDump

将工具上传至目标系统并执行:

# 上传 QuarksPwDump.exe 到目标系统
# 执行工具(-o 选项指定输出格式)
QuarksPwDump.exe -o file.txt

步骤 3:获取输出结果

工具会生成包含密码哈希的文件(如 file.txt),格式如下:

RID 用户名  LM哈希  NTLM哈希
500 Administrator aad3b435b51404eeaad3b435b51404ee 31d6cfe0d16ae931b73c59d7e0c089c
1000 user1 aad3b435b51404eeaad3b435b51404ee 202cb962ac59075b964b07152d234b70

步骤 4:离线破解哈希

将哈希导出到攻击机,使用工具(如 Hashcat)破解:

# 破解 NTLM 哈希
hashcat -m 1000 hashes.txt /path/to/wordlist.txt

三、高级用法

1. 静默模式

在后台执行并隐藏窗口:

QuarksPwDump.exe -s -o file.txt

2. 导出域用户哈希

若当前用户有域管理员权限,可导出域控制器中的用户哈希:

QuarksPwDump.exe -d -o domain_hashes.txt

3. 与 Metasploit 集成

在 Meterpreter 会话中执行 Quarks PwDump:

meterpreter > upload QuarksPwDump.exe C:\\temp\\
meterpreter > shell
C:\> cd C:\temp\
C:\temp> QuarksPwDump.exe -o hashes.txt

3、使用windwos credentials Editor抓取密码

Windows Credentials Editor (WCE) 是一款用于从 Windows 系统中提取明文密码和哈希的工具,尤其擅长绕过内存保护机制。以下是其原理和使用流程的详细说明:

一、工作原理

1. 密码存储机制

  • Windows 将用户密码以加密形式存储在内存中的 lsass.exe 进程(Local Security Authority Subsystem Service)。
  • 域环境中,Kerberos 票据和 NTLM 哈希也存储在该进程中。

2. WCE 的核心技术

  • 内存注入:通过 DLL 注入技术访问 lsass.exe 的内存空间。
  • 解密算法:实现 Windows 密码加密算法的逆向工程,提取明文密码或哈希。
  • 多版本兼容:支持从 Windows XP 到 Windows 11/Server 2022 等多个版本。

二、使用流程

步骤 1:获取管理员权限

WCE 需要管理员或 SYSTEM 权限才能运行:

# 在目标系统上以管理员身份启动命令提示符

步骤 2:上传并执行 WCE

将工具上传至目标系统并执行:

# 上传 wce.exe 到目标系统
# 执行工具(-w 选项提取明文密码,-h 提取哈希)
wce.exe -w  # 提取明文密码
wce.exe -h  # 提取 NTLM/LM 哈希

步骤 3:获取输出结果

工具会直接在命令行输出结果,格式如下:

[0;2223;000003e7;Administrator;770c3a82b319c9a4a8a08308736b360;]
[0;1000;000003e9;user1;password123;]
  • 第一列为会话 ID,第二列为 RID,第三列为用户名,第四列为明文密码或哈希。

步骤 4:后处理

将结果保存用于后续攻击(如 Pass-the-Hash):

wce.exe -w > passwords.txt  # 保存明文密码到文件

4、使用Mimikatz抓取密码

着重讲这个工具,Mimikatz 是一款强大的 Windows 安全工具,专门用于从内存中提取明文密码、哈希值、Kerberos 票据等敏感信息,此工具已经作为脚本集成在msfconsole中,不需要上传软件到目标主机上了。

我们需要加载mimikatz

命令:load mimikatz

 Meterpreter 中的 Mimikatz 扩展已被新的Kiwi 扩展取代,并且 Kiwi 扩展已经加载到当前会话中。

那就直接使用help kiwi,Kiwi(即 Mimikatz for Metasploit)是一款强大的 Windows 凭证提取工具,集成于 Metasploit 框架中。其核心原理与 Mimikatz 一致,但通过 Meterpreter 会话提供更便捷的交互方式,原理是一致的

使用命令抓取hash

kiwi_cmd sekurlsa::logonpasswords

使用命令抓取票据

kiwi_cmd kerberos::list /export

还有其他功能,这里就不再演示。

总结,以上就是通过三种方法来进行权限提升,还有一种方法这里不再讲解,下一步我们进行横向移动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值