Dray Agha Profile picture
Mar 17, 2022 16 tweets 8 min read Read on X
SRUM is maybe one of the best Windows digital forensic artefacts, if you’re willing to roll your sleeves up.

You can get proof of execution and execution runtime, as well as proof of network communication and the bytes sent and received

Let's take a look in this #DFIR thread🧵
Since Win8, System Resource Usage Monitor (SRUM) monitors a bunch!

What we’re most interested in is its detailed record of programs and network activity.

SRUM has a LONG memory compared to some of the other more ephemeral artefacts📜
To put SRUM to forensic work, grab its .DAT file

C:\Windows\System32\sru\SRUDB.dat

To gain extra contextual data, we're advised to also collect the SOFTWARE hive.

I didn't do that however, because I am a bad person 😞 Image
We'll leverage one of @EricRZimmerman's brilliant tools to parse out the .DAT

f001.backblazeb2.com/file/EricZimme…

And we can simply execute with : `.\SrumECmd.exe -f .\SRUDB.dat --csv .` Image
You should get a bunch of CSV files

I tend to prioritise the following ones:
- SrumECmd_NetworkUsages_Output.csv
- SrumECmd_AppResourceUseInfo_Output.csv
- SrumECmd_Unknown*_Output.csv (occasionally)

But maybe you'll find use from the others? Image
Let's take a look at the results. I'll be using Excel because (again) I am a bad person.

SRUM seems to write once an hour and at shutdown, so don’t trust the timestamps as complete gospel.
S͟r͟u͟m͟E͟C͟m͟d͟_N͟e͟t͟w͟o͟r͟k͟U͟s͟a͟g͟e͟s͟_O͟u͟t͟p͟u͟t͟.c͟s͟v͟

When tidied up has some cool fields. Most noteworthy in the orange box are the network bytes IN/OUT Image
If you’re looking for possible indicator of C2 or data exfil, try this:

Convert these columns into a graph. I'd separate graphs for bytes in/out, initially.

You can then click on these points in the graph, and it will highlight the EXE back in your table. ImageImage
S͟r͟u͟m͟E͟C͟m͟d͟_A͟p͟p͟R͟e͟s͟o͟u͟r͟c͟e͟U͟s͟e͟I͟n͟f͟o͟_O͟u͟t͟p͟u͟t͟.c͟s͟v͟

We can use it to see programmes more / less resource intensive.

Maybe it will snitch on coin miners using a lot of resource, or quiet backdoors using fewer. Image
S͟r͟u͟m͟E͟C͟m͟d͟_U͟n͟k͟n͟o͟w͟n͟3͟1͟2͟_O͟u͟t͟p͟u͟t͟.c͟s͟v͟

This one is a real mixed bag. Sometimes it’s gold, other times trash. It will show runtime with okayish accuracy

I tend to sort by shortest runtime when looking here. ImageImage
U͟s͟i͟n͟g͟ I͟R͟L͟

I had a case where an alert claimed some kind of process injection.

But I couldn’t find any other evidence to triangulate that finding. Maybe SRUM can help?

From SRUM's CSV formatted data, let's zero in on that window of time from the alert (23:52) ImageImageImage
ScreenConnect - a remote management tool - appeared during our window of time.

I graphed out all of the ScreenConnect data SRUM held, with a focused on bytes in and out.

And look at the that wild spike in network communication?! ImageImage
Drilling into the specific ScreenConnect spike, we can see it’s recorded 𝘢𝘯 𝘩𝘰𝘶𝘳 𝘭𝘢𝘵𝘦𝘳 than our initial alert time

I considered this suspicious nonetheless for three reasons:

1. When baselined, that colossal byte in/out was anomalous compared to previous activity

2. Image
We already contextualised this window of time as suspicious, from the initial alert.

3. We know that SRUM timestamps are not always accurate. Neither are alerts sometimes! An hour's flexibility is more than satisfactory to connect the potential sus activity.
I then initiated a ScreenConnect investigation, to see if anything here would contextualise the initial process inject alert

But that's for another day!

I hope this thread has brought SRUM to your attention, and equipped you with a foundation to explore SRUM's data yourself 💪 Image
Here are some much better resources on SRUM by @velocidex and @13CubedDFIR

Thanks for your time 🧵

velociraptor.velocidex.com/digging-into-t….

Image

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Dray Agha

Dray Agha Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @Purp1eW0lf

Dec 5, 2022
Think hiring is slowing down??

