Rabid Trojan of the Week

Robert Gonzalez
10 min readOct 24, 2019

Overview:

Over time we have borne witness as malware writers become craftier and embed code which allows them to determine virtualization. The reason for this is that most analyst who attempt to reverse engineer or analyze malware will do so on a virtual machine. Hence it would only make sense that the malware author would implement some level of countermeasure. Some of the ways this is achieved are as follows:

a) checking the system’s processor ID

b) the Win32_Computer entry in WMI, it looks here to see if the words VIRTUAL, VMWARE, or VIRTUALBOX are to be found

c) a WMI request to the BIOS. If a response is received that contains the word: ‘VMware,’ ‘Virtual,’ ‘XEN,’ ‘Xen’ the system is considered as a virtual machine. Serial number and BIOS versions are also checked.

d) the machine’s MAC Address to determine if it starts by a well-known hexadecimal number.

e) Application count function — this queries the operating system for the presence of running processes on the graphical interface. If whatever script is running finds less than its threshold then it presumes the box to be a testing workstation.

f) Macro scripts that determine a list of recently opened files. If the scripts somewhere about two or more files recently opened then it will presume the workstation to be normal.

It is with this introduction I give you

rdesktop-orcale.exe hash IDs

At the time that I tested the malware in our lab there which was on October 16th VirusTotal had a detection rate of 21 out of 70. Currently its 42 out of 70. Once again this demonstrates the need to be proactive. If you wait for signatures to be developed and updated your data will be gone or worse, a persistent infection until someone decides to run virus updates. This simply will not do.

Section One:

Live Analysis –

Usually we analyze first via the sandbox and then in a live environment. For the purposes of this presentation we shall go with the live analysis. As you can see in the above, this malware has anti-vm countermeasure built in.

Part One:

The first appearance in the logs is Event ID 4656. Here we have PickerHost.exe which is the Windows file selector. This is not our Patient Zero. All we have here is the first sign of the malware in the logs, but it has not done anything yet.

A handle to an object was requested.

Subject:

Security ID: S-1–5–21–372134654–1229274158–1178834050–500

Account Name: Administrator

Account Domain: PROJECTFARSCAPE

Logon ID: 0xE769DC1

Object:

Object Server: Security

Object Type: File

Object Name: C:\Users\Administrator\Documents\rdesktop-oracle.exe

Handle ID: 0xaf4

Resource Attributes: -

Process Information:

Process ID: 0x1cd8

Process Name: C:\Windows\System32\PickerHost.exe

Access Request Information:

Transaction ID: {00000000–0000–0000–0000–000000000000}

Accesses: READ_CONTROL

SYNCHRONIZE

ReadData (or ListDirectory)

WriteData (or AddFile)

AppendData (or AddSubdirectory or CreatePipeInstance)

ReadEA

WriteEA

ReadAttributes

WriteAttributes

Access Reasons: -

Access Mask: 0x12019F

Privileges Used for Access Check: -

Restricted SID Count: 0

Part Two:

Here we see our patient zero. The parent image is explorer.exe. It loads the rdesktop-oracle.exe executable. The OriginalFileName field does not coincide with the name of the image being loaded. This is an alert we look for and most certainly means something is not right.

Process Create:

RuleName:

UtcTime: 2019–10–17 18:27:09.185

ProcessGuid: {a4a0271f-b27d-5da8–0000–00103f4f9c0e}

ProcessId: 7516

Image: C:\Users\Administrator\Documents\rdesktop-oracle.exe

FileVersion: 9.14.19.24

Description: ;H>J;8BIA<:7G=;8J;A>GLN

Product: ;H>J;8BIA<:7G=;8J;A>GLN

Company: :OF>PJ?DA:DNNNG@K

OriginalFileName: P.0 872_1TA004.exe

CommandLine: “C:\Users\Administrator\Documents\rdesktop-oracle.exe”

CurrentDirectory: C:\Users\Administrator\Documents\

User: PROJECTFARSCAPE\Administrator

LogonGuid: {a4a0271f-b052–5da8–0000–0020c19d760e}

LogonId: 0xE769DC1

TerminalSessionId: 1

IntegrityLevel: High

Hashes: SHA1=7B437DFDED12E5C0BE065954EA9F9BE25620AA96

ParentProcessGuid: {a4a0271f-b055–5da8–0000–0010505f770e}

ParentProcessId: 3768

ParentImage: C:\Windows\explorer.exe

ParentCommandLine: C:\WINDOWS\Explorer.EXE /NOUACCHECK

