nc全称netcat,在网络工具中有“瑞士军刀”的美称,下面我们就来总结一下在各平台下nc的命令:

windows平台下

-d              detach from console, background mode

    -e prog         inbound program to exec [dangerous!!]
    -g gateway      source-routing hop point[s], up to 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
    -o file         hex dump of traffic
    -p port         local port number
    -r              randomize local and remote ports
    -s addr         local source address
    -t              answer TELNET negotiation
    -u              UDP mode
    -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]

-d 后台执行
-e prog 程序重定向,一旦连接,就执行 [危险!!]
-g gateway 源路由跳数,最大值为8(source-routing hop point[s],up to 8)
-G num 源路由指针:4,8,12,… (source-routing pointer: 4,8,12,…)
-h 帮助信息
-i secs 延时的间隔
-l 监听模式,用于入站连接
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 任意指定本地及远程端口
-s addr 本地源地址
-u UDP模式,[netcat-1.15可以:远程nc -ulp port -e cmd.exe,本地nc -u ip port连接,得到一个shell.]
-v 详细输出——用两个-v可得到更详细的内容
-w secs 指定超时的时间
-z 将输入输出关掉——用于扫描时

kali平台下

-c shell命令
-e 程序重定向,一旦连接,就执行 [危险!!]
-b 允许广播
-g<网关> 设置路由器跃程通信网关,最多可设置8个。
-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-q<延迟秒数> 命令执行完成secs秒后断开连接
-s<来源位址> 设置本地主机送出数据包的IP地址。
-T<服务类型> 设置服务类型
-t
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。

简单应用

我们可以通过nc进行一些数据的传输:

简单的聊天搭建

A机:nc -l -p 266 (ps:266为端口号)
B机:nc -nv A机ip 266
其实这个功能主要可以用来远程电子信息取证

将这个功能扩展一下如里利用管道命令,将要取证服务器的目录信息发送到笔记本上

ls -l | nc -nv 笔记本ip 266

相应的笔记本也需要开放333端口来接受信息

用nc来发送文件
nc -nv ip地址 266 >1.txt 作为文件的接收端 
 nc -l -p 266 <2.txt 作为文件的发送端加密传输文件: 
 nc -lp 266 | mcrypt –flush -Fbqd -a rijndael-256 -m ecb >1.txt 文件接收端mcrypt –flush -Fbq -a rijndael-256 -m ecb <2.txt | nc -nv ip 266 -q 1