Esempio n. 1
0
        private void ScanBanners(BasicScanItemDisplay basicScanItemDisplay)
        {
            var selectedTargetDisplay = this.SelectedTargetDisplay;

            if (basicScanItemDisplay.IsBannerScanRunning)
            {
                return;
            }

            basicScanItemDisplay.IsBannerScanRunning = true;

            this.RunTask(uiThread =>
            {
                var ipAddress = basicScanItemDisplay.IPAddress;

                foreach (var portDescription in basicScanItemDisplay.PortDescriptions)
                {
                    portDescription.Banner = this.nmapBannerGrabber.Grab(IPAddress.Parse(ipAddress), portDescription.Port, portDescription.Protocol);

                    if (portDescription.Banner != string.Empty)
                    {
                        uiThread.Execute(() =>
                        {
                            selectedTargetDisplay.AddBanner(ipAddress, portDescription);
                        });
                    }
                }

                uiThread.Execute(() =>
                {
                    basicScanItemDisplay.IsBannerScanRunning = false;
                });
            });
        }
Esempio n. 2
0
        private void ScanPorts(BasicScanItemDisplay basicScanItemDisplay)
        {
            if (basicScanItemDisplay.IPAddress == "Unknown")
            {
                return;
            }

            if (basicScanItemDisplay.IsPortScanRunning)
            {
                return;
            }

            basicScanItemDisplay.IsPortScanRunning = true;

            this.RunTask(uiThread =>
            {
                var tcpPorts = this.portScanner.SynScan(basicScanItemDisplay.IPAddress);
                var udpPorts = this.portScanner.UdpScan(basicScanItemDisplay.IPAddress);

                uiThread.Execute(() =>
                {
                    basicScanItemDisplay.PortDescriptions.Clear();

                    foreach (var port in tcpPorts)
                    {
                        if (this.portDescriptionService.PortDescriptions.ContainsKey(port))
                        {
                            var portDescription      = this.portDescriptionService.PortDescriptions[port].Clone();
                            portDescription.Protocol = Layer4ProtocolType.TCP;
                            basicScanItemDisplay.PortDescriptions.Add(portDescription);
                        }
                        else
                        {
                            var portDescription = new PortDescription(port, "Unknown")
                            {
                                Protocol = Layer4ProtocolType.TCP
                            };
                            basicScanItemDisplay.PortDescriptions.Add(portDescription);
                        }
                    }

                    foreach (var port in udpPorts)
                    {
                        if (this.portDescriptionService.PortDescriptions.ContainsKey(port))
                        {
                            var portDescription      = this.portDescriptionService.PortDescriptions[port].Clone();
                            portDescription.Protocol = Layer4ProtocolType.UDP;
                            basicScanItemDisplay.PortDescriptions.Add(portDescription);
                        }
                        else
                        {
                            var portDescription = new PortDescription(port, "Unknown")
                            {
                                Protocol = Layer4ProtocolType.UDP
                            };
                            basicScanItemDisplay.PortDescriptions.Add(portDescription);
                        }
                    }

                    CommandManager.InvalidateRequerySuggested();

                    basicScanItemDisplay.IsPortScanRunning = false;
                });
            });
        }
Esempio n. 3
0
 private void DeleteBasicScanItem(BasicScanItemDisplay basicScanItemDisplay)
 {
     this.SelectedTargetDisplay.BasicScanItemDisplays.Remove(basicScanItemDisplay);
 }