There is also the issue with the parent command line. A no UAC check means command elevation. These two things are items we must look for. Neither should be the case on an end user’s workstation unless the administrator is installing software and as the end-user is not the administrator this should be monitored. Note also here that the description, product, and company field have odd characters.

Part Three:

The second event that is of grave consequence is a new process being spawned from the parent.

Here we see a command shell that is created. We look for these events by having our system alert us to any image with a cmd.exe in its path.

Process Create:

RuleName:

UtcTime: 2019–10–17 18:27:10.428

ProcessGuid: {a4a0271f-b27e-5da8–0000–0010e5799c0e}

ProcessId: 9488

Image: C:\Windows\SysWOW64\cmd.exe

FileVersion: 10.0.18362.1 (WinBuild.160101.0800)

Description: Windows Command Processor

Product: Microsoft® Windows® Operating System

Company: Microsoft Corporation

OriginalFileName: Cmd.Exe

CommandLine: “C:\Windows\System32\cmd.exe” /C type nul > “C:\Users\Administrator\Documents\rdesktop-oracle.exe:Zone.Identifier”

CurrentDirectory: C:\Users\Administrator\Documents\

User: PROJECTFARSCAPE\Administrator

LogonGuid: {a4a0271f-b052–5da8–0000–0020c19d760e}

LogonId: 0xE769DC1

TerminalSessionId: 1

IntegrityLevel: High

Hashes: SHA1=C896CC027A644F7ABB6D8DD968A681F345F55D90

ParentProcessGuid: {a4a0271f-b27d-5da8–0000–00103f4f9c0e}

ParentProcessId: 7516

ParentImage: C:\Users\Administrator\Documents\rdesktop-oracle.exe

ParentCommandLine: “C:\Users\Administrator\Documents\rdesktop-oracle.exe”

Within the command line there is a flag after the file suffix called Zone.Identifier. Patient Zero was the image name differing from the OriginalFileName as well as the NOUACCHECK. This is further evidence that the executable is diseased. It has spawned a command shell and runs the malware with a suffix that looks for the storage of url security zones.

Part Four:

The malware then does something interesting which gives us a clue of how its written and possibly how it shall act upon the operating system.

Process Create:

RuleName:

UtcTime: 2019–10–17 18:28:00.955

ProcessGuid: {a4a0271f-b2b0–5da8–0000–0010f68a9f0e}

ProcessId: 8236

Image: C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe

FileVersion: 4.8.3752.0 built by: NET48REL1

Description: Microsoft .NET Assembly Registration Utility

Product: Microsoft® .NET Framework

Company: Microsoft Corporation

OriginalFileName: RegAsm.exe

CommandLine: “C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe”

CurrentDirectory: C:\Users\Administrator\Documents\

User: PROJECTFARSCAPE\Administrator

LogonGuid: {a4a0271f-b052–5da8–0000–0020c19d760e}

LogonId: 0xE769DC1

TerminalSessionId: 1

IntegrityLevel: High

Hashes: SHA1=9E03F443962FDF5C5A5C9A8A2C6847169461F20B

ParentProcessGuid: {a4a0271f-b27d-5da8–0000–00103f4f9c0e}

ParentProcessId: 7516

ParentImage: C:\Users\Administrator\Documents\rdesktop-oracle.exe

ParentCommandLine: “C:\Users\Administrator\Documents\rdesktop-oracle.exe”

In this event we see the malware which is the Parent create a new process. This process is RegAsm.exe which is in the .NET Framework directory. This is the Assembly Registration Tool, it reads metadata within an assembly and adds entries to the to the registry, this allows COM clients to create .NET Framework classes transparently. This obviously means that malware has its roots in the .NET platform. Injecting itself via this method into the operating system is effective and damning.

Part Five:

The next event that stands out for several reasons.

1) The process initiating the windows filtering platform is within the .NET framework directory

2) An outbound network connection has been allowed

3) The connection is over port 80

The Windows Filtering Platform has permitted a connection.

Application Information:

Process ID: 8236

Application Name: \device\harddiskvolume2\windows\microsoft.net\framework\v4.0.30319\regasm.exe

Network Information:

Direction: Outbound

Source Address: 192.168.40.40

Source Port: 49556

Destination Address: 185.87.187.198

Destination Port: 80

Protocol: 6

Filter Information:

Filter Run-Time ID: 68226

Layer Name: Connect

Layer Run-Time ID: 48

Note:

There is a lot going on here as you can imagine. To put some context on how the Assembly Registration Tool can be dangerous if used in a foul manner, we see several events in the logs like the below

