netcat:监听目标端口,查看接收的数据(reverse shell的实现利用);
netstat:监听本机的网络连接情况,不知道网络连接端口时可以使用netstat;
1. netcat
功能:监听网络端口,可以用于读写网络连接内容
bash
sudo nc -lvp 443
参数
- -l:表示使用的是监听模式
- -p:指定监听的端口号
- -v:表示启用详细模式verbose,会输出更多的调试信息
*netcat 本质上是一个网络读写工具,监听范围不限于本机。既可以作为客户端,也可以作为服务端。(远程监听的实现:在远程主机上启动一个监听服务,然后从本地连接到该监听服务)
2. netstat
功能:监听本机的网络连接情况
场景:不知道网络连接的端口时,使用netstat可以监测本机的网络连接情况;
缺点:netstat只能查看连接的状态,不能查看到传输数据的具体内容;
bash
netstat -anbp tcp
参数
-a:all,Linux/Windows通用参数-n:numeric,以数字形式显示地址和端口号(不查主机名)-b:在Windows中,用于显示每个连接或监听端口所设计的可执行文件(可以追溯到是哪个具体的程序发起了连接),类似于Linux中的参数-p;-p:- 在Windows中:用于指定要显示的协议类型,例如
-p tcp只显示tcp连接; - 在Linux中:显示每个连接所属的进程ID(PID)和进程名称(排查哪个程序占用了某个端口);
- 在Windows中:用于指定要显示的协议类型,例如
提示:Windows和Linux中都有netcat,其参数的含义有所区别
netcat, netstat的区别
| 特性 | Netcat (nc) | Netstat |
|---|---|---|
| 主要用途 | 网络数据读写工具 | 网络状态统计工具 |
| 功能 | 创建/测试TCP/UDP连接、端口扫描、数据传输 | 显示网络连接、路由表、接口统计等 |
| 工作方式 | 主动发起或监听连接 | 被动显示系统当前网络状态 |
| 使用场景 | 端口测试、文件传输、网络调试 | 连接监控、端口占用检查、网络问题诊断 |
netstat 只能查看是否有连接以及连接的端口和IP,不能查看通信内容。netcat可以接收和显示原始数据。
相关工具:msfconsole/multi/hander, 使用编码的payload时,netcat可能无法解码数据。
相关笔记:技法笔记3 | 验证交互式shell连接-CSDN博客
拓展思考:监听IP的设置,使用0.0.0.0、127.0.0.1、内网IP、公网IP是否会有什么不同?