Ejemplo n.º 1
0
        public bool sendProxyStatus(dynamic Order, object objProxy)
        {
            var serializer = new JavaScriptSerializer();

            string json        = serializer.Serialize(objProxy);
            string dataCrypted = EncryptionRC4.Encrypt(Config.Config.ENCRYPTION_KEY, json);

            Dictionary <string, string> dataPost = new Dictionary <string, string>();

            dataPost.Add("d", dataCrypted);
            postData(Config.Config.url("proxy/set_status"), dataPost);

            return(true);
        }
Ejemplo n.º 2
0
        private string postData(string url, Dictionary <string, string> postParameters)
        {
            string postData = "";

            foreach (string key in postParameters.Keys)
            {
                postData += HttpUtility.UrlEncode(key) + "=" + HttpUtility.UrlEncode(postParameters[key]) + "&";
            }
            var data = Encoding.ASCII.GetBytes(postData);

            var request = (HttpWebRequest)WebRequest.Create(url);

            request.UserAgent         = Config.Config.MAIN_USER_AGENT;
            request.CookieContainer   = new CookieContainer();
            request.AllowAutoRedirect = true;
            request.Method            = "POST";
            request.ContentType       = "application/x-www-form-urlencoded";
            request.ContentLength     = data.Length;
            request.KeepAlive         = true;
            request.Headers.Add("Authorization", Config.Config.API_KEY);

            var reponseString = string.Empty;

            for (int t = 0; t < 3; t++)
            {
                try
                {
                    using (var stream = request.GetRequestStream())
                    {
                        stream.Write(data, 0, data.Length);
                    }

                    using (var response = (HttpWebResponse)request.GetResponse())
                    {
                        reponseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
                        break;
                    }
                } catch (Exception ex) {
                    throw ex;
                }
            }
            var     serializer = new JavaScriptSerializer();
            dynamic json1      = serializer.DeserializeObject(reponseString);

            reponseString = EncryptionRC4.Decrypt(Config.Config.ENCRYPTION_KEY, json1["d"]);
            return(reponseString);
        }
