Commit Graph

5658 Commits

Author SHA1 Message Date
Christophe De La Fuente 3d22fbcad9 Add exploit module for Certifried exploit
- Move all the logic from `modules/auxiliary/admin/dcerpc/icpr_cert.rb`
  to `lib/msf/core/exploit/remote/ms_icpr.rb` library
- Move all the logic from `modules/auxiliary/admin/dcerpc/samr_computer.rb`
  to `lib/msf/core/exploit/remote/ms_samr.rb` library
- Add `modules/auxiliary/admin/dcerpc/cve_2022_26923_certifried.rb` module
- Update the SMB client to disable SSL by default
- Add documentation
- Kerbero client: pass `options` as argument to `send_request_as`
- `calculate_shared_key` returns an EncryptionKey instead of the raw key
- Update `pkinit_login` module to make it compatible
- Add support to `additional_tickets` when requesting tickets
- Add support to PAC CredentialInfo structures
- Add impersonation to escalate privileges
- Add ACTIONS
- Use elevated TGS to delete the computer account
- Update and add specs
2023-01-13 15:30:50 +01:00
Christophe De La Fuente 29968fb76e Land #17337, Gather Dbeaver Password 2023-01-12 16:06:00 +01:00
Christophe De La Fuente f9b1c17c39 Fix exception handler logic and small improvements 2023-01-11 20:00:09 +01:00
cn-kali-team 6738ca2c43 Support multiple platforms 2023-01-11 18:04:29 +08:00
Grant Willcox 87b1f3b602 Land #17386, Ignore Content-Length header for the purpose of HEAD requests 2023-01-10 11:00:59 -06:00
Grant Willcox 8b102afd71 Rubocop fixes and some documentation additions 2023-01-10 10:07:51 -06:00
Ashley Donaldson f8b253dae1 Fix state machine for HEAD requests 2023-01-10 10:57:13 +11:00
Spencer McIntyre 2494c367e7 Handle chunked Kerberos responses
Chunked responses from partial reads are possible when pivoting.
2023-01-09 11:24:53 -05:00
Grant Willcox e03fd42a29 Update to fix some warnings in YARD, fix review comments, and also replace @see with proper links for easier navigation 2023-01-05 17:44:24 -06:00
cn-kali-team 5eae5068cc update 2023-01-05 20:56:06 +08:00
RageLtMan 955fb2ef3e SSM WebSocket session keep-alive
The SSM session socket times out without data being sent at the
upper (SSM) WS layer. Implement keep-alive in a separate thread
which simply writes nothing into the channel at irregular intervals
to simulate user activity.

Testing:
  Sessions established with this code running have not timed-out
in over 15m despite being completely unused
2023-01-03 21:20:07 -05:00
RageLtMan 46c030a08b Finalize SSM Shell via WebSocket
Implement terminal resizing to WebSocket shell
Reorganize code to ease later extension
Implement peerinfo in channel context from AWS EC2 SSM information
gathered during session validation
Implement echo-filtering for session inputs (hacky, but works)

Testing:
  Verified console resizing, color/reset/etc
  Verified peerinfo and interaction
  Verified common session operations

Notes:
  SSM WebSocket sessions time out pretty quickly, implementing
dedicated SSM session types which support suspend/resume to match
backgrounding/foregrounding operations in the console should help
to resolve this. Alternatively, a keep-alive using empty frames
may be implemented in the SsmChannel itself on a separate thread.
2023-01-03 15:10:31 -05:00
RageLtMan 43d746c404 Implement SSM WebSocket Sessions
Alter WebSocket::Interface::Channel to accept a mask_write flag to
set the Channel behavior for outgoing data (since the on_data_write
handler can only deal with the buffer provided, not how the wsframe
containing it is written to the "wire"). Set the flag to false for
SSM's WebSocket operations.

Extract Rex::Proto::Http::WebSocket::AmazonSsm from the handler to
permit reuse by other framework elements.

Implement SSM-specific UUID handling.
Create sane SsmFrame constructor to permit convenient operations.

Implement Http::WebSocket::AmazonSsm::Inteface::SsmChannel from
Http::WebSocket::Inferface::Channel with message-type handling and
output processing. Acknowledge incoming messages, process incoming
acknowledgements, increment sequence IDs appropriately, and handle
basic logging.

This new session type removes the 2500 char output restriction and
stateless peer cwd.

Testing:
  Execution of handler now provides stateful interactive shells

Next steps:
  More testing, preferably by other people with upstream framework.
  Peerinfo and presentation updates for the session channel
  Misc cleanup

Future work:
  Implement new SSM session type with support for multi-console,
port-forwarding/socket routing, and custom SSM documents.
  Implement FSM handlers for session suspension and resumption in
