Пример #1
0
        public void UpdateData()
        {
            DNSHijackAttack dnsAttack = (DNSHijackAttack)attack;

            lbDomain.Text = dnsAttack.domain;
            lbIp.Text     = dnsAttack.ip.ToString();
            lbSpoofs.Text = "Spoofs: " + dnsAttack.spoofsAttacks.ToString();
        }
Пример #2
0
        public bool CheckIfHijack(Packet p)
        {
            foreach (Data.Attack attack in attacks.Where(A => A.attackType == Data.AttackType.DNSHijacking && A.attackStatus == Data.AttackStatus.Attacking))
            {
                if ((p.PayloadPacket != null && p.PayloadPacket.PayloadPacket != null) && (p.PayloadPacket.PayloadPacket is UdpPacket))
                {
                    EthernetPacket ethernet = (EthernetPacket)p;
                    IpPacket       ip       = (IpPacket)p.PayloadPacket;
                    UdpPacket      udp      = (UdpPacket)p.PayloadPacket.PayloadPacket;

                    if ((udp.SourcePort == 53)) // La respuesta DNS
                    {
                        // Comprobamos que venga a nuestra MAC pero no a nuestra IP
                        if (NeedToRoute(ip))
                        {
                            try
                            {
                                Heijden.DNS.Response response  = new Heijden.DNS.Response(new IPEndPoint(IPAddress.Parse("1.2.3.4"), 53), udp.PayloadData);
                                DNSHijackAttack      dnsAttack = (DNSHijackAttack)attack;

                                foreach (Heijden.DNS.Question q in response.Questions)
                                {
                                    if ((q.QName == dnsAttack.domain + ".") || dnsAttack.domain == "*")
                                    {
                                        return(true);
                                    }
                                }
                            }
                            catch
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            return(false);
                        }
                    }
                }
            }
            return(false);
        }