nc的简介以及常见使用方法
简介
nc全名NetCat,有Windows和Linux的版本,因为短小、功能实用,被设计为一个简单、可靠的网络工具,可以通过TCP或UDP协议传输读写数据,同时,他还是一个网络应用DEbug分析器。
通常Linux发行版中都带有NetCat
参考连接:Linux nc 命令详解_上善若水-CSDN博客_nc命令
安装
|
|
参数简介
语 法:nc [-hlnruz][-g<网关…>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源地址>][-v…][-w<超时秒数>][主机名称][通信端口…]
补充说明:执行本指令可设置路由器的相关参数。
参 数:
- -g<网关> 设置路由器跃程通信网关,最多可设置8个。
- -G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
- -h 在线帮助。
- -i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
- -l 使用监听模式,管控传入的资料。
- -n 直接使用IP地址,而不通过域名服务器。
- -o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
- -p<通信端口> 设置本地主机使用的通信端口。
- -r 乱数指定本地与远端主机的通信端口。
- -s<来源地址> 设置本地主机送出数据包的IP地址。
- -u 使用UDP传输协议。
- -v 显示指令执行过程。
- -w<超时秒数> 设置等待连线的时间。
- -z 使用0输入/输出模式,只在扫描通信端口时使用。
简单使用示例
聊天
|
|
远程拷贝文件
|
|
文件由pc2到pc1
端口扫描
|
|
保存Web页面
|
|
模拟HTTP Headers
|
|
nc命令的使用实例
加密网络发送的数据
服务端
|
|
使用mcrypt工具加密数据
客户端
|
|
使用mcrypt工具解密数据
请确保两端使用相同的密码
流视频
首先说明这个不是生成流视频的最好方法,但如果服务器上没有特定的工具,使用nc也可以完成。
服务端
|
|
这里是从一个视频文件中读入并重定向输出到netcat客户端
|
|
克隆一个设备
如果你想配置一个新linux机器,而你不想在重复配置一遍,只需要启动另一台机器的一些引导可以克隆你的机器。
假设系统在/dev/sda上
Server
|
|
Client
|
|
dd是一个从磁盘中读取原始数据的工具,通过nc服务器重定向它的输出流
到其他机器并且写入到磁盘中,它会随着分区表拷贝所有的信息。
打开一个shell
远程shell(例如telnet和ssh)但是如果靶机没有,而且我们没有安装权限也可以使用netcat创建远程shell
目标机(服务机)
|
|
客户机
|
|
这里我们建立了一个netcat服务器并且表示当它连接成功时执行/bin/bash假如netcat不支持-c或者-e参数时,我们可以使用以下命令建立起远程shell
目标机(服务机)
|
|
创建了一个fifo文件,然后使用管道命令把这个fifo文件内容定向到shell 2> &1中。是用来重定向标准错误和标准输出,然后管道到netcat运行的端口1567上,至此,我们已经把netcat的输出定向到fifo文件中
过程详解
从网路收到的输入写道fifo文件中→cat命令读取fifo文件并且其内容发送给sh命令→sh命令进程受到输入并且把它写回到netcat→netcat网络发送给客户机
客户机操作同上
反弹shell
ctfer常用操作
服务端端进行监听
|
|
客户端则在nc连接后执行shell
|
|
反弹shell常用于绕过防火墙的限制