在信息收集时,知晓目标网址的操作系统、开放端口可以确定攻击方向、扩大攻击面。
操作系统判定
本文提供四种判断方法
1)大小写
Windows对大小写不敏感:
在 Windows 中,"file.txt"、"FILE.txt" 和 "File.txt" 被认为是相同的文件名。
例如该网站:
将C改为大写后页面不受影响,说明该网站不区分大小写,为Windows操作系统:
Linux/Unix对大小写敏感:
在 Linux/Unix 中,"file.txt"、"FILE.txt" 和 "File.txt" 被认为是不同的文件名。
可以看到,这个网站为Linux操作系统:
2)TTL
TTL(Time to Live)是指数据包从源到目的地所经过的设备数量。每当一个数据包通过一个设备(例如路由器)时,TTL 值会减少 1。当 TTL 值为0时,该数据包将被丢弃。这是为了防止数据包在网络中无限传输,浪费网络资源和时间。
Windows系统的默认TTL是128,Linux系统的默认TTL是64。
当ping某个IP时,如果回显的TTL在65128,说明为Windows系统。如果回显的TTL在164,说明为Linux系统。
ping本机并不会导致TTL的减少:
TTL的默认值可以被修改,可能ping某个IP时,得到的TTL为128,造成欺骗,所以TTL不能作为判定的完全依赖。
3)namp
nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。具有多种功能,其中包含操作系统的扫描。
通过以下命令识别操作系统:
nmap -O IP
该主机运行的操作系统是 Microsoft Windows 10 1607 版本
p0f
在命令行输入 p0f 后回车,进入被动检测状态,然后使用浏览器访问目标网站,即可看到回显。
可以看到,该网站的操作系统为Linux 2.2.x-3.x:
可以发现, p0f 并不能保证绝对的识别。
端口
telnet
Windows自带telnet,查看某一IP上的端口是否可以访问:
telnet IP 端口
该端口不可访问:
若端口可访问,将进入telnet页面:
telnet 127.0.0.1 80
namp
nmap的功能多样,也可进行端口扫描。
该命令使用nmap扫描所有端口:
namp -sV -p 1-65535 IP
- 端口 80/tcp 是开放的,但服务被 tcpwrapped 包裹,意味着具体的服务无法确定。
- 端口 443/tcp 也是开放的,同样被 tcpwrapped 包裹。
masscan
与Nmap不同,Masscan以非常快的速度对目标IP地址进行端口扫描,并返回端口状态和响应数据。
命令如下(全端口扫描):
masscan -p 1-65535 IP