gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 16:58:30 27 4
gpt4 key购买 nike

我使用rdpyrdpy-rdpmitm demo来实现一个rdp代理,但是我想在连接到目标之前检查密码并让客户端重新输入用户名和密码。我的代码是这样的;如何实现 OnReady 方法?

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:
pass
#how to make client re-input username and password in this place

最佳答案

尝试使用递归:

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)

这样重复直到密码正确

关于python - 当密码不正确时,如何让 rdpy-rdpmitm 让客户端重新输入用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33517484/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com