@night 1803 access accessdata active directory admissibility ads aduc aim aix ajax alissa torres amcache analysis anjp anssi answer key antiforensics apfs appcompat appcompatflags applocker april fools argparse arman gungor arsenal artifact extractor attachments attacker tools austin automating automation awards aws azure azuread back to basics backstage base16 best finds beta bias bitcoin bitlocker blackbag blackberry enterprise server blackhat blacklight blade blanche lagny book book review brute force bsides bulk extractor c2 carved carving case ccdc cd burning ceic cfp challenge champlain chat logs Christmas Christmas eve chrome cit client info cloud forensics command line computer forensics computername conference schedule consulting contest cool tools. tips copy and paste coreanalytics cortana court approved credentials cryptocurrency ctf cti summit cut and paste cyberbox Daily Blog dbir deep freeze defcon defender ata deviceclasses dfa dfir dfir automation dfir exposed dfir in 120 seconds dfir indepth dfir review dfir summit dfir wizard dfrws dfvfs dingo stole my baby directories directory dirty file system disablelastaccess discount download dropbox dvd burning e01 elastic search elcomsoft elevated email recovery email searching emdmgmt Encyclopedia Forensica enfuse eric huber es eshandler esxi evalexperience event log event logs evidence execution exfat ext3 ext4 extended mapi external drives f-response factory access mode false positive fat fde firefox for408 for498 for500 for526 for668 forenisc toolkit forensic 4cast forensic lunch forensic soundness forensic tips fraud free fsutil ftk ftk 2 full disk encryption future gcfe gcp github go bag golden ticket google gsuite guardduty gui hackthebox hal pomeranz hashlib hfs honeypot honeypots how does it work how i use it how to howto IE10 imaging incident response indepth information theft infosec pro guide intern internetusername Interview ios ip theft iphone ir itunes encrypted backups jailbreak jeddah jessica hyde joe sylve journals json jump lists kali kape kevin stokes kibana knowledgec korman labs lance mueller last access last logon leanpub libtsk libvshadow linux linux-3g live systems lnk files log analysis log2timeline login logs london love notes lznt1 mac mac_apt macmini magnet magnet user summit mathias fuchs md viewer memorial day memory forensics metaspike mft mftecmd mhn microsoft milestones mimikatz missing features mlocate mobile devices mojave mount mtp multiboot usb mus mus 2019 mus2019 nccdc netanalysis netbios netflow new book new years eve new years resolutions nominations nosql notifications ntfs ntfsdisablelastaccessupdate nuc nw3c objectid offensive forensics office office 2016 office 365 oleg skilkin osx outlook outlook web access owa packetsled paladin path specification pdf perl persistence pfic plists posix powerforensics powerpoint powershell prefetch psexec py2exe pyewf pyinstaller python pytsk rallysecurity raw images rdp re-c re-creation testing reader project recipes recon recursive hashing recycle bin redteam regipy registry registry explorer registry recon regripper remote research reverse engineering rhel rootless runas sample images san diego SANS sans dfir summit saturday Saturday reading sbe sccm scrap files search server 2008 server 2008 r2 server 2012 server 2019 setmace setupapi sha1 shadowkit shadows shell items shellbags shimcache silv3rhorn skull canyon skype slow down smb solution solution saturday sop speed sponsors sqlite srum ssd stage 1 stories storport sunday funday swgde syscache system t2 takeout telemetry temporary files test kitchen thanksgiving threat intel timeline times timestamps timestomp timezone tool tool testing training transaction logs triage triforce truecrypt tsk tun naung tutorial typed paths typedpaths uac unc understanding unicorn unified logs unread usb usb detective usbstor user assist userassist usnjrnl validation vhd video video blog videopost vlive vmug vmware volatility vote vss web2.0 webcast webinar webmail weekend reading what are you missing what did they take what don't we know What I wish I knew whitfield windows windows 10 windows 2008 windows 7 windows forensics windows server winfe winfe lite wmi write head xboot xfs xways yarp yogesh zimmerman zone.identifier

Super Sunday Funday Forensic Challenge - Update 2

Hello Reader,

Current Contest

Four people have solved Level 3 and have advanced on to Level 4 out of 116 who have tried so far. Of those four, one has already solved Level 4 and is on to the final challenge Level 5! Wish them luck as it is not for the faint of heart.

