def METHOD_NAME(self,negotiateMessage):
    #Check if server wants auth
    self.session.request('GET', self.path)
    res = self.session.getresponse()
    res.read()
    if res.status != 401:
        LOG.info('Status code returned: %d. Authentication does not seem required for URL' % res.status)
    try:
        if 'NTLM' not in res.getheader('WWW-Authenticate') and 'Negotiate' not in res.getheader('WWW-Authenticate'):
            LOG.error('NTLM Auth not offered by URL, offered protocols: %s' % res.getheader('WWW-Authenticate'))
            return False
        if 'NTLM' in res.getheader('WWW-Authenticate'):
            self.authenticationMethod = "NTLM"
        elif 'Negotiate' in res.getheader('WWW-Authenticate'):
            self.authenticationMethod = "Negotiate"
    except (KeyError, TypeError):
        LOG.error('No authentication requested by the server for url %s' % self.targetHost)
        if self.serverConfig.isADCSAttack:
            LOG.info('IIS cert server may allow anonymous authentication, sending NTLM auth anyways')
            self.authenticationMethod = "NTLM"
        else:
            return False
    #Negotiate auth
    negotiate = base64.b64encode(negotiateMessage).decode("ascii")
    headers = {'Authorization':'%s %s' % (self.authenticationMethod, negotiate)}
    self.session.request('GET', self.path ,headers=headers)
    res = self.session.getresponse()
    res.read()
    try:
        serverChallengeBase64 = re.search(('%s ([a-zA-Z0-9+/]+={0,2})' % self.authenticationMethod), res.getheader('WWW-Authenticate')).group(1)
        serverChallenge = base64.b64decode(serverChallengeBase64)
        challenge = NTLMAuthChallenge()
        challenge.fromString(serverChallenge)
        return challenge
    except (IndexError, KeyError, AttributeError):
        LOG.error('No NTLM challenge returned from server')
        return False