public void UpdateData() { DNSHijackAttack dnsAttack = (DNSHijackAttack)attack; lbDomain.Text = dnsAttack.domain; lbIp.Text = dnsAttack.ip.ToString(); lbSpoofs.Text = "Spoofs: " + dnsAttack.spoofsAttacks.ToString(); }
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); }