The VPN Login Continued After The Exit Meeting
The employee had already been terminated. The exit meeting was over. The laptop had been returned. Everyone believed the business risk had been contained.
Then the VPN login attempts started appearing.
This Agent Foskett briefing looks at one of the most overlooked security risks in business environments: incomplete employee offboarding. When someone leaves under difficult circumstances, every remaining access path matters — email, VPN, remote desktop, cloud sessions, shared credentials, mobile devices and anything still trusted by the organisation.
Briefing summary
A terminated employee continuing to attempt access is not only a people issue. It is an identity, remote access and operational control issue. GEMXIT looks at the access paths businesses often forget when someone leaves.
What happened
The real issue was incomplete offboarding
First hunt: sign-in attempts after termination
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
SigninLogs | where TimeGenerated > ago(14d) | where UserPrincipalName has "user@domain.com" | project TimeGenerated, UserPrincipalName, IPAddress, AppDisplayName, ClientAppUsed, ConditionalAccessStatus, ResultType, ResultDescription | order by TimeGenerated desc
Second hunt: VPN and remote access attempts
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
SigninLogs | where TimeGenerated > ago(14d) | where AppDisplayName has_any ("VPN", "Remote", "RDP") or ClientAppUsed has_any ("Other clients", "Mobile Apps and Desktop clients") | project TimeGenerated, UserPrincipalName, IPAddress, AppDisplayName, ClientAppUsed, ConditionalAccessStatus, ResultDescription | order by TimeGenerated desc
Third hunt: sessions, refresh tokens and remembered devices
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
SigninLogs | where TimeGenerated > ago(30d) | where UserPrincipalName has "user@domain.com" | summarize LastSeen = max(TimeGenerated), Apps = make_set(AppDisplayName), IPs = make_set(IPAddress) by UserPrincipalName, DeviceDetail, ClientAppUsed | order by LastSeen desc
Fourth hunt: mailbox rules, forwarding and file access
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
CloudAppEvents | where Timestamp > ago(30d) | where AccountDisplayName has "Former Employee" | where ActionType has_any ("FileDownloaded", "FileAccessed", "MailItemsAccessed", "New-InboxRule") | project Timestamp, AccountDisplayName, ActionType, IPAddress, Application, ObjectName | order by Timestamp desc
What should happen when an employee is terminated?
How GEMXIT approaches offboarding security reviews
Final thought
Continue the investigation with the MFA Session Hijacking briefing, After-Hours Download investigation, Identity and Access Security and GEMXIT Security Review.
Develop IT. Protect IT. GEMXIT PTY LTD | GEMXIT UK LTD