code: def _get_LMv2_response(user_name, password, domain_name, server_challenge,
                             client_challenge):
          
          nt_hash = comphash._ntowfv2(user_name, password, domain_name)
          challenge = server_challenge + client_challenge
          lm_hash = hmac.new(nt_hash, challenge, digestmod=hashlib.md5).digest()
          response = lm_hash + client_challenge
  
          return response
docs: [MS-NLMP] v28.0 2016-07-14
  
          2.2.2.4 LMv2_RESPONSE
          The LMv2_RESPONSE structure defines the NTLM v2 authentication
          LmChallengeResponse in the AUTHENTICATE_MESSAGE. This response is used
          only when NTLM v2 authentication is configured.
  
          :param user_name: The user name of the user we are trying to
              authenticate with
          :param password: The password of the user we are trying to authenticate
              with
          :param domain_name: The domain name of the user account we are
              authenticated with
          :param server_challenge: A random 8-byte response generated by the
              server in the CHALLENGE_MESSAGE
          :param client_challenge: A random 8-byte response generated by the
              client for the AUTHENTICATE_MESSAGE
          :return response: LmChallengeResponse to the server challenge