信息收集入门:目标IP发现、端口扫描基础、服务识别

信息收集是渗透测试的第一步,也是最重要的一步。说白了,你连目标在哪、开了什么门都不知道,后面的一切都是空谈。在IoT安全领域,这一步尤其关键——很多设备就暴露在公网上,等着你去发现。

我个人习惯把信息收集分成三个层次:先找到目标IP,再扫描开放端口,最后识别端口背后的服务。今天我们就一步步来拆解这个过程。

目标IP发现:怎么找到IoT设备?

IoT设备的IP发现,和普通主机发现没什么本质区别。但有个特点——很多IoT设备会主动广播自己的存在。比如UPnP、mDNS、LLMNR这些协议,设备上电后就会喊一嗓子:“我在这!”

常用的发现手段有几种:

  • 主动扫描:用ARP ping、ICMP ping、TCP SYN ping去探测存活主机
  • 被动监听:在本地网络抓包,等设备自己说话
  • 利用广播协议:UPnP、mDNS、SSDP这些协议会暴露设备信息
我的经验:在项目里,我经常先用Wireshark抓5分钟广播包,看看有没有设备在“自言自语”。很多时候,摄像头、智能音箱、打印机都会主动暴露自己的IP和型号。这比盲目扫描高效得多。

举个例子,用Nmap做ARP扫描发现同网段设备:

nmap -sn 192.168.1.0/24
# -sn 表示只做ping扫描,不扫描端口
# 输出会列出所有响应ARP请求的主机IP和MAC地址

输出结果大概长这样:

Nmap scan report for 192.168.1.1
Host is up (0.0012s latency).
MAC Address: 00:11:22:33:44:55 (Router Manufacturer)

Nmap scan report for 192.168.1.105
Host is up (0.0034s latency).
MAC Address: AA:BB:CC:DD:EE:FF (Camera Manufacturer)

看到MAC地址的厂商信息了吗?这就能帮你初步判断——哪个是路由器,哪个是摄像头,哪个是智能插座。

端口扫描基础:开着的门才是入口

找到IP之后,下一步就是看它开了哪些端口。端口就像房子的门——门越多,能进去的路就越多。

端口扫描的核心原理其实很简单:向目标端口发送特定类型的包,根据回应判断端口状态。常见的端口状态有三种:

状态 含义 典型回应
open 端口开放,有服务在监听 SYN/ACK 回应
closed 端口关闭,没有服务 RST 回应
filtered 被防火墙过滤,无法判断 无回应或ICMP不可达
注意:扫描不是扫描的越多越好。我曾经遇到过一台工业路由器,全端口扫描(65535个端口)直接导致设备死机。对于IoT设备,建议先扫1000个常用端口,确认设备扛得住再扩大范围。

服务识别:知道门后面是什么

端口开放只是第一步。更关键的是——这个端口上跑的是什么服务?是HTTP?SSH?还是某个厂商自定义的协议?

服务识别有两种方式:

  • 端口号推测:80是HTTP,443是HTTPS,22是SSH——但这只是猜测,不准确
  • 指纹识别:发送特定请求,根据回应特征判断服务类型和版本

Nmap的服务识别就是靠指纹库。它会发一些精心构造的探测包,然后和内置的指纹数据库比对。准确率相当高,但也不是100%。

核心要点:服务识别不仅仅是知道“这是HTTP”,还要知道“这是Apache 2.4.41还是Nginx 1.18.0”。不同版本有不同的已知漏洞,版本信息直接决定了后续的攻击面。

使用Nmap进行IoT设备扫描

好了,理论说完了,我们上手实操。Nmap是端口扫描的瑞士军刀,功能强大到离谱。我挑几个IoT场景下最常用的扫描方式来讲。

1. 基础TCP扫描

nmap -sT 192.168.1.105
# -sT 表示TCP全连接扫描
# 最基础、最稳定,但速度慢、容易被日志记录

2. SYN半开扫描(推荐)

nmap -sS 192.168.1.105
# -sS 表示SYN扫描,只发SYN包,不完成三次握手
# 速度快、隐蔽性好,是Nmap默认扫描方式

3. 服务版本探测

nmap -sV 192.168.1.105
# -sV 启用版本探测
# 会尝试识别每个开放端口上的服务名称和版本号

4. 综合扫描(我最常用的)

nmap -sS -sV -O --traceroute 192.168.1.105
# -sS SYN扫描
# -sV 版本探测
# -O  操作系统识别
# --traceroute 路由追踪

这条命令是我在项目里的标配。一次扫描,端口、服务、操作系统、网络路径全都有了。

5. 针对IoT设备的温和扫描

nmap -sS -sV -T2 --max-retries 1 --host-timeout 30s 192.168.1.105
# -T2 降低扫描速度,避免设备过载
# --max-retries 1 减少重试次数
# --host-timeout 30s 单个主机最多扫30秒
避坑指南:我曾经扫描一台老旧的路由器,默认的-T3速度直接把它扫挂了。从那以后,我扫描任何IoT设备都会先用-T2试试水。设备稳定了再提速。记住——搞瘫设备不是本事,拿到信息才是。

本章知识体系

下面这张图总结了信息收集的核心流程和工具关系,你可以对照着理解:

IoT信息收集知识体系 IoT信息收集核心流程 目标IP发现 端口扫描 服务识别 ARP扫描 / ICMP ping 被动监听 / 广播嗅探 TCP全连接扫描 (-sT) SYN半开扫描 (-sS) 端口号推测 指纹识别 (-sV) 输出结果 IP地址 + 开放端口 + 服务版本 + 操作系统 ⚠ 注意事项 • IoT设备性能弱,建议用 -T2 低速扫描,避免设备死机 • 先扫1000个常用端口,确认设备稳定再扩大范围

实战小贴士

最后分享几个我在项目中积累的经验:

  • 先被动后主动:先抓包看看设备在说什么,再决定怎么扫。有时候设备自己就把信息暴露了。
  • 扫描结果要交叉验证:Nmap说端口开放,最好再用其他工具(如telnet、nc)手动确认一下。我遇到过Nmap误报的情况。
  • 记录一切:每次扫描的结果都保存下来。你永远不知道哪个细节会在后续渗透中派上用场。
  • 注意法律边界:扫描不属于自己的设备前,务必获得授权。这个不用我多说吧?

信息收集是门手艺活,熟能生巧。多扫、多看、多总结,你很快就能从扫描结果里嗅出设备的“脾气”。