A handle to an object was requested.

Subject:

Security ID: S-1–5–21–372134654–1229274158–1178834050–500

Account Name: Administrator

Account Domain: PROJECTFARSCAPE

Logon ID: 0xE769DC1

Object:

Object Server: Security

Object Type: File

Object Name: C:\Users\Administrator\AppData\Roaming\95737D\D5BF4C.lck

Handle ID: 0x374

Resource Attributes: -

Process Information:

Process ID: 0x202c

Process Name: C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe

Access Request Information:

Transaction ID: {00000000–0000–0000–0000–000000000000}

Accesses: READ_CONTROL

SYNCHRONIZE

ReadData (or ListDirectory)

WriteData (or AddFile)

AppendData (or AddSubdirectory or CreatePipeInstance)

ReadEA

WriteEA

ReadAttributes

WriteAttributes

Access Reasons: -

Access Mask: 0x12019F

Privileges Used for Access Check: -

Restricted SID Count: 0

The file in the user’s directory is a lck file. This is an access control file used to lock a database or other file from being opened or changed by more than one user at a time. This is one of the methods of how the malware establishes its control over the system.

Part Six:

Data theft

The malware is now requesting access to an object. That object is the Credentials directory found in the user’s directory. It is evident that it is going to read what is in there.

A handle to an object was requested.

Subject:

Security ID: S-1–5–21–372134654–1229274158–1178834050–500

Account Name: Administrator

Account Domain: PROJECTFARSCAPE

Logon ID: 0xE769DC1

Object:

Object Server: Security

Object Type: File

Object Name: C:\Users\Administrator\AppData\Local\Microsoft\Credentials\DFBE70A7E5CC19A398EBF1B96859CE5D

Handle ID: 0x374

Resource Attributes: -

Process Information:

Process ID: 0x202c

Process Name: C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe

Access Request Information:

Transaction ID: {00000000–0000–0000–0000–000000000000}

Accesses: READ_CONTROL

SYNCHRONIZE

ReadData (or ListDirectory)

ReadEA

ReadAttributes

Access Reasons: READ_CONTROL: Granted by Ownership

SYNCHRONIZE: Granted by D:(A;;FA;;;BA)

ReadData (or ListDirectory): Granted by D:(A;;FA;;;BA)

ReadEA: Granted by D:(A;;FA;;;BA)

ReadAttributes: Granted by D:(A;;FA;;;BA)

Access Mask: 0x120089

Privileges Used for Access Check: -

Restricted SID Count: 0

Part Seven:

RSA Crypto directory being accessed by the malware.

File handles are important, though they tend to be confusing at times, but they give us a path of what is going on via what a process is doing. Here we see the malware accessing the RSA Crypto directory in the user’s profile. This directory is being accessed after the connection to the ip address that we mentioned in Part Five was made. The directory increases in content for every connection. Certificate request are created in this location. No process should be doing this unless you know about it.

(A)

An attempt was made to access an object.

Subject:

Security ID: S-1–5–21–372134654–1229274158–1178834050–500

Account Name: Administrator

Account Domain: PROJECTFARSCAPE

Logon ID: 0xE769DC1

Object:

Object Server: Security

Object Type: File

Object Name: C:\Users\Administrator\AppData\Roaming\Microsoft\Crypto\RSA\S-1–5–21–372134654–1229274158–1178834050–500\a18ca4003deb042bbee7a40f15e1970b_a4a0271f-6bd9–439c-ad6a-44e9da4901bd

Handle ID: 0x35c

Resource Attributes:

Process Information:

Process ID: 0x202c

Process Name: C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe

Access Request Information:

Accesses: WriteData (or AddFile)

AppendData (or AddSubdirectory or CreatePipeInstance)

Access Mask: 0x6

(B)

The malware is writing to the RSA directory. This is one of may writes that is done by the malware to this directory.

An attempt was made to access an object.

Subject:

Security ID: S-1–5–21–372134654–1229274158–1178834050–500

Account Name: Administrator

Account Domain: PROJECTFARSCAPE

Logon ID: 0xE769DC1

Object:

Object Server: Security

Object Type: File

Object Name: C:\Users\Administrator\AppData\Roaming\Microsoft\Crypto\RSA\S-1–5–21–372134654–1229274158–1178834050–500\a18ca4003deb042bbee7a40f15e1970b_a4a0271f-6bd9–439c-ad6a-44e9da4901bd

Handle ID: 0x37c

Resource Attributes:

Process Information:

Process ID: 0x202c

