Commit Graph

7956 Commits

Author SHA1 Message Date
tkmru 2ec064418f fix desc 2017-07-26 14:22:09 +09:00
tkmru eb536ba67c Merge branch 'master' of https://github.com/rapid7/metasploit-framework into feature/linux_reverse_tcp_x64_retry 2017-07-26 09:48:17 +09:00
William Vu c9853a6bfe Land #8735, robots.txt for HttpServer 2017-07-24 18:26:41 -05:00
William Vu a950ecc345 Clean up style 2017-07-24 18:26:05 -05:00
Brent Cook 6300758c46 use https for metaploit.com links 2017-07-24 06:26:21 -07:00
Brent Cook 800cdcc866 Land #8737, better handle sudden disconnects with SMTP servers 2017-07-23 15:04:50 -07:00
Brent Cook df22e098ed Land #8695, Fix #8675, Add Cache-Control header, also meta tag for BAP2 2017-07-23 07:17:45 -07:00
RageLtMan e787d43344 Implement wrap_double_quotes in Msf PSH namespace
This is the Msf side of Rex Powershell #7
2017-07-22 02:40:15 -04:00
Corey Harding 22e8f1cb48 HWBRIDGE RFTRANSCEIVER ADD LOWBALL SUPPORT 2017-07-20 05:09:00 -04:00
Jin Qian 0f31edfe39 Change tab into space to be standard compliant
Thanks to Brent and Dave for pointing it out.
2017-07-18 16:17:53 -05:00
Jin Qian 6385593148 Fix SE campaign exception.
MS-2705, SE_campaign will crash when RCPT command got socket closure as a response. Thanks to Pearce for the triage.
2017-07-18 14:30:44 -05:00
RageLtMan 33a06faadb Remove use_single_quotes option from Msf namespace
Internally wrapped lines of powershell built by :cmd_psh_payload
in the Rex namespace require being able to place wrapping quotes
in different logical places for :generate_psh_command_line and
:run_hidden_psh methods. Using single quotes in the Arguments
parameter of the hidden PSH runner and double quotes after the
-Command flag maintains allows us to wrap the outer command in
double quotes, while properly ecaping and wrapping the arguments
parameter for PSH execution in single quotes.

This isn't ideal, in a perfect world we'd be escaping all nested
quotes and escape chars of any type valid for PSH. However, that
would require more manual testing than anyone has time for (now).
2017-07-18 03:34:02 -04:00
Dave Farrow 378375c822 replaced devil tabs with spaces 2017-07-17 20:29:33 -07:00
Dave Farrow e6fe90ea08 added robots.txt support for http exploit server 2017-07-17 17:47:36 -07:00
jvoisin 62615298e1 Fix a php warning
This should close #8670
2017-07-16 15:20:30 +02:00
tkmru 2f3090599e change to use option 2017-07-16 19:58:50 +09:00
tkmru 6c5d8279ca change to generate payload from metasm 2017-07-16 19:21:09 +09:00
RageLtMan 1a3fe02db1 Psexec via PSH related fixes
Implement removal of comspec and use of the noninteractive option
in powershell payloads.

This is the Msf side of #6 for rex-powershell.

Testing:
  In-house testing on 2016 standard edition and win10, 201707 revs.
2017-07-16 05:48:11 -04:00
David Maloney ee1c87b868 Land #8172, example modules
lands several example modules
2017-07-14 15:17:20 -05:00
tkmru 5d45680bc1 Merge branch 'master' of https://github.com/rapid7/metasploit-framework into feature/linux_reverse_tcp_x86_retry 2017-07-14 13:53:53 +09:00
tkmru 4e046db9b3 add retry to linux reverse tcp x86 2017-07-14 12:47:32 +09:00
christopher lee 53530b358b Bug fixes 2017-07-13 10:46:54 -05:00
RageLtMan 7e487ec745 fix request_ops per bcoles 2017-07-13 01:16:27 -04:00
Brent Cook 345407b0a4 Rex::Encoder::XDR conflicts with the XDR gem 2017-07-12 11:52:10 -05:00
William Webb aa0fca9dd1 Land #8631, Add railgun support to Python Meterpreter for the OSX
platform
2017-07-11 16:05:16 -05:00
RageLtMan 5473b2132d Implement :request_url for Msf HttpClient mixin
To round out implementation of a simple path for users to access
HttpClient like Open or Net::HTTP, create :request_url method which
takes a single URL parameter, uses :request_opts_from_url to build
the request configuration for Rex::Proto::Http::Client, executes
a GET request with it, and disconnects the client unless keepalive
is specified as the second parameter to :request_url.

