Commit Graph

249 Commits

Author SHA1 Message Date
Summus6 587215affc Remove unwanted 'pop RAX' from windows/x64/reverse_(win)http 2018-03-20 11:01:10 +01:00
Jeffrey Martin 4801021aba Land #9613, add bind_named_pipe x86 2018-03-17 15:53:06 -05:00
bwatters-r7 0d07d44b14 ReLand #9565, Reverse TCP x64 RC4 via max3raza's rc4_x64 asm
This reverts commit 7964868fcd.
2018-03-02 16:09:52 -06:00
bwatters-r7 7964868fcd Revert "Land #9565, Reverse TCP x64 RC4 via max3raza's rc4_x64 asm"
This reverts commit fcc579377f, reversing
changes made to 95cd149378.
2018-03-02 08:29:48 -06:00
bwatters-r7 fcc579377f Land #9565, Reverse TCP x64 RC4 via max3raza's rc4_x64 asm 2018-03-02 07:34:45 -06:00
UserExistsError e19a071910 add bind_named_pipe x86 2018-02-22 19:03:37 -07:00
UserExistsError b3f26ea55f bind_named_pipe fixes 2018-02-18 10:31:57 -07:00
RageLtMan 80779f73ef Implement Michael Schierl's suggestions 2018-02-16 23:03:05 -05:00
RageLtMan 354eb4092a Reverse TCP x64 RC4 via max3raza's rc4_x64 asm
To round out the work done by mihi for x86 stages back in the day,
this PR provides x64 Windows stage encryption in RC4 via assembly
written/modified by max3raza during adjacent work on DNS tunneled
transport.

Stage encryption differs from encoding in that there is no decoder
stub or key materiel carried with the stage which can be used by
defensive systems to decode and identify the contents. Persistence
payloads, oob-delivered stage0, and other contexts benefit heavily
from this as their subsequent stage is difficult to detect/identify,
and the chance of accidental execution of the wrong payload/stage
is drastically reduced if separate keys are in play for individual
targets - acquiring the wrong stage will result in decryption
failure and prevent further execution.

For historical context, all of the RC4 stagers implement in-place
decryption via stage0 for the contents of stage1 using the provided
passphrase converted to a key and embedded in stage0 as part of the
payload.

Testing:
  In-house testing with Max - we got sessions, loaded extensions.

Notes:
  All credit for the work goes to Max3raza - big ups for getting
this knocked out.
2018-02-16 05:15:05 -05:00
Brent Cook 38b03fdfff Merge branch 'upstream-master' into land-9539- 2018-02-15 16:22:13 -06:00
Wei Chen 6fe8691528 Fix #9090, honoring retry counts for x86/64 payloads
Fix #9090
2018-02-15 13:52:34 -06:00
Jeffrey Martin 3811665b69 Land #7699, Add UDP handlers and payloads (redux) 2018-02-13 14:50:09 -06:00
UserExistsError 8ae8a0d94b added bind_named_pipe payload 2018-02-11 18:56:50 -07:00
ssyy201506 9ea64db26f Fix proxy authentication 2018-01-30 11:55:04 +09:00
RageLtMan ef1d4ddb03 Add UDP handlers and payloads (redux)
This is a repackaging effort for the work i originally pushed in
6035. This segment of the PR provides UDP session handlers for
bind and reverse sessions, a Windows Metasm stager (really the
TCP stager with a small change), and a pair of socat payloads for
testing simple UDP shells. Netcat or any scripting language with
a sockets library is sufficient to use these sessions as they are
stateless and simple.

Testing of this PR requires rex/core #1 and rex/socket #2

The SSL testing which was being done on 6035 is backed out, left
for a later time when we can do DTLS properly.
2018-01-23 02:00:55 -05:00
b0yd 27f96110d1 Moved socket struct inside conditional 2018-01-04 21:29:49 -05:00
b0yd 0b6e41d65b Attempting to fix cached size errors. 2017-12-22 12:49:02 -05:00
b0yd 0f5ff6ead3 Added bytes to required size 2017-12-22 12:28:37 -05:00
b0yd add26ca405 Cleaned up 2017-12-22 12:17:15 -05:00
b0yd a7fbe71a93 Added socket bind port option for reverse tcp payload. 2017-12-21 14:10:41 -05:00
Tim 15da7c699d Fix #7779, fix multi/meterpreter/reverse_http with web_delivery 2017-12-20 16:32:07 +08:00
Brent Cook ea37196614 use cooler names c/o @timwr, make options easier to grep 2017-11-21 13:47:19 -06:00
Brent Cook 2076db2d61 DRY up common stager and payload http and retry options 2017-11-21 13:47:19 -06:00
Brent Cook 1fd7f7c8bc prefix MeterpreterUserAgent and PayloadProxy* with Http for consistency,
this also adds aliases where needed
2017-11-21 13:47:19 -06:00
OJ a78d8f83fc Add HTTP header support for Host/Cookie/Referer
This is to start the support for things like domain fronting.
2017-11-21 13:47:18 -06:00
RageLtMan 124a1531f4 Clean up powershell exec string
The scriptblock invocation is already coming from Rex, so there's
no need to re-wrap the executed code in more of the same.
2017-10-06 13:19:36 -04:00
RageLtMan 9afdde2938 Address generation issues with pure PSH payloads
Powershell payloads were generating using the :generate method
mixed in from Payload::Windows::Exec which is a binary payload
mixin.

