more functions preparing to break a network
This commit is contained in:
@ -89,7 +89,7 @@ namespace EduNetworkBuilder
|
||||
public enum DebugPausePoint { none=0, packet_create=1, packet_kill=2,
|
||||
packet_in=4, packet_out=8, packet_duplicate=16, all=63,
|
||||
dump=256, pause=512}
|
||||
public enum TraversalTechnology { gateway, static_route, vlan, ethernet, wireless, firewall,
|
||||
public enum TraversalTechnology { any, none, gateway, static_route, vlan, ethernet, wireless, firewall,
|
||||
vpn, vpn_encryption, vpn_decryption, ip_address, masquerade, forward, arrived}
|
||||
public enum HowToBreak { PowerOff, EthernetBreak, EthernetCorrupt, LockOutSwitch,
|
||||
WirelessBreakSSID, WirelessBreakKey, DeviceChangeIP, DeviceChangeGW, StaticRouteClear,
|
||||
@ -1137,5 +1137,73 @@ namespace EduNetworkBuilder
|
||||
return dest;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// return a list of ways to break a given technology
|
||||
/// </summary>
|
||||
/// <param name="What"></param>
|
||||
/// <returns></returns>
|
||||
public static List<HowToBreak> WaysToBreakATechnology(TraversalTechnology What)
|
||||
{
|
||||
switch(What)
|
||||
{
|
||||
case TraversalTechnology.ethernet:
|
||||
return new List<HowToBreak>() { HowToBreak.EthernetBreak, HowToBreak.EthernetCorrupt };
|
||||
case TraversalTechnology.forward:
|
||||
return new List<HowToBreak>() { HowToBreak.PowerOff, HowToBreak.LockOutSwitch };
|
||||
case TraversalTechnology.gateway:
|
||||
return new List<HowToBreak>() { HowToBreak.DeviceChangeGW };
|
||||
case TraversalTechnology.firewall:
|
||||
return new List<HowToBreak>() { };
|
||||
case TraversalTechnology.ip_address:
|
||||
return new List<HowToBreak>() { HowToBreak.DeviceChangeIP };
|
||||
case TraversalTechnology.masquerade:
|
||||
return new List<HowToBreak>() { };
|
||||
case TraversalTechnology.static_route:
|
||||
return new List<HowToBreak>() { HowToBreak.StaticRouteClear, HowToBreak.StaticRouteCorrupt };
|
||||
case TraversalTechnology.vlan:
|
||||
return new List<HowToBreak>() { HowToBreak.VLANChange};
|
||||
case TraversalTechnology.vpn:
|
||||
return new List<HowToBreak>() { HowToBreak.VPNChangeEndpoint, HowToBreak.VPNChangeKey };
|
||||
case TraversalTechnology.vpn_decryption:
|
||||
return new List<HowToBreak>() { HowToBreak.VPNChangeKey };
|
||||
case TraversalTechnology.vpn_encryption:
|
||||
return new List<HowToBreak>() { HowToBreak.VPNChangeKey };
|
||||
case TraversalTechnology.wireless:
|
||||
return new List<HowToBreak>() { HowToBreak.WirelessBreakKey, HowToBreak.WirelessBreakSSID };
|
||||
}
|
||||
return new List<HowToBreak>(); //An empty list
|
||||
}
|
||||
|
||||
public static TraversalTechnology TechnologyNeededToBreak(HowToBreak How)
|
||||
{
|
||||
switch(How)
|
||||
{
|
||||
case HowToBreak.DeviceChangeGW:
|
||||
return TraversalTechnology.gateway;
|
||||
case HowToBreak.DeviceChangeIP:
|
||||
return TraversalTechnology.ip_address;
|
||||
case HowToBreak.EthernetBreak:
|
||||
case HowToBreak.EthernetCorrupt:
|
||||
return TraversalTechnology.ethernet;
|
||||
case HowToBreak.LockOutSwitch:
|
||||
return TraversalTechnology.forward; //we can only lock ourselves out of switchs and hubs
|
||||
case HowToBreak.PowerOff:
|
||||
return TraversalTechnology.any; //Any will only return devices
|
||||
case HowToBreak.StaticRouteClear:
|
||||
case HowToBreak.StaticRouteCorrupt:
|
||||
return TraversalTechnology.static_route;
|
||||
case HowToBreak.VLANChange:
|
||||
return TraversalTechnology.vlan;
|
||||
case HowToBreak.VPNChangeEndpoint:
|
||||
return TraversalTechnology.vpn;
|
||||
case HowToBreak.VPNChangeKey:
|
||||
return TraversalTechnology.vpn;
|
||||
case HowToBreak.WirelessBreakKey:
|
||||
case HowToBreak.WirelessBreakSSID:
|
||||
return TraversalTechnology.wireless;
|
||||
}
|
||||
return TraversalTechnology.none;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user