Example usage of functionality is implemented in http_pdf_authors.
2017-07-11 16:07:13 -04:00
wchen-r7 50b1ec4044 Fix #8675, Add Cache-Control header, also meta tag for BAP2
Hopefully that browsers will respect this.

Fix #8675
2017-07-10 16:05:09 -05:00
RageLtMan df697aa23c Implement HttpClient options generation from URL
To address the complexity which comes with the flexibility offered
by Rex::Proto::Http::Client and its Msf mixin descendant, a simple
process needs to be implemented for issuing a request using only
the URL string in order to provide ease of access to users who may
not have the time to study how these clients work in detail.

Implement :request_opts_from_url in Msf's HttpClient mixin such as
to extract the options required for :send_request_* from a URL
string passed into the method. This approach reduces HTTP requests
in the mixin to `send_request_raw(request_opts_from_url(url))` when
`url` is just a string.

Implement this approach in the http_pdf_authors gather module to
further reduce infrastructure complexity around the simple need to
acquire PDF files via HTTP/S.

Testing:
  Local to this module only, and in Pry of course. Seems to work...
2017-07-10 04:19:26 -04:00
Dave Farrow e8d4ad8a89 Try all callable methods when creating socket 2017-07-09 11:26:57 -07:00
christopher lee b81e9a4d2a Pass 1: externalize database 2017-07-07 13:33:42 -05:00
Brent Cook 06aa239d47 pass loggger conditionally to common search function 2017-07-03 16:22:47 -05:00
William Vu c1f2fc1838 Add Msf::{Auxiliary,Post}::Complete
Not sure yet why we're doubling up on cleanup.
2017-07-03 00:26:49 -05:00
William Vu 48dddd1e46 Pretty-print fail_with for aux and post modules 2017-07-03 00:07:32 -05:00
David Maloney 1cbc4af6b6 Land #8606
land's bcook's module search rpc work
2017-06-30 14:58:46 -05:00
William Vu 7e1b50ab3b Land #8629, AKA (also known as) module reference 2017-06-28 19:15:45 -05:00
Brent Cook 461ab4501d add 'Also known as', AKA 'AKA', to module references 2017-06-28 15:53:00 -04:00
William Webb 6349026134 Land #8442, Exploit module for Backup Exec Windows Agent UaF 2017-06-28 10:39:28 -05:00
OJ 3f99306370 Fix issue with python3 meterp
Due to the way python3 does things differently, the escaped char string
for the session guid didn't work in the way it was expected. Instead,
we're going to do what we did with the payload UUID and hex encode, and
use binascii to handling the translation for us.
2017-06-28 17:55:27 +10:00
Spencer McIntyre 0da9f4d64a Refactor railgun "DLL" references to library 2017-06-27 17:34:06 -04:00
OJ 494d389aa2 Merge upstream/master into packet encryption 2017-06-25 19:06:31 +10:00
Brent Cook 5635e81a87 export module.search command 2017-06-24 15:50:37 -05:00
Brent Cook e0695cbf9b add a framework-wide search method 2017-06-24 15:09:32 -05:00
Spencer McIntyre feb8d14fe6 Make the TryToFork option generic 2017-06-23 21:08:49 -05: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 f24448c73a Add :client accessor to Remote::DNS::Client
Add convenience method for using the @dns_resolver instance var
via call to :client, which also performs resolver setup if none
exists when called.
2017-06-23 19:58:42 -04:00
RageLtMan dafadb94ff Address Egypt's GH comments
Remove redundant convenience accessors.
Clean up conditional logic.
Use Egypt's clean process_nameservers method.
2017-06-23 19:58:40 -04:00
RageLtMan de0867aaba Address wchen-r7's initial comments
Advanced options are now camel cased
Use :blank? on datastore options instead of serial checks for :nil?
and :empty?
Rex::Proto::DNS::Server :on_client_data updated to ask the tcp_sock
to close this client if it exists in the rescue clause.
2017-06-23 19:58:38 -04:00
RageLtMan 2347c8df99 Create basic packet manipulation modules
Create Rex::Proto::DNS::Packet and Packet::Raw to allow common
parsing, validation, and raw data operations across both Rex and
Msf namespaces.

