Commit Graph

  • c93999f9b2 mssrvs,msscmr,smb: share/service security descriptors and richer share info main v0.10.0 Jimmy Fjällid 2026-06-06 20:58:22 +02:00
  • 0c97d2f64a krb5ssp,ldap: migrate to gokrb5/v9 and adapt to decoupled ldap/v3 Jimmy Fjällid 2026-06-06 16:10:06 +02:00
  • cb9f559549 relay: multi-target NTLM relay package v0.9.0 Jimmy Fjällid 2026-05-31 20:41:37 +02:00
  • f456005f1c dcerpc: server-side PDU marshalling and RPC service servers Jimmy Fjällid 2026-05-31 19:52:37 +02:00
  • 2b30e16410 smb/server: SMB2/3 server implementation Jimmy Fjällid 2026-05-31 19:46:12 +02:00
  • 42ed6f7026 spnego/ntlmssp: add server-side authentication acceptor Jimmy Fjällid 2026-05-31 17:52:29 +02:00
  • 46254fe260 smb: negotiate/signing/encoding groundwork for server support Jimmy Fjällid 2026-05-31 17:44:10 +02:00
  • e2cc42f664 ntlmssp: set NEGOTIATE_ALWAYS_SIGN in client Negotiate Jimmy Fjällid 2026-05-31 17:39:43 +02:00
  • 9ff76aac74 krb5ssp: default KDC traffic to TCP Jimmy Fjällid 2026-05-31 17:28:57 +02:00
  • 2fe455cc1a msdrsr: add AES-SHA2 Kerberos etypes Jimmy Fjällid 2026-05-31 17:27:49 +02:00
  • d2d5c9a90b dcerpc: surface RPC return codes as errors Jimmy Fjällid 2026-05-31 17:26:31 +02:00
  • ef1702d6df msscmr: pass optional ChangeServiceConfig strings as pointers Jimmy Fjällid 2026-05-31 17:24:23 +02:00
  • e3b8c8b39e Support ACCESS_*_OBJECT_ACE and add GUID helpers Jimmy Fjällid 2026-05-31 17:20:59 +02:00
  • 00ecda6111 Use the new golog Logger.SetDisplayName to give each package logger a short, readable tag (e.g. "epm", "msdcom", "spnego") instead of the full import path. Jimmy Fjällid 2026-05-31 17:19:42 +02:00
  • 8a63eaebab Upgraded dependencies Jimmy Fjällid 2026-05-31 17:17:08 +02:00
  • 1a0caf2698 updated gokrb5 lib version v0.8.2 Jimmy Fjällid 2026-05-01 21:04:45 +02:00
  • 113498938a Added an ldap client which is a convenience wrapper around github.com/jfjallid/ldap/v3 exposing a limited search functionality v0.8.1 Jimmy Fjällid 2026-05-01 17:13:43 +02:00
  • b74bcda39e Generalized the cifs->host ccache fallback into a configurable SPN alias map (cifs/ldap/www/http/rpcss/dcom -> host by default), exposed via a new SPNAliases field on spnego.KRB5Initiator and a new spnAliases parameter on krb5ssp.InitKerberosClient/InitKerberosClientExt. The ccache lookup now uses gokrb5's NewFromCCacheWithFallbacks to try the requested SPN first and then each configured alias in order. Bumped gokrb5 to v8.6.1 (and crypto/net) to pick up the new fallback API and the (Client, error) return signatures on NewWithKey/Hash/Password. Added a KRB5Initiator.Client() accessor that lazily initializes the Kerberos client so other consumers can share credentials and the ST cache with the DCERPC SPNEGO path. Reduced log noise in mssamr enumerations and msdrsr DRSBind/DSA GUID selection by demoting Infof to Debugf, mapped DRSUAPI CrackNames status codes to readable names in error messages, and fixed resolveTarget to recognize UPNs (containing '@') and fall through to DSUnknownName instead of misclassifying them. v0.8.0 Jimmy Fjällid 2026-04-25 21:22:46 +02:00
  • 34258ada4f Merge pull request #24 from jfjallid/NewRPCServices Jimmy Fjällid 2026-04-20 22:40:39 +02:00
  • f6f349f915 Added minimal support for MS-EVEN and MS-RPRN to coerce authentication. NewRPCServices Jimmy Fjällid 2026-04-20 20:40:54 +02:00
  • bab62115d7 When creating a kerberos client from a CCACHE file, support specifying both DNS and Netbios domain names. When looking for service tickets in cache for cifs SPN, fallback to host SPN when cifs is missing. Implemented RFC 4757 RC4 Wrap/MIC tokens to support both RC4 and AES for DCERPC. Jimmy Fjällid 2026-04-20 20:37:50 +02:00
  • 8c5145e1f8 Changed structs to work with updated NDR encoder and migrated from manual encoding/decoding to use NDR encoder Jimmy Fjällid 2026-04-20 20:36:51 +02:00
  • 7b48e5d68b Added support for modifying and querying more service settings including failure actions, sid type, dependencies, description, delayed autostart info, required privileges, preshutdown info, and preferred NUMA node. Also changed to always require ServiceAllAccess when attempting to modify a service's settings. Changed struct encoding/decoding to use the updated NDR encoder. Jimmy Fjällid 2026-04-20 20:35:17 +02:00
  • 7ad7430ea2 Removing structs migrated to github.com/jfjallid/mstypes package and some changes to better support NDR encoder Jimmy Fjällid 2026-04-20 20:34:42 +02:00
  • f465a09b89 Added support for channelBinding for use with LDAP Jimmy Fjällid 2026-04-20 20:34:01 +02:00
  • f1779838eb Updated logging to use log.Trace instead of log.Debug Jimmy Fjällid 2026-04-20 20:33:37 +02:00
  • 15ad05caaf Add MS-DCOM (Distributed COM) client with WMI support Jimmy Fjällid 2026-03-19 19:53:58 +01:00
  • e450d1f8ad Return found bool from msrrp QueryValue2 and reduce log noise Jimmy Fjällid 2026-03-18 19:57:33 +01:00
  • 284d221751 Add AlterContext, ObjectUUID, and BindNakError for DCOM support Jimmy Fjällid 2026-03-18 19:55:21 +01:00
  • dbb8a6695e Add PktIntegrity authentication level support to DCERPC Jimmy Fjällid 2026-03-18 19:49:49 +01:00
  • 93e76651e6 Updated golog to v0.3.5 and moved all function entry type debug messages to LevelTrace Jimmy Fjällid 2026-03-06 14:07:30 +01:00
  • e72cce5725 Add MS-TSCH (Task Scheduler) client Implement the TSCH DCERPC service client for managing scheduled tasks including functionality to create, retrieve, run, stop and delete scheduled tasks. Jimmy Fjällid 2026-03-06 13:58:26 +01:00
  • 35179105dc Add MS-DRSR (DRS Replication) client Implement the DRSR DCERPC service client for replicating Active Directory secrets via the DRSGetNCChanges RPC. Includes DES/AES/RC4 decryption of replicated password hashes, PEK decryption, and NTDS secret extraction. Jimmy Fjällid 2026-03-06 11:44:51 +01:00
  • 09359110b3 Merge pull request #23 from jfjallid/decoupling v0.7.0 Jimmy Fjällid 2026-02-26 16:15:36 +01:00
  • 869bf63999 Fixed TCP example in README decoupling Jimmy Fjällid 2026-02-26 16:12:31 +01:00
  • 3a076202c6 Change epm methods to return a list of StringBindings instead of just one to support when the server responds with multiple towers Jimmy Fjällid 2026-02-25 18:02:22 +01:00
  • d3a315adef EPM methods that returned a port number for a given service UUID now returns a StringBinding struct instead which contains both port and ip address to support cases where a server binds a service to a secondary ip. Jimmy Fjällid 2026-02-25 15:11:06 +01:00
  • 63c0756f8f Add EPM floor helpers, fix DCE-style scoping, and randomize authContextId Jimmy Fjällid 2026-02-25 13:04:58 +01:00
  • 21bd238d47 Maintainability improvements across the codebase Jimmy Fjällid 2026-02-19 14:57:45 +01:00
  • 83f1b17619 Added support for Kerberos encryption over TCP via PktPrivacy. Also fixed a problem with missing port number for custom DnsHost when using Kerberos authentication Jimmy Fjällid 2026-02-19 11:23:05 +01:00
  • afa4234ca1 Added support for encryption when using DCERPC over TCP and with NTLM auth Jimmy Fjällid 2026-02-13 11:46:41 +01:00
  • 051ca85dd9 Added support for RPC_C_AUTHN_LEVEL_CONNECT Jimmy Fjällid 2026-02-12 16:45:20 +01:00
  • 1d1d67c7f9 Added support for the Endpoint Mapper to lookup which TCP port a given service is exposed on Jimmy Fjällid 2026-02-12 13:01:59 +01:00
  • f97e259852 Decoupled DCERPC code from SMB code by creating a new interface and prepared to separate DCERPC code into a new package. Jimmy Fjällid 2026-02-07 19:28:43 +01:00
  • bf1d3d7eb5 Removed trailing padding after NegotiateContext items. Fixes #22 v0.6.7 Jimmy Fjällid 2025-11-18 11:40:02 +01:00
  • 97e9059080 Fixes issue with deserializing the response for SamrGetMembersInAlias v0.6.6 Jimmy Fjällid 2025-08-09 15:19:54 +02:00
  • 842acc774c fixed dependency versions v0.6.5 Jimmy Fjällid 2025-07-29 11:41:17 +02:00
  • f1a5ad95f3 Added three methods from MS-LSAT: - LsarGetUserName: whoami method to return the caller's identity - LsarLookupSids2: Translate a list of SIDs to domains and names, including cross forest if there is a trust. - LsarLookupNames3: Translate a list of names to their corresponding SID, including cross foreT if there is a trust. Jimmy Fjällid 2025-07-29 11:24:20 +02:00
  • 802837b47e Added new method to initiate a kerberos client with a custom config, with a socks proxy and with a custom dial timeout. Added options to force DNS over TCP and to specify a custom DNS resolver. Added a few extra error codes. v0.6.3 Jimmy Fjällid 2025-06-10 18:51:45 +02:00
  • 9ecded50dc SMB: - The smb.FsctlStatusMap has been merged into smb.StatusMap for improved handling of response codes. v0.6.2 Jimmy Fjällid 2025-04-27 13:44:37 +02:00
  • a90d27978c Added a new method to MS-SAMR to lookup samAccountName in domain. Fixed a typo in SamrChangePassword2 method that prevented password change using NT Hash only. Added a few helper functions required by the new password change functionality. Fixed an issue with NDR marshalling. v0.6.1 v0.6.0 Jimmy Fjällid 2025-04-05 22:28:45 +02:00
  • 4a5d1460af Added method to check if authenticated with a null session. Added new MS-SAMR method to change a user's password Jimmy Fjällid 2025-04-02 17:08:01 +02:00
  • a605635274 Updated README to reflect new way to interact with RPC services Jimmy Fjällid 2025-03-30 15:11:12 +02:00
  • 1f4acbdeb3 Fixed a problem with handling large results for MS-SAMR requests and added a few additional error codes Jimmy Fjällid 2025-03-30 14:51:19 +02:00
  • f18fe1342f Fixed error in parsing certain empty strings Jimmy Fjällid 2025-03-30 14:44:01 +02:00
  • a7d8cf7add Merge pull request #20 from jfjallid/dev Jimmy Fjällid 2025-03-20 21:38:04 +01:00
  • c29c6d1920 Some refactoring and added basic tests for the marshal/unmarshal functions. Improved handling of user/group/alias handles. Added functionality to enumerate groups and users. Added functionality to list/add/remove users from groups. Added functionality to delete local users and to retrieve information about a user. Added more error codes and improved upon the error handling. dev Jimmy Fjällid 2025-03-20 20:21:08 +01:00
  • 0395c58d9b Some refactoring and added basic tests for the marshal/unmarshal functions Jimmy Fjällid 2025-03-20 20:18:04 +01:00
  • 7cf91bbaf6 Some refactoring and added basic tests for the marshal/unmarshal functions Jimmy Fjällid 2025-03-20 20:17:05 +01:00
  • 1f11d091a7 Some minor changes to MS-DTYP. Added additional error codes and better error message for Fault PDUS for DCERPC. Fixed a bug with unmarshalling of certain structs in MS-SRVS. Jimmy Fjällid 2025-03-20 20:14:46 +01:00
  • 5bf56f4fe8 Added new RPC interface MS-LSAD Jimmy Fjällid 2025-03-16 17:36:59 +01:00
  • 3f50a2e45a Changed function calls to use the new msdtyp package Jimmy Fjällid 2025-03-16 17:33:49 +01:00
  • bde2677ad8 Some refactoring where MS-SRVS and MS-SCMR are moved to their own packages and common DCERPC structs are relocated to a dedicated file. Some changes to NDR serialization functions to better handle both null- and non-null-terminated strings. Fixed an issue with a lack SMB credits when using Kerberos auth. And some small changes to make certain functions public and addition of error codes Jimmy Fjällid 2025-03-16 17:31:59 +01:00
  • 9cf37041d0 Added new RPC service MS-SAMR with functionality such as create local user account, list/add/remove users from local groups, and change user attributes. Also moved some of the MS-DTYP structures to its own package. Jimmy Fjällid 2025-03-10 22:25:29 +01:00
  • 2a9c8765bc Added a partial implementation of the Workstation Service Remote Protocol (MS-WKST) which provides a method of enumerating logged on users on a remote system using administrative privileges Jimmy Fjällid 2025-03-06 20:57:16 +01:00
  • f4713a7649 The method ChangeServiceConfig2 was renamed to ChangeServiceConfigExt. Added two new requests to retrieve and modify a service's description: GetServiceConfig2 and ChangeServiceConfig2 Jimmy Fjällid 2025-03-06 20:54:42 +01:00
  • caa3b4f8bf Added support for enumerating services including their names and current status which could be useful to enumerate all service configs. Fixed a limitation with DCERPC fragmented requests which is now supported. ChangeServiceConfig request now requires additional arguments to specify LoadOrderGroup and TagId. Jimmy Fjällid 2025-03-03 17:33:37 +01:00
  • e5516bb0c1 Fixed an issue where authentication failed for servers with policy "Microsoft network server: Server SPN target name validation level" enabled v0.5.9 Jimmy Fjällid 2025-02-27 20:10:18 +01:00
  • 54e943964e Added extra error code for when attempting to delete non-empty directory Jimmy Fjällid 2025-02-27 20:08:56 +01:00
  • b4d9dc6d9a Added two extra methods to support opening registry keys with custom options and desired access. v0.5.8 Jimmy Fjällid 2025-02-21 20:06:17 +01:00
  • dba621d019 Merge pull request #18 from ron20hg/main v0.5.7 Jimmy Fjällid 2024-12-15 13:39:33 +01:00
  • 971fbda0ce fix: add StatusBufferTooSmall error handling Ron Rabinovich 2024-12-15 11:51:09 +02:00
  • 38d73e9311 change AccessMask strings to exported constants Ron Rabinovich 2024-12-11 11:41:21 +02:00
  • 881dc0e8a3 fix Ron Rabinovich 2024-12-10 12:12:17 +02:00
  • 6c23f04d01 add unmarshal and marshal to QueryInfo Request and Response Ron Rabinovich 2024-12-08 11:30:41 +02:00
  • 9f3449e6d0 fix PR comments Ron Rabinovich 2024-12-08 11:14:48 +02:00
  • f5e0855b03 copy unmarshaling from DCERPC code Ron Rabinovich 2024-12-05 14:39:14 +02:00
  • 216b579846 Added contribution guidelines v0.5.6 Jimmy Fjällid 2024-12-03 19:14:03 +01:00
  • 1f4c7b52fa fix Ron Rabinovich 2024-12-03 16:28:01 +02:00
  • e89e545a49 fix Ron Rabinovich 2024-12-03 16:22:11 +02:00
  • b7975fab61 feat: add QueryInfoSecurity method Ron Rabinovich 2024-12-03 14:52:39 +02:00
  • a4b68ae973 Added error handling of Status NOT SUPPORTED which can occur if trying to use NTLM auth when it is restricted Jimmy Fjällid 2024-10-30 16:30:56 +01:00
  • a34537bd8f Merge pull request #17 from ohad83/fix/ccache_darwin Jimmy Fjällid 2024-10-08 16:56:40 +02:00
  • 0a6ac97d5f Create ccache_darwin.go Ohad Abarbanel 2024-10-06 12:37:18 +03:00
  • 9a508d9434 Added error handling for when the server couldn't decrypt the TGS v0.5.5 Jimmy Fjällid 2024-07-27 12:29:15 +02:00
  • 60cffb91eb Update to use the connection maxReadSize, maxWriteSize, and maxTransactSize as upper limits instead of arbitrary values v0.5.4 Jimmy Fjällid 2024-07-27 11:26:42 +02:00
  • d6a2bbfeee Added some more status codes, added some sanity checks and added a new method to modify a service's config based on the retrieved service config Jimmy Fjällid 2024-07-26 20:21:08 +02:00
  • fa53b036a1 Removed some unnecessary checks for TGT and TGS, and added a check for correct username and domain when using cached credentials v0.5.3 Jimmy Fjällid 2024-07-25 20:17:55 +02:00
  • 3666e13ae3 added missing dependencies v0.5.2 v0.5.1 Jimmy Fjällid 2024-07-21 14:31:59 +02:00
  • dba26b2fe2 Fixed broken function signature for Windows builds Jimmy Fjällid 2024-07-21 14:28:08 +02:00
  • 5a367faaa3 Merge pull request #15 from jfjallid/dev v0.5.0 Jimmy Fjällid 2024-07-21 11:51:15 +02:00
  • 15db811f31 Implemented support for Kerberos authentication with the help of gokrb5. Performed some refactoring and updates to the GSS and SPNEGO code. Fixed some problems with signing and performed some cleanup of the code. Jimmy Fjällid 2024-07-21 11:49:11 +02:00
  • cf5b1bdad9 Merge pull request #14 from jfjallid/ndr v0.4.0 Jimmy Fjällid 2024-03-16 23:10:22 +01:00
  • 9af94ad7ed Changes to the Session struct where all struct fields are now private which means that the fields IsSigningRequired, IsSigningDisabled, IsAuthenticated, MaxReadSize and MaxWriteSize can no longer be access directly from outside the package. Jimmy Fjällid 2024-03-16 22:48:12 +01:00
  • 28b76789be Moved away from the generic SMB encoder and have implemented custom marshal/unmarshal functions for everything. The message structures are now a bit closer to their definitions in the C706 DCERPC specification. Jimmy Fjällid 2024-03-16 22:04:49 +01:00
  • 59d23c4cf7 MS-RRP has been rewritten to follow the specification a bit more closely in regards to data structures and how they are marshalled/unmarshalled. Jimmy Fjällid 2024-03-16 22:02:54 +01:00
  • 47d0ba5b49 Completed the overhaul of MS-SCMR to use custom marshal/unmarshal functions. Changes to most of the message structs with new names and to some extent also new or modified fields. Also added a bit more logging and better error handling. Jimmy Fjällid 2024-03-16 21:36:37 +01:00
  • 6362a9ed2b Some refactoring to separate MS-SRVS and MS-SCMR into their own files. Jimmy Fjällid 2024-03-10 20:53:45 +01:00
  • dab3109c59 Added some new test cases Jimmy Fjällid 2024-03-05 17:22:17 +01:00
  • d1f705414b Added more error handling for a closed connection. Added support for logging out of an SMB session and logging in again from within the same network connection. Added support for a couple of new DCERPC requests to allow enumerating active sessions to a server and retrieving some server info v0.3.8 Jimmy Fjällid 2024-03-04 18:29:33 +01:00