Skip to main content
4648SecurityLogon/LogoffSecurity tier 1

Event ID 4648: A logon was attempted using explicit credentials

Event ID 4648 fires when a process explicitly supplies a different account's credentials instead of using the caller's own logon session, most often through runas, scheduled tasks with stored credentials, or net use with /user:. It logs three identities at once: who initiated the action, whose credentials got used, and which server the new process ran on.

What Triggers Event 4648

Event 4648 lives under the Audit Logon subcategory and writes to the Security channel on the machine where the explicit-credential action originated, not necessarily the machine being accessed. Microsoft's own description is blunt about the trigger condition: a process attempts an account logon by explicitly specifying that account's credentials, rather than inheriting the identity of the session that spawned it.

That distinction matters more than it sounds. Most logons on a Windows host ride on the token of whoever is already signed in. Event 4648 exists for the moment someone or something deliberately breaks that inheritance and hands the operating system a different username and password.

The canonical trigger is the runas command, or its GUI equivalent, shift-right-clicking a shortcut and choosing Run as different user. Scheduled tasks are the second most common source: any task in Task Scheduler configured to run under a stored account (rather than the built-in SYSTEM or the currently logged-on user) generates a 4648 every time the Task Scheduler service launches it, because the scheduler process is explicitly supplying that stored credential to start the child process.

Mapping a network drive with alternate credentials, net use \\server\share /user:domain\account, produces the same event, as does opening a saved RDP shortcut that stores a different account than the local session. Admin tooling that lets an operator target a resource under an identity other than their own signed-in one, PsExec with explicit -u and -p flags, some WMI invocations, certain remote management consoles, all funnel through this same audit point.

Because 4648 only exists as a success-audit event, it does not carry a companion failure variant the way 4625 does for interactive and network logons. The event records that the explicit-credential attempt was made and audited, not whether the downstream logon eventually succeeded or failed on the target. That downstream outcome shows up separately, as a 4624 or 4625 on whichever machine actually processes the resulting logon, which is frequently a different host than the one that logged the 4648.

The field structure is what makes this event genuinely useful rather than just noisy. Three distinct identities appear in a single record. The Subject fields, SubjectUserSid, SubjectUserName, SubjectDomainName, and SubjectLogonId, describe the account and logon session that initiated the explicit-credential request; this is whoever was already signed in and ran runas, launched the scheduled task engine, or opened the mapped-drive dialog.

The Account Whose Credentials Were Used fields, TargetUserName and TargetDomainName, describe the alternate identity being invoked; this is the account someone is trying to act as. TargetServerName and TargetInfo describe the destination, the server the new process actually ran on, with a value of localhost when the action stayed on the originating box.

Process Information adds ProcessId and ProcessName, the executable that made the explicit-credential request, svchost.exe hosting the Task Scheduler service, explorer.exe or consent.exe for an interactive runas, or cmd.exe when someone typed the runas command directly. Network Information closes the record with IpAddress and IpPort, which show a remote source address and port when the request came in over the network and ::1 with port 0 for a purely local action.

No other commonly reviewed logon event carries this three-way structure in one record. Event 4624 and 4625 describe a single logon attempt from a single subject's perspective. Event 4648 describes a handoff: who asked, whose identity got borrowed, and where it landed. That is exactly the shape of information a lateral-movement investigation needs, and it is why analysts working incident response treat 4648 as a starting thread rather than a background nuisance.

Neighboring events fill out the picture. Event 4624 on the target machine confirms the explicit-credential logon actually completed, and its LogonGuid can be matched against 4648's TargetLogonGuid to stitch the two records together across hosts. Event 4769, a Kerberos service ticket request, correlates the same way when the environment uses Kerberos rather than NTLM for the follow-on authentication.

Event 4672 shows up alongside 4624 when the invoked account carries special privileges, which is often the case when the borrowed credential belongs to an administrator. Because 4648 typically fires on the source host and the corresponding 4624 fires on the destination host, a full reconstruction of an explicit-credential logon usually means pulling logs from both machines, not just one.

Attackers who have obtained a second set of credentials, through phishing, a password dump, or a purchased access broker listing, still need somewhere to spend them. Runas against a file server, a net use mapping to an ADMIN$ share ahead of a PsExec push, a remotely created scheduled task configured with the stolen account, or a WinRM session opened with explicit credentials all generate 4648 at the exact moment the adversary supplies that literal credential.

