识别非计算机网络设备?

Avi*_*lan 6 networking snmp discovery packet-sniffers raw-ethernet

我目前正在开发一个程序来扫描我的网络并发现网络上的计算机和设备.我使用各种操作在我发现的设备上查找数据,但希望区分网络设备和计算机.而且我想知道是否有人知道我该怎么做?

我看了一下SNMP,尝试连接到我的网络打印机,路由器和调制解调器.但我似乎只能连接到打印机,路由器或调制解调器都没有响应.

有没有其他方法来确定IP地址属于哪种设备?

Ale*_*ith 9

使用命令行工具(如nmap),您可以指纹设备,它可以为您提供各种信息.

也许你可以通过c#调用nmap并回读响应.

另一种方法是查找给定MAC地址的网络芯片供应商.但我不确定会给你多少细节.

以下是nmap站点示例:

# nmap -O -v scanme.nmap.org

Starting Nmap ( http://nmap.org )
Nmap scan report for scanme.nmap.org (64.13.134.52)
Not shown: 994 filtered ports
PORT    STATE  SERVICE
22/tcp  open   ssh
25/tcp  closed smtp
53/tcp  open   domain
70/tcp  closed gopher
80/tcp  open   http
113/tcp closed auth
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.20-1 (Fedora Core 5)
Uptime guess: 11.433 days (since Thu Sep 18 13:13:01 2008)
TCP Sequence Prediction: Difficulty=204 (Good luck!)
IP ID Sequence Generation: All zeros

Nmap done: 1 IP address (1 host up) scanned in 6.21 seconds
           Raw packets sent: 2021 (90.526KB) | Rcvd: 23 (1326B)
Run Code Online (Sandbox Code Playgroud)


Mas*_*imo 8

首先,这个答案偏向于以太网网络.这些想法也可以作为其他场景的提示.

有很多方法可以实现这一目标,例如:

  • 扫描
  • 目标发现
  • 被动交通监控

扫描

例如,可以使用nmap.

亲:

  1. 可以发现未知的设备和服务.懒惰的系统管理员忘记或由不信任的用户安装.
  2. 可以成为发现服务和安全审计的有用工具.
  3. 对于新手来说,这听起来是最好的方式:从头开始,找到所有.坏消息:阅读缺点.

缺点:

  1. 这是非常低效的.如果你从头开始 - 你对局域网一无所知 - 你想找到所有可能的服务,你必须为每个可能的主机扫描几乎所有的tcp和udp端口.
  2. 结果不是100%实惠:hw或sw防火墙; 等等...下一次运行会导致完全不同的结果.
  3. 结果不是简单的i_got_it/null,而是模糊:您需要专家来评估结果.
  4. 有时您必须在PC上拥有管理员帐户才能运行此扫描.
  5. 某些IDS可以将此活动记录为坏活动.

目标发现

如果您的目标是映射您的网络,官方服务,您可以考虑他们的官方发现功能.例如CDP,SSDP,srvloc,snmp get broadcast等...您必须知道您正在探测哪些服务.

优点:

  1. 这是最有效的方式,包括最大速度和最小网络带宽.
  2. 结果是可靠的:下次运行必须返回相同的结果(显然,如果服务和网络保持活动状态).
  3. 这是检查服务可用性和SLA帐户的方法.
  4. 您不需要专家:例如,如果设备应答snmp获取SysDescr,您就会知道您的数据.你得到了确切的答案,或者你错过了.

缺点:

  1. 您必须知道您正在探究哪些服务.
  2. 您不能使用它来确保找到设备/服务.这既不是安全审计也不是发现工具.例如:我将我的http服务器监听端口更改为81,您如何找到我?

被动交通监控

曾几何时,您会发现以太网主机与铜缆(CAT3/CAT5)连接到集线器.您可以在任何这些主机上运行一个程序来捕获所有流量,将以太网卡置于promiscous模式,这样NIC就会将所有数据包传递给操作系统,也就是MAC目的地不同于MAC地址的数据包. NIC.

您的程序可以分析这些原始数据,并解析内部的协议和数据包.

现在你使用以太网交换机,而不是集线器.处于promiscous模式的PC'NIC不会接收网络上的所有流量,因为交换机仅向您转发主机或全部(广播和 - 如果已注册 - 多播)的数据包.

您必须使用托管交换机,并将一个端口配置为转发器或监控端口,以链接监控主机.

优点:

  1. 这是被动监控 - 如果做得好的话.这对于特定评估非常有用,您无法在被测网络上发送任何数据包,并且您尊重强SLA.
  2. 要收集nw流量,您不必了解协议和服务配置.例如,您可以从主机中删除tcp/ip堆栈,保留以太网卡的驱动程序,并收集流量.
  3. 使用带有监视器端口的托管交换机,您不必将NIC置于promiscous模式/调整tcp/ip堆栈.
  4. libpcap/winpcap是捕获数据包的事实标准,它可以工作.在开发自己的应用程序之前,您可以使用一些GUI前端,如Analyzer或Wireshark.
  5. 它也是发现服务和安全审计的有用工具.

缺点:

  1. 您是否必须确保不在被测网络上发送数据包?如果您有集线器,请使用带有转发器端口的托管交换机.转发器端口只能接收网络流量.
  2. 要捕获高吞吐量的数据,例如1 Gbit,您必须调整操作系统配置,否则cpus会上升到满负载并且您仍然会丢失数据包.为这些东西忘了ms窗口.
  3. 显然,您只看到实时流量,没有关于不传输服务的信息.
  4. 请参阅扫描的缺点3,4 .这是接近观察电线上的位,就像电子工程师的示波器.您捕获所有数据,稍后您需要专家^ 2来评估它们.是的,稍后,因为详细分析错误和故障是非常耗时的.

这是一个简单的发现假人介绍.发现工具可以混合使用两种方式来查找网络上的设备和服务.

例如,HP JetAdmin发现使用不同的方法来查找HP网络打印机和扫描仪,而不是LAN上的所有设备.