(Python impacket)带登录的smb服务器?

2024-10-01 17:35:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在服务器.smbpy从impacket库。在

在某些情况下,我将第2201行的错误代码更改为STATUS\u LOGON\u FAILURE,但是我的windows客户端在要求用户输入新的凭据之前,总是用相同的凭据请求10次。当我提交windows对话框时,凭据不会被发送到脚本。在

下面是我的代码部分:

                if not authenticateMessage['user_name'] == "testUser":
                print "username not valid"
                errorCode = STATUS_LOGON_FAILURE
                respToken['NegResult'] = '\x02'
            else:
                print "logged in" + authenticateMessage['user_name']
                errorCode = STATUS_SUCCESS
                respToken['NegResult'] = '\x00'

有人在那里写了一个有效的认证部分吗?谢谢!在


Tags: name服务器failurewindowsstatusnotprintuser
1条回答
网友
1楼 · 发布于 2024-10-01 17:35:27

您提供的链接不是库的官方存储库。以后使用https://github.com/CoreSecurity/impacket。在

您指定的代码几乎是正确的,除了authenticateMessage内的用户名字段是Unicode编码的。 您可以通过调用dump()方法(em>authenticateMessage结构的内容authenticateMessage.dump())。在

我已将您的代码替换为:

authenticateMessage.dump()
respToken = SPNEGO_NegTokenResp()
if authenticateMessage['user_name'].decode('utf-16le') == "testUser":
    errorCode = STATUS_SUCCESS
    respToken['NegResult'] = '\x00'
else:
    errorCode = STATUS_LOGON_FAILURE
    respToken['NegResult'] = '\x02'

如果您克隆了master(https://github.com/CoreSecurity/impacket),您将看到一个名为examples的新示例/smbserver.py(别和小淘气搞混了/smbserver.py库)使启动简单服务器更容易。只需运行:

^{pr2}$

我做了前面提到的更改并运行smbserver.py然后,从windows 7命令行.exe提示符I run(假设SMB服务器运行在172.16.123.1并且登录用户名不是testUser):

start \\172.16.123.1

如果你嗅探流量,你会看到三次尝试登录失败,然后Windows资源管理器将弹出一个对话框,要求新的凭据。如果您将testUser指定为username(密码可以是任何内容),那么您将最终连接到目标SMB服务器。在

相关问题 更多 >

    热门问题