This is a meaningfully different signal from token-theft techniques that inject an existing authentication context directly into a process without ever typing a username and password, those tend to surface as an unusual 4624 logon type rather than a 4648 at all. For an analyst hunting lateral movement, 4648 is the event that catches the moment a human or script consciously reached for a second identity, which makes it one of the more direct signals available for that specific behavior.

Event 4648 Fields

FieldWhat it tells youSimulated value
SubjectUserSidSID of the account that already had an active logon session and initiated the explicit-credential request.S-1-5-21-424242-719158
SubjectUserNameName of the acting account that ran runas, launched the scheduled task, or opened the mapped-drive dialog.j.smith
SubjectDomainNameDomain or computer name of the acting account.corp.socsimulator.example
SubjectLogonIdHex logon ID of the acting session, useful for correlating with the subject's own 4624 logon record.simulated-subjectlogonid-2ED6BA
TargetUserNameName of the alternate account whose credentials were explicitly supplied.a.chen
TargetDomainNameDomain or computer name of the alternate account being invoked.corp.socsimulator.example
TargetLogonGuidGUID linking this event to the resulting 4624 logon or a 4769 Kerberos service ticket request on the destination.simulated-targetlogonguid-078CBF
TargetServerNameName of the server the new process ran on; shows localhost when the action stayed on the originating machine.simulated-targetservername-5B9139
TargetInfoAdditional destination information, typically duplicating TargetServerName.simulated-targetinfo-590D20
ProcessIdHex process ID of the process that made the explicit-credential request.0x2F99
ProcessNameFull path of the executable that requested the explicit-credential logon, useful for spotting non-standard tooling.C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
IpAddressSource IP address of the logon attempt; ::1 indicates a local, non-network request.198.51.100.195
IpPortSource port for a remote logon attempt; 0 for local or interactive activity.34514

Inspect Event 4648 Values

Click a field to inspect the full simulated value, the way you would expand it in a SIEM event view.

Example Event 4648 Log

A representative Security entry for Event 4648, generated deterministically by our telemetry engine so every field holds a realistic, internally consistent value.

Simulated example generated by SOCSimulator Research
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Security-Auditing" />
    <EventID>4648</EventID>
    <Version>0</Version>
    <Level>0</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x8020000000000000</Keywords>
    <TimeCreated SystemTime="2025-01-27T01:36:59.000Z" />
    <EventRecordID>365061</EventRecordID>
    <Channel>Security</Channel>
    <Computer>WS-SIM-001.corp.socsimulator.example</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="SubjectUserSid">S-1-5-21-424242-719158</Data>
    <Data Name="SubjectUserName">j.smith</Data>
    <Data Name="SubjectDomainName">corp.socsimulator.example</Data>
    <Data Name="SubjectLogonId">simulated-subjectlogonid-2ED6BA</Data>
    <Data Name="TargetUserName">a.chen</Data>
    <Data Name="TargetDomainName">corp.socsimulator.example</Data>
    <Data Name="TargetLogonGuid">simulated-targetlogonguid-078CBF</Data>
    <Data Name="TargetServerName">simulated-targetservername-5B9139</Data>
    <Data Name="TargetInfo">simulated-targetinfo-590D20</Data>
    <Data Name="ProcessId">0x2F99</Data>
    <Data Name="ProcessName">C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Data>
    <Data Name="IpAddress">198.51.100.195</Data>
    <Data Name="IpPort">34514</Data>
  </EventData>
</Event>

Detecting Event 4648

Password spraying via explicit-credential fan-out

index=wineventlog EventCode=4648 NOT Target_User_Name="*$" | bucket _time span=5m | stats dc(Target_User_Name) as distinct_targets values(Target_User_Name) as targets by _time, Caller_User_Name, Computer | where distinct_targets > 30

Standard user invoking a high-privilege alternate account

index=wineventlog EventCode=4648 NOT Caller_User_Name="*$" | lookup privileged_accounts.csv account AS Target_User_Name OUTPUT is_privileged | search is_privileged=true Caller_User_Name!=Target_User_Name | table _time, Caller_User_Name, Target_User_Name, Computer, Process_Name

Explicit-credential logon fanning out across many target servers

Lucene carries the base filter excluding same-host activity; aggregate the distinct target-server fan-out in your SIEM.

index=wineventlog EventCode=4648 NOT TargetServerName="localhost" | bucket _time span=10m | stats dc(TargetServerName) as distinct_servers values(TargetServerName) as servers by _time, Caller_User_Name, Target_User_Name | where distinct_servers > 5

Explicit-credential logon from a non-standard process path

