Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            DNSEncoder.Init();
            var listener = new QuicListener(11000);

            listener.Start();
            while (true)
            {
                var client = listener.AcceptQuicClient();

                client.OnDataReceived += c => {
                    var msg = c.Data;
                    using (var bgWorker = new BackgroundWorker())
                    {
                        bgWorker.DoWork += (sender, eventArgs) =>
                        {
                            var dnsQMsg = DnsMessage.Parse(msg);
                            var dnsRMsg =
                                new DnsClient(IPAddress.Parse("8.8.8.8"), 1000).SendMessage(dnsQMsg);
                            c.Send(DNSEncoder.Encode(dnsRMsg));

                            Console.ForegroundColor = ConsoleColor.Cyan;
                            dnsQMsg.Questions.ForEach(o => Console.WriteLine("Qu:" + o));
                            Console.ForegroundColor = ConsoleColor.Green;
                            dnsRMsg.AnswerRecords.ForEach(o => Console.WriteLine("An:" + o));
                            Console.ForegroundColor = ConsoleColor.DarkGreen;
                            dnsRMsg.AuthorityRecords.ForEach(o => Console.WriteLine("Au:" + o));
                            Console.ForegroundColor = ConsoleColor.Green;
                        };
                        bgWorker.RunWorkerAsync();
                    }
                };
            }
        }
Ejemplo n.º 2
0
        static void Example(int port)
        {
            QuicListener listener = new QuicListener(port);

            listener.Start();

            while (true)
            {
                // Blocks while waiting for a connection
                QuicConnection client = listener.AcceptQuicClient();

                // Assign an action when a data is received from that client.
                client.OnDataReceived += (c) => {
                    byte[]   data         = c.Data;
                    DateTime timeRecieved = DateTime.Now.ToLocalTime();
                    //string message = cleanMessage(data);
                    string message = Encoding.UTF8.GetString(data);

                    Req request = JsonConvert.DeserializeObject <Req>(message);
                    request.timeRecieved    = timeRecieved;
                    request.number_of_bytes = data.Length;
                    //Console.WriteLine("Data received: " + Encoding.UTF8.GetString(data));
                    string aaa   = JsonConvert.SerializeObject(request);
                    byte[] bytes = System.Text.Encoding.UTF8.GetBytes(aaa);//Unicode
                    c.Send(bytes);
                    //c.Send(Encoding.UTF8.GetBytes("Echo!"));
                };
            }
        }
Ejemplo n.º 3
0
        private static void Main()
        {
            var listener = new QuicListener(11000);

            listener.Start();

            while (true)
            {
                // Blocks while waiting for a connection
                var client = listener.AcceptQuicClient();

                // Assign an action when a data is received from that client.
                client.OnDataReceived += c =>
                {
                    var data = c.Data;

                    Console.WriteLine("Data received: " + Encoding.Unicode.GetString(data));

                    c.Send(Encoding.UTF8.GetBytes("Echo!"));
                };
            }

            // ReSharper disable once FunctionNeverReturns
            // We need this so the server actually responds
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            QuicListener listener = new QuicListener(11000);

            listener.Start();
            while (true)
            {
                QuicConnection client = listener.AcceptQuicClient();

                client.OnDataReceived += (c) => {
                    byte[] data = c.Data;
                    Console.WriteLine("Data received: " + Encoding.UTF8.GetString(data));
                    c.Send(Encoding.UTF8.GetBytes("Echo!"));
                };
            }
        }
Ejemplo n.º 5
0
        // RunAsync starts the QuicListener and continually waits for new clients
        public override async Task RunAsync(CancellationToken Token)
        {
            // Start the QuicListener
            QuicListener listener = new QuicListener(this.ExternalPort);

            //QuicListener Listener = new QuicListener(IPAddress.Any, this.ExternalPort);;
            listener.Start();

            // Continually wait for new client
            while (!Token.IsCancellationRequested)
            {
                // Handle the client asynchronously in a new thread
                QuicConnection client = listener.AcceptQuicClient();
                _ = Task.Run(() =>
                {
                    //client.ReceiveTimeout = client.SendTimeout = 0;
                    QuicStream stream = client.CreateStream(QuickNet.Utilities.StreamType.ClientBidirectional);
                    //stream.
                    //stream.ReadTimeout = stream.WriteTimeout = Timeout.Infinite;
                    while (!Token.IsCancellationRequested)
                    {
                        // byte[] data;
                        // Read from the implant
                        string read            = "";
                        client.OnDataReceived += (c) =>
                        {
                            read += Encoding.UTF8.GetString(c.Data);
                        };
                        //string read = Encoding.UTF8.GetString(data);
                        //string read = await Utilities.ReadStreamAsync(stream);
                        // Write to the Covenant server
                        string guid = this.WriteToConnector(read);
                        if (guid != null)
                        {
                            // Track this GUID -> client mapping, for use within the OnReadBridge function

                            Clients.TryAdd(guid, stream);
                        }
                    }
                });
            }
        }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            Console.WriteLine("Server");
            QuicListener listener = new QuicListener(18000);

            listener.Start();
            while (true)
            {
                // Blocks while waiting for a connection
                QuicConnection client = listener.AcceptQuicClient();

                // Assign an action when a data is received from that client.
                client.OnDataReceived += (c) => {
                    byte[] data = c.Data;
                    Console.WriteLine("Data received: " + Encoding.UTF8.GetString(data));
                    // Echo back data to the client
                    c.Send(Encoding.UTF8.GetBytes("Echo!"));
                };
            }
        }
Ejemplo n.º 7
0
        static void Example()
        {
            QuicListener listener = new QuicListener(11000);

            listener.Start();

            while (true)
            {
                // Blocks while waiting for a connection
                QuicConnection client = listener.AcceptQuicClient();

                // Assign an action when a data is received from that client.
                client.OnDataReceived += (c) => {
                    byte[] data = c.Data;

                    Console.WriteLine("Data received: " + Encoding.UTF8.GetString(data));

                    c.Send(Encoding.UTF8.GetBytes("Echo!"));
                    c.Send(Encoding.UTF8.GetBytes("Echo2!"));
                };
            }
        }