协议&端口
通过网络扫描,用户可以发现网络中活动的主机,以及主机上开放的端口,进而判断出主机上开放的服务。然后通过再次扫描服务,可以推断出目标主机的操作系统、服务类型和版本信息等内容。
在发现活动的主机时,可以重新规划扫描的范围,从而节约时间和资源。
在发现活动主机后,可以探测主机中开放的TCP/IP协议端口。在TCP/IP协议中,最常用的两种协议是TCP和UDP,他们互不干涉,互相独立,所以端口号有可能重复,并不冲突。
在TCP/IP协议中的端口,可以根据用途进行分类。大体可以分为三种:周知端口、动态端口和注册端口。以下分别列出:
1、周知端口
是众所周知的端口,范围是0-1023。万维网(WWW)的默认端口为80,FTP服务的默认端口为21。用户可以自行为这些网络服务指定其他端口,但是有些端口是固定的,不能手动改变,如139端口专门用来进行NetBIOS与TCP/IP之间通信。
2、动态端口
范围是49152-65535,不固定某种服务,根据程序申请系统自动分配。
3、注册端口
1024-49151,是用来分配给用户或应用程序的,这些进程主要是分配给用户安装的应用程序,在没有被系统服务占用时,可以供用户端动态取用。
在计算机网络中,每个服务都有相应的默认端口,探测到开放的端口即可以推断出开放的服务。以下列出几种常见的服务,对应的协议以及对应的端口
服务 | 协议 | 端口 | 说明 |
FTP | TCP | 20.21 | 档案传输协议 |
SSH | TCP | 22 | 加密远程连接协议 |
DNS | TCP/UTP | 53 | DNS服务器的名称查询 |
HTTP | TCP | 80 | 万维网(WWW)服务 |
HTTPS | TCP | 443 | 加密的数据传输WWW服务 |
SQL Server | TCP/UDP | 1433 | SQL Server数据库服务 |
SQL Monitoring | TCP | 1434 | SQL Server性能监视器 |
MySQL | TCP | 3306 | MySQL 数据库服务 |
扫描方式
扫描方式分为三种,主要为主动扫描、被动扫描和第三方扫描。在本章中,简述一些常用的扫描方式,后续会补充详细的方法。
1、主动扫描
用户主动发送数据包进行扫描,主要用到的工具有很多,Netdiscover、Nmap、Ping命令等。主要的工作原理是,用户发送一个报文给目标主机,如果目标主机收到该请求,会回应一个reply报文,说明目标主机是活动的。相比被动扫描,主动扫描的范围要小很多,可实现的功能也少很多。
Nmap
Nmap是一个网络审计工具,主要功能是扫描,附带一些少量的攻击功能。Nmap可以进行主动扫描的全部功能(设备发现、端口扫描、服务版本监测、操作系统检测),还可以进行一些比较高级的审计功能(伪造身份、隐秘扫描、规避防火墙、安全漏洞监测、提供扫描报告)。使用NSE引擎,同时可以安装插件。
对单台目标主机简单扫描
nmap+IP地址,会显示对设备扫描的结果
Host is up,代表目标主机开机联网。
Not shown,代表993个端口是关闭的。(共扫描1000个端口)
PORT:端口,STATE:状态,SERVICE:服务
在Nmap中,可以调整过滤参数,如只想要知道目标主机是否开机,则使用-sn过滤,但区分大小写。
对IP地址不连续的多台目标主机进行扫描
在目标主机IP之间使用空格进行分隔。
对IP地址连续的多台目标主机进行扫描
在目标主机IP之间使用“~”进行分隔。
对整个子网进行遍历扫描
Nmap支持使用CIDR方法来进行扫描,语法为
nmap[IP地址/掩码位数]
如要扫描地址为157.1-157.255的所有设备,可以使用命令
nmap 192.168.157.0/24
TCP网络发现(SYN扫描)
使用Nmap对目标主机发送SYN连接请求,如果目标主机的对应端口是开放的,则会按照三次握手的规则回复数据包,如果端口是关闭的则会传回RST数据包。检查目标主机的活跃状态时,回复任意一种都说明目标主机是活跃的。没有受到任何回复,证明目标主机不在线。
nmap -sn -PS XX.XX.XX
2、被动扫描
通过监听广播包,发现同一网络种活动的主机。例如ARP广播包,用于获取局域网内某IP对应的MAC地址。
3、第三方扫描
可以借助第三方主机来进行扫描,使用公开的网络服务或控制其他主机或设备来实施扫描。
Shodan
是一个搜索网络空间中在线设备的搜搜引擎。用户可以通过Shodan来搜索指定的设备,或者搜索特定类型的设备。我使用Shodan搜索我的云服务器,结果如下
同样的,Shodan也支持过滤器命令,常见命令如下:
hostname | 指定的主机或域名 |
port | 搜索指定的端口或服务 |
country | 搜索指定的国家 |
city | 搜索指定的城市 |
org | 搜索指定的组织或公司 |
isp | 搜索指定的ISP供应商 |
product | 搜索指定的操作系统、软件或平台 |
version | 搜索指定的软件版本 |
geo | 搜索指定的地理位置 |
net | 搜索指定的IP地址或子网 |
进行过滤搜索之后,可以将结果生成报告。输入注册使用的邮箱,可以将报告以邮件的形式发送至邮箱。