首页
学习
活动
专区
工具
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的域环境中使用。

1.1K70

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

上一篇中,使用控制台托管了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调用托管在IIS中的WCF服务 在PHP服务器中打开浏览器,并浏览http://192.168.11.1/emp/EmployeeManagement.svc测试服务是否托管正常。 ?...出现以上页面,证明在IIS中托管正常,现在,可以使用php开发程序调用此服务啦。

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

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

    2.9K20

    干货 | 全网最详细的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

    5.2K41

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

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

    1.2K80

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

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

    1.3K60

    非约束委派攻击

    简介 委派 在域中如果出现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.KDC在KRB_TGS_REP消息中返回service2到service1...域用户的非约束委派攻击 倘若发现存在非约束委派的用户,这时,我们可以在域内所有可以登陆此用户的域内机器上尝试非约束委派攻击,获取其缓存的服务账号票据,并期望获得域控的票据。...可以看到转储成功,已拿到域管用户的tgt票据,接下来利用ptt hash传递,获得域管权限。

    36920

    内网学习笔记 | 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

    97710

    【内网安全】横向移动&非约束委派&约束委派&资源约束委派&数据库攻防

    ,并限制该帐户只能将授权限委派给特定的服务。...这意味着该帐户无法将委派权限向下传递给其他服务,因此更加安全。 总的来说,如果需要在Windows环境中使用委派功能,建议使用约束委派而不是非约束委派,以提高系统和数据的安全性。...TGT存储在lsass进程中以备下次重用。...而"sekurlsa::tickets purge"是Mimikatz工具中的一个命令,用于清空当前会话中缓存的Kerberos票据。...约束委派(不需要与与域控建立连接) 原理: 由于非约束委派的不安全性,微软在windows server 2003中引入了约束委派,对Kerberos协议进行了拓展, 引入了SService for

    23310

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

    约束委派攻击原理及利用 由于非约束委派的不安全性(配置了非约束委派的机器在 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 及以上的域控制器上配置,但资源的约束委派可以跨域森林和跨域。

    10.8K93

    红队笔记 - 横向移动

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

    2.1K10

    域渗透之委派攻击全集

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

    91910

    基于资源的约束委派

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

    1.1K10

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

    或者攻击设置了信任该计算机来委派指定的服务器选项===> 仅使用Kerberos 大致的攻击思路如下: 首先攻击者获取了在域内的某台机器作为立足点。...此信任关系可以是以下其中一种:把DM1配置为对DM2进行约束委派。也就是说,DM2在DM1的“ 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

    71810

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

    ,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.6K20

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

    ,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中的服务账号。

    95020

    CVE-2020-17049:Kerberos实际利用

    在这种情况下,我们将看到利用该漏洞的方法,我们可以绕过“信任此用户以仅委派给指定服务–仅使用Kerberos”保护,并冒充受委派保护的用户。我们将从一些初始环境设置开始。...如果在Active Directory GUI中设置了此配置,则它将类似于以下内容: ? 仍然在DC上时,还要更新User2帐户,以防止其受委派。可以使用“敏感帐户,不能委托”属性配置该帐户。...我们拥有User2在Service2上的所有权限。我们将使用Mark Russinovich的PSExec在Service2服务器上获取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.7K20

    什么是内网渗透委派攻击?

    1.2委派的分类:委派攻击分为三种攻击手段分别是非约束委派 攻击、约束委派攻击、基于资源委派攻击非约束委派攻击:在域内只有主机账号和服务账号才有委派属性 主机账号:活动目录中的computers组内的计算机...2.2 非约束委派大致流程简单来说:user访问serverA,于是向DC发起认证,DC会检查serverA的机器账号的属性,如果是非约束委派的话,会把用户的TGT放在ST票据中并一起发送给serverA...这样serverA在验证ST票据的同时也获取到了用户的TGT,并把TGT储存在自己的lsass进程中以备下次重用,从而serverA就可以使用这个TGT,来模拟这个user访问任何服务。...制作成功后 导入票据访问域控四、约束委派4.1 约束委派原理由于非约束委派的不安全性,微软在windows server 2003中引入了约束委派,对Kerberos协议进行了拓展,引入了S4U,其中S4U...五、基于资源的约束委派5.1 基于资源的约束委派原理基于资源的约束委派(RBCD)是在Windows Server 2012中新加入的功能,与传统的约束委派相比,它不再需要域管理员权限去设置相关属性。

    16521
    领券