Пример #1
0
        /*
         * Yeni bir Scan Yaratma
         *
         */
        public void CreateScan(ArachniManager manager)
        {
            ScanSummaryPL scanSummary = new ScanSummaryPL();

            if (!Scan.ServiceControl(manager))
            {
                Console.WriteLine("Servis Çalışmıyor.");
                return;
            }

            do
            {
                Console.Write("URL Giriniz (http://test.sparker.com şeklinde): ");
                string url = Console.ReadLine();
                if (ControlURL(url))
                {
                    string checks = "";
                    do
                    {
                        checks = ListAndSelectCheck();
                    } while (checks == "");

                    ScanCreateDL scanCreate = new ScanCreateDL(url, checks);
                    string       newScanID  = Scan.CreateScan(manager, scanCreate);
                    Console.WriteLine(newScanID);
                    //Rapor
                    scanSummary.GetScanSummary(manager, newScanID);
                    break;
                }
                else
                {
                    Console.WriteLine("URL hatalı. Kontrol edin ve Tekrar giriniz.");
                }
            } while (true);
        }
Пример #2
0
        /*
         * Yeni bir Scan Oluşturur.
         *
         */
        public string CreateScan(ArachniManager manager, ScanCreateDL scan)
        {
            string json = JsonConvert.SerializeObject(scan);
            string id   = manager.POSTScanCreate(json);

            return(id);
        }
Пример #3
0
        /*
         * Tüm taramaları listeleme
         *
         */
        private static string ListScan(ArachniManager manager)
        {
            List <string> listScanIDs = Scan.ScanID(manager);

            if (listScanIDs != null && listScanIDs.Count > 0)
            {
                int i = 0;
                foreach (var item in listScanIDs)
                {
                    Console.WriteLine((i + 1) + " - " + item);
                    i += 1;
                }
                string id = SelectScan(listScanIDs);
                return(id);
            }
            else if (listScanIDs == null)
            {
                return(null);
            }
            else if (listScanIDs.Count == 0)
            {
                Console.WriteLine("Tarama bulunamadı...");
                return(null);
            }
            else
            {
                Console.WriteLine("Unauthorized");
                return(null);
            }
        }
Пример #4
0
        /*
         * İlgili Taramayı monitor eder / izler.
         *
         */
        public void GetScanMonitor(ArachniManager manager, string scanID)
        {
            ScanMonitorDL scanResponse = Monitor.ScanMonitor(manager, scanID);

            Console.WriteLine("\nStatus: " + scanResponse.Status +
                              "\nBusy: " + scanResponse.Busy);
        }
Пример #5
0
        /*
         * İlgili Taramanın Özetini getirir.
         *
         */
        public void GetScanSummary(ArachniManager manager, string scanID)
        {
            //Tuş basma olayı...
            ConsoleKeyInfo cki;
            //Summary
            ScanSummaryDL scanSummaryDL;

            Console.WriteLine("Taramanın Son durumunu görmek için herhangi bir tuşa, Çıkmak için  ESC tuşuna basınız.");
            do
            {
                //Summary
                scanSummaryDL = Summary.ScanSummary(manager, scanID);
                Console.WriteLine("\nStatus: " + scanSummaryDL.Status
                                  + "\nBusy: " + scanSummaryDL.Busy
                                  + "\nRuntime: " + scanSummaryDL.Statistics.Runtime);
                Thread.Sleep(3000);


                cki = Console.ReadKey(true);
                if (scanSummaryDL.Status == "done" && scanSummaryDL.Busy == false)
                {
                    Console.WriteLine("Tarama bitti. Tarama raporunu ekranda gösterildi ve masaüstüne indirildi.");
                    ScanReportPL.GetScanReport(manager, scanID);
                    break;
                }
            } while (cki.Key != ConsoleKey.Escape);
        }
