Ejemplo n.º 1
0
    def parseRequest(self):
        request = MSRPCHeader(self.data)
        ShellMessage.Process(3).run()
        request = byterize(request)
        loggersrv.debug("RPC Bind Request Bytes: \n%s\n" %
                        justify(deco(binascii.b2a_hex(self.data), 'utf-8')))
        loggersrv.debug(
            "RPC Bind Request: \n%s\n%s\n" %
            (justify(request.dump(print_to_stdout=False)),
             justify(
                 MSRPCBind(request['pduData']).dump(print_to_stdout=False))))

        return request
Ejemplo n.º 2
0
    def generateRequest(self):
        firstCtxItem = CtxItem()
        firstCtxItem['ContextID'] = 0
        firstCtxItem['TransItems'] = 1
        firstCtxItem['Pad'] = 0
        firstCtxItem['AbstractSyntaxUUID'] = uuid.UUID(
            '51c82175-844e-4750-b0d8-ec255555bc06').bytes_le
        firstCtxItem['AbstractSyntaxVer'] = 1
        firstCtxItem['TransferSyntaxUUID'] = uuidNDR32.bytes_le
        firstCtxItem['TransferSyntaxVer'] = 2

        secondCtxItem = CtxItem()
        secondCtxItem['ContextID'] = 1
        secondCtxItem['TransItems'] = 1
        secondCtxItem['Pad'] = 0
        secondCtxItem['AbstractSyntaxUUID'] = uuid.UUID(
            '51c82175-844e-4750-b0d8-ec255555bc06').bytes_le
        secondCtxItem['AbstractSyntaxVer'] = 1
        secondCtxItem['TransferSyntaxUUID'] = uuidTime.bytes_le
        secondCtxItem['TransferSyntaxVer'] = 1

        bind = MSRPCBind()
        bind['max_tfrag'] = 5840
        bind['max_rfrag'] = 5840
        bind['assoc_group'] = 0
        bind['ctx_num'] = 2
        bind['ctx_items'] = str(
            bind.CtxItemArray(str(firstCtxItem) + str(secondCtxItem)))

        request = MSRPCHeader()
        request['ver_major'] = 5
        request['ver_minor'] = 0
        request['type'] = self.packetType['bindReq']
        request['flags'] = self.packetFlags['firstFrag'] | self.packetFlags[
            'lastFrag'] | self.packetFlags['multiplex']
        request['call_id'] = self.srv_config['call_id']
        request['pduData'] = str(bind)

        ShellMessage.Process(0).run()
        bind = byterize(bind)
        request = byterize(request)
        loggersrv.debug(
            "RPC Bind Request: \n%s\n%s\n" %
            (justify(request.dump(print_to_stdout=False)),
             justify(
                 MSRPCBind(request['pduData']).dump(print_to_stdout=False))))
        loggersrv.debug("RPC Bind Request Bytes: \n%s\n" % justify(
            deco(binascii.b2a_hex(enco(str(request), 'latin-1')), 'utf-8')))

        return request