예제 #1
0
        /*
         * Task seçilir.
         *
         */
        public static string SelectTask(OpenVASManager manager)
        {
            bool   tmp         = false;
            string taskContent = "";

            do
            {
                Console.Write("İlgili Task için ID girmeniz yeterlidir: ");
                taskContent = Console.ReadLine();
                int taskID = 0;
                if (int.TryParse(taskContent, out taskID))
                {
                    tmp = true;
                    return(Convert.ToString(taskID));
                }
                else
                {
                    Console.WriteLine("Lütfen değeri kontrol ediniz.");
                }
            } while (tmp == false);



            return("1");
        }
예제 #2
0
        /*
         * Policy/Config Listelenir. Policy tarama ayarıdır. Full and Fast gibi seçenekleri mevcuttur.
         *
         */

        public static void ListPolicys(OpenVASManager manager)
        {
            int       i       = 0;
            XDocument configs = manager.GetScanConfigurations();

            foreach (XElement node in configs.Descendants(XName.Get("name")))
            {
                int j = 0;
                foreach (XElement comment in configs.Descendants(XName.Get("comment")))
                {
                    if (node.Value == "")
                    {
                        break;
                    }

                    if (i == j)
                    {
                        Console.WriteLine(i + 1 + ") " + node.Value + ": " + comment.Value);
                        i += 1;
                        break;
                    }

                    j += 1;
                }
            }
        }
예제 #3
0
        /*
         * Yeni bir target/hedef oluşturulur ve bu target/hedefin ID değeri döndürülür.
         *
         */
        public static string CreateTarget(OpenVASManager manager, Guid portListID, string targetIPs, string excludeHost)
        {
            XDocument targetIPsXML = manager.CreateSimpleTarget(targetIPs, "C# Targets -- " + Guid.NewGuid().ToString(), portListID, excludeHost);
            string    targetID     = targetIPsXML.Root.Attribute("id").Value;

            return(targetID);
        }
예제 #4
0
        /*
         * Port Listesi seçilir.
         *
         */
        private static string SelectPort(OpenVASManager manager)
        {
            bool   tmp      = false;
            string portList = "";

            do
            {
                Console.Write("İlgili Port için ID girmeniz yeterlidir: ");
                portList = Console.ReadLine();
                int portListID = 0;
                if (int.TryParse(portList, out portListID))
                {
                    tmp = true;
                    return(Convert.ToString(portListID));
                }
                else
                {
                    Console.WriteLine("Lütfen deðeri kontrol ediniz.");
                }
            } while (tmp == false);



            return("1");
        }
예제 #5
0
        /*
         * Policy'ler listelenir. Policy Seçilir. Seçilen Policy'nin id değeri döndürülür.
         *
         */
        public static string GetPolicyGUID(OpenVASManager manager)
        {
            BLPolicy.ListPolicys(manager);

            int key = SelectPolicy(manager);

            return(BLPolicy.GetPolicyGUID(manager, key));
        }
예제 #6
0
        public override void ProcessRequest(HttpContext context)
        {
            using (OpenVASManagerSession session = new OpenVASManagerSession(ConfigurationManager.AppSettings["openvasUser"], ConfigurationManager.AppSettings["openvasPass"], ConfigurationManager.AppSettings["openvasHost"]))
            {
                using (OpenVASManager manager = new OpenVASManager(session))
                {
                    XmlDocument doc = manager.GetConfigs(string.Empty, false, false, string.Empty, string.Empty);

                    context.Response.Write(doc.OuterXml);
                }
            }
        }
예제 #7
0
        public override void ProcessRequest(HttpContext context)
        {
            using (OpenVASManagerSession session = new OpenVASManagerSession(ConfigurationManager.AppSettings["openvasUser"], ConfigurationManager.AppSettings["openvasPass"], ConfigurationManager.AppSettings["openvasHost"]))
            {
                using (OpenVASManager manager = new OpenVASManager(session))
                {
                    XmlDocument doc = manager.GetConfigs(string.Empty, false, false, string.Empty, string.Empty);

                    context.Response.Write(doc.OuterXml);
                }
            }
        }
예제 #8
0
 /*
  * Parametre olarak alınan targetPorts aralığında Port List oluşturulur. Örneğin 80 ile 8088 arasındaki portlar taransması için '80-8088'  girilir.
  * Oluşturulan Port List'in ID döndürülür ve bu ID yeni Task'ın Target Port'u olarak kullanılır.
  *
  */
 public static string CreatePort(OpenVASManager manager, string targetPorts)
 {
     try
     {
         XDocument targetPortsXML = manager.CreateSimplePort("Port: " + targetPorts.Split('T')[1] + "  -- " + Guid.NewGuid().ToString(), "Deneme", targetPorts);
         string    targetPortsID  = targetPortsXML.Root.Attribute("id").Value;
         return(targetPortsID);
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         return(null);
     }
 }