Ejemplo n.º 3
0
        private static void _timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            _timer.Stop();
            string dJson = getData(Config.Config.url("order/get"));

            var     serializer  = new JavaScriptSerializer();
            dynamic dataCrypted = serializer.DeserializeObject(dJson);

            if (!string.IsNullOrEmpty(dataCrypted["d"]))
            {
                dJson = EncryptionRC4.Decrypt(Config.Config.ENCRYPTION_KEY, dataCrypted["d"]);
                dynamic data = serializer.DeserializeObject(dJson);

                /* try
                 * {*/
                if (data["error"] == true)
                {
                    if (!string.IsNullOrEmpty(data["message"]))
                    {
                        Console.WriteLine("Erreeur: " + data["message"]);
                    }
                    else
                    {
                        Console.WriteLine("Erreur");
                    }
                    Thread.Sleep(5000);
                    goto GO_toNoTask;
                }
                if (data["available"] == false)
                {
                    goto GO_toNoTask;
                }
                dynamic order = data["order"];
                order["id"]           = data["id"];
                order["date_created"] = data["date_created"];

                setProxyConfig(order);

                string task_name = Convert.ToString(order["name"]);
                switch (task_name)
                {
                case "search_urls":
                {
                    Console.WriteLine("Start Scanne Dorks... ");
                    ScannerDork dScanne    = new ScannerDork();
                    string      dork_lines = Convert.ToString(order["dorks"]);
                    string[]    dorks      = dork_lines.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
                    Console.WriteLine(dorks.Length + " => Dorks");

                    searchEngines sE = new searchEngines();
                    sE.Aol         = (order["aol"] == "1") ? true : false;
                    sE.Ask         = (order["ask"] == "1") ? true : false;
                    sE.Bing        = (order["bing"] == "1") ? true : false;
                    sE.Google      = (order["google"] == "1") ? true : false;
                    sE.MyWebSearch = (order["myWebSearch"] == "1") ? true : false;
                    sE.Sapo        = (order["sapo"] == "1") ? true : false;
                    sE.WebCrawler  = (order["webCrawler"] == "1") ? true : false;
                    sE.Wow         = (order["wow"] == "1") ? true : false;
                    sE.Yahoo       = (order["yahoo"] == "1") ? true : false;
                    sE.Yandex      = (order["yandex"] == "1") ? true : false;

                    Config.Config.excludeUrlWords = order["excludeUrlWords"];

                    int timeout  = Convert.ToInt16(order["timeout"]);
                    int numDelay = Convert.ToInt16(order["numDelay"]);

                    dScanne.StartWorker(order, timeout, numDelay, dorks.ToList(), 10, 5, sE.Google, sE.Bing, sE.Yahoo, sE.Aol, sE.Yandex, sE.Ask, sE.Wow, sE.WebCrawler, sE.MyWebSearch, sE.Sapo);
                }
                break;

                case "scanner_urls":
                {
                    Console.WriteLine("Start Analyse If Exploitable...");

                    dJson = getData(Config.Config.url("sqli/urls?max=" + order["numMaxUrls"]));
                    dynamic dUrlsWrap = serializer.DeserializeObject(dJson);
                    dJson     = EncryptionRC4.Decrypt(Config.Config.ENCRYPTION_KEY, dUrlsWrap["d"]);
                    dUrlsWrap = serializer.DeserializeObject(dJson);

                    AnalyserUrls uAnalyser     = new AnalyserUrls();
                    Hashtable    urlsHashtable = new Hashtable();

                    foreach (var url in dUrlsWrap["urls"])
                    {
                        if (!urlsHashtable.ContainsValue(url))
                        {
                            urlsHashtable.Add(url, url);
                        }
                    }
                    int timeout   = Convert.ToInt16(order["timeout"]);
                    int numDelay  = Convert.ToInt16(order["numDelay"]);
                    int numThread = Convert.ToInt16(order["numThread"]);

                    uAnalyser.StartWorker(order, timeout, numDelay, numThread, urlsHashtable);
                }
                break;

                case "analyse_exploitables":
                {
                    Console.WriteLine("Start Analyse If Injectable...");

                    dJson = getData(Config.Config.url("sqli/exploitables?max=" + order["numMaxUrls"]));
                    dynamic dExploitablesWrap = serializer.DeserializeObject(dJson);
                    dJson             = EncryptionRC4.Decrypt(Config.Config.ENCRYPTION_KEY, dExploitablesWrap["d"]);
                    dExploitablesWrap = serializer.DeserializeObject(dJson);

                    InjecterUrls uInjecter             = new InjecterUrls();
                    Hashtable    exploitablesHashtable = new Hashtable();

                    foreach (dynamic obj in dExploitablesWrap["exploitables"])
                    {
                        if (!exploitablesHashtable.ContainsValue(obj))
                        {
                            exploitablesHashtable.Add(obj["url"], new { url = obj["url"], sql_type = obj["sql_type"] });
                        }
                    }
                    int timeout   = Convert.ToInt16(order["timeout"]);
                    int numDelay  = Convert.ToInt16(order["numDelay"]);
                    int numThread = Convert.ToInt16(order["numThread"]);

                    uInjecter.StartWorker(order, exploitablesHashtable, timeout, numDelay, numThread);
                }
                break;

                case "analyse_urls_queue":
                {
                    Console.WriteLine("Start Analyse URLS QUEUE If Exploitable Injectable...");

                    dJson = getData(Config.Config.url("sqli/urls_queue?max=" + order["numMaxUrls"]));
                    dynamic dQueueWrap = serializer.DeserializeObject(dJson);
                    dJson      = EncryptionRC4.Decrypt(Config.Config.ENCRYPTION_KEY, dQueueWrap["d"]);
                    dQueueWrap = serializer.DeserializeObject(dJson);

                    InjecterUrlsQueue uInjecter          = new InjecterUrlsQueue();
                    Hashtable         urlsQueueHashtable = new Hashtable();

                    foreach (dynamic obj in dQueueWrap["urls_queue"])
                    {
                        if (!urlsQueueHashtable.ContainsValue(obj))
                        {
                            urlsQueueHashtable.Add(obj["url"], new { url = obj["url"], email_submitter = obj["email"], ip_submitter = obj["ip"] });
                        }
                    }
                    int timeout   = Convert.ToInt16(order["timeout"]);
                    int numDelay  = Convert.ToInt16(order["numDelay"]);
                    int numThread = Convert.ToInt16(order["numThread"]);

                    uInjecter.StartWorker(order, urlsQueueHashtable, timeout, numDelay, numThread);
                }
                break;

                case "proxy_checks":
                {
                    Globals.UpDateStatus(order, "Proxy Checker", "Checker thread, loading please wait..");
                    setProxyConfig(order);
                }
                break;
                }
                Thread.Sleep(5000);

                /*} catch(Exception ex) {
                 *  throw ex;
                 * }*/

GO_toNoTask:
                Thread.Sleep(1000);
            }

            _timer.Start();
        }
