Exemple #1
0
        private void CaptureSearchResults(object sender, EventsThreads.CollectionFound <Uri> e)
        {
            WebSearcher searcher = (WebSearcher)sender;

            foreach (var group in e.Data.GroupBy(p => p.Host))
            {
                if (CheckToSkip())
                {
                    searcher.Abort();
                }

                try
                {
                    AddAndLogSubdomainDiscover(group.Key);

                    DomainsItem domain = Program.data.GetDomain(group.Key);
                    foreach (Uri url in group)
                    {
                        domain.map.AddUrl(url.ToString());
                    }
                }
                catch
                {
                }
            }
        }
        private void CaptureSearchResults(object sender, EventsThreads.CollectionFound <Uri> e)
        {
            try
            {
                foreach (var group in e.Data.GroupBy(p => p.Host))
                {
                    CancelIfSkipRequested();
                    try
                    {
                        AddAndLogSubdomainDiscover(group.Key);

                        DomainsItem domain = Program.data.GetDomain(group.Key);
                        foreach (Uri url in group)
                        {
                            domain.map.AddUrl(url.ToString());
                        }
                    }
                    catch
                    {
                    }
                }
            }
            catch (InvalidCastException)
            {
            }
        }
Exemple #3
0
        private static void ShodanDataFound(object sender, EventsThreads.CollectionFound <ShodanRecognition.ShodanIPInformation> e)
        {
            try
            {
                if (e?.Data == null || e.Data.Count <= 0)
                {
                    return;
                }
                // just an object is received
                ShodanRecognition.ShodanIPInformation si = e.Data.First();
                Program.LogThis(new Log(Log.ModuleType.ShodanSearch,
                                        $"Found IP Information {si.IPAddress}", Log.LogType.low));

                var ei = new ExtendedIPInformation
                {
                    Country      = si.Country,
                    ServerBanner = si.ServerBanner
                };
                foreach (var hostName in si.HostNames)
                {
                    Program.data.AddResolution(hostName, si.IPAddress,
                                               $"Shodan Hostname [{hostName}]", 0, Program.cfgCurrent, true);
                }
                ei.OS             = si.OS;
                ei.ShodanResponse = si.ShodanResponse;
                // add data found in shodan to the IP address
                Program.data.SetIPInformation(si.IPAddress, ei);
                Program.data.GetServersFromIPs();
            }
            catch (Exception ex)
            {
                Program.LogThis(new Log(Log.ModuleType.ShodanSearch,
                                        $"Error managing Shodan data returned {ex.Message}", Log.LogType.error));
            }
        }
Exemple #4
0
        protected void OnSearcherLinkFoundEvent(EventsThreads.CollectionFound <Uri> e)
        {
            EventHandler <EventsThreads.CollectionFound <Uri> > handler = SearcherLinkFoundEvent;

            if (handler != null)
            {
                handler(this, e);
            }
        }
Exemple #5
0
        private void wsSearch_SearcherLinkFoundEvent(object sender, EventsThreads.CollectionFound <Uri> e)
        {
            foreach (Uri url in e.Data)
            {
                try
                {
                    try
                    {
                        string fileExtension = Path.GetExtension(url.AbsolutePath).ToLowerInvariant();

                        if (!String.IsNullOrWhiteSpace(fileExtension) && DocumentExtractor.IsSupportedExtension(fileExtension))
                        {
                            var fi = new FilesItem
                            {
                                Ext               = fileExtension,
                                URL               = url.ToString(),
                                Downloaded        = false,
                                MetadataExtracted = false,
                                Date              = DateTime.MinValue,
                                ModifiedDate      = DateTime.MinValue,
                                Path              = string.Empty,
                                Size              = -1
                            };
                            Program.data.files.Items.Add(fi);
                            Program.FormMainInstance.treeViewMetadata_UpdateDocumentsNumber();
                            Program.FormMainInstance.panelMetadataSearch.listViewDocuments_Update(fi);
                            Program.FormMainInstance.panelMetadataSearch.HttpSizeDaemonInst.AddURL(fi);
                        }
                    }
                    catch (Exception)
                    {
                    }
                    // add the url to the files list
                    DomainsItem domain = Program.data.GetDomain(url.Host);
                    if (domain == null)
                    {
                        Program.data.AddDomain(url.Host, "Crawling", Program.cfgCurrent.MaxRecursion, Program.cfgCurrent);
                        Program.LogThis(new Log(Log.ModuleType.Crawling, "Domain found: " + url.Host, Log.LogType.medium));
                        domain = Program.data.GetDomain(url.Host);
                    }

                    domain.map.AddUrl(url.ToString());
                    if (domain.techAnalysis.domain == null)
                    {
                        domain.techAnalysis.domain = domain.Domain;
                    }
                    domain.techAnalysis.eventLinkFoundDetailed(null, new EventsThreads.CollectionFound <Uri>(new List <Uri> {
                        url
                    }));
                }
                catch
                {
                }
            }
        }
Exemple #6
0
        private void wsSearch_SearcherLinkFoundEvent(object sender, EventsThreads.CollectionFound <Uri> e)
        {
            foreach (Uri url in e.Data)
            {
                try
                {
                    try
                    {
                        var fileWithMetadata =
                            Program.FormMainInstance.panelMetadataSearch.checkedListBoxExtensions.Items.Cast <string>()
                            .Any(checkedListbox => url.ToString().EndsWith(checkedListbox));

                        if (fileWithMetadata)
                        {
                            var fi = new FilesITem
                            {
                                Ext          = Path.GetExtension(url.AbsolutePath).ToLower(),
                                URL          = url.ToString(),
                                Downloaded   = false,
                                Processed    = false,
                                Date         = DateTime.MinValue,
                                ModifiedDate = DateTime.MinValue,
                                Path         = string.Empty,
                                Size         = -1
                            };
                            Program.data.files.Items.Add(fi);
                            Program.FormMainInstance.treeViewMetadata_UpdateDocumentsNumber();
                            var lvi = Program.FormMainInstance.panelMetadataSearch.listViewDocuments_Update(fi);
                            Program.FormMainInstance.panelMetadataSearch.HttpSizeDaemonInst.AddURL(fi);
                        }
                    }
                    catch (Exception)
                    {
                    }
                    // add the url to the files list
                    var d = Program.data.GetDomain(url.Host);
                    d.map.AddUrl(url.ToString());

                    if (d.techAnalysis.domain == null)
                    {
                        d.techAnalysis.domain = d.Domain;
                    }

                    var listaUrl = new List <Uri> {
                        url
                    };
                    d.techAnalysis.eventLinkFoundDetailed(null,
                                                          new EventsThreads.CollectionFound <Uri>(listaUrl));
                }
                catch
                {
                }
            }
        }
Exemple #7
0
 protected void OnDataFoundEvent(EventsThreads.CollectionFound <ShodanIPInformation> e)
 {
     //MS say: Copy the handle to avoid a race condition.
     DataFoundEvent?.Invoke(this, e);
 }