Http::WebSocket::AmazonSsm::Interface::SsmChannel
2023-01-03 09:34:14 -05:00
Ashley Donaldson b05db8b82d Keep signature of the read_response function as it was before, and add the original request as an opt 2023-01-03 09:46:43 +11:00
Grant Willcox 86d4129edb Add in missing YARD documentation for lib/rex/proto/ldap.rb 2022-12-30 13:41:33 -06:00
adfoster-r7 95d361754f Merge branch 'upstream-master' into merge-6.2.33-master-into-kerberos-feature-branch 2022-12-28 13:59:42 +00:00
Grant Willcox 8678bb9db6 Land #17380, Update User Agent strings December 2022 2022-12-27 18:18:24 -06:00
Christophe De La Fuente 6e09236c97 Land #17381, Update rasn1 dependency for pkinit 2022-12-15 17:38:49 +01:00
Spencer McIntyre d1f5fa06cf Don't use File in cmd_upload / cmd_download
It does not look like shell sessions define their own File class,
meaning that the local-platform specific one is always used. Instead
we'll define the separator ourselves since it's all we need to perform
the basic operations necessary to analyze the path string.
2022-12-15 10:05:02 -05:00
Ashley Donaldson 891ab225cc Ignore Content-Length header for the purpose of HEAD requests 2022-12-15 11:22:48 +11:00
adfoster-r7 2783e92203 Update windows_secrets_dump and Keytab module to export kerberos keys 2022-12-14 13:40:39 +00:00
adfoster-r7 28bd37b0a7 Update rasn1 dependency for pkinit 2022-12-14 00:32:26 +00:00
Ashley Donaldson 2f6c94b872 Update User Agent strings December 2022 2022-12-14 11:03:25 +11:00
adfoster-r7 a9ccfe31b7 Merge branch 'upstream-master' into merge-msf-6.2.31-into-kerberos-feature-branch 2022-12-13 19:40:39 +00:00
adfoster-r7 7625d4b08b Add ticket flags when outputting krb5 ccache 2022-12-13 12:19:16 +00:00
Spencer McIntyre 34451940c7 Fix uploading from shell sessions 2022-12-12 12:02:33 -05:00
Spencer McIntyre a9cdb77a72 Use consistent casing and fix typos 2022-12-12 10:30:50 -05:00
Spencer McIntyre a80db73bab Land #17325, add impersonation for get_ticket
Enable the `get_ticket` module to impersonate a user with S4U2self and S4U2proxy
2022-12-12 09:10:37 -05:00
Christophe De La Fuente 86ec66c43d Add decoding support
- for Rex::Proto::Kerberos::Model::Checksum
- for Rex::Proto::Kerberos::Model::PreAuthForUser
- add specs
2022-12-12 12:56:30 +01:00
Spencer McIntyre 2fc8b0a7a6 Add GitHub refereces to the patch details 2022-12-08 10:47:44 -05:00
Dean Welch fc3bb585be Move TypeSerialization1 to it's own file 2022-12-08 13:20:41 +00:00
Dean Welch 1e1580e346 Move TypeSerialization1 to it's own file 2022-12-08 13:11:47 +00:00
Grant Willcox e7b20ad155 Add in monkey patch to the search method of Net::LDAP::Connection to allow us to use controls when search whilst we await an upstream patch in Net::LDAP 2022-12-07 15:17:52 -06:00
Dean Welch 1e2ada3cce Add options validation depending on action in forge_ticket.rb 2022-12-06 12:55:42 +00:00
Dean Welch 405271a52f Add pac BinData Model 2022-12-05 14:03:21 +00:00
cn-kali-team 907612b41d Dbeaver 2022-12-05 14:54:19 +08:00
bcoles 431804ef15 Fix typos: Replace 'the the' with 'the' 2022-12-04 17:41:24 +11:00
Christophe De La Fuente c6f8bae1ab Fix from code review and updates the KrbUseCachedCredentials logic 2022-12-02 15:28:08 +01:00
Christophe De La Fuente cc61a26668 Add S4U2Self and S4U2Proxy support to impersonate a user 2022-12-01 20:42:13 +01:00
adfoster-r7 750192afa4 Add pkinit error codes 2022-11-29 10:36:10 +00:00
JustAnda7 28157b677b Support for Access Mask in MsDtypAccess 2022-11-22 04:50:54 -05:00
Spencer McIntyre f4a65a220a Support ON_BEHALF_OF in icpr_cert
Add the code necessary to request certificates on behalf of other users.
This is necessary to exploit templates vulnerable to ESC2 and ESC3.
2022-11-17 12:12:35 -05:00
Spencer McIntyre b4f285d9b2 Land #17243, Improve railgun tlv packet logging
Improve tlv packet logging for railgun
2022-11-16 09:26:07 -05:00
Jeffrey Martin fa125e1943 Land #17261, Fix Port Forwarding For Ruby 3 2022-11-15 08:27:00 -06:00
Spencer McIntyre 2459371a47 Print the portfwd relay more descriptively
Closes #17158

This updates the output of the portfwd command to show if it's a forward
(normal) portforward or if it's a reverse port forward where the
compromised host is the one listening.
2022-11-15 08:50:23 -05:00
Spencer McIntyre 218e8c2d0c Fix a Ruby 3 syntax issue
Closes #17124

This fixes a Ruby 3 syntax issue in how the parameters are passed. The
issue caused TcpServerChannels to fail to enqueue new client
connections.
2022-11-14 17:01:51 -05:00
Spencer McIntyre eff9a16e00 Use the access mask data type
Also switch from bit16 to uint16 so it's little endian.
2022-11-14 12:27:38 -05:00
Spencer McIntyre 7fa29c4345 Don't bother with the address type
The address is returned in the packed format so it's always a string of
either length 0 (resolution failed), length 4 (IPv4) or length 16
(IPv6).

Anything else is invalid and will actually cause Rex::Socket.addr_ntoa
to throw an error. All meterpreters today return the IP address in one
of those three correct lengths.
2022-11-10 11:13:30 -05:00
adfoster-r7 8efc6c5304 Land #17103, Consolidate KdcOptionFlags and TicketFlags 2022-11-09 17:27:17 +00:00
Dean Welch 7c2134d941 Consolidate KdcOptionFlags and TicketFlags 2022-11-09 17:08:26 +00:00