Add service hijacking (servicechange) execution mode to psexec in Impacket #2040
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull Request: Add
servicechange
Execution Mode to psexec.pyThis pull request introduces a new execution mode, servicechange, to Impacket's
psexec.py
, inspired by service hijacking techniques studied during my OSEP training. Unlike the standard PSEXEC execution, which creates a new service for command execution, servicechange leverages existing services on the target machine to achieve command execution, improving stealth and operational flexibility.Key changes
New module:
impacket/examples/servicechange.py
serviceinstall
module, following its architecture and workflow.Enhancements to
psexec.py
listServices()
— Enumerates all available services and prioritizes those suitable for hijacking.executeViaServiceHijacking()
— Implements the end-to-end hijacking workflow: backup → replace → execute → restore.Purpose and Benefits
use
You can use service list to output the binary service path that the current machine allows to change
Afterwards, when we use service change, we will enter the hijacking branch and no longer create services, but change the existing service binary path
When exiting normally, service recovery will be carried out to ensure that the environment is normal
This hijacking path is compatible with all existing parameters of PSEXEC, including - file-c - path, etc