Written By Josh Harriman And Presented By Chuck Leaver
An interesting multifaceted attack has been reported in a current blog post by Cisco’s Talos Intelligence group. I wanted to talk about the infection vector of this attack as it’s quite interesting and something that Microsoft has vowed not to repair, as it is a function and not a bug. Reports are coming in about attacks in the wild which are using a feature in Microsoft Word, called Dynamic Data Exchange (DDE). Details to how this is achieved are reported in this blog post from SecureData.
Unique Phishing Attack with Microsoft Word
Attackers constantly try to find new methods to breach an organization. Phishing attacks are among the most common as opponents are relying on that somebody will either open a document sent out to them or go to a ‘faked’ URL. From there an exploit on a vulnerable piece of code normally gives them access to start their attack.
However in this case, the documents didn’t have a malicious thing embedded in the Word doc, which is a favorite attack vector, but rather a sneaky way of utilizing this feature that allows the Word program to connect out to recover the real destructive files. This way they could hope or rely on a better success rate of infection as malicious Word files themselves may be scanned and erased prior to reaching the recipient.
Searching for Suspicious Behaviors with Ziften Zenith
Here at Ziften, we wanted to have the ability to signal on this behavior for our clients. Finding conditions that show ‘weird’ habits such as Microsoft Word spawning a shell is interesting and not expected. Taking it further on and searching for PowerShell running from that generated shell and it gets ‘really’ intriguing. By using our Search API, we can discover these habits anytime they happened. We do not need the system to be switched on at the time of the search, if they have run a program (i.e. Word) that showed these habits, we can discover that system. Ziften is constantly collecting and sending out appropriate procedure info which is why we can discover the data without depending on the system state at the time of searching.
In our Zenith console, I looked for this condition by trying to find the following:
Process → Filepath includes word.exe, Child Process Filepath consists of cmd.exe, Child Process command line consists of powershell
This returns the PIDs (Process ID) of the processes we saw start-up with these conditions. After this we can drill down to see the nitty gritty details.
In this very first image, we can see information around the procedure tree (Word spawning CMD with Powershell under that) to the left, and to the right side you can see details like the System name and User, plus start time.
Below in the next screenshot, we take a look at the CMD procedure and get details as to what was passed to Powershell.
More than likely when the user needed to answer this Microsoft Word pop up dialog box, that is when the CMD shell used Powershell to go out and get some code hosted on the Louisiana Gov site. In the Powershell screen shot below we can see more details such as Network Link information when it was reaching out to the site to pull the fonts.txt file.
That IP address (126.96.36.199) is in fact the Louisiana Gov site. Often we see interesting data within our Network Connect information that may not match what you expect.
After producing our Saved Search, we can notify on these conditions as they happen throughout the environment. We can likewise produce extensions that change a GPO policy to not permit DDE or perhaps take additional action and go and discover these files and remove them from the system if so preferred. Having the capability to find intriguing mixes of conditions within an environment is very powerful and we are delighted to have this function in our product.