vmcontrol.py调用的是vmrun.exe命令,提供参数选项。
ftp_session.py
from sulley import *
from requests import ftp
#run on 192.168.85.151
def receive_ftp_banner(sock):
sock.recv(1024)
aim_ip = "192.168.85.141"
sess = sessions.session(session_filename="audits/war2ftpd.session")
target = sessions.target(aim_ip,21)
target.netmon = pedrpc.client("localhost",26001)
target.procmon = pedrpc.client(aim_ip,26002)
target.vmcontrol = pedrpc.client("localhost",26003)
target.procmon_options = {"proc_name":"war-ftpd.exe"}
target.vmcontrol.restart_target()
print "Virtual Machine up and running."
sess.add_target(target)
sess.pre_send= receive_ftp_banner
sess.connect(s_get("user"))
sess.connect (s_get("user"),s_get("pass"))
sess.fuzz()
网络监控器可以部署在本地测试机上,也可以部署在被测试主机上。但是进程代理必须布置在被测试主机上。
vmcontrol.py usage
D:\tools\sulley>vmcontrol.py -r "D:\VMware\vmrun.exe" -x "D:\VMos\XP\xp pro sp2.
vmx" -s "sulley"
其中Sulley是在测试环境搭建好的时候提供的快照name。
vomcontrol.py 需要修改github上的源码
def revert_to_snapshot (self, snap_name=None):
if not snap_name:
snap_name = self.snap_name
self.log("reverting to snapshot: %s" % snap_name, 2)
command = self.vmrun + " revertToSnapshot " + '"'+self.vmx +'"'+ " " + '"' + snap_name + '"'
return self.vmcommand(command)
原因是默认不识别空格路径,所以要在command
上添加双引号。在此文件中很多,如果用到都需要修改。可以在print command
查看一下报错原因。
使用vmcontrol.py需要安装依赖文件pywin32
在环境变量中设置pythonpath 引入lib文件夹。
存在的问题:当测试过程中使用的是快照机制,如果crash文件部署在被测试虚拟机上,一旦恢复运行,crash文件也会跟着回滚到快照点,以至于crash中的record永远都是0,如何解决这一问题。