netcat是一个用于TCP/UDP连接和监听的linux工具, 主要用于网络传输及调试领域。
netcat 可以打开TCP连接发送UDP报文,监听在TCP和UDP端口,以及TCP端口扫描,并将错误消息输出到屏幕上。
它可以从文件或网络的一端读取数据,原封不动的将数据发送到另一台主机或文件中 netcat一般缩写为nc
1.支持客户端和服务器
2.支持连出和连入, TCP和UDP以及任意源/目的端口
3.内建端口扫描功能, 带有随机数发生器
4.支持设定tos等
作为CS模型中的服务器来使用 可以监听任意指定的端口 并将客户端的请求输出屏幕上,并将输入发送到客户端
netcat -l 8080 //监听8080端口来接受客户端的连接,
netcat 127.0.0.1 8080 //启动客户端打开连接
(1) 作为客户端
nc www.baidu.com 80
(2)作为服务器
netcat -l -p 8080
-l :指明netcat处于监听模式,
-p 指定源端口号
一般在服务器启动任意端口来测试防火墙是否生效
(3)使用netcat进行文件传输
nc -l -p 8899 < aa.pcap //这台机器ip为192.168.6.10
nc 192.168.6.10 8899 > bb.pcap
(4)使用netcat进行端口扫描 用来探测主机服务 一般使用软件nmap
nc -v -z -r -i 1 127.0.0.1 20-100
-z:指定端口扫描打开仅连接不发送数据
-v:显示详细信息(不指定不会报告打开的端口)
-i:当连接多个端口时 两个端口建立连接的时间间隔。
-r :让netcat 在指定的端口范围内无序的扫描端口(默认是从低到高依次扫描)
(5)使用netcat进行UDP报文传输
cat register.sip | nc -q 1 -u localhost 5060 > /dev/null
将文本文件register.sip文件输出作为nc的输入 向端口号为5060的服务器发送 register.sip
-q 1:表示发送完等待1秒后退出
-u:表示使用UDP协议来发送报文(默认使用TCP)
(6) 使用netcat 提供网络登录服务, netcat的强大之处就是可以启动程序来提供远程登录的服务
nc -l -p 1234 -e /bin/sh //server 路由器
nc 192.168.6.1 1234 //client 这样将连接到服务器 可以执行服务器上的任何命令
-e:表示连接成功后执行的程序
-T tos:设置报文的tos标识
-s:指定用于发送报文的源IP地址(在主机有多个接口地址时使用)