Netcat

Posted redo19990701

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Netcat相关的知识,希望对你有一定的参考价值。

Netcat

网络中的瑞士军刀,是一个基于tcp/ip协议的多功能网络工具

基本参数

connect to somewhere:   nc [-options] hostname port[s] [ports] ...
# 主动连接格式(客户端)   nc     选项     主机名   端口号 
listen for inbound:     nc -l -p port [options] [hostname] [port]
#被动连接格式(服务端)    nc -lp  端口号   选项       主机名
options:
#选项部分
        -d              detach from console, background mode
        #后台模式

        -e prog         inbound program to exec [dangerous!!]
        #程序重定向
        -g gateway      source-routing hop point[s], up to 8
        #源站路由,最多8个
        -G num          source-routing pointer: 4, 8, 12, ...
        #源路由模式的结点个数
        -h              this cruft
        -i secs         delay interval for lines sent, ports scanned
        #发送一行数据的间隔时间
        -l              listen mode, for inbound connects
        #侦听模式
        -L              listen harder, re-listen on socket close
        #客户端连接关闭后服务端仍然继续监听
        -n              numeric-only IP addresses, no DNS
        #点分十进制IP,非域名
        -o file         hex dump of traffic
        #指定16进制传输
        -p port         local port number
        #本地端口号
        -r              randomize local and remote ports
        #随机端口号
        -s addr         local source address
        #设置netcat源地址
        -t              answer TELNET negotiation
        #回复telnet协商
        -c              send CRLF instead of just LF
        #发送回车换行而不只是换行
        -u              UDP mode
        #UDP模式
        -v              verbose [use twice to be more verbose]
        #详细输出
        -w secs         timeout for connects and final net reads
        #扫描时间
        -z              zero-I/O mode [used for scanning]
        #无IO输入输出[扫描时]

简单客户服务器连接

#服务器端(服务器IP地址为192.168.1.1)
nc -lp 444
#服务器端侦听444端口
#客户端
nc -nv 192.168.1.1 444
#客户端连接服务器(192.168.1.1)的444端口

返回执行程序

nc -lp [localport] -e [应用程序]
#当有客户端连接到该端口,就返回cmd.exe,可以通过该命令使得客户端可以远程执行服务器应用程序
#服务器端(服务器IP地址为192.168.1.1)
nc -lp 444 -e cmd.exe
#服务器端侦听444端口
#客户端
nc -nv 192.168.1.1 444
#客户端连接服务器(192.168.1.1)的444端口,接下来就可以执行服务端的cmd.exe了

#也可以反向
#服务器端(服务器IP地址为192.168.1.1)
nc -lp 444 
#服务器端侦听444端口
#客户端
nc -nv 192.168.1.1 444 -e cmd.exe

NC 传输文件

#服务器端(服务器IP地址为192.168.1.1)
nc -lp 444 < 1.mp3
#服务器端侦听444端口,如果有人连接就将1.mp3放入传输
#客户端
nc -nv 192.168.1.1 444 > copy.mp3
#客户端连接到服务器目的端口,将接收到的文件保存为copy.mp3

#反向
#服务器端(服务器IP地址为192.168.1.1)
nc -lp 444 > copy.mp3
#服务器端侦听444端口,如果有人连接就将1.mp3放入传输
#客户端
nc -nv 192.168.1.1 444 < 1.mp3
#客户端连接到服务器目的端口,将接收到的文件保存为copy.mp3
#通常客户端可以加上一个超时时间
nc -nv 192.168.1.1 444 < 1.mp3 -i 3
#3秒之后就自动断开

端口扫描

nc -nvz [目的IP] [起始端口-结束端口]
#该命令扫描目的IP从其实端口到结束端口的所有端口
nc -nvz 13.107.21.200 1-65535

Banner抓取

echo " "| nc -vn [目标IP][起始端口-结束端口]
#该命令抓取目标IP的端口的banner信息

以上是关于Netcat的主要内容,如果未能解决你的问题,请参考以下文章

Linux 网络工具netcat(nc)的应用