nc工具

探寻端口,与网络对话

1
2
3
4
5
[root@wds069 ~]# nc -vz qq.com 80
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 123.150.76.218:80.
Ncat: 0 bytes sent, 0 bytes received in 0.04 seconds.
[root@wds069 ~]#

解析:
使用nc -vz参数可以进行端口扫描,-v表示输出详细信息,-z表示只扫描端口而不发送数据。
这个例子中,nc命令通过TCP连接到qq.com的80端口,成功地与其建立了连接。

文件传输,快递送货

1
2
3
4
5
# 在A端,使用-l参数监听连接,-p参数指定监听的端口号
[root@wds029 ~]# nc -l -p 718

# 在B端,将本地的1.sh文件中的内容发送到远程主机192.168.66.94的718端口。
[root@wds069 ~]# nc -w 3 192.168.66.94 718 < 1.sh

在B端执行完成后,在A端会接收到1.sh的内容,如下

1
2
3
4
5
6
7
8
9
10
[root@wds029 ~]# nc -l -p 718
#!/bin/bash

uid=$1

username=$(id $uid | awk -F'(' '{print $2}' | cut -d')' -f1)

echo "UID ${uid} 对应的用户名是:${username}"

[root@wds029 ~]#

端口扫描,安全卫士之眼

1
2
3
4
$ nc -vz -n -w 1 192.168.66.94 1-100
# 输出
Connection to targethost 22 port [tcp/ssh] succeeded!
Connection to targethost 80 port [tcp/http] succeeded!

-n参数表示不使用DNS解析,-w 1参数表示等待1秒钟后超时,192.168.66.94是目标主机的地址,1-100表示扫描1到100端口。

这个例子中,nc命令扫描了目标主机的1到100端口,并成功发现了SSH和HTTP服务。

远程控制,搭建服务器

  • 服务端
    1
    [root@wds029 ~]# nc -l -p 718 -e "/usr/bin/echo xxx"
  • 客户端
    1
    2
    [root@wds069 ~]# nc 192.168.66.94 718
    # 执行后在客户端会输出xxx
    解析:
    作为服务器,使用-l参数监听连接,-p参数指定监听的端口号,-e参数指定要执行的命令(这里是/usr/bin/echo xxx)。作为客户端,我们连接到目标主机的指定端口。通过这个例子,我们可以在两台计算机之间建立一个简单的远程控制通道。

网络聊天,即时通信

  • 服务端
    1
    $ nc -l -p 718
  • 客户端
    1
    $ nc 192.168.66.94 718
    这段代码让nc命令像一位快速传递信息的使者,实现了简单的网络聊天功能。我们可以通过这种方式,在两台计算机之间进行实时的文字交流,宛如在网络世界中展开一次愉快的对话。
    解析:
    作为服务器,使用-l参数监听连接,-p参数指定监听的端口号。作为客户端,我们连接到目标主机的指定端口。通过这个例子,我们可以在两台计算机之间建立一个简单的即时通信通道。

临时长启某个端口

1
2
$ nc -lk 33333 &    
# 临时长启33333端口

课程中心

Qianj.51CTO