Commit Graph

4379 Commits

Author SHA1 Message Date
wchen-r7 d5d9e88851 Fix #8636, [] for NilClass in session.fs.file.download_file
This fixes a [] for NilClass bug in the download_file API.
The opts argument is not checked for nil before the code looks for
the block_size key.

Fix #8636
2017-07-07 19:00:33 -05:00
Pearce Barry baead02efc Addressing PR feedback.
Removing the audio_stream_pool.rb class file for now, we can recreate for MS-2749 if we really need one.
2017-07-04 09:28:38 -05:00
Pearce Barry ef1145c6b7 Use common code to delete non-applicable cmds. 2017-07-03 09:11:04 -05:00
OJ 4f054d25fc Fix packet spec problems 2017-07-03 18:12:38 +10:00
OJ 999d90687e Make encryption flags 32 bit
This changes the encryption flags on the meterpreter session so that
it's 32 bits (and hence changes the packet header). This also supports
the idea that sessions may use encryption that isn't AES256, so the
flags field will ultimately indicate that. A type flag has been added so
that MSF knows the type that should be done on the wire.

At some point soon we'll add something that makes sure that the packet
encryption type always matches the encryption type expected in MSF, this
will hopefully avoid the risk of having packets injected into the stream
by external entities.
2017-07-03 16:52:58 +10:00
Pearce Barry e21ae88b55 Update wave file header with actual length.
Fixes MS-2759.
2017-06-30 22:48:42 -05:00
James Lee ada954aab9 Land #8624, fix mis-ordered kiwi output 2017-06-30 14:23:24 -05:00
Pearce Barry d2098137a9 Grab last bit of audio from target when done.
Also remove module that needs work (we can create later).
2017-06-30 10:56:49 -05:00
Pearce Barry 48e7e8397e Make listen focus on prerecorded items. 2017-06-29 16:52:17 -05:00
Pearce Barry e8468a5c99 Cleanup. 2017-06-29 16:52:17 -05:00
Pearce Barry 5c5044a80f Stream audio data via channel (MS-2725). 2017-06-29 16:52:16 -05:00
dmohanty-r7 dd7726b894 Change to Audio Mic 2017-06-29 16:52:16 -05:00
dmohanty-r7 1bfa9366e6 Bring back to working 2017-06-29 16:52:15 -05:00
dmohanty-r7 bd9c15713d Bring polling back in 2017-06-29 16:52:15 -05:00
dmohanty-r7 3d51301b98 Seperation of concerns 2017-06-29 16:52:15 -05:00
dmohanty-r7 c7b71a2b32 Seperate concerns of console/mic 2017-06-29 16:52:14 -05:00
dmohanty-r7 9ca74d69f1 add sleep 2017-06-29 16:52:14 -05:00
dmohanty-r7 d2cccae2a1 Use webrtc browser 2017-06-29 16:52:13 -05:00
dmohanty-r7 56b3b0e00d Add more parameterization 2017-06-29 16:52:13 -05:00
dmohanty-r7 d9e1d21c56 Spacing 2017-06-29 16:52:13 -05:00
dmohanty-r7 d62f0cfd98 Add the mic stop command 2017-06-29 16:52:12 -05:00
dmohanty-r7 40ce03b85f Parameterize playback configurations 2017-06-29 16:52:12 -05:00
dmohanty-r7 6f8f85df61 Open player for listening to audio 2017-06-29 16:52:12 -05:00
dmohanty-r7 60e009de8f Use large datasize 2017-06-29 16:52:11 -05:00
dmohanty-r7 16a13723d0 Remove debug 2017-06-29 16:52:11 -05:00
dmohanty-r7 fa4ebadf0f Make mic audio device stream work with mettle 2017-06-29 16:52:10 -05:00
dmohanty-r7 0a0e6c8576 Use audio stream pool 2017-06-29 16:52:10 -05:00
dmohanty-r7 197d377424 Fix commands to mic 2017-06-29 16:52:10 -05:00
Dev Mohanty ebf967db3e Add audio-channel 2017-06-29 16:52:09 -05:00
Anderson 959f9fe2d2 Updated lib/rex/proto/http/client_request.rb to ensure that the host header is formatted 2017-06-29 12:05:02 -07:00
Spencer McIntyre 52211ab6ae Continue refactoring removal of "DLL" references 2017-06-27 18:00:01 -04:00
Spencer McIntyre 0da9f4d64a Refactor railgun "DLL" references to library 2017-06-27 17:34:06 -04:00
Brent Cook e08bd84038 Merge branch 'upstream-master' into land-8603- 2017-06-27 04:03:31 -05:00
OJ 8e1e505730 Fix output of MSV creds dumping in Kiwi
The data being pulled out of the MSV credential dump was not being
rendered propertly because it was assumed that all accounts would
provide the same set of hashes/details for each entry found. However,
this was not the case. Some have NTLM & SHA1, others have LM & NTLM,
some have DPAPI when others don't.