예제 #9
0
        /*
         * Tasklar listelenir.
         *
         */
        public static void ListTasks(OpenVASManager manager)
        {
            int       counter = 0;
            XDocument tasks   = manager.GetTasks();

            foreach (XElement task in tasks.Descendants(XName.Get("name")))
            {
                if (task.Value != "" && task.Parent.Name == "task")
                {
                    Console.WriteLine((counter + 1) + ") " + task.Value);
                    counter += 1;
                }
            }
        }
예제 #10
0
        /*
         * Kayıtlı olan ve bizim oluşturduğumuz Port Listeleri listelenir.All TCP, All TCP and Nmap 5.51 top 100 UDP ve C# Ports -- xxxx.xxxx.xxxx.xxxx
         *
         */
        public static void ListPorts(OpenVASManager manager)
        {
            int       i       = 0;
            XDocument configs = manager.GetPortLists();

            foreach (XElement node in configs.Descendants(XName.Get("name")))
            {
                if (node.Value != "" && node.Value != "admin" && node.Value != "Everything")
                {
                    Console.WriteLine(i + 1 + ") " + node.Value);
                    i += 1;
                }
            }
        }
예제 #11
0
        /*
         * Bu Fonksiyon Hedef/Target GUID değerini döndürür.
         *
         */
        public static string GetTargetGUID(OpenVASManager manager)
        {
            //Set Port UUID
            string portChange     = "";
            string targetPortGuid = "";

            do
            {
                Console.WriteLine("Port List oluşturmak istiyor musunuz? (E/H)");
                portChange = Console.ReadLine().ToString();

                //Port Create or Select
                if (portChange.ToUpper() == "E")
                {
                    targetPortGuid = PLPort.CreatePortList(manager);
                }
                else if (portChange.ToUpper() == "H")
                {
                    targetPortGuid = PLPort.GetPortGUID(manager);
                }

                if (targetPortGuid == null)
                {
                    return("0");
                }
            } while (portChange.ToUpper() != "E" && portChange.ToUpper() != "H" && targetPortGuid == null);


            try
            {
                //Set Target
                Console.WriteLine("Hedef IP adres(leri) giriniz. IP adreslerini virgül ile ayırınız.");
                string hostTargets = Console.ReadLine();
                //IPAddress iPAddress = IPAddress.Parse(hostTargets);

                Console.WriteLine("Hariç tutulacak IP adres(leri) giriniz. IP adreslerini virgül ile ayırınız.");
                string excludeTargets = Console.ReadLine();
                //IPAddress excludeIpAddress = IPAddress.Parse(excludeTargets);



                return(BLTarget.CreateTarget(manager, new Guid(targetPortGuid), hostTargets, excludeTargets));
            }
            catch (Exception ex)
            {
                Console.WriteLine("IP Adress hatalı girdiniz. Lütfen sadece rakamla giriniz. Kontrol ediniz.\n" + ex.Message);
                return("0");
            }
        }
예제 #12
0
        /*
         * Yeni bir Hedef Port listesi tanımlanır ve ID değeri döndürülür.
         *
         */
        public static string CreatePortList(OpenVASManager manager)
        {
            Console.WriteLine("Hedef Port adreslerini giriniz. -- 1-1000, 1005-1100 -- veya -- 1-65535 -- gibi.");
            //Parse tool can write...
            string portGUID = BLPort.CreatePort(manager, "T: " + Convert.ToString(Console.ReadLine()));

            if (portGUID == null)
            {
                Console.Write("Port List hatalı girildi...\n");
            }
            else
            {
                return(portGUID);
            }

            return(null);
        }
예제 #13
0
        /*
         * Task yaratılır.
         *
         */
        public static bool CreateTask(OpenVASManager manager)
        {
            string PolicyGUID = PLPolicy.GetPolicyGUID(manager);

            if (PolicyGUID == "0")
            {
                Console.WriteLine("Geçersiz Policy değeri girdiniz.");
                return(false);
            }
            string TargetGUID = PLTarget.GetTargetGUID(manager);

            if (TargetGUID == "0")
            {
                Console.WriteLine("İşlem İptal Edildi. Task oluşturulmadı.");
                return(false);
            }
            BLTask.CreateTask(manager, new Guid(PolicyGUID), new Guid(TargetGUID));
            return(true);
        }
