首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在 WCF 中跨域使用 kerberos 委派并传递 ClientCredentials

在 WCF 中跨域使用 Kerberos 委派并传递 ClientCredentials 的方法如下:

  1. 首先,需要在服务端和客户端的配置文件中启用 Kerberos 委派。

在服务端的配置文件中,添加以下代码:

代码语言:csharp
复制
<bindings>
  <wsHttpBinding>
   <binding name="KerberosBinding">
     <security mode="Transport">
       <transport clientCredentialType="Windows" />
      </security>
    </binding>
  </wsHttpBinding>
</bindings>

在客户端的配置文件中,添加以下代码:

代码语言:csharp
复制
<bindings>
  <wsHttpBinding>
   <binding name="KerberosBinding">
     <security mode="Transport">
       <transport clientCredentialType="Windows" />
      </security>
    </binding>
  </wsHttpBinding>
</bindings>
  1. 在服务端的配置文件中,添加以下代码以启用 Kerberos 委派: <authentication mode="Windows" /> <identity impersonate="true" /> </system.web>using System.ServiceModel; // 创建客户端通道 ChannelFactory<IService> factory = new ChannelFactory<IService>("KerberosBinding"); // 创建客户端代理 IService serviceProxy = factory.CreateChannel(); // 设置客户端凭据 ((ClientBase<IService>)serviceProxy).ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Delegation; // 调用服务方法 serviceProxy.Method();using System.ServiceModel; // 获取客户端凭据 WindowsIdentity clientIdentity = ServiceSecurityContext.Current.WindowsIdentity; // 验证客户端凭据 if (clientIdentity.ImpersonationLevel == TokenImpersonationLevel.Delegation) { // 执行服务方法 }
  2. 在客户端的代码中,添加以下代码以传递 ClientCredentials:
  3. 在服务端的代码中,添加以下代码以接收 ClientCredentials:
  4. 最后,需要在服务端和客户端的配置文件中指定服务的地址和绑定。

在服务端的配置文件中,添加以下代码:

代码语言:csharp<services>
复制
 <service name="Service">
   <endpoint address="http://localhost:8000/Service" binding="wsHttpBinding" bindingConfiguration="KerberosBinding" contract="IService" />
  </service>
</services>

在客户端的配置文件中,添加以下代码:

代码语言:csharp<client>
复制
 <endpoint address="http://localhost:8000/Service" binding="wsHttpBinding" bindingConfiguration="KerberosBinding" contract="IService" name="KerberosBinding" />
</client>

以上就是在 WCF 中跨域使用 Kerberos 委派并传递 ClientCredentials 的方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

谈谈WCF的客户端认证

Windows凭证WCF通过类型WindowsClientCredential表示。...因此,如果某个String对象含有诸如密码、信用卡号码或个人数据等敏感信息,则因为应用程序无法从计算机内存删除这些数据,便存在信息使用后可能被泄漏的危险。...我们表示Windows凭证的WindowsClientCredential对象作为只读属性Windows定义ClientCredentials,相关类型的定义如下所示。...SSPI是面向接口的安全编程成为可能,这样的好处显而易见:基于不同SSP的安全环境,你的程序都能兼容。 Windows提供了三种典型的SSP:Kerberos、NTLMSSP和SPNEGO。...不论从安全性还是互操作性(实际上Kerberos本身就是一种标准),Kerberos都要优于NTLM,但是Keberos仅限于基于AD的环境中使用

99570

使用WCF进行平台开发之二(IIS托管WCF服务使用php平台调用)1.系统必备2.IIS托管WCF服务3.使用PHP调用托管IISWCF服务

上一篇使用控制台托管了WCF服务,但是如果想从PHP和java平台调用,必须将其托管到IIS(并不是必须的,还是有其他的方式的 比如windows azure) 1.系统必备      首先,必须打开...2.IIS托管WCF服务      IIS默认网站添加应用程序emp,并在高级设置,设置应用程序池为“ASP.NET v4.0”,设置默认网站右键--编辑版定,http类型编辑IP地址和主机名...新建的虚拟目录对应的实际目录,添加web.config文件,配置wcf服务和终结点,打开元数据公开,然而,因为这里不是使用常用的svc文件托管的服务,所以需要serviceActivations节点配置服务...3.使用PHP调用托管IISWCF服务 PHP服务器打开浏览器,浏览http://192.168.11.1/emp/EmployeeManagement.svc测试服务是否托管正常。 ?...出现以上页面,证明IIS托管正常,现在,可以使用php开发程序调用此服务啦。