@HuntressLabs is hiring remote a Threat Operations Analyst 🇬🇧. UK citizenship is non-negotiable

You'll be working with myself, @xorJosh, @PonchoSec, and the rest of the squad!

I have some tips for those applying 🧵

boards.greenhouse.io/huntress/jobs/…
I don't care about about degrees 📜

I barely care about certs.

I care about what your contributions have been to your community.

Do you have a github, a blog, a summary of a CTF you did ? GREAT, put the link in your resume
We're gonna teach you what you need to know in this role👨‍🎓

But I need to know from your resume, covering letter, and interview that you take extreme ownership and accountability for yourself.

Meaning, you're constantly learning and trying to execute high quality, accurate work
Read 7 tweets
Oct 11, 2022
For cyber security investigations, internal silos will make or break your efforts 🧱🧱🧱

I'll show you the power from a LACK of siloing, with a piping hot, fresh @HuntressLabs case @xorJosh and I worked

🧵🧶
What are 'silos'.

@keydet89 educated me on the industry problem where departments cannot easily share findings; a threat intel department doesn't have a way to share findings with DFIR department, for example.

IMO, Silos occur when data & people cannot be circulated easily
We aren't perfect by any means at @HuntressLabs, but it's a testament to our founders, engineers, devs (etc) that our infrastructure sets us up for success.

It's difficult for analysts NOT to share reports and data by default; our infrastructure & culture doesn't foster silos
Read 15 tweets
Sep 29, 2022
Investigating an intrusion? 🕵️🔍

Start with the security solution on the machine. DON'T work hard to timeline the adversaries' activities, work smart👩‍🔬

In a @HuntressLabs case with @nosecurething and Jordan Sexton, we leveraged ESET's data before anything forensically complex🧵 Image
This gave us a tonne of starter info
🟡 Timestamps threat actor operated in

🔴 Directories they liked to operate in, the user account they likely controlled, AND that the threat actor liked to use PwSh

🔵 Registry key they had used for persistence.

This saved us time....⏲️
..as we used these findings to pivot:

🟡 We had date/time anchor points when leveraging other data

🔴 We focused on the user, those directories, and PwSh. Found more malicious activity straight away

🔵 We eradicated persistence and identified their IPv4: 5[.]255[.]103[.]142 ImageImageImage
Read 5 tweets
Sep 8, 2022
I wanted to share some findings about RDP, Network Layer Authentication, LogonTypes and brute forcing 🔭

Recently, we perused some EventID 4625s (login failures) originating from public IPv4s brute forcing...
🧵
I kept finding LogonType 3s (network)

However only RDP was externally exposed on the machine, which usually records LogonType 10....

When this has happened before, I usually just assume its Windows jank and continue with my investigation 🤷‍♂️

But this time, I wanted to know WHY
The wise @DaveKleinatland suggested Network Layer Authentication (NLA) would explain this:

"
NLA takes place before the session is started... without NLA things can be exposed before any sort of authentication.... like domain name, usernames, last logged on user, etc
"
- Dave 🧙‍♂️
Read 10 tweets
Aug 17, 2022
In a recent intrusion, we identified a threat actor had compromised the Windows login process, and siphoned cleartext credentials - using a technique known as NPPSPY

@0gtweet’s NPPSPY was fascinating to dissect and remediate.

Huge thanks to @keydet89 for guidance and wisdom
Our article couldn’t show what this cleartext credential gathering looked like on the compromised machine, but we recreated the electrifying end product
IOCs and Behavior
- T1003

- Values under HKLM\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order
◦For our case: logincontroll

- Unexplained entries in HKLM\SYSTEM\CurrentControlSet\Services\<here>\NetworkProvider
◦For our case: logincontroll
Read 5 tweets
Aug 16, 2022
Cobalt Strike ain't 💩

Let's chat about how to unravel Cobalt Strike and deny the adversary further access

As ALWAYS, I am showing you data so fresh out the kitchen it hasn't even been cleared by ThreatOps Director @MaxRogers5 👀🧑‍🍳 🧵
Cobalt Strike can often trigger AMSI alerts in Defender. The frustrating thing about AMSI alerts is that they don't tell you what the offending activity WAS.

The alert here was PowerShell based....so let's dig a lil deeper
Go collect C:\System32\winevt\Logs\Microsoft-Windows-PowerShell%4Operational.evtx , and go get my favourite tool - Chainsaw.

Take note your detection time (06:43).

Point chainsaw at your PwSh log, with this time
Read 13 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(