扫描

指定一个端口

  1. Desktop nc -nvzw3 192.168.0.124 5002
  2. Connection to 192.168.0.124 5002 port [tcp/*] succeeded!

指定端口范围

  1. Desktop nc -nvzw3 192.168.0.124 5000-5002
  2. nc: connect to 192.168.0.124 port 5000 (tcp) timed out: Operation now in progress
  3. nc: connect to 192.168.0.124 port 5001 (tcp) timed out: Operation now in progress
  4. Connection to 192.168.0.124 5002 port [tcp/*] succeeded!

参数说明

  1. -n 不需要执行域名解析
  2. -v 打印详细信息
  3. -z 不发送数据包
  4. -w 超时时间

控制

语法

# 被控方
nc -lvp 端口 -c bash

# 主控方
nc 被控机组的IP 端口

# 命令解释
-lp 监听的端口
-c Linux返回的shell, -e Windows返回的shell
-v 显示详细信息

示例

主动连接,被控方监听端口,并返回自己的shell,一旦被连接救恩那个控制了

image.png

被动连接,主控方监听一个端口,被控方发起连接,然后将自己的shell返回,这样就能被控制了

image.png

如何判断被控端???

谁交出了shell,谁就是被控端

传输

文件传输

语法

# 上传文件
nc -lvp 10000 < test.txt -q 3

# 接收文件
nc ip port > test.txt

# 参数说明
-q 后面接时间,单位是秒,表示文件传输成功后就关闭连接,所以-q只能跟在文件上传一端的命令上
< 上传文件
> 下载文件

示例

image.png

文件夹传输

语法

# upload
tar -czvf - directory | nc ip port -q 1

# download
nc -lvp port | tar -xzvf -

示例

image.png