void pasiveScan_NewARP(object sender, Core.ArpEventArgs e) { if (e.p == null) { return; } Packet p = e.p; if (!(p.PayloadPacket is ARPPacket)) { return; } ARPPacket arp = (ARPPacket)p.PayloadPacket; foreach (Data.Attack attack in attacks.Where(A => A.attackType == Data.AttackType.InvalidMacSpoofIpv4 && A.attackStatus == Data.AttackStatus.Attacking)) { if (attack is InvalidMacSpoofAttackIpv4Attack) { InvalidMacSpoofAttackIpv4Attack spoofAttack = (InvalidMacSpoofAttackIpv4Attack)attack; if ((spoofAttack.t1.mac.Equals(arp.SenderHardwareAddress)) && arp.TargetProtocolAddress.Equals(spoofAttack.t2.ip)) { ForceAttack(spoofAttack); } } } }
public void ForceRestore(InvalidMacSpoofAttackIpv4Attack attack) { EthernetPacket ethernet; ethernet = new EthernetPacket(device.Interface.MacAddress, ((InvalidMacSpoofAttackIpv4Attack)attack).t1.mac, EthernetPacketType.Arp); ethernet.PayloadPacket = new ARPPacket(ARPOperation.Response, ((InvalidMacSpoofAttackIpv4Attack)attack).t1.mac, ((InvalidMacSpoofAttackIpv4Attack)attack).t1.ip, ((InvalidMacSpoofAttackIpv4Attack)attack).t2.mac, ((InvalidMacSpoofAttackIpv4Attack)attack).t2.ip); Program.CurrentProject.data.SendPacket(ethernet); }
private void ControlInvalidMacIpv4_Load(object sender, EventArgs e) { InvalidMacSpoofAttackIpv4Attack dosAttack = (InvalidMacSpoofAttackIpv4Attack)attack; lbInfo.Text = "IP " + dosAttack.t1.ip + " has not connectivity with " + dosAttack.t2.ip; }