- Part 1 of module skills assessment:
- Find through an SPL search against all data the account name with the highest amount of Kerberos authentication ticket requests
- Here we will hop into Splunk and access the “search and reporting” section on the left hand side
- Next we need to build a query that can help us locate events with “Kerberos”
- I build one like this:
- We are checking our main index which contains our window security and sysmon logs
- And we are searching generally for “Kerberos” which will pull all event’s where this application name shows
- We get 1052 events
- Now we want to figure out which account_name has the highest count of events
- On the left hand side we want to take a look at the interesting fields for “Account_Name”
- With the filter create we now see the total counts. At the top left clicked in on “account_name” we see an option to build a report on top values
- Clicking this drops us into a visually friendly way to see our data
- We can ignore “WIN-HSRME76TRAD$” and “DESKTOP-EGSS5IS$” as these are machine names
- Your answer will be in this report alongside the above 😛
- I build one like this:
- Here we will hop into Splunk and access the “search and reporting” section on the left hand side
- Find through an SPL search against all data the account name with the highest amount of Kerberos authentication ticket requests
- Part 2 of module skills assessment:
- Find through an SPL search against all 4624 events, the count of distinct computers accessed by the account name SYSTEM
- To break down the above ask:
- Create a SPL query that will search for all eventcode: 4624 events
- And provide the count of distinct computers accessed by the account_name = “system”
- For our query we will use:
- index=”main” sourcetype=”wineventlog:security” EventCode=4624 Account_Name=”SYSTEM” | stats dc(ComputerName) as distinct_computers
- Index=main
- Pulling data in our index that contains our windows security and sysmon logs
- sourcetype=”wineventlog:security”:
- Here we are specifying we want our source type to be for windows security logs
- EventCode=4624:
- Our event code which indicates a successful login
- Account_Name=”SYSTEM”:
- The name of the account we are referencing which is named “SYSTEM”
- stats dc(ComputerName) as distinct_computers:
- Uses the stats command to count the distinct (dc stands for distinct count) computer names accessed by the “SYSTEM” account
- The answer will be pretty evident here 🙂
- To break down the above ask:
- Find through an SPL search against all 4624 events, the count of distinct computers accessed by the account name SYSTEM
- Part 3 of module skills assessment:
- Find through an SPL search against all 4624 events the account name that made the most login attempts within a span of 10 minutes
- First we need to build a query
- I went with:
- index=main account_name=”waldo”
- | bin _time span=10m
| stats count as login_count by _time, AccountName
| sort – login_count
| dedup _time, AccountName
| table _time, AccountName, login_count- | bin _time span=10m
- Using ‘bin’ to group events into 10min intervals
- | stats count as login_count by _time, AccountName
- Use ‘stats’ to count the number of login events (count) for each account within each 10-minute interval
- | sort – login_count
- Sort the results by the login count in descending order
- | dedup _time, AccountName
- Use dedup to keep only the top result for each 10-minute interval per account
- | table _time, AccountName, login_count
- Display the relevant fields in the results.
- | bin _time span=10m
- Once loaded, I used a similar tactic and looked into the different account names. Your answer will be in there 🙂
- I went with:
- First we need to build a query
- Find through an SPL search against all 4624 events the account name that made the most login attempts within a span of 10 minutes
Intrusion Detection With Splunk (Real-world Scenario)
- Find through an SPL search against all data the other process that dumped lsass:
- Following through our HTB Module we ran a query earlier around lsass looking for what was used when credentials were dumped
- What we found and dove into was the notepad.exe that popped up
- Going back now we want to uncover what the other process was that stood out in our query
- Here we can run a general query for lsass and count by SourceImage
- Some of these are noise, one is notepad, but the other process that shows only a few counts is the *FLAG*
- Following through our HTB Module we ran a query earlier around lsass looking for what was used when credentials were dumped
- Find through SPL searches against all data the method through which the other process dumped lsass. Enter the misused DLL’s name as your answer
- Now that we have our other process we want to see if we can look through the data to see what DLL was misused for the DLL Hijack
- We can actually click into the highlighted process and click “View Events”
- This will open a new query to dig into those specific events
- Let’s open the first event and take a glance at the CallTrace section
- Here is a place we can locate the pathing, or call that happened giving us insight into what triggered our process
- TIP: Follow the call stack until you find your process, then work back to see what the last DLL was used. This should give you *FLAG*
- Now that we have our other process we want to see if we can look through the data to see what DLL was misused for the DLL Hijack
- Find through SPL searches against all data the two IP addresses of the C2 callback server
- The first step we want to take is run a query to check on EventCode 3 for connections where the image of rundll32.exe was located
- Here we can then check the list of destination IP’s which is our answer to the question
- The first step we want to take is run a query to check on EventCode 3 for connections where the image of rundll32.exe was located
- Find through SPL searches against all data the port that one of the two C2 callback server IPs used to connect to one of the compromised machines
- With our destination IP’s we found we can use those to quickly locate the port used
- index=main EventCode=3 (SourceIp=”10.0.0.1xx” OR SourceIp=”10.0.0.xx”) DestinationPort=”*”
- | stats values(DestinationPort) as destination_ports
- This will provide you with a single port number

Leave a comment