Unit42公布powershell全自动反混淆工具

黑客信息网

近日,Unit42安全性精英团队在Github上公布了自身产品研发的powershell全自动反混淆工具,Star数几日中间就提升了300,下面,就来掌握下这个武器的使用方法及原理。

新项目详细地址:

操作方法

工具使用方法很简约,python PowerShellProfiler.py -f ,若要查询反混淆全过程得话能够再加上-d主要参数开展调节,下边应用官方网得出的故意脚本initial_obfusctaed_sample.ps1开展演试,该样版应用了IEX更换、字符串编号、运算符沉余、自变量重新命名等方法开展混淆。

运作PowerShellProfiler.py后,PowerShellProfiler复印出了每一步反混淆的流程,反混淆后的脚本,及其最终的结果:该样版的故意成绩18.5,高威协,是个Downloader脚本,病毒感染大家族为Veil Stream。

工具原理

演试完后PowerShellProfiler.py的操作方法,看来一下工具的原理,关键为4个关键流程:反混淆总体目标脚本 -> 病毒感染大家族检验 -> 异常字符串扫描仪 -> 总体目标脚本故意成绩统计分析

除开第一个函数,后三个函数的原理全是根据正则表达式机器码配对,下边关键剖析下第一个反混淆的函数unravelContent。

进到该函数后,关键的反混淆函数为normalize(),在反混淆以前,工具会先对字符串开展相对的倒序、反编号、缓解压力、破译等实际操作。此次的脚本initial_obfusctaed_sample.ps1存有frombase64string、decompress等字符串,最先会进到decompressContent这一反编号函数。

该函数最先对脚本开展base64破译,随后试着用各种各样压缩方式开展缓解压力,直至缓解压力取得成功已经。

进行之上实际操作后,工具就启用normalize()函数开展反混淆,原理便是实时翻译powershell常见的混淆运算符、字符串,如:

1.删掉一些没用的运算符:”空格符”、”^”、”`”。

2.转换Char字节数为ASCII码。

3.除掉” ”,联接字符串。

4.replace字符串。

反混淆前的脚本以下,存有很多的没用的运算符、char标识符,及其一些显著的-replace更换函数。

开展了normalize()函数反混淆后,获得的脚本以下,构造早已很清楚了,下面工具就可以对该脚本开展机器码配对了,如:downloadstring、Start-Process等异常字符串的获取。

末尾

powershell做为APT进攻的常见拒绝服务攻击,免杀、混淆的方法千姿百态,光应用该工具没法确保能对全部ps脚本开展反混淆检验,大家更应当深层次了解ps脚本的混淆常见方式及原理,才可以即时地与这种故意进攻样版开展抵抗。

标签:

发表评论 (已有条评论)

  • 评论列表