Ejemplo n.º 4
0
        /*SearchClass.SearchEngineUrls seu = new SearchClass.SearchEngineUrls(SearchClass.SearchEngineUrls.Host.Google, 1, 50000000);
         *   seu.StartScanning(dorks, 1, 1000);*/

        private static void setProxyConfig(dynamic order)
        {
            try
            {
                int  val    = Convert.ToInt16(order["proxy"]);
                bool active = val == 1 ? true : false;
                if (active)
                {
                    var serializer = new JavaScriptSerializer();
                    Console.WriteLine("Getting proxy... ");
                    string  dJson     = getData(Config.Config.url("proxy/get"));
                    dynamic dUrlsWrap = serializer.DeserializeObject(dJson);
                    dJson     = EncryptionRC4.Decrypt(Config.Config.ENCRYPTION_KEY, dUrlsWrap["d"]);
                    dUrlsWrap = serializer.DeserializeObject(dJson);
                    int      nbr     = Convert.ToInt16(dUrlsWrap["proxy"].Length);
                    Thread[] Threads = new Thread[nbr];

                    Console.WriteLine("Set settings proxy... ");

                    int i = 0;
                    foreach (var proxy in dUrlsWrap["proxy"])
                    {
                        string sHtml = "";
                        string sCode = "";

                        Threads[i] = new Thread(() =>
                        {
                            try
                            {
                                HttpWebRequest request   = (HttpWebRequest)WebRequest.Create("http://www.google.com/");
                                WebProxy wProxy          = new WebProxy(proxy["ip"] + ":" + proxy["port"]);
                                request.Proxy            = wProxy;
                                request.Method           = "GET";
                                request.Timeout          = 5000;
                                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                                sCode = response.StatusCode.ToString();
                                using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                                {
                                    sHtml = reader.ReadToEnd();
                                }

                                if (sCode.Contains("OK") && !string.IsNullOrEmpty(sHtml))
                                {
                                    if (!Globals.G_Proxy.__List.Contains(wProxy))
                                    {
                                        Globals.G_Proxy.__List.Add(wProxy);
                                    }
                                    Console.WriteLine("GOOD Proxy =>" + proxy["ip"] + ":" + proxy["port"]);
                                }
                            }
                            catch (Exception)
                            {
                                Globals.GUI.sendProxyStatus(order, new { ip = proxy["ip"], port = proxy["port"], status = false });
                                Console.WriteLine("Bad Proxy => " + proxy["ip"] + ":" + proxy["port"]);
                            }
                        });
                        Threads[i].Start();
                        i++;
                    }

                    if (i == 0)
                    {
                        Globals.UpDateStatus(order, "Proxy Checker", "No Proxy found");
                        return;
                    }

                    for (int a = 0; a < nbr; a++)
                    {
                        Threads[a].Join();
                    }


                    if (Globals.G_Proxy.__List.Count > 0)
                    {
                        Globals.G_Proxy.Enable   = true;
                        Globals.G_Proxy.__IsList = true;
                        Globals.UpDateStatus(order, "Proxy Checker", Globals.G_Proxy.__List.Count + "Proxy live, Thread Done");
                    }
                }
                else
                {
                    Globals.G_Proxy.Enable = false;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }