网络扫描工具:端口扫描与SMB扫描实现
在网络安全和网络管理中,扫描目标主机的端口以及获取共享信息是非常重要的操作。本文将详细介绍如何设计自己的端口扫描器和SMB扫描器,同时解释相关的技术原理和操作步骤。
1. 设计自己的端口扫描器
在确定了存活主机列表后,我们需要对这些主机进行指纹识别,以确定哪些端口是开放的、运行的是什么服务,甚至推测目标主机的操作系统。
1.1 TCP标志分析
在进行端口扫描之前,我们需要了解目标主机对于SYN - ACK(开放端口)和SYN - RST(关闭端口)响应时设置的TCP标志。通过Wireshark分析,我们发现开放端口的SYN - ACK响应的TCP标志十六进制为0x012,十进制为18;关闭端口的RST - ACK响应的TCP标志十六进制为0x014,十进制为20。这些值在后续的端口扫描程序中非常重要。
1.2 设计思路
为了避免被防火墙或入侵检测系统(IDS)察觉,我们可以模仿Nmap在扫描前打乱端口顺序,使用 List::Util 模块的 shuffle 子例程对可能的端口列表进行处理。同时,为了提高效率,我们可以先扫描一些常见操作系统默认开放的端口,并在扫描到开放端口时立即输出结果,而不是等待所有端口扫描完成。
为了进行操作系统指纹识别,我们可以考虑两个方面的数据:主机开放的端口和MAC地址供应商。例如,许多Microsoft Windows默认安装会开放端口135、139、445、554和2869;一些小型办公室家庭办公室(SOHO)路由器和交换机可能会开放远程管理服务端口,如80、443
超级会员免费看
订阅专栏 解锁全文
7860

被折叠的 条评论
为什么被折叠?



