private static void ShodanDataFound(object sender, EventsThreads.ThreadListDataFoundEventArgs e)
        {
            try
            {
                if (e?.Data == null || e.Data.Count <= 0 || !(e.Data[0] is ShodanRecognition.ShodanIPInformation))
                {
                    return;
                }
                // just an object is received
                var si = (ShodanRecognition.ShodanIPInformation)e.Data[0];
                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));
            }
        }
Example #2
0
        protected void OnSearcherLinkFoundEvent(EventsThreads.ThreadListDataFoundEventArgs e)
        {
            EventHandler <EventsThreads.ThreadListDataFoundEventArgs> handler = SearcherLinkFoundEvent;

            if (handler != null)
            {
                handler(this, e);
            }
        }
Example #3
0
        private void wsSearch_SearcherLinkFoundEvent(object sender, EventsThreads.ThreadListDataFoundEventArgs e)
        {
            foreach (var t in e.Data)
            {
                try
                {
                    var u    = new Uri(t.ToString());
                    var link = t.ToString();

                    try
                    {
                        var fileWithMetadata =
                            Program.FormMainInstance.panelMetadataSearch.checkedListBoxExtensions.Items.Cast <string>()
                            .Any(checkedListbox => link.EndsWith(checkedListbox));
                        if (fileWithMetadata)
                        {
                            var fi = new FilesITem
                            {
                                Ext          = Path.GetExtension(new Uri(link).AbsolutePath).ToLower(),
                                URL          = link,
                                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(link, fi);
                        }
                    }
                    catch (Exception)
                    {
                    }
                    // add the url to the files list
                    var d = Program.data.GetDomain(u.Host);
                    d.map.AddUrl(u.ToString());

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

                    var listaUrl = new List <object> {
                        u
                    };
                    d.techAnalysis.eventLinkFoundDetailed(null,
                                                          new EventsThreads.ThreadListDataFoundEventArgs(listaUrl));
                }
                catch
                {
                }
            }
        }
 protected void OnDataFoundEvent(EventsThreads.ThreadListDataFoundEventArgs e)
 {
     //MS say: Copy the handle to avoid a race condition.
     DataFoundEvent?.Invoke(this, e);
 }