예제 #14
0
        /*
         * Parametre olarak aldığı taskGUID'nin içerdiği ReportGUID'leri listeler.
         *
         */
        private static List <string> ListReports(OpenVASManager manager, Guid taskGUID)
        {
            List <string> listReportGuid = new List <string>();

            string    tmp     = "";
            int       counter = 1;
            XDocument tasks   = manager.GetTasks(taskGUID);

            foreach (XElement task in tasks.Descendants(XName.Get("report")))
            {
                tmp = task.Attribute("id").Value;
                if (!listReportGuid.Contains(tmp))
                {
                    Console.WriteLine("Rapor " + counter + " :" + task.Attribute("id").Value);
                    listReportGuid.Add(tmp);
                    counter += 1;
                }
            }
            return(listReportGuid);
        }
예제 #15
0
        /*
         * Yeni bir task oluşturulur.
         *
         */
        public static void CreateTask(OpenVASManager manager, Guid policyID, Guid targetID)
        {
            //Set Task
            XDocument task = manager.CreateSimpleTask("C# Tasks - " + Guid.NewGuid().ToString(), string.Empty, policyID, targetID);

            Guid taskID = new Guid(task.Root.Attribute("id").Value);

            manager.StartTask(taskID);

            XDocument status = manager.GetTasks(taskID);

            while (status.Descendants("status").First().Value != "Done")
            {
                Thread.Sleep(10000);
                Console.Write(status.Descendants(XName.Get("progress")).First().Nodes().OfType <XText>().First().Value + " - ");
                status = manager.GetTasks(taskID);
            }

            GetTaskReports(manager, taskID);
        }
예제 #16
0
        /*
         * Parametre olarak aldığı taskGUID'nin
         *
         */
        public static bool GetTaskReports(OpenVASManager manager, Guid taskGUID)
        {
            string reportGuid = GetReportGUID(ListReports(manager, taskGUID));

            if (reportGuid != "0")
            {
                XDocument taskDetail = manager.GetTaskReports(new Guid(reportGuid));
                XElement  firstChild = taskDetail.Root.Elements().First();
                //Console.WriteLine(firstChild.ToString());
                //taskDetail.Root.Parent.Remove();
                string strPath = Environment.GetFolderPath(
                    System.Environment.SpecialFolder.DesktopDirectory);
                //FirstChild.Save(strPath + "\\openvasReport.txt");
                System.IO.File.WriteAllText(strPath + "\\openvasReport.txt", firstChild.ToString());
                Console.WriteLine("Rapor " + strPath + " konumunda oluşturuldu");
                return(true);
            }
            else
            {
                return(false);
            }
        }
예제 #17
0
        /*
         * Policy seçilir.
         *
         */
        private static int SelectPolicy(OpenVASManager manager)
        {
            bool tmp = false;

            do
            {
                Console.Write("İlgili Policy için ID girmeniz yeterlidir: ");
                string policy   = Console.ReadLine();
                int    policyID = 0;
                if (int.TryParse(policy, out policyID))
                {
                    tmp = true;
                    return(policyID);
                }
                else
                {
                    Console.WriteLine("Lütfen deðeri kontrol ediniz.");
                }
            } while (tmp == false);

            return(0);
        }
예제 #18
0
        /*
         * Parametrede yer alan key sırasındaki ilgili Policy'nin ID değerini döndürür.
         *
         */
        public static string GetPolicyGUID(OpenVASManager manager, int key)
        {
            string    policy  = "";
            int       counter = 0;
            XDocument configs = manager.GetScanConfigurations();

            foreach (XElement node in configs.Descendants(XName.Get("name")))
            {
                if (node.Value != "")
                {
                    if (counter == key - 1)
                    {
                        policy = node.Parent.Attribute("id").Value;
                        return(policy);
                    }
                    else
                    {
                        counter += 1;
                    }
                }
            }
            return("0");
        }
예제 #19
0
        /*
         * Seçilen Port List'in ID döndürülür. (Key, Terminal ekranında 'İlgili Port için ID girmeniz yeterlidir:' kısmında girilen değerdir.)
         *
         */
        public static string GetPortID(OpenVASManager manager, int key)
        {
            string    portListGuid = "";
            int       counter      = 0;
            XDocument configs      = manager.GetPortLists();

            foreach (XElement node in configs.Descendants(XName.Get("name")))
            {
                if (node.Value != "" && node.Value != "admin" && node.Value != "Everything")
                {
                    if (counter == key - 1)
                    {
                        portListGuid = node.Parent.Attribute("id").Value;
                        return(portListGuid);
                    }
                    else
                    {
                        counter += 1;
                    }
                }
            }
            return(null);
        }
