Ping以及tracert
1、ping实验
ping 是基于 ICMP(Internet 控制报文协议) 实现的网络连通性测试工具,它的核心就是发送「ICMP Echo 请求报文」,并接收目标主机返回的「ICMP Echo 回复报文」,以此验证两台主机之间的 IP 层连通性。
1、使用域名测试
打开cmd窗口(win + R)
ping命令不直接识别域名,所以第一步会先通过 DNS 解析,把域名www.baidu.com转换成服务器的公网 IP183.2.172.177。- 你看到的
www.a.shifen.com是百度的真实域名(www.baidu.com是它的别名,CNAME 记录),解析后会显示实际的主机名。 - 「具有 32 字节的数据」:Windows 系统
ping命令默认会发送 32 字节 的填充数据,用来验证数据传输的完整性。
| 字段 | 含义 + ICMP 原理讲解 |
|---|---|
来自 183.2.172.177 的回复 |
目标服务器收到了你发送的「ICMP Echo 请求报文」,并成功返回了「ICMP Echo 回复报文」,说明 IP 层连通性正常。 |
字节=32 |
服务器返回的 ICMP 报文数据部分,和你发送的 32 字节完全一致,验证了数据传输的完整性(没有被篡改或丢失)。 |
时间=49ms |
往返时间(RTT):从你发送 ICMP 请求,到收到服务器回复的总耗时,单位是毫秒。 这个值反映了网络延迟:时间越短,说明你的电脑和服务器之间的网络链路越通畅、距离越近。 |
TTL=47 |
生存时间(Time To Live):防止数据包在网络中无限循环(比如路由环路)的机制。 每个路由器转发数据包时,会把 TTL 值减 1,减到 0 就会丢弃数据包。 这里 TTL=47,说明服务器发送报文时的初始 TTL 是 64(Linux 系统默认值),经过了 64-47=17 个路由器,才到达你的电脑。 |
2、使用公网服务器测试
前提:远端计算机要开启支持icmp协议。一般服务器默认关闭icmp服务器,原因如下:
- 防攻击:攻击者可以用 ICMP 做 “ping 洪水攻击”(向服务器疯狂发 ICMP 请求,把带宽占满),或者利用 ICMP 重定向攻击篡改路由;
- 减少暴露:ping 通了就证明服务器在线,攻击者可以用 ping 来扫描存活主机,禁了 ICMP 能减少被攻击的概率。
2、 tracert实验
1、使用域名测试
tracert(Windows 系统的路由追踪工具,Linux 上叫traceroute),核心是用 ICMP 协议 + TTL 机制,探测数据包从你的电脑到目标主机,经过的所有路由器(跃点)。
- 第一步:TTL=1 的探测
- 发送一个
TTL=1的 ICMP Echo 请求包,第一跳路由器收到后,会把 TTL 减 1 变成0,然后丢弃数据包,并返回ICMP 超时报文(类型 11)。你收到这个报文,就知道了「第一跳路由器的 IP 和延迟」。
- 发送一个
- 第二步:TTL 递增探测
- 再发送
TTL=2的包,第二跳路由器会返回超时报文,以此类推,直到:
- 再发送
- 第三步:到达目标主机
- 当数据包到达目标服务器时,服务器会像
ping一样,返回ICMP Echo 回复(类型 0),追踪结束。
- 当数据包到达目标服务器时,服务器会像
2、使用服务器测试
最终访问到京东云服务器的数据中心。
网络端口扫描
1、TCP通信原理
1、第一次握手:
•主机A的某个端口向主机B的某个端口发出TCP连接请求数据包,其TCP包头的标志位设置为SYN=1,ACK=0,同时选择一个序号x,表明在后面传送数据时的第一个数据字节的序号是x,这个过程称为第一次握手。
2、第二次握手:
•主机B的相应端口收到连接请求数据包后,如端口是开放的,则发回确认数据包。在确认数据包中,TCP包头的标志位设置为SYN=1,ACK=1,确认序号为x+1,同时B主机也会生成一个自己的序号y,这个过程称为第二次握手。
3、第三次握手:
•主机A收到此数据包后,还要向B给出确认数据包,其TCP包头的标志位设置为ACK=1,其确认序号为y+1,这个过程称为第三次握手。
2、端口扫描原理
A、全连接扫描
SuperScan 3.0 属于:TCP 全连接端口扫描(TCP Connect Scan)
它直接调用 Windows 系统的 connect() 函数完成完整连接,所以叫全连接扫描。
B、半打开式扫描
Nmap 默认(管理员权限运行)
C、秘密扫描
3、Superscan实验
A、基本配置
117.72.201.196
| 标记 | 含义 | 验证了什么? |
|---|---|---|
| IP 前的绿色对勾 | 主机存活探测成功(ICMP ping 响应正常) | 证明云服务器的安全组 ICMP 规则、服务器内防火墙配置全部生效,主机外网可达 |
22 SSH Remote Login Protocol |
端口扫描成功,TCP 三次握手完成,端口状态为open |
证明目标端口(22)处于监听状态,SSH 服务正常运行 |
SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.13. |
服务 banner 信息读取成功 | 证明 SuperScan 完成了「端口扫描→服务识别」的完整流程,成功获取了服务版本和系统指纹 |
B、高频端口科普
Windows系统高频扫描端口:
高频标志性端口
135、139、445、3389
作用:
- 135 端口:RPC 系统核心服务,Windows 系统必备
- 139/445 端口:NetBIOS、SMB 协议
用来「局域网文件共享、打印机共享」 - 3389 端口:Windows 专属 远程桌面(图形化远程控制)
Linux(Ubuntu/CentOS 服务器)常见端口
高频标志性端口
22、80、443、3306、6379
作用
- 22 端口:SSH 远程连接(Linux 服务器最核心、默认唯一远程端口)
- 80/443:Nginx、Apache 网站服务
- 3306:MySQL 数据库
- 6379:Redis 缓存
4、zenmap实验
打开方式如下:
nmap [扫描选项] 目标IP/网段
最常用指令:
- 1、基础 TCP 端口扫描
nmap 目标IP
- 2、全量 TCP 端口扫描
nmap -p- 目标IP
- 3、UDP 端口扫描
nmap -sU 目标IP
- 4、探测服务版本 + 操作系统
sudo nmap -sV -O 目标IP
-sV:探测服务版本(如 Apache 2.4、MySQL 8.0)-O:探测操作系统(如 Windows 11、Ubuntu 22.04)Linux/Mac 必须加
sudo(管理员权限),Windows 用管理员 CMD执行5、扫描本地局域网所有主机
nmap -T4 192.168.51.0/24
-T4是 Nmap 的「 aggressive 扫描模板」,会缩短超时时间、提高并发连接数,适合局域网实验环境,能明显缩短扫描耗时。
扩展指令:
nmap -p 22 --script ssh-brute --script-args "userdb=C:\\Users\\kiple\\Desktop\\users.txt,passdb=C:\\Users\\kiple\\Desktop\\pass.txt" 117.72.201.198
这是一条 基于 Nmap 脚本引擎(NSE)的 SSH 弱口令暴力破解指令,核心目的是:
对目标主机 117.72.201.198 的 SSH 服务,用你提供的「用户名字典 + 密码字典」尝试爆破登录,检测目标是否存在弱口令漏洞。
| 指令片段 | 作用说明 |
|---|---|
nmap |
调用 Nmap 工具的基础命令 |
-p 22 |
指定目标端口:限定只扫描 / 操作 22 端口(SSH 服务默认端口),避免浪费时间扫描其他端口 |
--script ssh-brute |
调用 NSE 脚本:加载 Nmap 自带的ssh-brute.nse脚本,这个脚本专门用于 SSH 服务的账号密码爆破 |
--script-args "..." |
给脚本传递参数:给ssh-brute脚本传入自定义配置,双引号里是具体参数 |
userdb=C:\\Users\\...\\users.txt |
告诉脚本「用户名字典文件」的路径:文件里存着要尝试的所有用户名 |
passdb=C:\\Users\\...\\pass.txt |
告诉脚本「密码字典文件」的路径:文件里存着要尝试的所有密码 |
117.72.201.198 |
目标主机 IP:指定要测试的目标主机地址 |
必须合法授权!
只能测试自己的主机、或明确获得对方授权的主机,非法爆破他人设备是违法行为
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 kipleyarch@gmail.com