linux下nc神器简介

nc在Linux和windows下的安装

  netcat(简称nc)被誉为网络安全界的‘瑞士军刀’,相信很多人都认识它吧。它是一个简单但实用的工具,通过使用TCP或UDP协议的网络连接去读写数据。它被设计成一个稳定的后门工具, 能够直接由其它程序和脚本轻松驱动。同时,它也是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有类型的网络连接,还有几个很有意思的内置功能。
  nc在linux下一般为自带软件,所以不用安装。nc在windows下也自带,可以使用netstat命令查询

nc功能简介

名称:netcat命令在linux中别名为nc
作用:支持任意的TCP和UDP连接,监听和读写
描述:nc功能支持的协议通常包括TCP和UDP,它可以打开TCP连接,发送UDP数据包,监听任意的TCP或UDP端号,扫描端口,以及处理IPv4和IPv6,与telnet不同的是,nc脚本更精致,分离错误信息进入标准的错误代替发送他们到标准的输出
常用的功能:
(1)简单的TCP代理服务
(2)shell脚本实现基于HTTP客户端和服务端
(3)网络守护进程测试
(4)可以给ssh做HTTP代理或者链接
(5)还有更多的功能,完全取决于你如何使用

参数详解:

-4:强制nc使用IPv4地址
-6:强制nc使用IPv6地址
-D:开启socket的调试模式
-d:关闭读取来自标准输入的功能
-h:打印nc帮助信息
-i:指定一个延时时间在每行数据发送和接受之间,在连接,发送,扫描多个端口时也会导致延时
-k:强制nc去保持监听另一个连接,在它当前的连接完成时,必须配置-l使用否则会报错
-l:开启监听服务
-n:在指定的地址,端口,主机上,不做DNS或者服务查找
-p:指定为远程连接指定一个本地端口
-r:随机的远程端口
-S:激活TCP的md5签名选项
-s:指定本地地址
-T:设置服务的ip类型
-C:设置回车符为行结束符标志
-t:telnet应答
-u:开启UDP模式
-v:详细信息
-w:指定超时时间
-X:代理协议
-x: 指定一个代理ip:port
-z: 关闭I/O读写,使用扫描模式

案例场景:

(1)简单聊天
服务器1-》192.168.1.120:nc -l 1234
服务器2-》192.168.1.120:nc 192.168.1.120 1234
建立连接后,即可发送消息,只支持两个终端使用

(2)模拟telnet远程登录服务器
server:nc -l 1234 -e bash
client : 192.168.1.121 1234
然后就类似于ssh远程登录了,虽然功能有限,但还是很强大的

如果不支持-e参数,也可以创建远程登录:
使用mkfifo命令创建有名管道:

服务端:
mkfifo /tmp/tmp_fifo
cat /tmp/tmp_fifo | /bin/bash -i 2>&1 | nc -l 2222 > /tmp/tmp_fifo
客户端:
nc -n 172.31.100.7 2222
然后就远程登录成功了
过程如下:
(1)从网络收到命令写入fifo文件中
(2)cat命令读取fifo文件,并且发送到bash命令
(3)bash执行完的结果发送给nc
(4)nc通过网络把内容发送给客户端
这样一来看起来就非常逼真了

(3)端口扫描
端口扫描,常用系统管理员和黑客用来发现一些机器上的开放端口,帮助识别系统上的漏洞
nc -z -v -n 192.168.1.212 20-25
z参数告诉netcat开启静默模式,连接成功后,立即关闭连接,不进行数据交互
v参数,使用详细输出
n参数,不要使用DNS反向查询IP地址的域名
发现有开放的端口,可以使用nc -v ip port 链接,并查看banner信息

(4)文件传输
文件发送方:nc -l 2222 < ac 阻塞等待
文件接收方: nc -n 192.168.1.212 2222 > bx 读取写入bx文件中

(5)目录传输:
目录传输前,需要压缩整个目录
发送方:tar -zcvf -dir_name | nc -l 2222
接收方:nc -n 192.168.1.212 | tar -xvf - 接收并解压
如果想节省宽带:

发送方:tar -zcvf -dir_name | bzip2 -z | nc -l 2222
接收方:nc -n 192.168.1.212 | bzip2 -d |tar -xvf - 接收并解压

(6)加密传输:
发送方使用mcrypt加密: nc localhost 1567 | mcrypt –flush –bare -F -q -d -m ecb > file.txt
接收方使用mycrpt解密:mcrypt –flush –bare -F -q -m ecb < file.txt | nc -l 1567
使用任何加密方式都行,执行上述需要输入密码,确保使用一样的密码

(7)流视频:

服务方:cat video.avi | nc -l 2222
接收读入并输出到播放器里面: nc ip 2222 | mplayer -vo x11 -cache 4000 -

(8)指定客户端端号用于通讯
服务方:nc -l 2222
客户方: nc ip 2222 -p 23
1024以内的端口需要root权限,默认随机产生一个端口

(9)指定源地址:

如果你的机器有多个网卡,那么可以指定地址,用于通信:

服务方: nc -u -l 2222 < file
客户方: nc -u 服务方ip 2222 -s 客户方多ip中一个 > file

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页