If you have questions I am planning to be in #dfir on irc.freenode.net on 9/11, 9/12, 9/15 and 9/16. If you have questions get an IRC client and come ask them. I may be on during the evening weekends but no guarantee to do so. Other players are in the channel though and you are welcome to talk amongst your selves.

For those of you not playing, or looking for a break here is some more good information.

Learn Windows Forensics from me!

I'll be co-teaching SANS FOR408 with Rob Lee in Ft. Lauderdale, FL at DFIRCon East Nov 3rd-8th 2014. If you want to spend a week learning everything you can about Windows forensics, and nights going deeper into the artifacts/structures if you want, I can't wait to meet you. As a bonus SANS has put out a $400 coupon for the event, go here to claim it.

Solutions to the past contest

Something I have not posted that I've been promising is the answers to the last 5 stage challenge. Let's continue that now. 

Stage 2 Question:

You found where the attacker was coming from and got access to the system. You have obtained a memory dump and you see connections to a remote IP address. How would you go from knowing an IP addresses to knowing:
1.       What process made the connection
2.       Whether the process was injected into
3.       Whether the connection and the loaded software is persistent
4.       When the process first started and what other processes followed it

Stage 2 Answer from a winner: 

1: What process made the connection. 
You can determine what process made the connection by running the netscan plugin of Volatility.  It will return the remote IP for current and recent connections as well as the Process ID for those connections.

2: Whether the process was injected into. 
Working with determining if a process is injected it can be best to start with the malfind plugin of Volatility.  This plugin scans for Portable Executables and any other section of memory that is marked as executable, but that does not have a mapped file on the hard drive.  We can isolate our malfind plugin to just work against the PID we identified from netscan to limit how many hits we have to work against. Malfind can dump suspicious memory sections so that they can be checked on Virustotal, checked out by a malware analyst or scanned with AV.

If malfind doesn’t get your evidence of injection work with the ldrmodules Volatility plugin to look for unlinked dll files as well as evidence of process hollowing if the executable itself does not show as being mapped. 

It is less direct, but I like to start with running the psxview module and having a snack while I wait for this big catch all plugin to look for evidence of threads running in memory that are not in the doubly linked list of is otherwise hidden or suspicious.  Psxview will be most likely to catch it if our issue is a rootkit as well.

3: Whether the connection and the loaded software is persistent. 
I am a little unsure of if we are limited to working from the memory dump from this scenario. If we are, then I would run the Volatility hivelist plugin to determine if I have the Software hive as well as the NTUSER hive.  These are the most common location for “Run” keys that malware uses for persistence.  If the Software hive isn’t loaded into RAM for some reason I will be sorely disappointed, but I will still use the printkey plugin to scan for autoruns and show the key values at common locations such as :

“Software\Microsoft\Windows\CurrentVersion?\(Run|RunOnce)” I wish printkey could use those GREP characters as well.  I should work on contributing to the project instead of complaining about it though.  I would like to contribute to something awesome like Volatility once I complete my bachelor’s degree next year.  But I digress.  

There are tons more autorun locations for persistence. Another popular one seems to be SOFTWARE\Microsoft\Windows\CurrentVersion\Winlogon\Userinit\userinit.exe.  If I had access to the disk I would run a search for the known IP address in the registry hives to see if the IP came up from being hard coded into any kind of beacon in the registry. I would use autorunner from Mark Woan to check for autorun activity on the drive as well if I had not yet found what I was looking for. . 

4: When the process first started and what other processes followed it. 
To determine when the process first started, what spawned the process, and what processes it might have spawned you could use the pstree plugin from Volatility.  I get a little lost in the dots using pstree and always fall over to Redline to show me the PID PPID relationship as well to make sure my eyes aren’t playing tricks on me. Both of them will show what process were started by what other process, as well as the start time for the processes. 

The only answer I needed:
What I was really looking for here was an understanding of someones process to find these things. While it didn't matter what tool they ran, everyone who submitted ran Volatility. If they said volatiltiy I wanted to see an understanding of what plugins they would run, what they did and what they would expect. This stage wasn't very hard if you've done any kind of memory analysis. 

Post a Comment


Author Name

Contact Form


Email *

Message *

Powered by Blogger.