「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「专栏简介」:此文章已录入专栏《网络安全快速入门》

为什么要扫描端口?

知道主机开放了哪些端口,就可以推断出端口所对应的服务,从而根据服务的已知漏洞进行渗透。

  • 一、端口扫描原理
  • 二、Telnet探测端口
  • 三、端口扫描工具
    • 1. Nmap
    • 2. Masscan
  • 四、几种扫描工具的原理和区别
  • 五、端口扫描分类

一、端口扫描原理

1)向目标主机的某个端口,发送建立链接的请求,如果对方开放了这个端口,就会响应;如果没有没开放,则不会响应。
2)根据这个原理,向一些常用的端口逐个建立链接,就能知道对方开放了哪些端口。

二、Telnet探测端口

Windows系统自带的 Telnet 命令,可以用来探测目标主机的端口是否开放。

格式:telnet IP 端口

出现下面这种响应则表示端口未开放:


出现下面这种响应则表示端口处于开放状态:

如果出现下面这种命令不可用的情况,说明 Telnet 服务未开启:


可以到 控制面板 – 程序和功能 – 启用或关闭Windows功能 中开启Telnet服务:

三、端口扫描工具

使用端口扫描工具,扫描主机开放的端口及服务。

1. Nmap

nmap(Network Mapper)是一个网络扫描和嗅探工具,-p参数指定扫描的端口。

nmap -sV -p 1-65535 206.119.105.9

2. Masscan

masscan是一个快速端口扫描工具,-p参数指定扫描的端口。

masscan -p 0-65535 206.119.105.9

四、几种扫描工具的原理和区别

Telnet 使用完整的三次握手建立链接,常用于单个端口的测试。
Masscan 只发送SYN包,如果对方返回 ACK+SYN 就说明端口开放。
Nmap 默认使用SYN扫描,可以通过修改参数来修改扫描的方式。

五、端口扫描分类

简单介绍几种端口扫描的方式以及原理:

1)完全链接扫描

使用TCP三次握手建立一次完整的链接,从系统调用 connect()开始,端口开放则建立链接,端口不开放则返回-1。

2)半链接扫描

就是我们常说的SYN扫描,只建立TCP的前两次链接,发送一个SYN后,就停止建立链接,等待对方的响应。
如果返回一个ACK,就说明端口开放;如果返回一个RESET,就说明端口没开放。

这种不完整的链接,产生的日志较少,但需要超级管理员权限。