2K70

利用资源约束委派进行的提权攻击分析

已有较多分析无约束委派攻击利用的文章,Windows的官方博客也建议用户删除使用Kerberos无约束委派的账户。 本文在此不再做详细解释。...S4U2Self 然而,传统的约束委派仍然存在一些缺点,如无法进行委派。微软Windows Server 2012引入了基于资源的约束委派,相对于传统的约束委派,主要有三处改进: 1....本例我们便是使用Kerberos身份连接主机进行Powershell远程管理,而又希望以当前Powershell上的身份与控进行认证连接以便获得实质上的管理员权限。...微软博客中提供了一些Powershell 远程管理安全地解决Kerberos Double Hop问题的方案。其中不使用用户明文密码的只有前文中介绍的三种委派。...检测 活动目录检查配置了基于资源的约束委派的服务器,检查其可委派对象。目录服务对象修改事件(Event 5136)可检测到基于资源的约束委派配置变化(需要开启审核目录服务更改)。

2.7K20

干货 | 全网最详细的Kerberos协议及其漏洞

AS-REQ阶段产生的攻击方式 1.HASH传递 AS-REQ阶段,是用用户密码Hash加密的Authenticator,所以也就造成了hash传递 ?...域中,只有 服务账号 和 主机账号 才具有委派属性 主机账号就是AD活动目录 Computers 的计算机,也可以称为机器账号(一个普通用户默认最多可以创建十个主机账号)。...基于资源的约束性委派 为了使用户/资源更加独立,微软Windows Server 2012引入了基于资源的约束性委派。...基于资源的约束性委派和约束性委派差别 委派的权限授予给了拥有资源的后端(B),而不再是前端(A) 约束性委派不能进行委派,基于资源的约束性委派可以和林 不再需要管理员权限设置委派,只需拥有计算机对象上编辑...2.约束性委派流程 前提:服务A上配置到服务B约束性委派(管理员才有权限配置) 1.用户访问服务A,于是向控进行kerberos认证,控返回ST1服务票据给用户,用户使用此服务票据访问服务A

4.6K40

内网渗透横向移动之委派攻击

**欢迎关注我的微信公众号《壳之魂》** 委派一般出现在环境。它是一种机制,kerberos认证的时候会涉及到。不正确的委派的配置,可能使攻击者达到提权的目的。...其实还有第三种委派,叫做基于资源的委派 为了使用户/资源更加独立,微软Windows Server 2012引入了基于资源的约束性委派。...委派的权限授予给了拥有资源的后端(B),而不再是前端(A) 约束性委派不能进行委派,基于资源的约束性委派可以和林 不再需要管理员权限设置委派,只需拥有计算机对象上编辑”msD S-AllowedToActOnBehalfOfOtherIdentity...基于资源的约束委派只能在运⾏ Windows Server 2012 和 Windows Server 2012 R2 及以上的域控制器上配置,但资源的约束委派可以森林和。...但是,我测试的过程,如上面的截图所示,使用的是windows server 2012,执行完操作后,却无法dir控的c盘,使用miikatz查看当前内存的票据,发现确实已经使用了新的票据且没有过期

1.1K60

服务凭证(Service Credential)与服务身份(Service Identity)

因此,只有基于(Domain)的网络环境,基于Windows认证的服务认证才是可行的。而在工作组(Work Group)环境,我们推荐使用基于证书的服务认证。...关于具体对服务证书认证模式的设置在前面的实例演示(《TLS/SSLWCF的应用[SSL over TCP]》和《TLS/SSLWCF的应用[HTTPS]》)已经有过介绍了。...WCF的SPN和UPN的格式如下。...由于IIS(IIS 6或之后版本)Network Servier帐号下执行,所以默认会使用SPN作为服务身份标识(SPN的Jinnan-Win7-X64为机器名称)。...如果服务凭证与客户端持有的服务身份相一致,则认证成功,开始后续的消息交换,否则双方之间的交互到此为止。 默认的情况下,正进行服务认证客户端和服务端有一个“协商(Negotiation)”的过程。

