当密码不正确时,如何让rdpy-rdpmitm让客户端重新输入用户名和密码

时间:2015-11-04 08:56:33

标签: python rdp

我使用rdpy-rdpmitm的{​​{1}}演示来实现rdp代理,但是我想在连接到目标之前检查密码,让客户端重新输入用户名和密码。我的代码是这样的;如何实施rdpy方法?

OnReady

2 个答案:

答案 0 :(得分:1)

尝试使用递归:

class ProxyServer(rdp.RDPServerObserver):
  def __init__(self, controller, target, clientSecurityLevel, rssRecorder):
    """
    @param controller: {RDPServerController}
    @param target: {tuple(ip, port)}
    @param rssRecorder: {rss.FileRecorder} use to record session
    """
    rdp.RDPServerObserver.__init__(self, controller)
    self._target = target
    self._client = None
    self._rss = rssRecorder
    self._clientSecurityLevel = clientSecurityLevel


  def onReady(self):
    """
    @summary:  Event use to inform state of server stack
                First time this event is called is when human client is connected
                Second time is after color depth nego, because color depth nego
                restart a connection sequence
    @see: rdp.RDPServerObserver.onReady
    """
    if self._client is None:
      # try a connection
      domain, username, password = self._controller.getCredentials()
      self._rss.credentials(username, password, domain, self._controller.getHostname())

      width, height = self._controller.getScreen()
      self._rss.screen(width, height, self._controller.getColorDepth())


      if checkPassword(username, password): #password ok
          reactor.connectTCP('127.0.0.1', 3389, ProxyClientFactory(self, width, height, domain, username, password,self._clientSecurityLevel))
      else:
          onReady(self)

这样重复,直到密码正确

答案 1 :(得分:0)

我真的不知道您正在使用的库,但是如果连接失败,您不能只测试错误,然后通过以前的代码重试连接,即:

Python 2.x

password = raw_input("Please re-enter your password:")

Python 3.x

password = input("Please re-enter your password")