
Link to the Finance Trail challenge on TryHackMe
Case Briefing
The numbers do not add up.
You have been brought on at THM Security Services (TSS). Click the card below to reveal your role on this case.
Your case briefing is waiting in the TSS Operations Hub. Head to the Active Case tab for everything you need before you begin. The other tabs are there if you want to explore the company, the team, or previous cases.
View Site
Prerequisites
The Investigation
A Splunk investigation workstation has been attached to this task with the indexed evidence required for the investigation.
Click Start Machine below. To access Splunk, use this link: https://LAB_WEB_URL.p.thmlabs.com.
Use the questions below to guide your investigation and define the response scope supported by the evidence.
The case starts with the legal-review themed email that Vantara's Security Operations Centre (SOC) escalated. That email led a finance employee to download a ZIP, run the program inside it, and end up with an unfamiliar sync client calling out from the workstation. The questions below follow that chain from delivery to staging.
Answer the questions below
The finance employee's workstation ran a program from inside a downloaded ZIP. Find the delivered email whose sender domain also hosted that ZIP. What is its Message-ID, without angle brackets?
index=* "message-id=" punct="--::.+:--/[]::-=<..@--.>"
2026-10-09T02:29:02.863690+00:00 van-fs-02 postfix/cleanup[147684]: D2898CA1EE: message-id=<20261009022902.06.1a247614eaf9@lawson-rowe-review.com>
Event Actions
Type
Field Value Actions
Selected
host
VAN-FS-02
source
syslog://mail.vantara.local/postfix
sourcetype
finance:mail:postfix
Event
message_id
<20261009022902.06.1a247614eaf9@lawson-rowe-review.com>
Time
_time
2026-10-09T02:29:02.863+00:00
Default
index
finance_mail
After the lure email arrived, which parent executable launched the browser process that opened the external review site? Give the .exe filename.
index=* lawson-rowe-review.com exe
<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'><System><Provider Name='Microsoft-Windows-Sysmon' Guid='{5770385f-c22a-43e0-bf4c-06f5698ffbd9}'/><EventID>1</EventID><Version>5</Version><Level>4</Level><Task>1</Task><Opcode>0</Opcode><Keywords>0x8000000000000000</Keywords><TimeCreated SystemTime='2026-10-09T02:33:13.7416981Z'/><EventRecordID>1818054</EventRecordID><Correlation/><Execution ProcessID='2912' ThreadID='4468'/><Channel>Microsoft-Windows-Sysmon/Operational</Channel><Computer>VAN-FIN-WS-014</Computer><Security UserID='S-1-5-18'/></System><EventData><Data Name='RuleName'>-</Data><Data Name='UtcTime'>2026-10-09 02:33:13.734</Data><Data Name='ProcessGuid'>{c5d2b969-5269-6ac8-7f07-000000001e01}</Data><Data Name='ProcessId'>664</Data><Data Name='Image'>C:\Program Files\Google\Chrome\Application\chrome.exe</Data><Data Name='FileVersion'>155.0.8059.40</Data><Data Name='Description'>Google Chrome</Data><Data Name='Product'>Google Chrome</Data><Data Name='Company'>Google LLC</Data><Data Name='OriginalFileName'>chrome.exe</Data><Data Name='CommandLine'>"C:\Program Files\Google\Chrome\Application\chrome.exe" http://lawson-rowe-review.com/review/disclosure-schedule</Data><Data Name='CurrentDirectory'>C:\Windows\system32\</Data><Data Name='User'>VAN-FIN-WS-014\maya.chen</Data><Data Name='LogonGuid'>{c5d2b969-26ec-6ac8-2991-020000000000}</Data><Data Name='LogonId'>0x29129</Data><Data Name='TerminalSessionId'>1</Data><Data Name='IntegrityLevel'>Medium</Data><Data Name='Hashes'>SHA256=F76F0234EFB271041DC84F9F38FB858E01859D5DA6F775F5108668EB3AE80975</Data><Data Name='ParentProcessGuid'>{c5d2b969-4ec4-6ac8-6407-000000001e01}</Data><Data Name='ParentProcessId'>1304</Data><Data Name='ParentImage'>C:\Program Files\Vantara\Finance Client\VantaraFinancePortal.exe</Data><Data Name='ParentCommandLine'>"C:\Program Files\Vantara\Finance Client\VantaraFinancePortal.exe"</Data><Data Name='ParentUser'>VAN-FIN-WS-014\maya.chen</Data></EventData></Event>
On the affected workstation, what SHA-256 did Sysmon's file-stream hash event record when Chrome saved the ZIP that contained the executed loader?
index=* zip chrome.exe
What SHA-256 do the extracted loader and installed sync client share in their process-creation events?
index=* sha256 sync
Which scheduled task belongs to the loader's process lineage, not routine document syncing? Omit the leading backslash.
index=* schedule User="VAN-FIN-WS-014\\maya.chen" Company="Microsoft Corporation"
The sync client did not call out the moment it started. How many seconds passed between its Sysmon process-creation UtcTime and its first command-and-control (C2) callback in the Nginx web log, rounded to the nearest second?
index=* VantaraUpdateCheck UtcTime VantaraSync.exe
Record the Sysmon Event ID 1 for
VantaraSync.exe --sync, the one withUtcTime: 2026-10-09 02:33:25.981. Several events share the 02:33:25 second, so it’s easy to grab the wrong one, but this is the event the question was measuring from.Details to note for it:
- Host: VAN-FIN-WS-014, user
maya.chen- Image:
C:\Users\maya.chen\AppData\Local\VantaraSync\VantaraSync.exe, PID 4736- CommandLine:
"...\VantaraSync.exe" --sync- OriginalFileName:
ledgerdrop.exe(shows it’s the loader renamed)- Parent:
ledgerdrop.exefrom insideTemp1_Disclosure_Schedule_Update.zip, PID 1656- EventRecordID: 1818992
- Timestamp to cite: the
UtcTimefield (02:33:25.981), not the record’sSystemTime(02:33:26.240), since the question asks forUtcTime.Pair it with the first Nginx request (
2026-10-09T02:34:13+00:00, client10.81.70.254,cdn-lawsonreview.net, user agentVantaraSync/4.1) and the 47-second gap becomes a one-line finding.The other 02:33:25 events are worth keeping as timeline entries, but they’re different steps:
- 02:33:25.521:
ledgerdrop.exefirst runs (the loader executes).- 02:33:25.590 to .592: the loader drops
VantaraSync.exeintoAppData\Local\VantaraSync.- 02:33:25.624:
schtasks /Createmakes theVantaraUpdateCheckpersistence task.- 02:33:25.981: the renamed copy starts. This is the one for the callback question.
- Start (Sysmon
UtcTime): 02:33:25.981- First Nginx request: 02:34:13
- Difference: 47.019 s, which rounds to 47
For the loader-installed sync client's first successful callback from the affected workstation, which local TCP source port appears in both Suricata HTTP and the Windows Filtering Platform (WFP) allowed-connection event?
index=* 203.0.113.45 source="WinEventLog:Security"
The main C2 server returned HTTP 503, and after that the sync client used a backup domain. In Suricata, the Domain Name System (DNS) answer of type A for the backup domain was recorded before that 503. How many milliseconds before the 503 was it recorded, to three decimal places?
index=* sourcetype="finance:network:suricata:json" event_type=http src_ip=10.81.70.254 "cdn-lawsonreview.net" 503
| table _time, timestamp, src_ip, dest_ip, http.hostname, http.status, http.url
| sort timestamp
2026-10-09T02:53:21.531963+0000, from10.81.70.254tocdn-lawsonreview.net, and it matches the Nginx 503 at 02:53:21.Calculation (microsecond precision)
- 503 time: 02:53:21.531963
- DNS answer time: 02:53:21.523656
- Difference: 0.008307 s = 8.307 ms
One thing to check before you submit. The DNS response row you pasted earlier was cut off before
dns.rrtype,dns.rrnameanddns.rdata, so I haven’t seen that it is the type A answer forapi-lawsoncdn.net. The timing fits, since the request/response pair is at .523372/.523656, a fraction of a millisecond apart and about 8 ms before the 503. But the question names a specific answer, so confirm the response event hasrrtype: Aandrrname: api-lawsoncdn.net. This search lists every DNS answer for the backup domain:index=* sourcetype="finance:network:suricata:json" event_type=dns dns.type=answer "api-lawsoncdn.net" | table timestamp, src_ip, dest_ip, dns.rrname, dns.rrtype, dns.rdata | sort timestampIf it returns more than one A answer, use the last one before 02:53:21.531963. If the 02:53:21.523656 row is the only one (or the latest), then 8.307 is your answer.
Find the PowerShell process that created the archive later written to the share. In that workstation's captured Sysmon process-creation history, which executable last used its process ID before PowerShell started? Give the .exe filename.
index=* host="VAN-FIN-WS-014" EventCode=1 ProcessId=692
| table _time, UtcTime, ProcessId, Image, ProcessGuid, ParentImage
| sort - UtcTime
The attacker staged an archive on the workstation and then moved it to the file server. How many whole seconds passed between the archive’s Sysmon file-creation UtcTime and its successful SMB2 WRITE in Suricata?
index=* sourcetype="finance:network:suricata:json" event_type=smb src_ip=10.81.70.254 dest_ip=10.81.72.63 earliest="10/09/2026:02:53:00" latest="10/09/2026:03:10:00"
| table timestamp, flow_id, tx_id, smb.command, smb.status, smb.filename, smb.share, smb.fuid
| sort timestamp
The answer is 11.
- Archive created (Sysmon 11
UtcTime): 2026-10-09 02:53:29.688, bypowershell.exe- Successful SMB2 WRITE (Suricata):
2026-10-09T02:53:40.986626+0000, flow1289574328462318, tx 10,STATUS_SUCCESS, filereview_notes_2026.zip, share\\VAN-FS-02\FinanceReview- Difference: 40.986626 − 29.688 = 11.298626 s, so 11 whole seconds
That WRITE belongs to the right file. The tx 9 CREATE and the tx 10 WRITE share
smb.fuid dd87e230-0000-0000-930b-177100000000, and the tree connect at tx 7 shows the share name. The source is10.81.70.254, the same workstation that created the archive.The 11.298 s figure sits well away from a rounding boundary, so truncating and rounding to the nearest second give the same result. That matters because the question says “whole seconds” and doesn’t say which method to use.
The results only cover the first 20 of 24 events, so page 2 is still hidden. Nothing there should change the answer, because the first successful WRITE for this file is already on page 1 and later rows can only come after it. If page 2 shows a second WRITE for the same fuid, that would only matter if the question meant the last write, and “its successful SMB2 WRITE” reads as the first.
About the author
- Software Developer | Learning Cybersecurity | Open for roles * If you're in the early stages of your career in software development (student or still looking for an entry-level role) and in need of mentorship, you can reach out to me.
Comments
Join the discussionNo comments yet. Be the first to comment.