The modules contain class methods and do not need to be mixed in
to use their functionality Packet.method is enough, and reduces GC
strain since new objects are not constantly being instantiated, and
these modules contain no internal state.

Clean up UDP socket leak from Rex::Proto::DNS::Server under certain
conditions.

Create Msf::Exploit::DNS::Common mixin to provide descendants with
access to Packet and the hostname Regex.

-----

Testing:
  Tested running the RC provided in the pull request
  Manual testing in IRB/Pry while porting PoC for CVE-2015-7547
2017-06-23 19:58:37 -04:00
RageLtMan 2679c26e88 Create and implement Rex::IO::GramServer mixin
Rex::IO::StreamServer provides consistent methods and accessors
for TcpServer type consumers, but includes logic for client actions
which are not relevant in a datagram context - connect and
disconnect actions, as well as any notion of stateful session
persistence (the clients queue) do not apply in this paradigm.

Implement a Rex::IO::GramServer mixin which provides common methods
for dispatching requests and sending responses. Defines the same
callback structure for procs as used in the StreamServer, though
utilizing dispatch_request_proc and send_response_proc with client
and data parameters for efficient interception of execution flow
when dealing with stateless comms.

Rewire Rex::Proto::DNS server to use instance variables along the
same convention as other modules, implement the GramServer mixin,
and minor misc cleanup.

-----

Change calling conventions in Rex::Proto::DNS::Server to match
other components.

Clean up the Msf::Exploit::DNS namespace with generic server
interfaces.

Fix the advanged options naming convention - as hdm pointed out,
evasion options use the '::' separator, advanced options use "_".

-----

Testing:
  Basic functional tests in Pry for now.
2017-06-23 19:58:37 -04:00
RageLtMan 8f9d98775b Export common socket functionality from TcpServer
Exploit::Remote::TcpServer contains functionality required by the
hybrid Udp/Tcp Exploit::Remote::DNS::Server. In order to avoid
having to maintain a set of compatible methods across the transport
implementations, create a new mixin "above" the TcpServer to handle
common socket operations - Exploit::Remote::SocketServer.

Copy Exploit::Remote::TcpServer to Exploit::Remote::SocketServer.
Remove common code from Exploit::Remote::TcpServer, remove TCP/SSL
specific code from Exploit::Remote::SocketServer. Require and
include Exploit::Remote::SocketServer in Exploit::Remote::TcpServer

Testing:
  Basic testing using the telnet capture server which utilzies the
modified Exploit::Remote::TcpServer mixin:

```
use auxiliary/server/capture/telnet
(2016-02-28)15:23 (S:0 J:0)msf  auxiliary(telnet) > exploit
[*] Auxiliary module execution completed
(2016-02-28)15:23 (S:0 J:1)msf  auxiliary(telnet) >
[*] [2016.02.28-15:23:39] Listening on 0.0.0.0:23...
[*] [2016.02.28-15:23:39] Server started.
[*] [2016.02.28-15:23:48] TELNET LOGIN 127.0.0.1:60408 jack / jill
Interrupt: use the 'exit' command to quit
```
2017-06-23 19:58:37 -04:00