index=wineventlog EventCode=4648 NOT (Process_Name="*\\Windows\\System32\\*" OR Process_Name="*\\Program Files\\*") | table _time, Caller_User_Name, Target_User_Name, Process_Name, Computer

Explicit-credential logon between two workstations

index=wineventlog EventCode=4648 | lookup asset_inventory.csv host AS Computer OUTPUT asset_type | search asset_type=workstation | lookup asset_inventory.csv host AS TargetServerName OUTPUT asset_type AS target_asset_type | search target_asset_type=workstation | table _time, Caller_User_Name, Target_User_Name, Computer, TargetServerName

True Positive vs False Positive

Most 4648 traffic in a healthy environment is routine and repetitive. Scheduled tasks running under a service account fire on a predictable cadence, same TargetUserName, same ProcessName tied to the Task Scheduler service, same source host, day after day. IT staff running runas for legitimate elevated administration cluster during business hours and come from a small, known set of admin SIDs in the Subject fields.

A domain-wide password rotation can also generate a burst of 4648 activity as mapped drives and scheduled jobs configured with the old credential retry against the new policy, which looks alarming in volume but traces cleanly to a known change window once you check the timing.

The patterns worth escalating share a common shape: something outside the account's established baseline. A standard user account appearing as Subject while Account Whose Credentials Were Used names a domain admin, a database service account, or any account that user has never invoked before is one of the clearest privilege-pivot signals this event produces, especially when it happens outside a documented change window.

Workstation-to-workstation 4648 activity deserves the same scrutiny; in a reasonably segmented environment, legitimate explicit-credential use flows from a workstation up to a server, not laterally between two peer endpoints, so that traffic pattern alone is worth a second look.

A burst of 4648 events from one source host fanning out across many distinct TargetServerName values in a short window is the signature of a lateral-movement sweep, an adversary trying one harvested credential against a wide swath of the network the way tools like PsExec or WMI-based pushers do when scripted across a host list.

Microsoft's own monitoring guidance for this event flags ProcessName anomalies directly: a runas-style logon launched from cmd.exe or powershell.exe rather than the expected explorer.exe or consent.exe path, or a process running from a temp folder or user profile directory instead of System32 or Program Files, is worth checking against known offensive tooling naming patterns.

Because 4648 has no sub-status code table to consult, the triage judgment rests entirely on correlating account, process, and host rather than decoding an error value. The practical baseline an analyst builds is which Subject accounts normally perform explicit-credential logons, which target accounts they normally invoke, what times of day that happens, which process launches it, and which servers they touch. First-seen combinations, off-hours timing, an unexpected privilege jump between Subject and target account, and destination fan-out are the four checks that turn a page of routine 4648 noise into an actionable lead.

MITRE ATT&CK® Techniques

Event 4648 telemetry feeds detections for these ATT&CK® techniques:

Practice Investigating Event 4648

Reading about a logon was attempted using explicit credentials is one thing. Working the detection inside a live console is another. These free SOCSimulator operations cover the attack techniques Event 4648 helps you detect:

Credential Harvesting: The Lookalike Login

Credential Harvesting: The Lookalike Login

Investigate an adversary-in-the-middle (AiTM) credential phishing campaign that lured an employee to a lookalike Microsoft 365 login page. Working entirely from SIEM logs, you will identify the lookalike domain, reconstruct the multi-hop redirect chain through a compromised legitimate site, uncover a secondary phishing wave against another employee, and confirm account takeover in Azure AD sign-in logs via impossible travel and session-token replay. You finish by choosing the containment action that actually evicts an attacker holding a valid session token. Foundational skills for SOC analysts in lookalike-domain analysis and identity-centric incident response.

20m·257 tasks
View Operation
FortiOS Bypass to Hunters International Ransomware

FortiOS Bypass to Hunters International Ransomware

Operators consistent with the Hunters International ransomware group abuse a FortiOS super-admin authentication bypass on an internet-facing FortiGate, plant rogue accounts, pivot over the SSL-VPN tunnel by RDP, sweep the network with Advanced IP and Port Scanner, and push roughly 6.8 GB of share data to a single external host over SFTP before running the encrypter. Work the FortiGate edge, the directory records, the perimeter egress, and the endpoint process tree to reconstruct the intrusion from entry to encryption.

30m·256 tasks
View Operation
The Template That Read the Disk

The Template That Read the Disk