Пример #6
0
        /*
         * Gelen Scan ID'leri JSON'dan ayırarak ListScan'a ekler.
         *
         */
        public List <string> ScanID(ArachniManager manager)
        {
            try
            {
                string responseBody = manager.GetScans();
                if (responseBody == "Unauthorized" || responseBody == null)
                {
                    return(null);
                }

                else
                {
                    JObject jObject = JObject.Parse(responseBody);
                    this.ListScan = new List <string>();
                    foreach (JProperty property in jObject.Properties())
                    {
                        setListScan(property.Name);
                    }

                    return(getListScan());
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("ScanBL::GETScanID\n" + ex.Message);
                return(null);
            }
        }
Пример #7
0
        /*
         * Tarama Silme
         *
         */
        private static void AbortScan(ArachniManager manager)
        {
            ScanPL scanPL = new ScanPL();
            string id     = ListScan(manager);

            scanPL.AbortScan(manager, id);
        }
Пример #8
0
        /*-------------------------------------------------------------------------------------------------------------*/



        /*
         * Taramada yapılabilecek işlemler.
         *
         */
        private static void GetScanID(ArachniManager manager)
        {
            string id = ListScan(manager);

            if (id == null)
            {
                return;
            }
            Console.Write("A - Taramayı İzle (Monitor)\n" +
                          "B - Tarama Özeti\n" +
                          "C - Tarama Raporu\n");
            Console.Write("İstediğiniz Rapor Tipini Giriniz: ");
            string selectedProcess = Console.ReadLine();

            switch (selectedProcess)
            {
            case "A":
                GetScanMonitor(manager, id);
                break;

            case "B":
                GetScanSummary(manager, id);
                break;

            case "C":
                GetScanReport(manager, id);
                break;

            default:
                break;
            }
        }
Пример #9
0
 /*
  * Scan Başlatma
  *
  */
 public void ResumeScan(ArachniManager manager, string id)
 {
     if (manager.PUTPauseScan(id) == "true")
     {
         Console.WriteLine("Tarama Başlatıldı.");
     }
     else
     {
         Console.WriteLine("Tarama Başlatılamadı.");
     }
 }
Пример #10
0
 /*
  * Scan Duraklatma
  *
  */
 public void PauseScan(ArachniManager manager, string id)
 {
     if (manager.PUTPauseScan(id) == "true")
     {
         Console.WriteLine("Tarama durduruldu.");
     }
     else
     {
         Console.WriteLine("Tarama durdurulamadı.");
     }
 }
Пример #11
0
        /*
         * İlgili Taramanın Raporunu getirir.
         *
         */
        public void GetScanReport(ArachniManager manager, string scanID)
        {
            ScanReportDL scanReportDL = Report.ScanReport(manager, scanID);

            Console.WriteLine("Start Date Time: " + scanReportDL.StartDatetime
                              + "\nFinish Date Time: " + scanReportDL.FinishDatetime);
            foreach (var item in scanReportDL.Issues)
            {
                Console.WriteLine("\nIssue: " + item.Name + " - Severity: " + item.Severity);
            }
        }
Пример #12
0
 /*
  * Scan Silme
  *
  */
 public void AbortScan(ArachniManager manager, string id)
 {
     if (manager.DELETEAbortScan(id) == "true")
     {
         Console.WriteLine("Tarama Silindi.");
     }
     else
     {
         Console.WriteLine("Tarama Silinemedi.");
     }
 }
Пример #13
0
 /*
  * Scan duraklat
  *
  */
 public string PauseScan(ArachniManager manager, string id)
 {
     try
     {
         return(manager.PUTPauseScan(id));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #14
0
        /*------------------------------------------------------------------------------------------------*/


        /*
         * Servisin çalışıp çalışmadığını kontrol eder.
         *
         */
        private static void ServiceControl(ArachniManager manager)
        {
            if (Scan.ServiceControl(manager))
            {
                Console.WriteLine("Servis çalışıyor.");
            }
            else
            {
                Console.WriteLine("Servis çalışmıyor.");
            }
        }
Пример #15
0
        /*
         * Tarama raporunu kayıt eder (xml formatında masaüstüne) ve ScanReportDL nesnesini döndürür.
         * Retrieve a scan report
         */
        public ScanReportDL ScanReport(ArachniManager manager, string id)
        {
            id = Scan.GetID(id);
            string report = manager.GetScanReport(id, "xml");

            SaveReport(report);


            report = manager.GetScanReport(id, "json");
            ScanReportDL scanReportDL = JsonConvert.DeserializeObject <ScanReportDL>(report);

            //SaveReport(report);

            return(scanReportDL);
        }
Пример #16
0
        /*
         * Monitor scan progress
         *
         */
        public ScanMonitorDL ScanMonitor(ArachniManager manager, string id)
        {
            id = ScanBL.GetID(id);
            string        ScanMonitorJson = manager.GetScanMonitor(id);
            ScanMonitorDL scanDL;

            if (ScanMonitorJson != null)
            {
                scanDL = JsonConvert.DeserializeObject <ScanMonitorDL>(ScanMonitorJson);
            }
            else
            {
                return(null);
            }

            return(scanDL);
        }
Пример #17
0
        /*
         *
         * Returns the same data as "Monitor scan progress" but without issues, errors and sitemap
         */
        public ScanSummaryDL ScanSummary(ArachniManager manager, string id)
        {
            try
            {
                id = Scan.GetID(id);

                ScanSummaryDL scanDL = JsonConvert.DeserializeObject <ScanSummaryDL>(manager.GetScanSummary(id));
                return(scanDL);
            }
            catch (ArgumentNullException argumentNullException)
            {
                Console.WriteLine("Arguman Null değer içermektedir:" + argumentNullException.Message);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(null);
        }
Пример #18
0
 /*
  * Servisin çalışıp çalışmadığını kontrol eder.
  *
  */
 public bool ServiceControl(ArachniManager manager)
 {
     return(manager.GetServiceControl());
 }
Пример #19
0
        static void Main(string[] args)
        {
            try
            {
                SetIPAndPort();

                using (ArachniSession session = new ArachniSession(Username, Password, IP, Port))
                {
                    using (ArachniManager manager = new ArachniManager(session))
                    {
                        if (!manager.GetServiceControl())
                        {
                            Console.Read();
                            return;
                        }


                        while (manager.GetServiceControl())
                        {
                            Console.Write("A - Raporları Göster\n" +
                                          "B - Tarama Oluştur\n" +
                                          "C - Servisi Kontrol Et\n" +
                                          "P - Taramayı Durdur\n" +
                                          "R - Taramayı Tekrar Başlat\n" +
                                          "D - Taramayı Sil\n" +
                                          "Lütfen yapmak istediğiniz işlemi seçiniz: ");
                            string selectedProcess = Console.ReadLine();

                            if (selectedProcess.ToUpper() == "A")
                            {
                                GetScanID(manager);
                            }
                            else if (selectedProcess.ToUpper() == "B")
                            {
                                CreateScan(manager);
                            }
                            else if (selectedProcess.ToUpper() == "C")
                            {
                                ServiceControl(manager);
                            }
                            else if (selectedProcess.ToUpper() == "P")
                            {
                                PauseScan(manager);
                            }
                            else if (selectedProcess.ToUpper() == "R")
                            {
                                ResumeScan(manager);
                            }
                            else if (selectedProcess.ToUpper() == "D")
                            {
                                AbortScan(manager);
                            }
                            Console.WriteLine("\n");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #20
0
        /*
         * Tarama İzle
         *
         */
        private static void GetScanMonitor(ArachniManager manager, string id)
        {
            ScanMonitorPL scanMonitorPL = new ScanMonitorPL();

            scanMonitorPL.GetScanMonitor(manager, id);
        }
Пример #21
0
        /*
         * Tarama Özeti Getir
         *
         */
        private static void GetScanSummary(ArachniManager manager, string id)
        {
            ScanSummaryPL scanSummaryPL = new ScanSummaryPL();

            scanSummaryPL.GetScanSummary(manager, id);
        }
Пример #22
0
        /*
         * Tarama Raporu Getir
         *
         */
        private static void GetScanReport(ArachniManager manager, string id)
        {
            ScanReportPL scanReportPL = new ScanReportPL();

            scanReportPL.GetScanReport(manager, id);
        }
Пример #23
0
        /*------------------------------------------------------------------------------------------------------------------------------*/

        /*
         * Tarama Oluşturma
         *
         */
        private static void CreateScan(ArachniManager manager)
        {
            ScanPL scanPL = new ScanPL();

            scanPL.CreateScan(manager);
        }