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

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

    TheHackerWorld官方

渗透测试中的ClickOnce


HACK7YD

推荐的帖子

0x00 前言

最近《Mimikatz Delivery via ClickOnce with URL Parameters》的Casey Smith@subTee介绍了如何在ClickOnce程序中输入URL参数,实现了执行mimikatz的技巧,并分享了一个POC。

我对此很感兴趣,于是做了进一步的学习和研究。

本文将记录学习心得,介绍ClickOnce的使用方法,总结基于ClickOnce的攻击技巧和防御措施。

博客地址:

http://subtox 10 . blogspot . com/2016/12/mimikatz-delivery-via-clickonce-with . html

POC地址:

https://gist . github . com/subTee/BD 446 efeacf 656 c 67 F5 c 17 ca 0787 f15b

0x01 简介

ClickOnce:

ClickOnce是一种部署技术,可用于创建自我更新的基于Windows的应用程序,这些应用程序可以在最少的用户交互下安装和运行。

ClickOnce主要解决程序部署中的几个问题:

更新应用程序的困难

使用Microsoft Windows Installer部署,每次更新应用程序时,用户都必须重新安装整个应用程序;使用ClickOnce部署,您可以自动提供更新。将只下载应用程序的更改部分,然后从新的并行文件夹中重新安装完整和更新的应用程序。

对用户计算机的影响

使用Windows Installer部署时,应用程序通常依赖于共享组件,这可能会导致版本冲突。使用ClickOnce部署时,每个应用程序都是独立的,不会干扰其他应用程序。

安全机构

Windows Installer部署需要管理员权限,并且只允许受限用户安装;ClickOnce部署允许非管理用户安装应用程序,并仅授予应用程序所需的代码访问安全权限。

ClickOnce部署的简单优势:

简化安装和更新应用程序的过程。

它可以自动更新。

支持从Web更新。

更安全的是,只向应用程序授予必要的权限,通常是Intranet区域。

详情请参考以下链接:

https://msdn . Microsoft . com/zh-cn/cn/library/142 dbbz 4(v=vs . 90)。aspx

ClickOnce安装成功后,安装程序将保存在开始菜单下。

接下来介绍如何开发ClickOnce程序并发布到网站上。

0x02 使用ClickOnce的常规方法

1、配置Web服务器

测试系统:Windows Server 2008 R2

1.安装Web服务器(IIS)

在服务器管理器-角色-添加角色-选择Web服务器(IIS)中安装它

在开始-管理工具Internet信息服务(IIS)管理器中打开IIS,单击浏览网站,查看是否正常显示。

使用http访问Windows Server 2008 Web服务器的IP地址,看是否正常显示。

如果以上测试通过,则IIS已经成功安装,可以正常使用了。

2.添加虚拟目录

设置:公共

设置物理路径:c:\publish

2-1.png

访问此虚拟目录:

http://192.168.81.140/publish/

错误报告:

错误HTTP 403.14-禁止

Web服务器被配置为不列出此目录的内容。

2-2.png

3.启用目录浏览

打开IIS管理器,切换到函数尝试,找到目录浏览,如图。

2-3.png

在目录浏览操作界面下,选择启用,如图

2-4.png

此时,可以正常访问文件,如图所示

2-5.png

2、开发ClickOnce程序

1.新建标准c#工程

添加测试代码:

系统。diagnostics . process . start(' calc . exe ');

2.找到项目-属性-发布

如下图,设置发布文件夹位置,选择立即发布。

3-1.png

C:\1生成三个文件,即:

setup.exe

控制台应用3 .应用

应用程序文件

3-2.png

安装成功后,开始菜单中会自动生成快捷方式,文件夹名称将是ClickOnce程序中发布者的名称。

安装文件保存在% user profile % \ local settings \ apps \ 2.0下。

它也存在于程序安装列表中,您可以在该列表中卸载ClickOnce。

3.在IIS服务器上发布

步骤2将三个新生成的文件复制到C: \ PUBLISH

4.测试

访问另一台测试主机上的Web目录,点击提示安全警告,如图。

3-3.png

选择运行,然后提示安全警告,如图。

3-4.png

选择并执行setup.exe,弹出计算器,如图所示。

3-5.png

注:

在发布项目下有几个选项可以指定安装模式、应用程序文件、必备组件、更新选项等。

0x03 基于ClickOnce的攻击技巧

基于ClickOnce的特点,最常见的使用方式是钓鱼攻击,那么我们就来梳理一下ClickOnce在钓鱼攻击中使用了哪些方法。

1、增加权限

从用户的角度来看,更新程序的过程往往需要管理员权限,所以在运行更新程序的过程中,如果程序弹出框提示需要管理员权限,用户往往会选择同意,被触发的有效载荷会立即被授予管理员权限。

2、利用自动更新功能替换payload

ClickOnce支持自动更新功能,可以检查新版本,运行时自动更新。

注:

ClickOnce安装成功后,安装程序将保存在开始菜单下。

4-1.png

开启自动更新的步骤:

1.指定更新网址

设置“安装文件夹URL”,填写IIS服务器的下载地址,如图。

4-2.png

注:

IIS服务器上不需要安装Visual Studio。

