Most of persistence tricks rely on a modification of Registry, adding files, dropping phantom DLLs, lolbins, etc. Today (for a change), I will describe a trick that is a) a close relative of Office macros & b) introduces yet another file format that security product may need to learn to scan.
The target is Ultraedit – pretty much my favorite editor.
It supports a lot of different mechanisms that could be used for persistence and trickery, but I will describe only one which meets the criteria I specified above.
The editor supports a mechanism of macros. Macros can be easily edited using a dedicated Macro panel. While the commands are primarily editing-related, there is one command that is interesting to us – RunTool:
The macro on the screenshot is called ‘foo’ and runs a tool called ‘notepad’. What is the ‘notepad’ tool you may ask? It is actually not the Windows Notepad, but a reference to a task one can set up in UE Tool Configuration panel:
Not surprisingly, I set it up to actually execute c:\windows\system32\notepad.exe.
Okay, now we have a macro that runs our task called ‘notepad’ and that task in turn runs the actual Windows Notepad.
We can save our macro to a .mac file which is using a proprietary format:
And now we are ready for a final piece of a puzzle…
UE allows us to automatically set macros to run during startup (via command line):
as well as during load and save file events (works in GUI):
With all that in place… Notepad will be running a lot… perhaps as a celebration of these events.
Feels like Office macros – tick. Proprietary file format – tock.