鉴于我在本地网络上,如果我可以捕获ICMP回应请求数据包,并且考虑到我想要欺骗回复回复,我需要更改原始数据包的哪一部分,假设我复制我发回之前的原件?我猜测IP头需要更改,(原始的目标IP将成为源,反之亦然)以及ICMP头(类型需要更改为ECHO_REPLYPACKET)。但除了那2个还有其他吗?
答案 0 :(得分:1)
引用RFC 792:
Echo or Echo Reply Message
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier | Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data ...
+-+-+-+-+-
形成回复回复消息,源地址和目标地址 简单地颠倒,类型代码更改为0,以及校验和 重新计算。
Identifier
和Sequence Number
也必须为0
。
RFC 1071向您展示了如何计算Checksum