Ejemplo n.º 1
0
def import_pwdump():
    """Downloads a pwdump loot and processes it"""
    workspace = session.msf_workspace
    alert = False
    error = None
    response.title = "%s :: Import Metasploit PWDUMP Loot" % (settings.title)

    try:
        from MetasploitAPI import MetasploitAPI, MSFAPIError
    except ImportError, error:
        return dict(alert=True, error=str(error), form=None)

    msf = MetasploitAPI(host=auth.user.f_msf_pro_url, apikey=auth.user.f_msf_pro_key)
    try:
        msf.login()
        data = msf.loot_list(workspace)
    except MSFAPIError, error:
        return dict(alert=True, error=str(error), form=None)

    if not alert:
        loot_list = []    # list of loot IDs and IPs
        loot_hosts = {}   # mapping of IP to loot IDs
        for k,v in data.iteritems():
            if v['ltype'] == 'host.windows.pwdump' or v['ltype'] == 'windows.hashes':
                loot_list.append([k, v['host']])
                loot_hosts.setdefault(v['host'], k)

        form=SQLFORM.factory(
            Field('hosts', 'list', requires=IS_IN_SET(loot_list, multiple=True), label=T('Host')),
            Field('host_text', 'text', label=T('Host list (1 per line)')),
            Field('addevidence', 'boolean', label=T('Add to Evidence')),
Ejemplo n.º 2
0
def import_pwdump():
    """Downloads a pwdump loot and processes it"""
    msf_settings = msf_get_config(session)
    alert = False
    error = None
    response.title = "%s :: Import Metasploit PWDUMP Loot" % (settings.title)

    try:
        from MetasploitAPI import MetasploitAPI, MSFAPIError
    except ImportError, error:
        return dict(alert=True, error=str(error), form=None)

    msf = MetasploitAPI(host=msf_settings['url'], apikey=msf_settings['key'])
    try:
        msf.login()
        data = msf.loot_list(msf_settings['workspace'])
    except MSFAPIError, error:
        return dict(alert=True, error=str(error), form=None)

    if not alert:
        loot_list = []    # list of loot IDs and IPs
        loot_hosts = {}   # mapping of IP to loot IDs
        for k,v in data.iteritems():
            if v['ltype'] == 'host.windows.pwdump' or v['ltype'] == 'windows.hashes':
                loot_list.append([k, v['host']])
                loot_hosts.setdefault(v['host'], k)

        form=SQLFORM.factory(
            Field('hosts', 'list', requires=IS_IN_SET(loot_list, multiple=True), label=T('Host')),
            Field('host_text', 'text', label=T('Host list (1 per line)')),
            Field('addevidence', 'boolean', label=T('Add to Evidence')),