1.1K80

非约束委派攻击

简介 委派 域中如果出现A使用Kerberos身份验证访问域中的服务B,而B再利用A的身份去请求域中的服务C,这个过程就可以理解为委派 例: User访问主机S2上的HTTP服务,此时要想完整的使用...非约束委派 非约束委派Kerberos实现时,User会将自KDC拿到的TGT发送给访问的服务机器Service1,Service1再通过拿到手的TGT票据去申请访问其他内服务,Service1拿到用户的...8.service1使用用户的TGT2使用KRB_TGS_REQ发送给KDC,以用户的名义申请可以访问service2的票据. 9.KDCKRB_TGS_REP消息返回service2到service1...用户的非约束委派攻击 倘若发现存在非约束委派的用户,这时,我们可以内所有可以登陆此用户的内机器上尝试非约束委派攻击,获取其缓存的服务账号票据,期望获得控的票据。...可以看到转储成功,已拿到管用户的tgt票据,接下来利用ptt hash传递,获得管权限。

33820

内网学习笔记 | 30、安全(完结)

0、前言 常见的攻击方法有以下几种: i、利用常规的渗透方法,比如 Web 漏洞 ii、利用已知散列值进行哈希传递或票据传递,因为有可能内的密码是通用的 iii、利用信任关系 这里主要看第三种:...信任关系可分为单向信任和双向信任。单向信任即 A 信任 B,但 B 不信任 A,双向信任同理。创建子时,系统会在新的子和父之间自动创建双向可传递信任关系。... Windows 操作系统,只有 Domain Admins 组的用户可以管理信任关系;Enterprise Admins 组(仅出现在林的根域中)的成员对林中所有拥有完全控制权限,默认情况下...service:krbtgt /target:teamssix.com /ticket:subdc_administrator.kirbi" exit 利用刚刚制作的信任票据获取目标域中目标服务的 TGS 保存到文件...MS-RPRN 获取信任林权限 如果已经获取了林中某个控权限,或者配置了无约束委派的任何服务器的权限,那么就可以使用 MS RPRN 的 RpcRemoteFindPrinterChangeNotification

89110

渗透之委派攻击详解(非约束委派约束委派资源委派

约束委派攻击原理及利用 由于非约束委派的不安全性(配置了非约束委派的机器 LSASS 缓存了用户的 TGT 票据可模拟用户去访问域中任意服务),微软 Windows Server 2003 引入了约束委派...kerberos::purge # 查看内存的票据 kerberos::list 1、使用 Adfind 查询约束委派的用户: AdFind.exe -h 10.10.10.8 -u redteam-iis...在内网渗透的信息搜集中,若我们拿到了一个约束委派的用户账号和密码后,不妨使用约束委派攻击,过程需注意文章里工具免杀问题。...基于资源的约束性委派 (RBCD:Resource Based Constrained Delegation):为了使用户/资源更加独立,微软Windows Server 2012引入了基于资源的约束性委派...基于资源的约束委派只能在运行 Windows Server 2012 和 Windows Server 2012 R2 及以上的域控制器上配置,但资源的约束委派可以森林和

8.9K92

红队笔记 - 横向移动

令牌可以从其他有会话的用户/机器上运行的进程冒充。...在这种技术,我们不是直接传递哈希值(另一种被称为 "传递哈希值 "的技术),而是使用一个账户的NTLM哈希值来请求一个有效的Kerberost票(TGT)。...如果我们成功执行此操作,我们可以 DCSync 域控制器(见下文)以完全破坏当前具有无约束委派的服务器上,使用 Rubeus 监视新票据 ....然后,使用此信任密钥和 SID,使用 Mimikatz 伪造间 TGT,将目标的企业管理员组的 SID 添加到我们的“SID 历史记录”。...然后,使用这个哈希,使用 Mimikatz 伪造一个领域的 TGT,就像之前的方法一样。 这样做需要当前的 SID 作为/sid参数,目标的 SID 作为/sids参数的一部分。

2K10

渗透之委派攻击全集

服务账号(Service Account),内用户的一种类型,服务器运行服务时所用的账号,将服务运行起来加入。...Delegation, RBCD) 非约束委派 通俗来讲就是 : 域中如果出现A使用Kerberos身份验证访问域中的服务B,而B再利用A的身份去请求域中的服务C,这个过程就可以理解为委派 一个经典例子...很少遇到这种情况 约束性委派 由于非约束委派的不安全性,微软windows2003发布了约束委派的功能,如下所示 约束委派kerberos,用户同样还是会将TGT发送给相关受委派的服务,但是由于...设置相关的约束委派的实现的时候不再需要管理员自己去设置相关约束委派的属性,而操作权落在了当前登录的机器或者用户的手中 基于资源的约束性委派的优势 委派的权限授予给了拥有资源的后端,而不再是前端 约束性委派不能进行委派...,基于资源的约束性委派可以和林 不再需要管理员权限设置委派,只需拥有计算机对象上编辑msDS-AllowedToActOnBehaffOtherldentity属性权限也就是将计算机加入用户和机器自身拥有权限

