예제 #1
0
        /// <summary>
        /// Metodo que carga la vista index que muestra los malware subidos por fecha desc.
        /// </summary>
        /// <returns></returns>
        public IActionResult Index()
        {
            try
            {
                //obtenemos lso malware subidos a la plataforma
                var model = malwareManager.GetAll().Select(e => new CORE.Malware
                {
                    Id            = e.Id,
                    Name          = e.Name,
                    Date          = e.Date,
                    FileName      = e.FileName,
                    Url           = e.Url,
                    MD5           = e.MD5,
                    SHA256        = e.SHA256,
                    MalwareLevel  = e.MalwareLevel,
                    MalwareStatus = e.MalwareStatus
                });

                if (model != null)
                {
                    return(View(model));
                }
                else
                {
                    TempData["vacio"] = "No se han obtenido muestras subidas a la plataforma";
                    return(View());
                }
            }
            catch (Exception ex)
            {
                //guardamso log si se produce una excepcion
                _log.LogError(ex.Message, ex);
                return(View());
            }
        }
예제 #2
0
 // GET: Home
 public IActionResult Index()
 {
     try
     {
         AdminPanelViewModel model = new AdminPanelViewModel
         {
             Malware = malwareManager.GetAll().Select(e => new CORE.Malware
             {
                 Id = e.Id,
             }).ToList(),
             ScreenShot = screenShotManager.GetAll().Select(e => new CORE.ScreenShot
             {
                 Id = e.Id,
             }).ToList(),
             Comment = commentManager.GetAll().Select(e => new CORE.Comment
             {
                 Id = e.Id,
             }).ToList(),
             User = _userManager.Users.Select(e => new CORE.ApplicationUser
             {
                 Id = e.Id,
             }).ToList()
         };
         return(View(model));
     }
     catch (Exception ex)
     {
         //guardamso log si se produce una excepcion
         _log.LogError(ex.Message, ex);
         return(View());
     }
 }
예제 #3
0
 public IActionResult MyMalware()
 {
     try
     {
         var model = malwareManager.GetAll().Where(e => e.User_Id == User.FindFirstValue(ClaimTypes.NameIdentifier)).ToList();
         if (model != null)
         {
             return(View(model));
         }
         else
         {
             return(View());
         }
     }
     catch (Exception ex)
     {
         _logger.LogError(ex.Message, ex);
         return(RedirectToAction("Index"));
     }
 }
예제 #4
0
        /// <summary>
        /// Metodo que carga la imagen a editar
        /// </summary>
        /// <param name="id">id de screenshot</param>
        /// <returns>vista</returns>
        public IActionResult Edit(int id)
        {
            try
            {
                //verificamos que el id no este vacio
                if (id != 0)
                {
                    //obtenemos el malware
                    var img = screenShotManager.GetById(id);
                    //si elmalware no esta vacio generamos el model
                    if (img != null)
                    {
                        //Obtenemos los usuarios y los pasamos a una lista
                        var mal = malwareManager.GetAll().Select(e => new Malware
                        {
                            Id       = e.Id,
                            FileName = e.FileName,
                        }).ToList();

                        var malList = new List <SelectListItem>();

                        foreach (var item in mal)
                        {
                            malList.Add(new SelectListItem {
                                Text = item.FileName, Value = item.Id.ToString()
                            });
                        }

                        //creamos modelo para pasarlo a ala vista
                        var model = new ScreenShotEditViewModel
                        {
                            ScreenShot =
                            {
                                Id         = img.Id,
                                Malware_Id = img.Malware_Id,
                                Malware    = img.Malware,
                                PathFile   = img.PathFile
                            },
                            Malware = malList
                        };

                        return(View(model));
                    }
                    //si el malware no existe redirigimos a index
                    else
                    {
                        return(RedirectToAction("Index"));
                    }
                }
                else
                {
                    return(RedirectToAction("Index"));
                }
            }
            catch (Exception ex)
            {
                //guardamos log si se produce excepcion
                _log.LogError(ex.Message, ex);
                return(RedirectToAction("Index"));
            }
        }
