如何找到在Wireshark中创建捕获的机器的IP地址?

如何找到在Wireshark中创建捕获的机器的IP地址?

问题描述:

基本上,我正在使用Wireshark查看之前创建的捕获。我如何找到创建捕捉的机器的IP地址?如何找到在Wireshark中创建捕获的机器的IP地址?

有没有保证的方式来捕获数据包,用户将处于'混杂'模式。这是一个接口检测到的所有数据包都被捕获的状态。因此,除非你知道它们在网络拓扑中居住的位置,否则没有办法确定哪些数据包是发往捕获数据包的人的,因为那样你可以做出一些可能有用的假设(例如,无线客户端不会将数据包送往目的地对于由有线客户端发送的因特网,如果连接到相同的路由器)。另外,如果你知道在捕获者的计算机上运行的某些服务,你可以合理地得出用户的IP地址,这是因为很多数据包被捕获的目的地是该地址的那个服务。

+0

已经创建了捕获已经离开了那里IP地址范围内它的人,我的任务就是找到它我只是不知道如何,如果它要在那里一定是有没有办法来筛选它找到或其他功能,看到“创造者”IP? – 2012-03-22 13:15:24

+0

嗯,我刚刚给你举了一些例子,说明你如何减少它,但正如我所说的那样没有把握,虽然大概你知道你没有分享的东西是足够的,否则这个人不会责备你。请不要把你的作业问题带到这里。 – deed02392 2012-03-22 13:18:11

+0

你会说,大部分的字节将由捕获的机器创建,这意味着我可以通过stat-ethernet找到并在mac地址上应用过滤器?这是最后一年的课程,但我不想要工作的答案,只是建议如何使用wireshark找到的东西,我喜欢使用这个程序,这是我想为我未来的职业生涯学习的东西。 – 2012-03-22 13:27:06

如果捕获主机正在通过与其进行嗅探的相同接口发送接收流量,则您希望从主机的IP地址看到非常低的TCP确认RTT。这是因为RTT计时器测量看到一个数据包和相应的确认之间的时间,并且主机的TCP堆栈应该几乎立即发送ACK(除非它处于严重负载下)。

如果RTT小于50微秒,那么它几乎肯定来自捕获主机。

在Wireshark中,我会将TCP acknowledgement round-trip-time(tcp.analysis.ack_rtt)过滤器添加为自定义列,然后对此列进行排序以查找最小值。

在我的机器上,我看到tcp.analysis.ack_rtt时间小于15usec。我相信即使InfiniBand这样的低延迟网络也不会让主机到主机的时间这么低。

没有保证的方式...

但也有一些指标,如果由用于捕获电脑包originats。这要求捕获过滤器不会排除这些数据包。

背景:数据包在离开网络适配器之前被捕获。

如果你看到具有这些特性的一个数据包比你有一个基地,一个受过教育的猜测:

  • 报文长度大于64个字节短,所以叫RUNT packets。小数据包由网络控制器自动扩展。所以你很少收到很小的数据包。
  • 所有的IP头校验和都是零。这些在传输过程中被修改。

您可以配置Wireshark在首选项中显示这些校验和为不正确的。查找其他偏好设置,禁用这种(错误)错误指示以扩展此列表。

可能的方法

一个不错的方法是IP报文的TTL值。通过捕捉被做在机器上应该发出

包:

  • 具有发送数据包的IP包头的源字段设置为自己的IP地址。
  • 将发送的数据包的IP标头的TTL字段设置为它们的OSs default TTL value(你需要做一个猜测whcih OS是,如果你不知道。)

relevant information about TTL from this wikipedia page

TTL字段是由数据包的发送者设定,由到达目的地的路由上的每个路由器减少。如果TTL字段达到零数据报到达其目的地之前,则该数据报被废弃

例如,捕获下面是一个视窗10机上制得与所述地址192.168 .1.72。你可以知道,因为所有的TTL都是128

All the TTLs from 192.168.1.72 are 128, indicating that it is a windows machine and the capture was made on it.

相反,当过滤器设置为ip.dst == 192.168.1.72你会得到各种不同的TTL,这加强发件人是192.168.1.72

All the TTLs are different, indicating that the capture was not made on these machines