예제 #20
0
        /*
         * Seçilen taskın  GUID (Globally Unique Identifier) değerini döndürür.
         *
         */
        public static string GetTaskGuid(OpenVASManager manager, int key)
        {
            int counter = 0;


            string taskGuid = "";

            XDocument tasks = manager.GetTasks();

            foreach (XElement task in tasks.Descendants(XName.Get("name")))
            {
                if (task.Value != "" && task.Parent.Name == "task")
                {
                    if (key - 1 == counter)
                    {
                        taskGuid = task.Parent.Attribute("id").Value;

                        return(taskGuid);
                    }
                    counter += 1;
                }
            }
            return("0");
        }
예제 #21
0
 public virtual void Create(OpenVASManager manager)
 {
     manager.CreateTask(this.Name, this.Comment, this.Config.RemoteConfigID.ToString(),
         this.Target.RemoteTargetID.ToString(), this.Escalator.RemoteEscalatorID.ToString(),
         this.Schedule.RemoteScheduleID.ToString(), this.Slave.RemoteSlaveID.ToString());
 }
예제 #22
0
 /*
  * Tasklar listelenir.
  *
  */
 public static void ListTasks(OpenVASManager manager)
 {
     Console.Write("\nTask Listesi:\n");
     BLTask.ListTasks(manager);
 }
예제 #23
0
 /*
  * Target Port Listesinden seçilen  target listin ID değerini döndürür.
  *
  */
 public static string GetPortGUID(OpenVASManager manager)
 {
     BLPort.ListPorts(manager);
     return(BLPort.GetPortID(manager, Convert.ToInt32(SelectPort(manager))));
 }
예제 #24
0
 public virtual void Create(OpenVASManager manager)
 {
     manager.CreateTask(this.Name, this.Comment, this.Config.RemoteConfigID.ToString(),
                        this.Target.RemoteTargetID.ToString(), this.Escalator.RemoteEscalatorID.ToString(),
                        this.Schedule.RemoteScheduleID.ToString(), this.Slave.RemoteSlaveID.ToString());
 }
예제 #25
0
        /* Here is Protocol Documentaion
         * http://docs.greenbone.net/API/OMP/omp-7.0.html
         * */

        /*OpenVAS need to username, password,
         * ip that service is running and
         * port that openvasmd service is running...
         */

        /*
         * You have to pay attention your firewall
         * because it is blocking ports except known ports..
         */

        public static void Main(string[] args)
        {
            PLSession.SetIPAndPort();

            using (OpenVASSession session = new OpenVASSession(PLSession.Username, PLSession.Password, PLSession.IP, PLSession.Port))
            {
                using (OpenVASManager manager = new OpenVASManager(session))
                {
                    if (session.Stream != null && session.Username != null && session.Password != null)
                    {
                        string change;
                        bool   isReport = true;
                        do
                        {
                            Console.Write("" +
                                          "\nAşağıdaki işlemlerden birini seçiniz. \n" +
                                          "* Raporları getirmek için 'R' basınız. \n" +
                                          "* Yeni bir tarama için 'T' basınız.\n" +
                                          "* OpenVAS Management Protocol Versiyonu İçin 'V' basınız.\n" +
                                          "* Test için 'E' basınız.\n" +
                                          "* Çıkış için 'Q' basınız.\n");

                            Console.Write("Seçim: ");
                            change = Console.ReadLine().ToUpper();

                            if (change.ToUpper() == "T")
                            {
                                PLTask.CreateTask(manager);
                            }
                            else if (change.ToUpper() == "R")
                            {
                                PLTask.ListTasks(manager);
                                Console.Write("\nRapor Seçiniz.\n");
                                string ReportGUID = BLTask.GetTaskGuid(manager, Convert.ToInt32(PLTask.SelectTask(manager)));
                                if (ReportGUID == "0")
                                {
                                    Console.WriteLine("İlgili Task bulunamadı...");
                                }
                                else
                                {
                                    isReport = BLTask.GetTaskReports(manager, new Guid(ReportGUID));
                                }

                                if (!isReport)
                                {
                                    Console.Write("İlgili Rapor Bulunamadı. Girilen değeri kontrol ediniz.\n");
                                }
                            }
                            else if (change.ToUpper() == "V")
                            {
                                Console.WriteLine(manager.GetVersion());
                            }
                            else if (change.ToUpper() == "E")
                            {
                                session.TestStream();
                            }
                            else if (change.ToUpper() != "Q")
                            {
                                Console.WriteLine("Geçersiz işlem. Tekrar Deneyiniz.");
                            }
                        } while (change.ToUpper() != "Q");
                    }
                }
                Console.Write("İşlem sonlandırıldı.");
                Console.ReadLine();
            }
        }