예제 #5
0
        /// <summary>
        /// metodo que devuelve la vista con los detalles del malware
        /// </summary>
        /// <param name="id">md5 del malware</param>
        /// <returns>vista</returns>
        public IActionResult Index(string id)
        {
            try
            {
                //revisamos que el parametro no este vacio
                if (id != null)
                {
                    //desde el parametro obetenmos el malware asociaso
                    var malware = malwareManager.GetByMd5(id);
                    malId = malware.Id;
                    if (malware != null)
                    {
                        if (malware.MalwareStatus != CORE.Status.Finalizado)
                        {
                            return(RedirectToAction("Status", malware));
                        }
                        //creamos el modelo de datos de la vista
                        AnalysisIndexViewModel model = new AnalysisIndexViewModel
                        {
                            Malware = malwareManager.GetAll().Where(p => p.MD5 == id).Select(e => new CORE.Malware
                            {
                                Id            = malware.Id,
                                User_Id       = malware.User_Id,
                                Date          = malware.Date,
                                MD5           = malware.MD5,
                                SHA256        = malware.SHA256,
                                FileName      = malware.FileName,
                                FilePath      = malware.FilePath,
                                Name          = malware.Name,
                                MalwareLevel  = malware.MalwareLevel,
                                MalwareStatus = malware.MalwareStatus,
                                Url           = malware.Url
                            }).FirstOrDefault(),

                            Screenshots = screenShotManager.GetAll().Where(p => p.Malware_Id == malware.Id).Select(e => new CORE.ScreenShot
                            {
                                Id         = e.Id,
                                Malware_Id = e.Malware_Id,
                                PathFile   = e.PathFile,
                            }).ToList(),

                            Comments = commentManager.GetAll().Where(c => c.Malware_Id == malware.Id).Select(e => new CORE.Comment
                            {
                                Id          = e.Id,
                                User        = e.User,
                                User_Id     = e.User_Id,
                                Malware_Id  = e.Malware_Id,
                                TextComment = e.TextComment,
                            }).ToList(),


                            VTInfo = virusTotalManager.GetAll().Where(v => v.Malware_Id == malware.Id).Select(e => new CORE.VirusTotal.VirusTotalInfo
                            {
                                Id         = e.Id,
                                Malware_Id = e.Malware_Id,
                                Positives  = e.Positives,
                                Total      = e.Total,
                                MD5        = e.MD5
                            }).SingleOrDefault(),

                            CuckooInfo = cuckooInfoManager.GetAll().Where(v => v.Malware_Id == malware.Id).Select(e => new CORE.Cuckoo.CuckooInfo
                            {
                                Id         = e.Id,
                                Malware    = e.Malware,
                                Malware_Id = e.Malware_Id,
                                Score      = e.Score,
                                Package    = e.Package,
                                Category   = e.Category,
                                MD5        = e.MD5
                            }).SingleOrDefault(),

                            TCInfo = threatCrowdInfoManager.GetAll().Where(v => v.Malware_Id == malware.Id).Select(e => new CORE.ThreatCrowd.ThreatCrowdInfo
                            {
                                Id         = e.Id,
                                Malware_Id = e.Malware_Id,
                                Type       = e.Type,
                                Votes      = e.Votes,
                                Permalink  = e.Permalink
                            }).SingleOrDefault(),
                        };

                        // devolvemos la vista con el modelo de datos
                        return(View(model));
                    }
                    else
                    {
                        //
                        return(RedirectToAction("Error"));
                    }
                }
                else
                {
                    //TODO
                    return(RedirectToAction("Index", "Malware"));
                }
            }
            catch (Exception ex)
            {
                //guardamso log si se produce una excepcion
                _log.LogError(ex.Message, ex);
                return(RedirectToAction("Index", "Malware"));
            }
        }