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) { } }
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)); } }
protected void OnSearcherLinkFoundEvent(EventsThreads.CollectionFound <Uri> e) { EventHandler <EventsThreads.CollectionFound <Uri> > handler = SearcherLinkFoundEvent; if (handler != null) { handler(this, e); } }
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 { } } }
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 { } } }
protected void OnDataFoundEvent(EventsThreads.CollectionFound <ShodanIPInformation> e) { //MS say: Copy the handle to avoid a race condition. DataFoundEvent?.Invoke(this, e); }