This code generates tables based on the values found, and renders those
values in the appropriate columns, and if the values don't exist for
a given account, the column is left blank.

Fixes #8620
2017-06-27 15:43:40 +10:00
OJ 49e34d70c3 Remove uses of multi-char args for meterpreter commands 2017-06-27 13:06:10 +10:00
Spencer McIntyre ea83cb0bb6 Make the railgun def class names platform specific 2017-06-26 19:53:19 -04:00
OJ 25e323fc4b Support AES renegotiation after session migration 2017-06-26 20:50:12 +10:00
OJ 9f2be21eb7 Ignore missing method error when doing aes negotiation
This means that meterpreter instances that don't support will continue
to work.
2017-06-26 15:22:56 +10:00
OJ bdcea7bd22 Fix http AES packet dispatching 2017-06-25 19:51:25 +10:00
OJ 494d389aa2 Merge upstream/master into packet encryption 2017-06-25 19:06:31 +10:00
OJ 67b1a19aa1 Finalised MSF-side of AES key negotiation over RSA 2017-06-25 10:24:00 +10:00
William Webb bf85386acf add help switch 2017-06-24 17:45:53 -05:00
James Lee 6a8d54a93c Land #8545, ps table output fixes 2017-06-24 14:43:51 -05:00
Brent Cook 1762fe56c9 Land #8589, Fix 64-bit support for the winpmem extension 2017-06-23 19:27:31 -05:00
RageLtMan 1a253f92a1 Finalize DNS spoofing module
DNS spoofing module should be feature complete, with forwarding of
requests which do not have cached answers (can be disabled same as
the native server module), empty replies to reduce client wait on
outstanding DNS requests, and post-send output in verbose mode
to reduce garbage and execution time in the critical/racy path.

This module is best used in conditions where MITM is achieved by
way of MAC spoofing, route interception, or compromise of an inline
host on the datapath. The attacker should avoid forwarding
original requests to the intended destination, or if this is not
possible, prevent replies from traversing the MITM space in order
to avoid race conditions between the spoofer and victim.

Example iptables configuration on MITM host:
 iptables -t nat -A POSTROUTING -o eth0 -p udp ! --dport 53 -j ...

Testing:
  Internal testing in Virtualbox local network, atop 802.11, and
mostly in Neutron (with port security disabled on the VIFs) atop
OpenStack Liberty ML2+OVS.
2017-06-23 19:59:02 -04:00
RageLtMan deef4a94fe Allow DNS::Server::Cache to find '*' names
Allow retrieval of '*' from stored static entries for spoofing
all domains to any IP using wildcard names. Replace the wildcard
response with the name submitted to the search in the response.

Fix improper checks in DNS::Packet for Resolv objects from decode
to encode.

Misc cleanup for records not responding to :address, convenience
methods, and packet structure.
2017-06-23 19:59:01 -04:00
RageLtMan 07dd59fb85 Import native DNS spoofing module and cleanup
Import PCAP-based DNS spoofing server module:
This module uses the Capture mixin to sniff and parse packets off
the wire, then match answers to sniffed requests from static
entries in the server's cache. If answers are found, they are
appended to a cloned packet with reverse saddr/daddr pairs at
layers 2-4, the qr bit is set, and it is injected back into the
interface from where it came.

Minor cleanup in the Rex::Proto::DNS::Server::Cache class to allow
multiple address->name pairs and fix issues when adding multiple
static entries.
2017-06-23 19:58:43 -04:00
RageLtMan b60990c19c Use a MockDnsClient object for request state
In order to handle TCP and UDP clients in a common manner, the
DNS server created a Rex::Socket::Udp object to represent the
client object allowing for a client.write(response) approach to
returning results for both TCP and UDP clients. During work on
the common socket abstractions (#6692) it became apparent that
remote pivoted sockets cannot be created with the same exact param
set used on the server socket - sockets dont reuse with localhost
and localport params being the same, an exception is raised from
the Windows side of the pivot abstraction. Creating a new socket
for every request is also needless overhead and noise.

Create the MockDnsClient class to  consume peerhost, peerport, and
the DNS server's UDP socket as arguments in order to execute a
sendto() from the existing socket when sending a response. A write
method is provided in the class for common interface between the
UDP and TCP request handlers.

This has been tested in conjunction with #6692 and shown to be
successful as serving remote requests from the IO.select polled
pivot socket running on a Windows host via Meterpreter.
2017-06-23 19:58:42 -04:00
RageLtMan fec23cf0fd Remove setsockopt calls from DNS server 2017-06-23 19:58:42 -04:00
RageLtMan d64962994c Packet.valid_hostname? should be a class method 2017-06-23 19:58:40 -04:00