Skip to content

NTLM/Negotiate authentication over HTTP that supports Pass The Hash Mode (Pth)

License

Notifications You must be signed in to change notification settings

X1r0z/go-ntlmssp

Repository files navigation

go-ntlmssp

Modified from Azure/go-ntlmssp, and added Pth Mode (Pass The Hash).

Golang package that provides NTLM/Negotiate authentication over HTTP

GoDoc

Protocol details from https://msdn.microsoft.com/en-us/library/cc236621.aspx Implementation hints from http://davenport.sourceforge.net/ntlm.html

This package only implements authentication, no key exchange or encryption. It only supports Unicode (UTF16LE) encoding of protocol strings, no OEM encoding. This package implements NTLMv2.

Usage

url, user, password := "http://www.example.com/secrets", "robpike", "pw123"
// url, user, password := "http://www.example.com/secrets", "robpike", "8ed4a48ecd2a1276eed963da80e2256e"

client := &http.Client{
  Transport: ntlmssp.Negotiator{
    RoundTripper: &http.Transport{},
    Pth: false, // or true when using Pth Mode (Pass The Hash)
  },
}

req, _ := http.NewRequest("GET", url, nil)
req.SetBasicAuth(user, password) // password should be NTLM Hash when using Pth Mode
res, _ := client.Do(req)

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

About

NTLM/Negotiate authentication over HTTP that supports Pass The Hash Mode (Pth)

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages