-
Notifications
You must be signed in to change notification settings - Fork 14.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Burp extension persistence #19821
base: master
Are you sure you want to change the base?
Burp extension persistence #19821
Conversation
], | ||
'DefaultOptions' => { | ||
# 25hrs, you know, just in case the user doesn't open Burp for a while | ||
'WfsDelay' => 90_000, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think 25*60*60
would be a tad clearer
malicious_extension = { | ||
'errors' => 'ui', | ||
'extension_file' => extension_location, | ||
'extension_type' => 'java', | ||
'loaded' => true, | ||
'name' => extension_name, | ||
'output' => 'ui' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can't the errors and the output be explicitly set to ignore/null/… to ensure that weird logs won't show up in Burp?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The options are "Output to system console", "Save to file", and "Show in UI". I selected "Show in UI" as I've added text to be displayed to the user to make it seem like all is well.
Right now if you use a Java payload it outputs more with XXX stuff, once we decide how to either fix the Java payload implementation, or remove it, I'll clean that up.
This PR creates a new persistence mechanism via Burp extension. Install the extension in burp and it gives you back a shell every burp start. Tested against windows and linux targets. You can either compile the java on your system (build action via gradle) or use the bytecode (precompiled). Instructions for creating the bytecode independently are included in the
data/exploits/burp_extension
folder.#19592 persistence
Will need to be updated after #19815
Issues
Issue 1: Automating Install (not a blocker)
Currently installing the extension is manual due to several issues. As per my conversation with PortSwigger there are several candidates for automating the install which all fail:
PortSwigger said they haven't tested this, but will add it to their feature request list.
As a workaround, if the user specifies a user config file, it will be poisoned with our malicious burp extension.
Issue 2: Java Target
When attempting to use the Java target with a payload that seems right (
payload/java/shell/reverse_tcp
,payload/java/meterpreter/reverse_tcp
) the following error is encountered:No idea why. Either I can cut this target and shrink the java extension, or hopefully someone knows why this is happening
Verification
writableDir