コード例 #1
0
ファイル: Server.cs プロジェクト: sasqwatch/clr-meterpreter
 private void LoadTransports(BinaryReader reader)
 {
     while (reader.PeekChar() != 0)
     {
         var transportConfig = new TransportConfig(reader);
         this.Transports.Add(transportConfig.CreateTransport());
     }
 }
コード例 #2
0
        private void LoadTransports(BinaryReader reader)
        {
            while (reader.PeekChar() != 0)
            {
                var transportConfig = new TransportConfig(reader);
                var transport       = transportConfig.CreateTransport(this.Session);
                transport.Configure(reader);
                this.Transports.Add(transport);
            }

            // Skip the terminating \x00\x00 at the end of the transport list
            reader.ReadUInt16();
        }
コード例 #3
0
        private InlineProcessingResult TransportAdd(Packet request, Packet response)
        {
            var transportType = request.Tlvs[TlvType.TransType][0].ValueAsDword();
            var url           = request.Tlvs[TlvType.TransUrl][0].ValueAsString();
            var commsTimeout  = request.Tlvs.TryGetTlvValueAsDword(TlvType.TransCommTimeout);
            var retryTotal    = request.Tlvs.TryGetTlvValueAsDword(TlvType.TransRetryTotal);
            var retryWait     = request.Tlvs.TryGetTlvValueAsDword(TlvType.TransRetryWait);

            commsTimeout = commsTimeout == 0 ? this.currentTransport.Config.CommsTimeout : commsTimeout;
            retryTotal   = retryTotal == 0 ? this.currentTransport.Config.RetryTotal : retryTotal;
            retryWait    = retryWait == 0 ? this.currentTransport.Config.RetryWait : retryWait;

            var config    = new TransportConfig(url, commsTimeout, retryTotal, retryWait);
            var transport = config.CreateTransport(this.Session);

            transport.Configure(request);
            this.Transports.Add(transport);

            response.Result = PacketResult.Success;

            return(InlineProcessingResult.Continue);
        }