You are browsing the archive for Forensic Analysis.

Win8 + Parental Control

March 3, 2015 in Forensic Analysis

One of the lesser known features of Windows 8 was an introduction of Parental Control. The idea is that you can change an account type to one that can be used by children. Such account can be then both managed by  parents and also (what’s very interesting) regularly monitored.

I was curious what it means from a forensic perspective and did a quick test to see what I can find out.

How to set it up?
  1. Create a new account.
    pc1
  2. Tick the box to mark it as child’s account
    pc2
  3. You are done.
  4. You can go to Account / User settings and set up the Family Safety options + activity reporting. By default, it’s all enabled.
    pc3
Testing
  1. Simply log off as a current user and log on as a child’s account
  2. What you will immediately see after logging on is a notification in the right corner of the screen saying ‘This account is monitored by Family Safety’
    pc4a
  3. Run a couple of apps
    Note: I didn’t test the web sites in this test; I am not 100% sure, but setting modification are probably traced as well – it’s all subject to further research
    In my case I ran:

    • cmd.exe, from there I ran calc.exe and spawned another copy of cmd.exe
    • In the new cmd.exe I ran notepad and again, started a new instance of cmd.exe
    • In the final cmd.exe instance, I launched mspaint/pbrush.exe
    • Eventually I also launched Task Manager via CTRL+SHIFT+ESC
    • I ran it this way hoping that PID relationship will be preserved
      pc8a
Analyzing the evidence
  1. I then logged off and logged on as Admin user to review the logs
  2. I went to the User Settings again and… saw this:
    pc9
  3. That was surprising :)
  4. I started Process Monitor and went back to the logs.
  5. Luckily, Process Monitor highlighted a file of interest:
    C:\Windows\System32\winevt\Logs\Microsoft-Windows-ParentalControls%4Operational.evtx
  6. Now it was easy. I opened it up in MMC:
    pcA2
  7. Looks like the Built-in reviewing panel ignores some Windows applications.
  8. While reviewing the data in MMC I noticed the events are NOT sorted according to time (granularity of time is too low and all timestamps are ‘equal'; this is kinda… stupid)
  9. Exporting to CSV and TSV doesn’t help as timestamps are truncated to granularity of seconds
  10. Exporting to XML does help as timestamps are preserved with fractions e.g. 2015-03-03T17:21:49.447501700Z so we can use it to sort events properly
  11. You can export the logs to an XML file via command line using wevtutil
    wevtutil qe /lf “c:\Windows\System32\winevt\Logs\Microsoft-Windows-ParentalControls%4Operational.evtx” > xml
  12. Once you parse this data and cherry-pick what you need you can end up with a table as below (I loaded it into Excel and sorted it by time):
    pcB

Nice! So we got the log of all applications loaded during the test and following the sequence as listed earlier.

The SerializedApplication column contains a serialized pair of a full path to an executable followed by the window title of the application. The serialization seems to be based on an alphabet made up of 0-9a-z and each string is prefixed with two characters that represent the length of the string.

The best is to explain it via examples:

 000000000000000000000000000000000000111111111111111111111111111111111111
 0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz
05Paint
07Notepad
0nFirst Sign-in Animation
0pWindows Command Processor
0vc:\windows\system32\notepad.exe
17c:\windows\system32\oobe\firstlogonanim.exe

I am not sure what TimeUsed means.

Configuration

Parents can specify what apps can be ran by a child. There is also a way to block content according to rating & only allow certain list of websites (web filtering). In other words, it can work as a (kinda primitive) security control to limit access to both web sites and applications. Other options include time limits and game usage restrictions.

Configuration of Parental Control is preserved under the following key:

  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Parental Controls

pcC

Adding filters for web means that the entries will be created under the following key:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Parental Controls\Users\<SID>\Web\Overrides

pcdAnd similar rules apply to apps:

  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Parental Controls\Users\<SID>\DesktopApps

pce

With the filtering on, we got yet another artifact to look at which may be handy in determining what applications have been used on the system and when.

Beyond good ol’ Run key, Part 28

February 23, 2015 in Anti-Forensics, Autostart (Persistence), Compromise Detection, Forensic Analysis, Malware Analysis

I was curious if any of the phantom DLLs that I wrote about before still exist on Windows 10 TP. It turns out that they do, but less of them exist than could leveraged as a persistence mechanism when compared to the older versions of OS.

Here is a list of groups I found; the process name is in bold and if you see the DLL name in the parenthesis (following the process name) it means that particular DLL is responsible for loading the actual phantom DLL.

%SYSTEM%\Dism.exe (WimProvider.DLL)
  • %SYSTEM%\Dism\wimgapi.dll
%SYSTEM%\Dism.exe
  • %SYSTEM%\DismCore.dll
%SYSTEM%\FileHistory.exe (clr.dll)
  • %WINDOWS%\Microsoft.NET\Framework\v4.0.30319\api-ms-win-core-winrt-l1-1-0.dll
  • %WINDOWS%\Microsoft.NET\Framework\v4.0.30319\mscoree.dll
  • %WINDOWS%\Microsoft.NET\Framework\v4.0.30319\ole32.dll
  • %WINDOWS%\Microsoft.NET\Framework\v4.0.30319\urlmon.dll
%SYSTEM%\mmc.exe (clr.dll)
  • %WINDOWS%\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\oleaut32.dll
  • %WINDOWS%\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\shell32.dll
  • %WINDOWS%\Microsoft.Net\assembly\GAC_MSIL\MIGUIControls\v4.0_1.0.0.0__31bf3856ad364e35\ntdll.dll
  • %WINDOWS%\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\comctl32.dll
  • %WINDOWS%\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\uxtheme.dll
  • %WINDOWS%\Microsoft.NET\Framework\v4.0.30319\api-ms-win-core-winrt-l1-1-0.dll
  • %WINDOWS%\Microsoft.NET\Framework\v4.0.30319\mscoree.dll
  • %WINDOWS%\Microsoft.NET\Framework\v4.0.30319\ole32.dll
  • %WINDOWS%\Microsoft.NET\Framework\v4.0.30319\VERSION.dll
%SYSTEM%\Narrator.exe (MSTTSEngine.DLL)
  • %SYSTEM%\speech\engines\tts\MSTTSLocEnUS.DLL (I have not explored it, but there is a possibility that on non-English Windows it would be a different localization DLL)
%SYSTEM%\omadmclient.exe
  • cmnet.dll
%SYSTEM%\PresentationHost.exe
  • %WINDOWS%\Microsoft.NET\Framework\v4.0.30319\WPF\PresentationHost_v0400.dll
%SYSTEM%\provtool.exe (ProvEngine.dll)
  • MvHelper.dll
%SYSTEM%\SearchIndexer.exe
  • %SYSTEM%\msfte.dll
  • %SYSTEM%\msTracer.dll
%SYSTEM%\SearchProtocolHost.exe
  • %SYSTEM%\msfte.dll
  • %SYSTEM%\msTracer.dll

Probably the most interesting are SearchIndexer.exe and SearchProtocolHost.exe as they are running by default. Here is a screenshot capturing the moment when %SYSTEM%\msfte.dll is present on the system and user types something in the Search Box

msfte