Address the breakage by implementing a generate method which simply
outputs the script code produced by the module with no additional
content prepended or appended.

While here, cleanup the commandline generation for the script being
produced by having Rex do it (this permits changes made in Rex to
benefit all consumers).

As a bonus, drop the IEX invocation since it'll trip up AMSI and
upgrade to the scripblock execution semantic.

Credit for finding this little gem goes to bperry - i dont usually
use the native powershell command shells, and managed to miss this
for a long time. Thanks boss.

Testing:
  Local in pry

@bperry: Could you test and ping me back if this is right?
2017-10-06 12:32:52 -04:00
root ec51ab2547 Exit function param bug 2017-09-26 11:16:41 +03:00
Brent Cook 9877a61eff bump payloads 2017-09-07 01:36:25 -05:00
OJ 7a2a47586b Fix named pipe migration stubs 2017-09-07 01:36:25 -05:00
OJ 4ec87985a2 Fix stager crash and support pivots in x64 meterp loader 2017-09-07 01:36:24 -05:00
OJ c8b8ef03bd Force max 0x10000 bytes when reading from pipe in stager 2017-09-07 01:36:23 -05:00
OJ 7acd772c10 Pivot session stability, display and handling 2017-09-07 01:36:21 -05:00
OJ fdc9864b61 First working packet pivot session! 2017-09-07 01:36:20 -05:00
OJ e3de01219a Pushed on with more pivot code 2017-09-07 01:33:54 -05:00
OJ abc80655b7 Progress in named pipe pivots, more to come 2017-09-07 01:33:54 -05:00
OJ 816e78b6f6 First pass of named pipe code for pivots 2017-09-07 01:33:53 -05:00
Brent Cook 4ca68a178b switch reverse_tcp stagers to all prefer StagerRetryCount
This leaves ReverseConnectRetries as an alternate spelling.
2017-08-08 19:27:00 -05:00
OJ 37b9cd07a2 Add support for the session GUID in the UI
The Session GUID will identify active sessions, and is the beginning of
work that will allow for tracking of sessions that have come back alive
after failing or switching transports.
2017-06-06 17:15:57 +10:00
alpiste f715fee10c The option StagerRetryWait will be used by default with the value of 5 seconds 2017-03-17 20:28:14 -03:00
alpiste 09442f226a Functionality was added to allow the payload to wait before trying to reconnect.
Also the code was modified to allow the payload to infinite retry if 0 is set.
2017-03-04 18:12:09 -03:00
Brent Cook 836da6177f Cipher::Cipher is deprecated 2017-01-22 10:20:03 -06:00
Brent Cook f69b4a330e handle Ruby 2.4 Fixnum/Bignum -> Integer deprecations 2017-01-22 10:20:03 -06:00
William Webb 5702bd6745 Land #7674, Move migration stub generation code into msf 2016-12-22 17:53:00 -06:00
OJ d0696a09ad Move migration stub generation into MSF
This code adds support for transport-specific migration stubs to be
generated in MSF rather than having them hard-coded in Meterpreter.
2016-12-08 16:01:13 +10:00
OJ bd8f8fd6cb More rework of payload structure to handle multi arch handlers 2016-11-29 15:21:13 +10:00
OJ c606eabbb9 Merge 'upstream/master' into universal-handlers 2016-11-22 14:06:46 +10:00
Brent Cook f313389be4 Merge remote-tracking branch 'upstream/master' into land-7507-uuid-arch 2016-11-20 19:08:56 -06:00
OJ b0970783ff Another interim commit moving towards universal handlers 2016-11-04 13:25:02 +10:00
OJ 47ac122c15 Add LURI support to the reverse_http/s stagers 2016-11-03 14:51:07 +10:00