static void Main(string[] args) { Console.WriteLine(); Vulnerabilidad vulnerabilidad1; Vulnerabilidad vulnerabilidad2; Vulnerabilidad vulnerabilidad3; Vulnerabilidad vulnerabilidad4; Vulnerabilidad vulnerabilidad5; Vulnerabilidad vulnerabilidad6; Nodo nodo1; Nodo nodo2; Nodo nodo3; Nodo nodo4; Red red; vulnerabilidad1 = new Vulnerabilidad("CVE-2015-1635", "microsoft", "HTTP.sys permite a atacantes remotos ejecutar código arbitrario", "remota", "04/14/2015"); vulnerabilidad2 = new Vulnerabilidad("CVE-2017-0004", "microsoft", "El servicio LSASS permite causar una denegación de servicio", "local", "01/10/2018"); vulnerabilidad3 = new Vulnerabilidad("CVE-2017-3847", "cisco", "Cisco Firepower Management CenterXSS ", "remota", "02/21/2017"); vulnerabilidad4 = new Vulnerabilidad("CVE-2009-2504", "microsoft", "Múltiples desbordamientos deenteros en APIs Microsoft .NET 1.1", "local", "11/13/2009"); vulnerabilidad5 = new Vulnerabilidad("CVE-2016-7271", "microsoft", "Elevación de privilegios Kernel Segura en Windows 10 Gold", "local", "12/20/2016"); vulnerabilidad6 = new Vulnerabilidad(" CVE-2017-2996", "adobe", "Adobe Flash Player 24.0.0.194corrupción de memoria explotable", "remota", "02/15/2017"); nodo1 = new Nodo("192.168.0.10", "servidor", "5", " 10", "linux"); nodo2 = new Nodo("192.168.0.12", "equipoactivo", "2", "12", "ios"); nodo3 = new Nodo("192.168.0.20", "computadora", "8", "5", "windows"); nodo4 = new Nodo("192.168.0.15", "servidor", "10", "22", "linux"); red = new Red(" Red Patito, S.A. de C.V.", "Mr Pato Macdonald", "Av. Princeton 123, Orlando Florida"); nodo1.addVulnerabilidad(vulnerabilidad1); nodo1.addVulnerabilidad(vulnerabilidad2); nodo2.addVulnerabilidad(vulnerabilidad3); nodo3.addVulnerabilidad(vulnerabilidad4); nodo3.addVulnerabilidad(vulnerabilidad5); nodo3.addVulnerabilidad(vulnerabilidad6); red.addNodo(nodo1); red.addNodo(nodo2); red.addNodo(nodo3); red.addNodo(nodo4); red.imprimir(); red.imprimirNodos(); red.imprimirVulPorNodo(); }
static void Main(string[] args) { int vultot = 0; CultureInfo InfoCultural = new CultureInfo("en-US"); Red miRed = new Red("Red Patito, S.A. de C.V.", "Mr Pato Macdonald", "Av.Priceton 123, Orlando Florida"); miRed.AgregarNodo(new Nodo("192.168.0.10", "servidor", "5", "10", "Linux")); miRed.AgregarNodo(new Nodo("192.168.0.12", "Equipo activo", "2", "12", "IOS")); miRed.AgregarNodo(new Nodo("192.168.0.20", "Computadora", "8", "5", "Windows")); miRed.AgregarNodo(new Nodo("192.168.0.15", "servidor", "10", "22", "Linux")); Vulnerabilidad vlnd1 = new Vulnerabilidad("CVE-2015-1635", "microsoft", "HTTP.sys permite a atacantes remotos ejecutar codigo arbitrario", "remota", DateTime.Parse("04/14/2015", InfoCultural)); Vulnerabilidad vlnd2 = new Vulnerabilidad("CVE-2017-0004", "microsoft", "El servidor LSASS permite causar una denegacion de servicio", "local", DateTime.Parse("01/10/2001", InfoCultural)); Vulnerabilidad vlnd3 = new Vulnerabilidad("CVE-2017-3847", "cisco", "Cisco Firepower Management Center XSS", "remota", DateTime.Parse("02/21/2017", InfoCultural)); Vulnerabilidad vlnd4 = new Vulnerabilidad("CVE-2009-2504", "microsoft", "Múltiples desbordamientos de enteros en APIs Microsoft .NET 1.1", "local", DateTime.Parse("11/13/2009", InfoCultural)); Vulnerabilidad vlnd5 = new Vulnerabilidad("CVE-2016-7271", "microsoft", "Elevación de privilegios Kernel Segura en Windows 10 Gold", "local", DateTime.Parse("12/20/2016", InfoCultural)); Vulnerabilidad vlnd6 = new Vulnerabilidad("CVE-2017-2996", "adobe", "Adobe Flash Player 24.0.0.194 corrupción de memoria explotable", "remota", DateTime.Parse("02/15/2017", InfoCultural)); miRed.Nodos[0].AgregarVlnd(vlnd1); miRed.Nodos[0].AgregarVlnd(vlnd2); miRed.Nodos[1].AgregarVlnd(vlnd3); miRed.Nodos[2].AgregarVlnd(vlnd4); miRed.Nodos[2].AgregarVlnd(vlnd5); miRed.Nodos[2].AgregarVlnd(vlnd6); for (int i = 0; i < miRed.Nodos.Count; i++) { vultot += miRed.Nodos[i].vlnd.Count; } Console.WriteLine("Datos generales de la Red:\n"); Console.WriteLine($"Empresa: {miRed.Empresa}"); Console.WriteLine($"Propietario: {miRed.Propietario}"); Console.WriteLine($"Domicilio: {miRed.Domicilio}"); Console.WriteLine($"\nTotal nodos de red: {miRed.Nodos.Count}"); Console.WriteLine($"Total vulnerabilidades: {vultot} \n"); Console.WriteLine("Datos generales de los nodos\n"); Console.WriteLine($"IP: {miRed.Nodos[0].Ip}, Tipo: {miRed.Nodos[0].Tipo}, Puertos: {miRed.Nodos[0].Puertos}, Saltos {miRed.Nodos[0].Saltos}, S.O. {miRed.Nodos[0].So}, TotalVul: {miRed.Nodos[0].vlnd.Count}"); Console.WriteLine($"IP: {miRed.Nodos[1].Ip}, Tipo: {miRed.Nodos[1].Tipo}, Puertos: {miRed.Nodos[1].Puertos}, Saltos {miRed.Nodos[1].Saltos}, S.O. {miRed.Nodos[1].So}, TotalVul: {miRed.Nodos[1].vlnd.Count}"); Console.WriteLine($"IP: {miRed.Nodos[2].Ip}, Tipo: {miRed.Nodos[2].Tipo}, Puertos: {miRed.Nodos[2].Puertos}, Saltos {miRed.Nodos[2].Saltos}, S.O. {miRed.Nodos[2].So}, TotalVul: {miRed.Nodos[2].vlnd.Count}"); Console.WriteLine($"IP: {miRed.Nodos[3].Ip}, Tipo: {miRed.Nodos[3].Tipo}, Puertos: {miRed.Nodos[3].Puertos}, Saltos {miRed.Nodos[3].Saltos}, S.O. {miRed.Nodos[3].So}, TotalVul: {miRed.Nodos[3].vlnd.Count}"); }
static void Main(string[] args) { CultureInfo InfoCultural = new CultureInfo("en-US"); Red miRed = new Red("Red Patito", "Mr Pato Macdonald", "Av.Priceton 123, Orlando Florida"); Console.WriteLine("Datos generales de la Red:"); miRed.AgregarNodo(new Nodo("192.160.0.100", "servidor", "3", "10", "Linux")); miRed.AgregarNodo(new Nodo("192.168.0.101", "computadora", "2", "12", "IOS")); miRed.AgregarNodo(new Nodo("192.168.0.102", "Computadora", "8", "5", "Windows")); Vulnerabilidad vlnd1 = new Vulnerabilidad("CVE-2015-1635", "microsoft", "HTTP.sys permite a atacantes remotos ejecutar codigo arbitrario", "remota", DateTime.Parse("04/14/2015", InfoCultural)); Vulnerabilidad vlnd2 = new Vulnerabilidad("CVE-2017-0004", "microsoft", "El servidor LSASS permite causar una denegacion de servicio", "local", DateTime.Parse("01/10/2001", InfoCultural)); Vulnerabilidad vlnd3 = new Vulnerabilidad("CVE-2017-3847", "cisco", "Cisco Firepower Management Center XSS", "remota", DateTime.Parse("02/21/2017", InfoCultural)); Vulnerabilidad vlnd4 = new Vulnerabilidad("CVE-2009-2504", "microsoft", "Múltiples desbordamientos de enteros en APIs Microsoft .NET 1.1", "local", DateTime.Parse("11/13/2009", InfoCultural)); miRed.Nodos[0].AgregarVlnd(vlnd1); miRed.Nodos[0].AgregarVlnd(vlnd2); miRed.Nodos[1].AgregarVlnd(vlnd3); miRed.Nodos[2].AgregarVlnd(vlnd4); // miRed.Vulnerabilidad[0].AgregarVlnd(vlnd1); //imprimir reporte Console.WriteLine($"Empresa: {miRed.Empresa}"); Console.WriteLine($"Propietario: {miRed.Propietario}"); Console.WriteLine($"Domicilio: {miRed.Domicilio}"); Console.WriteLine("\n Datos generales de los nodos"); Console.WriteLine($"IP: {miRed.Nodos[0].Ip}, Tipo: {miRed.Nodos[0].Tipo}, Puertos: {miRed.Nodos[0].Puertos}, Saltos: {miRed.Nodos[0].Saltos}, SO: {miRed.Nodos[0].So}"); Console.WriteLine("\n Vulneravilidades por nodo"); Console.WriteLine($"IP: {miRed.Nodos[0].Ip}, Tipo: {miRed.Nodos[0].Tipo}"); // Console.WriteLine("\n Vulneravilidades"); // Console.WriteLine($"Clave: {miRed.Nodos[0].Clave}, Tipo: {miRed.Nodos[0].Tipo}"); }
static void Main(string[] args) { //red Red r = new Red("Red Patito, S.A. de C.V.", "Mr Pato Macdonald", "Av. Princeton 123, Orlando Florida"); //crear vulnerabilidades Vulnerabilidad v1 = new Vulnerabilidad("CVE-2015-1635", "micrsoft", "HTTP.sys permite a atacantes remotos ejecutar codigo arbitrario", 0, new DateTime(2015, 04, 14)); Vulnerabilidad v2 = new Vulnerabilidad("CVE-2017-0004", "micrsoft", "El servicio LSASS permite causar una denegación de servicio", 1, new DateTime(2015, 1, 10)); Vulnerabilidad v3 = new Vulnerabilidad(" CVE-2017-3847", "cisco", " Cisco Firepower Management Center XSS", 0, new DateTime(2017, 02, 21)); Vulnerabilidad v4 = new Vulnerabilidad("CVE-2009-2504", "micrsoft", " Múltiples desbordamientos de enteros en APIs Microsoft .NET 1.1", 1, new DateTime(2009, 11, 13)); Vulnerabilidad v5 = new Vulnerabilidad("CVE-2016-7271", "micrsoft", "Elevación de privilegios Kernel Segura en Windows 10 Gold", 0, new DateTime(2016, 12, 20)); Vulnerabilidad v6 = new Vulnerabilidad("CVE-2017-2996", "micrsoft", "Adobe Flash Player 24.0.0.194 corrupción de memoria explotable", 1, new DateTime(2015, 04, 14)); //crear nodos Nodo n1 = new Nodo("192.168.0.10", 0, 5, 10, "linux"); Nodo n2 = new Nodo("192.168.0.12", 1, 2, 12, "ios"); Nodo n3 = new Nodo("192.168.0.20", 2, 8, 5, "windows"); Nodo n4 = new Nodo("192.168.0.15", 0, 10, 22, "linux"); //insertar vulnerabilidades n1.insertaVulnerabilidades(v1); n1.insertaVulnerabilidades(v2); n2.insertaVulnerabilidades(v3); n3.insertaVulnerabilidades(v4); n3.insertaVulnerabilidades(v5); n3.insertaVulnerabilidades(v6); //insertar nodos r.insertarNodo(n1); r.insertarNodo(n2); r.insertarNodo(n3); r.insertarNodo(n4); //salida Console.WriteLine(">>Datos generales de la red:\n"); Console.WriteLine($"Empresa :{r.Empresa}"); Console.WriteLine($"Propietario :{r.Propietario}"); Console.WriteLine($"Domicilio :{r.Domicilio}\n"); Console.WriteLine($"Mayor numero de saltos: {r.getMayorSalto()}"); Console.WriteLine($"Menor numero de saltos: {r.getMenorSalto()}\n"); Console.WriteLine(">>Datos generales de los nodos:\n"); foreach (Nodo n in r.Nodos) { Console.WriteLine($"IP: {n.Ip}, Tipo: {n.Tipo}, Puertos: {n.Puertos }, Saltos: {n.Saltos}, SO: {n.So}, TotVul: {n.getTotalVulnerabilidades()}"); } Console.WriteLine(">>Vulnerabilidades por nodo:\n"); foreach (Nodo n in r.Nodos) { Console.WriteLine($"> Ip: {n.Ip}, Tipo: {n.Tipo}\n"); Console.WriteLine("Vulnerabilidades:\n"); if (n.Vulnerabilidades.Count > 0) { foreach (Vulnerabilidad v in n.Vulnerabilidades) { Console.WriteLine($"Clave: {v.Clave}, Vendedor: {v.Vendedor}, Descripción: {v.Descripcion}, Tipo: {v.Tipo}, Fecha: {v.Fecha.ToString("d")}, Antigüedad:{v.getAntiguedad().Days} dias"); } } else { Console.WriteLine("No tiene vulnerabilidades ..."); } Console.WriteLine(); } }
static void Main(string[] args) { Red miRed = new Red("Red Patito, SA de CV", "Mr pato McDonald", "Av. Princeton 123, Orlando Florida"); Nodo nodo1 = new Nodo("192.168.0.10", "servidor", "5", 10, "linux"); Nodo nodo2 = new Nodo("192.168.0.12", "equipoactivo", "2", 12, "ios"); Nodo nodo3 = new Nodo("192.168.0.20", "computadora", "8", 5, "windows"); Nodo nodo4 = new Nodo("192.168.0.15", "servidor", "10", 22, "linux"); miRed.AgregarNodo(nodo1); miRed.AgregarNodo(nodo2); miRed.AgregarNodo(nodo3); miRed.AgregarNodo(nodo4); Vulnerabilidad vul1 = new Vulnerabilidad("CVE-2015-1635", "microsoft", "HTTP.sys permite a atacantesremotos ejecutar código arbitrario", "remota", "02/12/2015"); Vulnerabilidad vul2 = new Vulnerabilidad("CVE-2017-0004", "microsoft", "El servicio LSASS permite causar una denegación de servicio", "local", "01/10/2015"); Vulnerabilidad vul3 = new Vulnerabilidad("CVE-2017-3847", "cisco", "Cisco Firepower Management Center XSS", "remota", "21/02/2017"); Vulnerabilidad vul4 = new Vulnerabilidad("CVE-2009-2504", "microsoft", "Múltiples desbordamientos de enteros en APIs Microsoft .NET 1.1", "local", "14/04/2015"); Vulnerabilidad vul5 = new Vulnerabilidad("CVE-2016-7271", "microsoft", "Elevación de privilegios Kernel Segura en Windows 10 Gold", "local", "14/04/2015"); Vulnerabilidad vul6 = new Vulnerabilidad("CVE-2017-2996", "adobe", "Adobe Flash Player 24.0.0.194 corrupción de memoria explotable", "remota", "14/04/2015"); nodo1.AgregarVulenerabilidad(vul1); nodo1.AgregarVulenerabilidad(vul2); nodo2.AgregarVulenerabilidad(vul3); nodo3.AgregarVulenerabilidad(vul4); nodo3.AgregarVulenerabilidad(vul5); nodo3.AgregarVulenerabilidad(vul6); Console.WriteLine("Empresa: " + miRed.Empresa); Console.WriteLine("Propietario: " + miRed.Propietario); Console.WriteLine("Domicilio: " + miRed.Domicilio + "\n"); Console.WriteLine("Total nodos red: " + miRed.Contador_nodos); int totalNodos = nodo1.Contador_vulnerabilidades + nodo2.Contador_vulnerabilidades + nodo3.Contador_vulnerabilidades + nodo4.Contador_vulnerabilidades; Console.WriteLine("Total vulnerabilidades: " + totalNodos + "\n"); Console.WriteLine("Ip: " + nodo1.Ip + " Tipo: " + nodo1.Tipo + " Puertos: " + nodo1.Puertos + " Saltos: " + nodo1.Saltos + " So: " + nodo1.So + " TotVul: " + nodo1.Contador_vulnerabilidades); Console.WriteLine("Ip: " + nodo2.Ip + " Tipo: " + nodo2.Tipo + " Puertos: " + nodo2.Puertos + " Saltos: " + nodo2.Saltos + " So: " + nodo2.So, " TotVul: ", nodo2.Contador_vulnerabilidades); Console.WriteLine("Ip: " + nodo3.Ip + " Tipo: " + nodo3.Tipo + " Puertos: " + nodo3.Puertos + " Saltos: " + nodo3.Saltos + " So: " + nodo3.So, " TotVul: ", nodo3.Contador_vulnerabilidades); Console.WriteLine("Ip: " + nodo4.Ip + " Tipo: " + nodo4.Tipo + " Puertos: " + nodo4.Puertos + " Saltos: " + nodo4.Saltos + " So: " + nodo4.So, " TotVul: ", nodo4.Contador_vulnerabilidades + "\n"); Console.WriteLine("Mayor numero de saltos: " + miRed.MayorSalto()); Console.WriteLine("Menor numero de saltos: " + miRed.MenorSalto() + "\n"); Console.WriteLine("Vulnerabilidades por nodo" + "\n"); Console.WriteLine("Ip: " + nodo1.Ip + " Tipo: " + nodo1.Tipo + "\n"); Console.WriteLine("Vulnerabilidades" + "\n"); Console.WriteLine("Clave: " + vul1.Clave + " Vendedor: " + vul1.Vendedor + " Descripcion: " + vul1.Descripcion + " Tipo: " + vul1.Tipo + " Fecha: " + vul1.Fecha + " Antiguedad en años: " + vul1.antiguedad()); Console.WriteLine("Clave: " + vul2.Clave + " Vendedor: " + vul2.Vendedor + " Descripcion: " + vul2.Descripcion + " Tipo: " + vul2.Tipo + " Fecha: " + vul2.Fecha + " Antiguedad en años: " + vul2.antiguedad() + "\n"); Console.WriteLine("Ip: " + nodo2.Ip + " Tipo: " + nodo2.Tipo + "\n"); Console.WriteLine("Vulnerabilidades" + "\n"); Console.WriteLine("Clave: " + vul3.Clave + " Vendedor: " + vul3.Vendedor + " Descripcion: " + vul3.Descripcion + " Tipo: " + vul3.Tipo + " Fecha: " + vul3.Fecha + " Antiguedad en años: " + vul3.antiguedad() + "\n"); Console.WriteLine("Ip: " + nodo3.Ip + " Tipo: " + nodo3.Tipo + "\n"); Console.WriteLine("Vulnerabilidades" + "\n"); Console.WriteLine("Clave: " + vul4.Clave + " Vendedor: " + vul4.Vendedor + " Descripcion: " + vul4.Descripcion + " Tipo: " + vul4.Tipo + " Fecha: " + vul4.Fecha + " Antiguedad en años: " + vul4.antiguedad()); Console.WriteLine("Clave: " + vul5.Clave + " Vendedor: " + vul5.Vendedor + " Descripcion: " + vul5.Descripcion + " Tipo: " + vul5.Tipo + " Fecha: " + vul5.Fecha + " Antiguedad en años: " + vul5.antiguedad()); Console.WriteLine("Clave: " + vul6.Clave + " Vendedor: " + vul6.Vendedor + " Descripcion: " + vul6.Descripcion + " Tipo: " + vul6.Tipo + " Fecha: " + vul6.Fecha + " Antiguedad en años: " + vul6.antiguedad() + "\n"); Console.WriteLine("Ip: " + nodo4.Ip + " Tipo: " + nodo3.Tipo + "\n"); Console.WriteLine("Vulnerabilidades" + "\n"); Console.WriteLine("No hay vulneravilidades"); }
static void Main(string[] args) { Red red1 = new Red("Red Patito, S.A. de C.", "Mr Pato Macdonal", "Av. Princeton 123, Orlando Flori"); Nodo nodo1 = new Nodo("192.168.0.10", 0, 5, 10, 0); Nodo nodo2 = new Nodo("192.168.0.12", 1, 2, 12, 1); Nodo nodo3 = new Nodo("192.168.0.20", 2, 8, 5, 2); Nodo nodo4 = new Nodo("192.168.0.15", 0, 10, 22, 0); Vulnerabilidad vul1 = new Vulnerabilidad("CVE-2015-1635", "microsoft", "HTTP.sys permite a atacantes remotos ejecutar código arbitrar", 1, "04/14/2015"); Vulnerabilidad vul2 = new Vulnerabilidad("CVE-2017-0004", "microsoft", "El servicio LSASS permite causar una denegación de servici", 0, "01/10/2010"); nodo1.AgregarVul(vul1); nodo1.AgregarVul(vul2); Vulnerabilidad vul3 = new Vulnerabilidad("CVE-2017-3847", "cisco", "Cisco Firepower Management Center XSS", 1, "02/21/2010"); nodo2.AgregarVul(vul3); Vulnerabilidad vul4 = new Vulnerabilidad("CVE-2009-2504", "microsoft", "Múltiples desbordamientos de enteros en APIs Microsoft .NET 1.1", 0, "11/13/2009"); Vulnerabilidad vul5 = new Vulnerabilidad("CVE-2016-7271", "microsoft", "Elevación de privilegios Kernel Segura en Windows 10 Gol", 0, "12/20/2016"); Vulnerabilidad vul6 = new Vulnerabilidad("CVE-2017-2996", "adove", "Adobe Flash Player 24.0.0.194 corrupción de memoria explotable", 1, "15/02/2017"); nodo3.AgregarVul(vul4); nodo3.AgregarVul(vul5); nodo3.AgregarVul(vul6); red1.AgregarNodo(nodo1); red1.AgregarNodo(nodo2); red1.AgregarNodo(nodo3); red1.AgregarNodo(nodo4); //imprimir datos principales Console.WriteLine("\n >>>Datos generales de la red<<<\n"); Console.WriteLine($"Empresa: {red1.Empresa}"); Console.WriteLine($"Propietario: {red1.Propietario}"); Console.WriteLine($"Domicilio: {red1.Domicilio}"); int suma = 0; foreach (Nodo n in red1.Nodos) { suma += (int)n.totVol(); } Console.WriteLine($"Total Nodos red: {red1.totalNodos()}"); Console.WriteLine($"Total Vulnerabilidades: {suma}\n"); //imprimir datos de nodos gnerales int may = 0; int men = 0; foreach (Nodo n in red1.Nodos) { Console.WriteLine($"IP: {n.Ip}, Tipo: {n.TipoActual}, Puertos: {n.Puertos}, Saltos: {n.Saltos}, So: {n.So}, Totvul: {n.totVol()}"); may = mayor(may, n.Saltos); men = menor(men, n.Saltos); } Console.WriteLine($"\nMayor numero de saltos: {may}"); Console.WriteLine($"Mayor numero de saltos: {men}\n"); Console.WriteLine(" >> Datos generales de los nodos:\n"); foreach (Nodo n in red1.Nodos) { Console.WriteLine($"\nIP: {n.Ip}, Tipo: {n.TipoActual}\n"); if (n.Exploids.Count != 0) { Console.WriteLine("Vulnerabilidades: \n"); foreach (Vulnerabilidad v in n.Exploids) { Console.WriteLine($"Clave: {v.Clave}, Vendedor: {v.Vendedor}, Descripcion: {v.Descripcion}, Tipo: {v.TipoActual}, Fecha: {v.Fecha}"); } } else { Console.WriteLine("No tiene vulnerabilidades .."); } } }
static void Main(string[] args) { //Console.WriteLine("Hello World!"); Console.WriteLine(""); //Inicio una red Red red = new Red("Red Patito, S.A. de C.V."); red.Propietario = "Mr Pato Macdonald"; red.Domicilio = "Av. Princeton 123, Orlando Florida"; //Inicio los nodos Nodo nodo1 = new Nodo("192.168.0.10"); Nodo nodo2 = new Nodo("192.168.0.12"); Nodo nodo3 = new Nodo("192.168.0.20"); Nodo nodo4 = new Nodo("192.168.0.15"); //Pongo la informacion para cada nodo nodo1.Tipo = "servidor"; nodo1.Puertos = 5; nodo1.Saltos = 10; nodo1.SO = "Linux"; nodo2.Tipo = "equipoactivo"; nodo2.Puertos = 2; nodo2.Saltos = 12; nodo2.SO = "iOS"; nodo3.Tipo = "computadora"; nodo3.Puertos = 8; nodo3.Saltos = 5; nodo3.SO = "Windows"; nodo4.Tipo = "servidor"; nodo4.Puertos = 10; nodo4.Saltos = 22; nodo4.SO = "Linux"; //Agrego los nodos a cada red red.agregarNodos(nodo1); red.agregarNodos(nodo2); red.agregarNodos(nodo3); red.agregarNodos(nodo4); //Inicializo las vulnerabilidades Vulnerabilidad vuln1 = new Vulnerabilidad("CVE-2015-1635"); Vulnerabilidad vuln2 = new Vulnerabilidad("CVE-2017-0004"); Vulnerabilidad vuln3 = new Vulnerabilidad("CVE-2017-3847"); Vulnerabilidad vuln4 = new Vulnerabilidad("CVE-2009-2504"); Vulnerabilidad vuln5 = new Vulnerabilidad("CVE-2016-7271"); Vulnerabilidad vuln6 = new Vulnerabilidad("CVE-2017-2996"); Vulnerabilidad vuln7 = new Vulnerabilidad("CVE-2015-6545"); //Agrego informacion a cada vulnerabilidad vuln1.Vendedor = "microsoft"; vuln1.Descripcion = "HTTP.sys permite a atacantes remotos ejecutar código arbitrario"; vuln1.TipoVulnerabilidad = "remota"; vuln1.Fecha = "04/08/2015"; vuln2.Vendedor = "microsoft"; vuln2.Descripcion = "El servicio LSASS permite causar una denegación de servicio"; vuln2.TipoVulnerabilidad = "local"; vuln2.Fecha = "01/10/2019"; vuln3.Vendedor = "cisco"; vuln3.Descripcion = "Cisco Firepower Management Center XSS"; vuln3.TipoVulnerabilidad = "remota"; vuln3.Fecha = "02/08/2017"; vuln4.Vendedor = "microsoft"; vuln4.Descripcion = "Múltiples desbordamientos de enteros en APIs Microsoft .NET 1.1"; vuln4.TipoVulnerabilidad = "local"; vuln4.Fecha = "11/09/2009"; vuln5.Vendedor = "microsoft"; vuln5.Descripcion = "Elevación de privilegios Kernel Segura en Windows 10 Gold"; vuln5.TipoVulnerabilidad = "local"; vuln5.Fecha = "12/05/2016"; vuln6.Vendedor = "adobe"; vuln6.Descripcion = "Adobe Flash Player 24.0.0.194 corrupción de memoria explotable"; vuln6.TipoVulnerabilidad = "remota"; vuln6.Fecha = "15/02/2017"; vuln7.Vendedor = "wordpress"; vuln7.Descripcion = "Peticiones ilimitadas, XRHCP"; vuln6.TipoVulnerabilidad = "remota"; vuln7.Fecha = "02/05/2015"; //Agrega vulnerabilidades a cada nodo nodo1.agregaVulnerabilidades(vuln1); nodo1.agregaVulnerabilidades(vuln2); nodo2.agregaVulnerabilidades(vuln3); nodo3.agregaVulnerabilidades(vuln4); nodo3.agregaVulnerabilidades(vuln5); nodo3.agregaVulnerabilidades(vuln6); nodo4.agregaVulnerabilidades(vuln7); // Informacion como debe de salir en pantalla Console.WriteLine(">> Datos generales de la red:\n"); Console.WriteLine(red.ToString()); Console.WriteLine("Total nodos red: " + red.TotalNodos); Console.WriteLine("Total vulnerabilidades: " + (nodo1.TotalVulnerabilidades + nodo2.TotalVulnerabilidades + nodo3.TotalVulnerabilidades + nodo4.TotalVulnerabilidades) + "\n"); Console.WriteLine(">> Datos generales de los nodos:\n"); foreach (Nodo nodo in red.Nodos) { Console.WriteLine(nodo.ToString() + ", TotVul:" + nodo.VulnerabilidadNodo); } Console.WriteLine("\nMayor número de saltos: " + red.MayorSaltos); Console.WriteLine("Menor número de saltos: " + red.MenorSaltos); Console.WriteLine("\n>> Vulnerabilidades por nodo:\n"); for (int i = 0; i < nodo1.Vulnerabilidades.Count; i++) { if (i < 1) { Console.WriteLine("> Ip: " + nodo1.IP + ", Tipo: " + nodo1.Tipo + "\n\nVulnerabilidades:"); } else if (i < 1 && nodo1.Vulnerabilidades.Count < 1) { Console.WriteLine("No tiene vulnerabilidades .."); } Console.WriteLine(nodo1.Vulnerabilidades[i].ToString()); } for (int i = 0; i < nodo2.Vulnerabilidades.Count; i++) { if (i < 1) { Console.WriteLine("\n> Ip: " + nodo2.IP + ", Tipo: " + nodo2.Tipo + "\n\nVulnerabilidades:"); } else if (i < 1 && nodo2.Vulnerabilidades.Count < 1) { Console.WriteLine("No tiene vulnerabilidades .."); } Console.WriteLine(nodo2.Vulnerabilidades[i].ToString()); } for (int i = 0; i < nodo3.Vulnerabilidades.Count; i++) { if (i < 1) { Console.WriteLine("\n> Ip: " + nodo3.IP + ", Tipo: " + nodo3.Tipo + "\n\nVulnerabilidades:"); } else if (i < 1 && nodo3.Vulnerabilidades.Count < 1) { Console.WriteLine("No tiene vulnerabilidades .."); } Console.WriteLine(nodo3.Vulnerabilidades[i].ToString()); } for (int i = 0; i < nodo4.Vulnerabilidades.Count; i++) { if (i < 1) { Console.WriteLine("\n> Ip: " + nodo4.IP + ", Tipo: " + nodo4.Tipo + "\n\nVulnerabilidades:"); } else if (i < 1 && nodo4.Vulnerabilidades.Count < 1) { Console.WriteLine("No tiene vulnerabilidades .."); } Console.WriteLine(nodo4.Vulnerabilidades[i].ToString()); } //Console.ReadLine(); Console.WriteLine(""); }//<--