Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NTLMv2 with MAC and EPA support #35

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Commits on Jul 20, 2022

  1. Add MIC field calculation

    NTLMv2 `authenticate` messages are expected to include MIC field.
    MIC is a hash of 3 concatenated exchanged messages (`negotiate`, `challenge` and `authenticate`)
    As a MIC field is part of the `authenticate` message, during a calculation the field is expected to be filled out with zeroes.
    Once calculated the value is back-filled inside the `authenticate` byte array.
    dlorych committed Jul 20, 2022
    Configuration menu
    Copy the full SHA
    777be83 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3f1b910 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1031e7e View commit details
    Browse the repository at this point in the history
  4. Add AvTargetName with SPN of the web server

    NTLMv2 is expected to fill out information about the remote server
    in a form of SPN value in a AvTargetName AvPair field.
    
    Extracted `getTimestamp` function and added a comment on the
    structure of the timestamp byte array.
    dlorych committed Jul 20, 2022
    Configuration menu
    Copy the full SHA
    a744b1b View commit details
    Browse the repository at this point in the history
  5. Refactor target info values handling

    Add AvPairs type to handle (un-)marshalling
    
    Extract logic of updating target info values to separate funtion
    
    Add SPN target info field - necessary with for Extended Protection
    for Authentication (WIP - to fully support Channel Binding Token is
    necessary).
    dlorych committed Jul 20, 2022
    Configuration menu
    Copy the full SHA
    9109407 View commit details
    Browse the repository at this point in the history
  6. Add support for Extended Security for Auth

    EPA Extended Security for Authentication is based on adding channel
    binding token (CBT) to `authenticate` message (TargetInfo AvPair
    structure)
    dlorych committed Jul 20, 2022
    Configuration menu
    Copy the full SHA
    c475236 View commit details
    Browse the repository at this point in the history
  7. Add empty version

    dlorych committed Jul 20, 2022
    Configuration menu
    Copy the full SHA
    da7cc28 View commit details
    Browse the repository at this point in the history
  8. Modified flags negotiation

    - Move defaultFlags to negotiation_flags.go file
    - Change `defaultFlags` to follow [MS-NLMP] documentation
    - Modify "negotiation", so it is composed of shared part, with
      exception of EXTENDED_SESSIONSECURITY, which shall be enabled always
    dlorych committed Jul 20, 2022
    Configuration menu
    Copy the full SHA
    022e948 View commit details
    Browse the repository at this point in the history