macOS Network Services & Protocols
远程访问服务
这些是常见的macOS远程访问服务。
您可以在系统偏好设置
--> 共享
中启用/禁用这些服务
VNC,称为“屏幕共享”(tcp:5900)
SSH,称为“远程登录”(tcp:22)
Apple远程桌面(ARD),或称“远程管理”(tcp:3283,tcp:5900)
AppleEvent,称为“远程Apple事件”(tcp:3031)
运行以下命令检查是否已启用任何服务:
渗透测试 ARD
Apple 远程桌面(ARD)是专为 macOS 定制的 虚拟网络计算(VNC) 的增强版本,提供了额外的功能。 ARD 中一个显著的漏洞是其用于控制屏幕密码的身份验证方法,仅使用密码的前 8 个字符,使其容易受到暴力破解攻击的影响,使用 Hydra 或 GoRedShell 等工具,因为没有默认速率限制。
可以使用 nmap 的 vnc-info
脚本来识别存在漏洞的实例。支持 VNC Authentication (2)
的服务特别容易受到暴力破解攻击的影响,因为密码被截断为 8 个字符。
要为各种管理任务(如特权升级、GUI 访问或用户监控)启用 ARD,请使用以下命令:
Bonjour协议
Bonjour是苹果设计的技术,允许同一网络上的设备检测彼此提供的服务。也被称为Rendezvous、零配置或Zeroconf,它使设备可以加入TCP/IP网络,自动选择IP地址,并向其他网络设备广播其服务。
由Bonjour提供的零配置网络确保设备可以:
即使没有DHCP服务器,也能自动获取IP地址。
在不需要DNS服务器的情况下执行名称到地址的转换。
发现网络上可用的服务。
使用Bonjour的设备将从169.254/16范围内分配给自己一个IP地址,并验证其在网络上的唯一性。Mac会为这个子网维护一个路由表条目,可以通过netstat -rn | grep 169
进行验证。
对于DNS,Bonjour利用多播DNS(mDNS)协议。mDNS通过端口5353/UDP运行,使用标准DNS查询,但针对多播地址224.0.0.251。这种方法确保网络上所有监听设备都可以接收和响应查询,促进其记录的更新。
加入网络后,每个设备会自行选择一个名称,通常以**.local**结尾,可以从主机名或随机生成。
网络内的服务发现由DNS服务发现(DNS-SD)实现。利用DNS SRV记录的格式,DNS-SD使用DNS PTR记录来列出多个服务。寻找特定服务的客户端将请求<Service>.<Domain>
的PTR记录,如果服务来自多个主机,则会收到格式为<Instance>.<Service>.<Domain>
的PTR记录列表。
dns-sd
实用程序可用于发现和广告网络服务。以下是一些使用示例:
搜索SSH服务
要在网络上搜索SSH服务,使用以下命令:
这个命令启动了对_ssh._tcp服务的浏览,并输出时间戳、标志、接口、域、服务类型和实例名称等详细信息。
广告一个HTTP服务
要广告一个HTTP服务,你可以使用:
这个命令在端口80上注册了一个名为“Index”的HTTP服务,路径为/index.html
。
要在网络上搜索HTTP服务:
当服务启动时,它通过多播方式宣布其在子网上的可用性,对这些服务感兴趣的设备无需发送请求,只需监听这些公告。
为了提供更用户友好的界面,可在Apple App Store上获取的Discovery - DNS-SD Browser应用程序可以可视化本地网络上提供的服务。
或者,可以编写自定义脚本来使用python-zeroconf
库浏览和发现服务。python-zeroconf脚本演示了为_http._tcp.local.
服务创建服务浏览器,打印已添加或已移除的服务:
禁用Bonjour
如果有安全方面的顾虑或其他原因需要禁用Bonjour,可以使用以下命令关闭:
参考资料
最后更新于