This commit adds a new idea to the dispatch loop that allows commands to
exit. It also adds the core_shutdown command so that it functions
correct. There are a bunch of other changes around transports as well,
and this commit adds a "resilient" TCP transport.
HTTP/S to come. progress being made. This commit is messy with debug
statements all through it, and they'll get removed down the track.
QWORDs didn't exist in Java meterpreter, but there are a number of
elements in the TLVs that make use of this type. This commit adds
support for the QWORD type and updates various types to use this
new type so that it matches the MSF source.
[SeeRM #8824]
This will bring this meterpreter in line with the other meterpreter
payloads so that the getenv feature works consistently across them.
I also had to tweak the way the TLVs were stored so that we could
support the notion of having more than one value appear that is of
the same type.
This should help anybody create new Java Meterpreter Extensions and
configuring the build system to properly build, test and deploy them.
The generated sample extension already contains two simple commands, to
serve as a base for more complex commands.
Move source code of all Meterpreter extensions to a common target
directory during build, so that tests that apply to all extensions won't
need to be updated when a new extension is added.
Use this to apply the version compatibility checks to all extensions.
As this repo it is no longer in external/source directory, the deploy
targets need to know where the Framework repository is. This defaults to
../metasploit-framework, but can be changed via -D deploy.path= command
line switch.
Apparently, getNetworkPrefixLength can return -1, which confuses the Ruby
side. Therefore fall back to guessing the prefix in this case, as we do it
for Java <= 1.6.