Exemplo n.º 1
0
def push(flargs):
    vm_name, args = flargs
    kind = args.kind

    vm = VMachine(vm_conf_file, vm_name)

    if vm.is_powered_on():
        print "[!] %s is already powered on. please shutdown vm before." % vm_name
        return "%s not pushed %s" % (vm_name, kind)

    job_log(vm_name, "PUSH %s" % kind)

    vm.revert_last_snapshot()
    job_log(vm_name, "REVERTED")

    sleep(random.randint(30, 60))
    vm.startup()
    job_log(vm_name, "STARTUP")

    test_dir = "C:\\Users\\avtest\\Desktop\\AVTEST"

    buildbat = "push_%s_%s.bat" % (kind, args.server)

    filestocopy = [
        "./%s" % buildbat, "./push_all_minotauro.bat", "lib/build.py",
        "lib/logger.py", "lib/rcs_client.py", "conf/vmavtest.cfg",
        "assets/config_desktop.json", "assets/config_mobile.json",
        "assets/keyinject.exe", "assets/meltapp.exe", "assets/meltexploit.txt",
        "assets/meltexploit.docx", "assets/meltexploit.ppsx"
    ]

    result = "%s, ERROR GENERAL" % vm_name
    """
    if wait_for_startup(vm) is False:
        result = "ERROR wait for startup for %s" % vm_name
    else:
        copy_to_guest(vm, test_dir, filestocopy)
        job_log(vm_name, "ENVIRONMENT")
        result = "%s, pushed %s." % (vm_name, kind)
    """
    r = StrictRedis(socket_timeout=5 * 60)
    p = r.pubsub()
    p.subscribe(vm_name)

    try:
        for m in p.listen():
            try:
                print "DBG %s: %s" % (m['channel'], m['data'])
                if "STARTED" in m['data']:  # and started is False:
                    copy_to_guest(vm, test_dir, filestocopy)
                    job_log(vm_name, "ENVIRONMENT")
                    result = "%s, pushed %s." % (vm_name, kind)
                    return result
            except TypeError:
                pass
    except ConnectionError:
        print "DBG %s: not STARTED. Timeout occurred." % vm_name
        return push(flargs)

    return result
Exemplo n.º 2
0
def push(flargs):
    vm_name, args = flargs
    kind = args.kind

    vm = VMachine(vm_conf_file, vm_name)

    if vm.is_powered_on():
        print "[!] %s is already powered on. please shutdown vm before." % vm_name
        return "%s not pushed %s" % (vm_name, kind)

    job_log(vm_name, "PUSH %s" % kind)

    vm.revert_last_snapshot()
    job_log(vm_name, "REVERTED")

    sleep(random.randint(30, 60))
    vm.startup()
    job_log(vm_name, "STARTUP")

    test_dir = "C:\\Users\\avtest\\Desktop\\AVTEST"

    buildbat = "push_%s_%s.bat" % (kind, args.server)

    filestocopy = ["./%s" % buildbat,
                   "./push_all_minotauro.bat",
                   "lib/build.py",
                   "lib/logger.py",
                   "lib/rcs_client.py",
                   "conf/vmavtest.cfg",
                   "assets/config_desktop.json",
                   "assets/config_mobile.json",
                   "assets/keyinject.exe",
                   "assets/meltapp.exe",
                   "assets/meltexploit.txt",
                   "assets/meltexploit.docx",
                   "assets/meltexploit.ppsx"]

    result = "%s, ERROR GENERAL" % vm_name
    """
    if wait_for_startup(vm) is False:
        result = "ERROR wait for startup for %s" % vm_name
    else:
        copy_to_guest(vm, test_dir, filestocopy)
        job_log(vm_name, "ENVIRONMENT")
        result = "%s, pushed %s." % (vm_name, kind)
    """
    r = StrictRedis(socket_timeout=5 * 60)
    p = r.pubsub()
    p.subscribe(vm_name)

    try:
        for m in p.listen():
            try:
                print "DBG %s: %s" % (m['channel'], m['data'])
                if "STARTED" in m['data']:  # and started is False:
                    copy_to_guest(vm, test_dir, filestocopy)
                    job_log(vm_name, "ENVIRONMENT")
                    result = "%s, pushed %s." % (vm_name, kind)
                    return result
            except TypeError:
                pass
    except ConnectionError:
        print "DBG %s: not STARTED. Timeout occurred." % vm_name
        return push(flargs)

    return result