使用LUA脚本绕过Applocker的测试分析 | xxx使用LUA脚本绕过Applocker的测试分析 – xxx
菜单

使用LUA脚本绕过Applocker的测试分析

七月 21, 2018 - 3gStudent

0x00 前言


在之前的文章《Bypass Windows AppLocker》曾对绕过Applocker的方法进行过学习,而最近看到一篇文章介绍了使用LUA脚本绕过Applocker的方法,学习之后产生了以下疑问:绕过原理是什么呢?能绕过哪种AppLocker的规则呢?适用条件又是什么呢?

文章地址:

Whitelisting/Bypassing using ( LUA Language ) .wlua COM

0x01 简介


本文将要介绍以下内容:

0x02 LUA脚本简介


0x03 Windows系统下执行LUA脚本


1、安装Lua for Windows,下载地址:

http://files.luaforge.net/releases/luaforwindows/luaforwindows

2、输出hello world

脚本内容:

print"Hello,world!" 

cmd:

lua.exe 1.txt 

如下图

使用LUA脚本绕过Applocker的测试分析

3、调用Windows API

脚本内容:

require "alien" MessageBox = alien.User32.MessageBoxA  MessageBox:types{ret ='long',abi ='stdcall','long','string','string','long'} MessageBox(0, "title for test","LUA call windows api",0) 

执行如下图

使用LUA脚本绕过Applocker的测试分析

4、c++执行LUA脚本

参考代码如下:

extern "C" {   #include "lua.h"     #include <lauxlib.h>      #include <lualib.h>      }  int main(int argc,char* argv[]) {  lua_State *L =  lua_open();     luaL_openlibs(L);     luaL_dofile(L, argv[1]);     lua_close(L);     return 0; } 

工程需要做如下设置:

(1)修改VC++ 目录

包含目录,添加C:/Program Files/Lua/5.1/include

库目录,添加C:/Program Files/Lua/5.1/lib

(2)链接器输入附加依赖项,添加

lua5.1.lib lua51.lib 

执行如下图

使用LUA脚本绕过Applocker的测试分析

c++执行LUA脚本来调用Windows API,需要在同级目录添加支持文件,执行如下图

使用LUA脚本绕过Applocker的测试分析

0x04 测试使用LUA脚本绕过Applocker


测试一:

测试系统: Win7x86

安装Lua for Windows

开启Applocker,配置默认规则

使用lua.exe执行脚本:

成功绕过Applocker的拦截

如下图

使用LUA脚本绕过Applocker的测试分析

测试二:

测试系统: Win7x86

安装Lua for Windows

开启Applocker,配置默认规则,添加规则: 拦截lua.exe

未绕过Applocker的拦截

如下图

使用LUA脚本绕过Applocker的测试分析

注:

还可以使用wlua.exe执行lua脚本

测试三:

测试系统: Win7x64

未安装Lua for Windows

开启Applocker,配置默认规则,系统禁止执行脚本

lua.exe同级目录放置lua5.1.dll(来自Lua for Windows安装路径)

使用lua.exe执行脚本:

未绕过Applocker的拦截

如下图

使用LUA脚本绕过Applocker的测试分析

补充:

将lua.exe换成wlua.exe,脚本内容修改为POC内容,地址如下:

https://gist.githubusercontent.com/homjxi0e/fd023113bf8b1b6789afa05c3913157c/raw/6bf41cbd76e9df6d6d3edcc9e289191f898451dc/AppLockerBypassing.wlua

测试结果均相同

0x05 最终结论


经过以上测试,得出最终结论:

使用LUA脚本,在一定程序上能绕过Applocker,但需要满足以下条件:

0x06 小结


本文对LUA脚本的开发做了简要介绍,测试使用LUA脚本绕过Applocker的POC,得出最终结论


LEAVE A REPLY


Notice: Undefined variable: canUpdate in /var/www/html/wordpress/wp-content/plugins/wp-autopost-pro/wp-autopost-function.php on line 51