82610

基于资源的约束委派

基于资源的约束委派利用 基于资源的约束委派,(Resource-based constrained delegation),与前文提到的约束委派不同,它在信任的传递关系上是不同的,这也是它工作方向相反的一个因素...约束委派,账户A到账户B的约束委派账户A的 msDS-AllowedToDelegateTo 属性配置,并且定义了A到B的传出信任,而在基于资源的约束委派当中,委派账户B的msDS-AllowedToActOnBehalfOfOtherIdentity...属性配置,定义了A到B的传入信任。...如图为Elad师傅的文章中所得的导图,通过此图,我们可以看出基于资源的约束委派与传统约束委派的工作方式有何不同。...: 环境,高权限用户如果没有特殊需求的话,考虑到安全性,一般会被设置为不可委派,或是加入受保护组。

87010

Kerberos Bronze Bit攻击(CVE-2020-17049)

或者攻击设置了信任该计算机来委派指定的服务器选项===> 仅使用Kerberos 大致的攻击思路如下: 首先攻击者获取了内的某台机器作为立足点。...此信任关系可以是以下其中一种:把DM1配置为对DM2进行约束委派。也就是说,DM2DM1的“ AllowedToDelegateTo”列表。把DM2配置为接受DM1基于资源的约束委派。...接着攻击者通过CVE-2020-17049漏洞来获取DM2的服务票据 攻击者利用此漏洞充当Service1,获得Kerberos服务票证作为Service2的目标用户。...绕过限制准备好服务票据后,攻击者可以模拟目标用户和Service2进行交互 实验环境配置: :one.com 控:dc,IP:192.168.8.155,用户:administrator 内机器...1:dm1,IP:192.168.8.158,用户:user0x1 内机器2:dm2,IP:192.168.8.156,用户:user0x2 Example Attack #1 一开始域控制器对dm1

64310

红队技巧-渗透的协议利用

,mimikatz无法从内存抓取 2.用户枚举 2.1 原理分析 域外也能和进行交互的原因,是利用了kerberos协议认证的AS-REQ阶段。...这时候可以使用SPN扫描,因为域中如果服务使用的是kerberos认证。那么就需要在对应用户下面注册SPN,因此通过SPN扫描可以发现用户对应的服务!...时会将user的TGT发送给service1保存在内存已备下次重用,然后service1就可以利用这张TGT以user的身份去访问内的任何服务(任何服务是指user能够访问的服务)了 9.2 非约束委派信息搜集...服务账号的区分 文章说到的:(1)注:Windows系统,只有服务账号和主机账号的属性才有委派功能,普通用户默认是没有的 (2) 一个域中只有服务账号才有委派功能,使用如下命令将ghtwf01设为服务账号...而1则将能够委派的账号分为服务账号和主机账号。但是加入的主机账号已经自动绑定了SPN服务成为了2的服务账号。

1.5K20

红队技巧-渗透的协议利用

