Links and News
There have been some exciting developments recently on the Windows digital forensic analysis front, and I thought it would be a good idea to bring them all together in one place.
Recover CMD sessions from the pagefile
If you perform analysis of Windows systems at all, be sure to check out Robert's blog post that discusses how to use page_brute (which I'd mentioned previously here) to recover command prompt sessions from the Windows pagefile. In the post, the author mentions quite correctly that grabbing a memory image still isn't something that's part of standard incident response procedures. If you receive a laptop system (or an image thereof) you may find a hibernation file, which you can then analyze, if doing so is something that will help you attain your goals.
Page_brute is based on Yara rules, and Robert shares the rule that he wrote...if you look at it, and follow his reasoning in the post, it's amazingly simple AND it works!
This sort of analysis can be very valuable, particularly if you don't have a memory dump available. As we learned at OMFW 2013, Volatility is moving in the direction of incorporating the pagefile into analysis, which is fantastic...but that's predicated by the responder's ability to capture a memory dump prior to shutting the system down.
I got yara-python installed (with some help...thanks!) and I then extracted the pagefile from an image I have available. I had also copied the rule out of Robert's blog post, and pasted it into the default_signatures.yar file that is part of page_brute, and ran the script. In fact, page_brute.py worked so well, that as it was running through the pagefile and extracting artifacts, MS Security Essentials "woke up" and quarantined several extracted blocks identified as Exploit:js/Blacole, specifically KU and MX variants. I then opened a couple of the output files from the CMDscan_Optimistic_Blanklines folder, and I wasn't seeing any of the output that Robert showed in his blog post, at least not in the first couple of files. So, I ran strings across the output files, using the following command:
D:\Tools>strings -n 5 H:\test\output\CMDscan_Optimistic_Blanklines\*.page | find "[Version"
I didn't get anything, so I ran the command again, this time without the "[", and I got a number of strings that looked like Registry key paths. In the end, this took some setup, downloading a script and running two commands, but you know what...even with that amount of effort, I still got 'stuff' that I would not have gotten as quickly. Not only has page_brute.py proved to be very useful, it also illustrates what can be done when someone wants to get a job done.
Resources
Excellent Yara post; look here to get the user manual and see how to write rules.
Registry Forensics Class
If you're interested in an online course in analyzing the Windows Registry, Andrew Case, Vico Marziale, and Joe Sylve put together the Registry Analysis Master Class over at The Hacker Academy. If you're interested in the course, take a look at Ken Pryor's review of the class to see if this is something for you.
Windows Application Experience and Compatibility
Corey's got a new blog post up where he discusses the Windows Application Experience and Compatibility feature, and how the RecentFileCache.bcf file can serve as a data source indicating program execution. As usual, Corey's post is thorough, referencing and building on previous work.
Corey shared a link to his blog post over on the Win4n6 Yahoo group, and Yogesh responded that he's doing some research along the same lines, as well, with a specific focus on Windows 8 and the AmCache.hve file, which follows the same file format as Windows Registry hives. Yogesh's blog post regarding the AmCache.hve file can be found here. Why should you care about this file? Well, from the post:
This file stores information about recently run applications/programs. Some of the information found here includes Executable full path, File timestamps (Last Modified and Created), File SHA1 hash, PE Linker Timestamp, some PE header data and File Version information (from Resource section) such as FileVersion, ProductName, CompanyName and Description.
This information can be very valuable during analysis; for example, using the SHA-1 hash, an analyst could search VirusTotal for information regarding a suspicious file. The file reference number from the key name could possibly be used to locate other files that may have been written to the system around the same time.
Yogesh has been posting some great information over on his blog recently, specifically with respect to Registry and Windows Event Log artifacts associated with USB devices connected to Windows 8 systems. Be sure to add it to your daily reading, or to your blog roll, in order to catch updates.
Recover CMD sessions from the pagefile
If you perform analysis of Windows systems at all, be sure to check out Robert's blog post that discusses how to use page_brute (which I'd mentioned previously here) to recover command prompt sessions from the Windows pagefile. In the post, the author mentions quite correctly that grabbing a memory image still isn't something that's part of standard incident response procedures. If you receive a laptop system (or an image thereof) you may find a hibernation file, which you can then analyze, if doing so is something that will help you attain your goals.
Page_brute is based on Yara rules, and Robert shares the rule that he wrote...if you look at it, and follow his reasoning in the post, it's amazingly simple AND it works!
This sort of analysis can be very valuable, particularly if you don't have a memory dump available. As we learned at OMFW 2013, Volatility is moving in the direction of incorporating the pagefile into analysis, which is fantastic...but that's predicated by the responder's ability to capture a memory dump prior to shutting the system down.
I got yara-python installed (with some help...thanks!) and I then extracted the pagefile from an image I have available. I had also copied the rule out of Robert's blog post, and pasted it into the default_signatures.yar file that is part of page_brute, and ran the script. In fact, page_brute.py worked so well, that as it was running through the pagefile and extracting artifacts, MS Security Essentials "woke up" and quarantined several extracted blocks identified as Exploit:js/Blacole, specifically KU and MX variants. I then opened a couple of the output files from the CMDscan_Optimistic_Blanklines folder, and I wasn't seeing any of the output that Robert showed in his blog post, at least not in the first couple of files. So, I ran strings across the output files, using the following command:
D:\Tools>strings -n 5 H:\test\output\CMDscan_Optimistic_Blanklines\*.page | find "[Version"
I didn't get anything, so I ran the command again, this time without the "[", and I got a number of strings that looked like Registry key paths. In the end, this took some setup, downloading a script and running two commands, but you know what...even with that amount of effort, I still got 'stuff' that I would not have gotten as quickly. Not only has page_brute.py proved to be very useful, it also illustrates what can be done when someone wants to get a job done.
Resources
Excellent Yara post; look here to get the user manual and see how to write rules.
Registry Forensics Class
If you're interested in an online course in analyzing the Windows Registry, Andrew Case, Vico Marziale, and Joe Sylve put together the Registry Analysis Master Class over at The Hacker Academy. If you're interested in the course, take a look at Ken Pryor's review of the class to see if this is something for you.
Windows Application Experience and Compatibility
Corey's got a new blog post up where he discusses the Windows Application Experience and Compatibility feature, and how the RecentFileCache.bcf file can serve as a data source indicating program execution. As usual, Corey's post is thorough, referencing and building on previous work.
Corey shared a link to his blog post over on the Win4n6 Yahoo group, and Yogesh responded that he's doing some research along the same lines, as well, with a specific focus on Windows 8 and the AmCache.hve file, which follows the same file format as Windows Registry hives. Yogesh's blog post regarding the AmCache.hve file can be found here. Why should you care about this file? Well, from the post:
This file stores information about recently run applications/programs. Some of the information found here includes Executable full path, File timestamps (Last Modified and Created), File SHA1 hash, PE Linker Timestamp, some PE header data and File Version information (from Resource section) such as FileVersion, ProductName, CompanyName and Description.
This information can be very valuable during analysis; for example, using the SHA-1 hash, an analyst could search VirusTotal for information regarding a suspicious file. The file reference number from the key name could possibly be used to locate other files that may have been written to the system around the same time.
More Stuff
As I was working on a RegRipper plugin for parsing and presenting the data in the AmCache.hve file, I ran across something interesting, albeit the fact that I have only one sample file to look at, at the moment. Beneath the Root key is a Programs subkey, and that appears to contain subkeys for various programs. The values within each of these subkeys do not appear to correspond to what Yogesh describes in his post, but there are some very interesting value data available. For example, the Files value is a multi-string value that appears to reference various files beneath the Root\Files subkey (as described in Yogesh's post) that may be modules loaded by the program. This can provide for some very interesting correlation, particularly if it's necessary for your analysis.
As I was working on a RegRipper plugin for parsing and presenting the data in the AmCache.hve file, I ran across something interesting, albeit the fact that I have only one sample file to look at, at the moment. Beneath the Root key is a Programs subkey, and that appears to contain subkeys for various programs. The values within each of these subkeys do not appear to correspond to what Yogesh describes in his post, but there are some very interesting value data available. For example, the Files value is a multi-string value that appears to reference various files beneath the Root\Files subkey (as described in Yogesh's post) that may be modules loaded by the program. This can provide for some very interesting correlation, particularly if it's necessary for your analysis.
Yogesh has been posting some great information over on his blog recently, specifically with respect to Registry and Windows Event Log artifacts associated with USB devices connected to Windows 8 systems. Be sure to add it to your daily reading, or to your blog roll, in order to catch updates.
Links and News
Reviewed by 0x000216
on
Wednesday, December 04, 2013
Rating: 5