How can I log in to an Exchange server using an NTLM hash instead of a plaintext password with exchangelib?
To use an NTLM hash for authentication in exchangelib, pass the hash string directly as the password argument when creating a `Credentials` object. For example: `Credentials('DOMAIN\\username', '00000000000000000000000000000000:7C451851EA87B63EC7692126416D01EB')`. This enables pass‑the‑hash attacks in penetration testing scenarios, similar to the approach described in the [requests_ntlm guide](/news/exchange-web-service-ews-development-guide-6-requests-ntlm). The library automatically uses NTLM authentication over SOAP XML.
Related article:
Exchange Web Service (EWS) Development Guide 5 – exchangelib