Process Name: C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe

Access Request Information:

Accesses: WriteData (or AddFile)

AppendData (or AddSubdirectory or CreatePipeInstance)

Access Mask: 0x6

Part Eight:

The user is analyzed

In this event we see Event ID 4798 — A user’s local group membership was enumerated.

We look for this event, why — simply put — the malware is accessing the Administrator account of the domain. To clarify — RegAsm uses the domain account as noted in the subject line. Notice the user is Administrator for the local machine. Complacent folk will say, well this could be a false positive. Anytime a process enumerates local group membership you as the operator need to know. This event is critical in catching those who scope out local accounts on systems and it indicates a compromised machine.

A user’s local group membership was enumerated.

Subject:

Security ID: S-1–5–21–372134654–1229274158–1178834050–500

Account Name: Administrator

Account Domain: PROJECTFARSCAPE

Logon ID: 0xE769DC1

User:

Security ID: S-1–5–21–1100231172–1986677086–319568495–500

Account Name: Administrator

Account Domain: ABERRATION

Process Information:

Process ID: 0x202c

Process Name: C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe

Part Nine:

Hide thy sins

Alerts for Event ID 4660 are invaluable. Any process that deletes something must be monitored as no process should have this permission unless you know about it.

An object was deleted.

Subject:

Security ID: S-1–5–21–372134654–1229274158–1178834050–500

Account Name: Administrator

Account Domain: PROJECTFARSCAPE

Logon ID: 0xE769DC1

Object:

Object Server: Security

Handle ID: 0x384

Process Information:

Process ID: 0x202c

Process Name: C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe

Transaction ID: {00000000–0000–0000–0000–000000000000}

Part Ten:

Network detection resolved

We resolve dns names in our logs. We are able then to see a name to where the malware is making contact.

Network connection detected:

RuleName:

UtcTime: 2019–10–17 18:28:18.306

ProcessGuid: {a4a0271f-b2b0–5da8–0000–0010f68a9f0e}

ProcessId: 8236

Image: C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe

User: PROJECTFARSCAPE\Administrator

Protocol: tcp

Initiated: true

SourceIsIpv6: false

SourceIp: 192.168.40.40

SourceHostname: aberration.projectfarscape.net

SourcePort: 49556

SourcePortName:

DestinationIsIpv6: false

DestinationIp: 185.87.187.198

DestinationHostname: registrar-eu-pr001.openprovider.nl

DestinationPort: 80

DestinationPortName: http

Part Eleven:

I leave a piece of me for you

The windows prefetch folder is a specific location that contains a series of files detailing the startup activities and frequently used application programs. Each time the computer starts, the prefetcher portion of the memory manager in Windows references the prefetch folder to learn about previous startup activities and the applications that were used. This allows for accelerated startups. With that being said observe the below event — Event ID 4656 courtesy of svchost.exe a windows process.

A handle to an object was requested.

Subject:

Security ID: S-1–5–18

Account Name: ABERRATION$

Account Domain: PROJECTFARSCAPE

Logon ID: 0x3E7

Object:

Object Server: Security

Object Type: File

Object Name: C:\Windows\Prefetch\REGASM.EXE-4EFC4B44.pf

Handle ID: 0x254

Resource Attributes: -

Process Information:

Process ID: 0x8d4

Process Name: C:\Windows\System32\svchost.exe

Access Request Information:

Transaction ID: {00000000–0000–0000–0000–000000000000}

Accesses: READ_CONTROL

SYNCHRONIZE

ReadData (or ListDirectory)

WriteData (or AddFile)

AppendData (or AddSubdirectory or CreatePipeInstance)

ReadEA

WriteEA

ReadAttributes

WriteAttributes

Access Reasons: -

Access Mask: 0x12019F

Privileges Used for Access Check: -

Restricted SID Count: 0

Conclusion:

Not all malware is created equally. In this little presentation of ours we touched on the damaging aspects of a Trojan which is built around the .NET framework and what it can do. As mentioned earlier, at the time of analysis the VirusTotal detection was relatively low. You cannot depend on signatures and the larger corporations to keep you safe. A degree of understanding, vigilance, and creative thinking are the order of the day. If something does not look right, chances are you should check it out. I stress also that this scrapes the surface of what this Trojan was doing. We alert for the most damning events but there is so much going on. There is no one panacea, only a recipe that will keep you safe and healthy.

Figure One:

Process Tree

Process tree

Figure Two:

VirusTotal Detection

VirusTotal detection

Figure Three:

Location of ip address where malware contacts

--

--