def login(self, ip, username, password, domain): try: ip = list({addr[-1][0] for addr in getaddrinfo(ip, 0, 0, 0, 0)})[0] except gaierror: raise Exception( "No DNS found to resolve %s.\n" "Please make sure that your DNS settings can resolve %s" % (ip, ip)) conn = SMBConnection(ip, ip) username = username.split("@")[0] self._log.debug("Authenticating against {}".format(ip)) try: if re.match(r"^[0-9a-f]{32}$", password, re.IGNORECASE): conn.login(username, password, domain=domain, nthash=password, ntlmFallback=True) self._log.success("Authenticated via NT hash") else: conn.login(username, password, domain) self._log.success("Authenticated via clear text password") except SessionError as e: self._log.error("Session Error") self._log.debug("Provided credentials : {}\\{}:{}".format( domain, username, password)) raise SessionError(e) except Exception as e: raise Exception("Unknown error : {}".format(e)) self.conn = conn return self
def __init__( self, error = 0, packet=0): SessionError.__init__(self) self.error = error self.packet = packet if packet != 0: self.error = self.packet['error-code']
def __init__(self, error=0, packet=0): SessionError.__init__(self) self.error = error self.packet = packet if packet != 0: self.error = self.packet['error-code']