跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

Windows通信基础开发指南2——禁用元数据发布


轩辕三官

推荐的帖子

0x00 前言

本文将要介绍在禁用元数据发布(墨西哥)时WCF开发的相关内容,给出文章《Abusing Insecure Windows Communication Foundation (WCF) Endpoints》 的完整代码示例。

0x01 简介

本文将要介绍以下内容:

禁用墨西哥实现WCF

文章完整代码示例

0x02 禁用MEX实现WCF

禁用墨西哥时,需要根据服务端的代码手动编写客户端代码

本节采用命令行实现WCF的方式作为示例

开发工具:Visual Studio 2015

1.服务端编写

(1)新建项目

选择控制台应用程序,名称为NBTServer

(2)新建WCF服务

选择添加-新项目.选择WCF服务,名称为服务1.cs

(3)修改service1.cs

添加道尔克的实现代码,代码示例:

命名空间NTBServer

{

公共类服务1 : IService1

{

public void DoWork()

{

系统诊断。过程。开始('计算。exe’);

}

}

}

(4)修改Program.cs

添加引用系统。服务模型

添加启动代码,代码示例:

使用系统;

使用系统100 . service model

命名空间basicHttpBindingWCFServer

{

班级计划

{

静态void Main(string[] args)

{

服务主机Host=新的服务主机(服务1的类型);

主持人. open();

控制台WriteLine(主机。描述。终结点[0]。地址);

控制台. ReadLine();

主持人. close();

}

}

}

(5)修改App.config

?可扩展标记语言版本='1.0 '编码='utf-8 '?

(6)编译运行

命令行输出地址:net。TCP://localhost/vulnservice/runme

(7)测试

此时无法使用WcfTestClient进行测试

2.客户端编写

(1)新建项目

选择控制台应用程序,名称为NBT客户端

(2)修改Program.cs

添加引用系统。服务模型

代码示例:

使用系统100 . service model

命名空间ntb客户端

{

[服务合同]

公共接口IService1

{

[运营合同]

void DoWork();

}

班级计划

{

静态void Main(string[] args)

{

字符串地址=$ ' net。TCP://localhost/vulnservice/runme ';

通道工厂factory=新通道工厂(new NetTcpBinding(),address);

IService1代理=工厂创建通道();

代理DoWork();

工厂. close();

}

}

}

0x03 文章完整代码示例

代码示例:

https://github。com/ver sprite/research/tree/master/projects/wcf/VulnWCFService

相关介绍:

https://瓶雪碧。com/blog/security-research/abiling-unsecured-wcf-endpoints/

代码示例实现了WCF的服务端,但是缺少安装部分和客户端的编写,这里给出完整示例

1.服务端编写

(1)下载代码

https://github。com/ver sprite/research/tree/master/projects/wcf/VulnWCFService

(2)新建Windows Service

选择添加-新项目.选择Windows操作系统服务,名称为服务1.cs

(3)设置服务信息

选中Service1.cs,右键-添加安装程序

项目中自动创建项目安装程序。铯文件,该文件会添加俩个组件serviceProcessInstaller1和服务安装者一

选中serviceProcessInstaller1组件,查看属性,设置账户为本地系统

选中服务安装者一组件,查看属性,设置服务名称为VulService1

(4)启动服务

编译生成VulnWCFService.exe

安装服务:

C:\Windows\Microsoft .VulnWCFService.exe安装程序

启动服务:

南卡罗来纳州启动VulService1

补充:卸载服务

C:\Windows\Microsoft .WCFService.exe

2.客户端编写

(1)新建项目

选择控制台应用程序,名称为VulnWCFClient

(2)修改Program.cs

添加引用系统。服务模型

代码示例:

使用系统100 . service model

命名空间VulnWCFClient

{

[服务合同]

公共接口IVulnService

{

[运营合同]

void RunMe(字符串str);

}

班级计划

{

静态void Main(string[] args)

{

字符串地址=$ ' net。pipe://localhost/vulnservice/runme ';

通道工厂factory=新通道工厂(新NetNamedPipeBinding(),地址);

IVulnService代理=工厂创建通道();

代理RunMe(' calc。exe’);

工厂. close();

}

}

}

(3)编译运行

编译VulnWCFClient,运行后弹出系统权限计算器,测试成功。

0x04 小结

介绍了元数据发布(MEX)禁用时WCF开发的相关内容,并给出了《Abusing Insecure Windows Communication Foundation (WCF) Endpoints》号文章的完整代码示例,便于WCF相关知识的研究。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...