,mimikatz无法从内存抓取 2.用户枚举 2.1 原理分析 域外也能和进行交互的原因,是利用了kerberos协议认证的AS-REQ阶段。...这时候可以使用SPN扫描,因为域中如果服务使用的是kerberos认证。那么就需要在对应用户下面注册SPN,因此通过SPN扫描可以发现用户对应的服务!...时会将user的TGT发送给service1保存在内存已备下次重用,然后service1就可以利用这张TGT以user的身份去访问内的任何服务(任何服务是指user能够访问的服务)了 9.2 非约束委派信息搜集...服务账号的区分 文章说到的:(1)注:Windows系统,只有服务账号和主机账号的属性才有委派功能,普通用户默认是没有的 (2) 一个域中只有服务账号才有委派功能,使用如下命令将ghtwf01设为服务账号...而1则将能够委派的账号分为服务账号和主机账号。但是加入的主机账号已经自动绑定了SPN服务成为了2的服务账号。

87820

CVE-2020-17049:Kerberos实际利用

在这种情况下,我们将看到利用该漏洞的方法,我们可以绕过“信任此用户以仅委派给指定服务–仅使用Kerberos”保护,冒充受委派保护的用户。我们将从一些初始环境设置开始。...如果在Active Directory GUI设置了此配置,则它将类似于以下内容: ? 仍然DC上时,还要更新User2帐户,以防止其受委派。可以使用“敏感帐户,不能委托”属性配置该帐户。...我们拥有User2Service2上的所有权限。我们将使用Mark Russinovich的PSExecService2服务器上获取PowerShell会话,运行一些命令。...我们已经翻转滥用了Kerberos委派,以通过模仿受保护的用户来提升我们的特权损害其他服务。 示例攻击#2 让我们探索具有不同起始条件的另一条攻击路径。...用户不一定需要是管理员。 ? 执行攻击 退出域控制器,并以User1身份登录Service1服务器。像以前一样,这模拟了环境的立足点(“攻击路径”的步骤1 )。

1.3K30

横向移动与控权限维持方法总汇

因为我们AS_REQ时设置include-PAC为false,TGT里就不会包含PAC了。那么我们TGS_REQ时如何把PAC传递给KDC?只需要把PAC放入req-body即可。...然后我们kerberos::list里可以看到我们想要的ST 3.powershell 越来越发现powershell渗透的重要性了 输入以下指令,即可完成HASH获取 Add-Type -AssemblyName...它的原理是不开启kerberos预身份验证的前提下,获得其他用户的AS_RES,破解加密session key 的 client hash。...委派分为三种:非约束性委派,约束性委派,基于资源的约束性委派 非约束性委派 非约束性委派的原理是:用户想访问服务A,于是向KDC提交认证,KDC发现A是非约束性委派,于是会把TGT放在ST中一给用户...但是 :利用Windows打印系统远程协议(MS-RPRN)的一种旧的但是默认启用的方法,该方法用户可以使用MS-RPRN RpcRemoteFindFirstPrinterChangeNotification

1.5K20

x.509证书WCF的应用(WebIIS篇)

在上一篇"x.509证书WCF的应用(CS篇)"里,我们知道了如何在应用程序,利用x.509证书来验证WCF的消息安全(没看过的朋友建议先看下,地址https://cloud.tencent.com...里始终被认为不信任的证书(也许是我makecert的参数不对),导致IE7里测试SSL时,总是显示"证书错误,导航已阻止"之类,所以本例,我们换一种方式,用windows2003自带的证书服务来申请...--下面这一行,测试过程,发现始终不起作用,只能放弃,转而在客户端的配置中用findValue="ec0aa48043eab64714c92a0ff7fa0365e1b594af" x509FindType...欢迎转载,转载请注明来自cnblogs"菩提树下的杨过" 编后语: 本文演示了如何将WCF HostIIS对服务端和客户端都采用x.509证书方式来验证,当然这种方式要求每个客户端机器上都必须安装服务端颁发的证书...互联网环境下,这可能会给客户端的使用带来麻烦,这时可以采用服务端用x.509方式验证,客户端用经典的用户名/密码的方式来验证,详情可参见http://www.cnblogs.com/fineboy/archive

1.1K50
领券