2.设定自动更新

选择更新选项并启用“应用程序应该检查更新”,如图所示。

4-3.png

3.指定版本号

如下所示,选择“每次发布自动增加修订号”

4-4.png

4.测试

在IIS中发布初始版本

测试主机下载和安装

启用“应用程序应检查更新”后,安装的ClickOnce每次运行时都会访问服务器检查更新,如果服务器有更新,就会弹出更新对话框。

4-5.png

点击OK,安装程序将更新到新版本,成功替换有效负载。

3、将url参数作为payload执行

在测试之前,Visual Studio需要进行以下设置:

1.需要支持ClickOnce

您需要在安装Visual Studio的过程中选择此项。

4-6.png

否则,在“使用system . deployment . application;”会报错,提示如下:

命名空间“System”中不存在类型或命名空间名称“Application”。部署”(是否缺少程序集引用?)

2.添加引用

添加参考“系统。部署"中的项目,如图所示。

4-7.png

添加参考“系统。Web”在项目工程中的应用。

否则会报错,提示如下:

名称“HttpUtility”在当前上下文中不存在。

4-8.png

3.设置”允许向应用程序传递URL参数”

4-9.png

否则,参数无法传递给ClickOnce。

测试代码如下:

使用系统;

使用系统。集合。泛型;

使用系统。Linq

使用系统。文本;

使用系统。线程。任务;

使用系统。部署.应用;

使用系统。Web

使用系统。收藏。专门化;

命名空间控制台应用程序3

{

班级计划

{

静态void Main(string[] args)

{

尝试

{

NameValueCollection NVC=GetQueryStringParameters();

foreach(NVC中的字符串键)

{

控制台。WriteLine(NVC[key]);

控制台。ReadLine();

}

}

捕捉

{

控制台。WriteLine(“无参数”);

控制台。ReadLine();

}

}

公共静态名称值集合GetQueryStringParameters()

{

NameValueCollection col=new NameValueCollection();

if(应用程序部署。IsNetworkDeployed)

{

string query string=application deployment。current deployment . activation uri . query;

col=HttpUtility。ParseQueryString(查询字符串);

}

返回col

}

}

}

注:

测试代码选自https://gist.github.com/sub tee/BD 446 EFE ACF 656 c 67 F5 c 17 ca 0787 f 15 b。

发布新的ClickOnce程序。

注:

你只需要上传。申请和申请文件到网站,你不需要提供setup.exe。

测试主机在IE浏览器中访问以下URL:

http://192 . 168 . 81 . 140/publish/console application 3 . application?n=测试

程序自动识别参数并分析输出,如图所示。

4-92.png

4、结合网站的重定向功能,触发不同的payload

网站的重定向会导致URL的参数不同,从而触发不同的有效载荷。

简要细节

见https://blog . netspi . com/all-you-need is one-a-clickonce-love-story/

0x04 钓鱼攻击的缺陷:

不同的系统有不同版本的。网,所以钓鱼场景有限。

在执行ClickOnce程序的过程中,系统会检查数字签名以验证发布者,否则会提示安装包不可信。

0x05 防御

1、对ClickOnce程序提高警惕,识别真伪

运行带有特殊后缀的程序(如。应用程序)将安装不带setup.exe的ClickOnce程序,因此用户需要对此保持警惕。

2、禁用特殊后缀名,如.application

不同的生成的ClickOnce程序的后缀名称存在差异。net版本。以下链接对ClickOnce程序的后缀名称有更详细的介绍:

https://robin dot net . WordPress . com/2010/06/12/mime-types-for-clickonce-deployment/

0x06 检测

1、安装ClickOnce程序后,会在注册表留下痕迹

注册表位置:

HKEY _当前用户\软件\微软\ Windows \当前版本\卸载

5-1.png

2、安装ClickOnce程序后,会在如下目录保存文件:

% USERPROFILE % \本地设置\应用程序\2.0

测试主机上的路径是:

c:\用户\ a \本地设置\应用程序\2.0

每个ClickOnce程序都有一个具有特殊名称的文件夹,如图所示。

5-2.png

注:

删除该文件夹将从系统中删除ClickOnce应用程序。

3、安装程序列表也会存在ClickOnce程序名称

0x07 小结

相比常规钓鱼方式,使用ClickOnce钓鱼由于后缀不常见,欺骗性更大。支持的扩展功能,如URL参数分析和自动更新,使其使用更加灵活。

但只要用户提高警惕,验证ClickOnce程序的数字证书,只运行可信程序,就可以防止这类钓鱼攻击。

懂得了如何防御未知,希望这篇文章能帮助你更好的了解这项技术,保护自己的安全。

参考材料:

http://subtox 10 . blogspot . com/2016/12/mimikatz-delivery-via-clickonce-with . html

https://blog . netspi . com/all-you-need is one-a-clickonce-love-story/

http://www.sixdub.net/?p=555

https://msdn.microsoft.com/en-us/library/t71a733d.aspx

https://www . RSA . com/content/dam/pdf/a-decade-of-phishing-WP-11-2016 . pdf

留下回复

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

黑客攻防讨论组

黑客攻防讨论组

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

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