The file-transfer portal that Tideglow Logistics' partners upload to spent a morning returning host files it was never meant to publish, and finished it running an administrator session nobody had logged into. The root cause is CVE-2024-4040 in CrushFTP 10.6.0. Walk the access logs and firewall traffic step by step to trace how a client holding no credentials turned a request parameter into a read of the host, and that read into a takeover.

25m·256 tasks
View Operation
Start investigating free

Frequently Asked Questions

What triggers event ID 4648?
A process explicitly supplying a different account's credentials rather than using its own logon session. The most common triggers are the runas command, scheduled tasks configured with a stored username and password, mapping a network drive with net use and /user:, and saved RDP shortcuts that store alternate credentials.
Is event ID 4648 a security risk?
Not by itself. It is a routine event that fires constantly during normal scheduled-task and administrative activity. It becomes a risk signal when the account combination is unusual, such as a standard user invoking a privileged account for the first time, or when the same source host fans out explicit-credential logons across many destination servers in a short window.
How do I reduce the volume of event ID 4648 in Event Viewer?
You generally cannot suppress the event itself without changing audit policy for the Audit Logon subcategory, which is not recommended since it removes a genuinely useful signal. The practical fix is filtering and baselining in your SIEM, excluding known service accounts and scheduled tasks that fire on a predictable cadence, rather than disabling the underlying audit setting.
What is the difference between event ID 4648 and event ID 4624?
4648 records the moment a process explicitly supplies alternate credentials, and it fires on the machine where that request originated. 4624 records a completed successful logon and typically fires on the machine actually being accessed. An explicit-credential action usually produces a 4648 on the source host and a corresponding 4624 on the destination host, correlated through matching logon GUIDs.
Can event ID 4648 detect password spraying?
Yes. Splunk's published detection content flags a single source account attempting to authenticate as more than 30 distinct target users within a five-minute window using explicit credentials, which is a strong password-spraying indicator against Active Directory. The same fan-out pattern generalizes to detecting lateral-movement sweeps against multiple target servers.

Sources

Official event description, EventData field list, and security monitoring recommendations for event 4648

Splunk Security Content detection rule grounding the password-spraying detection query (30+ distinct target users from one source within a 5-minute window using EventCode 4648)

T1078 Valid Accounts is a current Enterprise ATT&CK parent technique, confirming its use as a mapped technique for this event

T1550 Use Alternate Authentication Material is a current Enterprise ATT&CK parent technique, confirming its use as a mapped technique for this event

Background on detecting password spraying via Windows security event auditing, supporting the lateral-movement and credential-misuse detection angles

Glossary

What is Brute Force Attack? SOC Glossary

A brute force attack systematically tries large numbers of username and password combinations, or decryption keys, until…

Read more
Glossary

What is Lateral Movement? SOC Glossary

Lateral movement is the attack phase where adversaries expand access from an initial foothold to additional systems, usi…

Read more
Glossary

What is MFA? SOC Glossary

Multi-Factor Authentication (MFA) requires a user to prove their identity with two or more independent factors, somethin…

Read more
Glossary

What is SIEM? SOC Glossary

Security Information and Event Management (SIEM) is a platform that aggregates, normalizes, and correlates log data from…

Read more
Career Path

SOC Analyst (Tier 1) Career Guide: Salary & Skills

Tier 1 SOC Analysts are the front line. You monitor alert queues, triage incoming detections, classify them as true or f…

Read more
Career Path

SOC Analyst (Tier 2) Career Guide: Salary & Skills

Tier 2 SOC Analysts handle the investigations that Tier 1 escalates. You dig into multi-stage attacks, coordinate contai…

Read more
Technique

Valid Accounts (T1078): Detection Training

Valid Accounts is among the hardest abuses to spot because nothing is technically broken, the adversary simply authentic…

Read more
Technique

Use Alternate Authentication Material (T1550): Detection Training

Use Alternate Authentication Material (T1550) is how an attacker moves laterally without ever learning a password: repla…

Read more
Comparison

SOCSimulator vs. LetsDefend: Platform Comparison

SOCSimulator wins on operational realism. You get multi-tool shift simulation with SLA pressure, noise injection, and al…

Read more
Event ID

Windows Event ID Library: SOC Reference

Windows Security and Sysmon event IDs with simulated log samples, field tables, and tested detection queries.

Read more
Feature

Shift Mode: Real-Time SOC Simulation

Practice alert triage under realistic time pressure with SLA timers and noise injection.

Read more
Feature

Operations: Guided Training Operations

Structured CTF-style investigation operations covering real-world attack scenarios.

Read more