- 作者:
- 分类:知识&开发->协议&标准->网络通信协议
- 阅读:1388
- 点赞:0
- 版权:CC BY-SA 4.0
- 创建:2019-10-13
- 更新:2019-10-19
原文链接(持续更新):https://neucrack.com/p/14
主机发现原理
主机发现发现的原理与Ping命令类似,发送探测包到目标主机,如果收到回复,那么说明目标主机是开启的。Nmap支持十多种不同的主机探测方式,比如发送ICMP ECHO/TIMESTAMP/NETMASK报文、发送TCPSYN/ACK包、发送SCTP INIT/COOKIE-ECHO包,用户可以在不同的条件下灵活选用不同的方式来探测目标机。
主机发现基本原理:(以ICMP echo方式为例)
Nmap的用户位于源端,IP地址192.168.0.5,向目标主机192.168.0.3发送ICMP Echo Request。如果该请求报文没有被防火墙拦截掉,那么目标机会回复ICMP Echo Reply包回来。以此来确定目标主机是否在线。
默认情况下,Nmap会发送四种不同类型的数据包来探测目标主机是否在线。
ICMP echo request
a TCP SYN packet to port 443
a TCP ACK packet to port 80
an ICMP timestamp request
依次发送四个报文探测目标机是否开启。只要收到其中一个包的回复,那就证明目标机开启。使用四种不同类型的数据包可以避免因防火墙或丢包造成的判断错误。
探测活动主机
遍历局域网ip发送ARP包,响应MAC地址的主机则是活跃主机
获取主机的hostname
通常在设备连接网关的时候,如果设置了DHCP,则设备会发送hostname字段,网管便会知道设备名,路由器便是这样获得设备名的
DNS(Domain Name System) PTR查询方式获取:
通常通过hostname获取ip是通过DNS服务器获得,
相应地通过ip也可以获得主机的hostname,同样适用DNS协议,不过DNS协议的发查询类型(Query Type字段)应该设置为PTR(0x000c)(域名到ip这个字段通常是A(0x0001))MDNS( multicast DNS):
LLMNR:链路本地多播名称解析(Link-Local Multicast Name Resolution)
NetBIOS:(NBNS)