NC

课程介绍:

在网络工具中有“瑞士军刀”美誉的Netcat, 首次出现在1995年,这么多年过去了互联网人士对它的喜爱是有增无减。其实,Netcat是一个非常简单的Unix工具,它的实际可运行的名字叫nc。非常棒的是,Netcat可以与其他工具结合和重定向,因此,可以这样说,Netcat是互联网里短小精悍的多功能工具 ,通过它,你可以完成很多令人惊讶的事,惊讶的程度就看你的想象力怎么样了。

本系列课程将学习Netcat的一些基础功能。包括Netcat的介绍,如何用Netcat跟朋友聊天、扫描端口、传输文件、创建远程外壳、使两台电脑互连等等。

netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。使用netcat命令所能完成的事情令人惊讶。

netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了。你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端。

1、端口扫描

端口扫描经常被系统管理员和黑客用来发现在一些机器上开放端口,帮助他们识别系统中的漏洞。

nc -z -v -n 192.168.1.108 20-200

-z  I/O(input或者output)模式,扫描时使用,连接建立成功后立刻关闭连接,不进行数据交换,端口号可以是单个或者一个范围的

-v  显示详细信息,使用-vv获得更多信息

-n 以数字形式表示IP地址,不使用dns反向查询IP地址的域名

这个命令会打印21到25 所有开放的端口。Banner是一个文本,Banner是一个你连接的服务发送给你的文本信息。当你试图鉴别漏洞或者服务的类型和版本的时候,Banner信息是非常有用的。但是,并不是所有的服务都会发送banner。

一旦你发现开放的端口,你可以容易的使用netcat 连接服务抓取他们的banner。

nc -v 192.168.1.108 21

netcat 命令会连接开放端口21并且打印运行在这个端口上服务的banner信息。

2、文本信息传输

假如你想和你的朋友聊聊,有很多的软件和信息服务可以供你使用。但是,如果你没有这么奢侈的配置,比如你在计算机实验室,所有的对外的连接都是被限制的,你怎样和整天坐在隔壁房间的朋友沟通那?不要郁闷了,netcat提供了这样一种方法,你只需要创建一个Chat服务器,一个预先确定好的端口,这样子他就可以联系到你了。

nc 192.168.1.108 520

sudo nc -l -p 520

nc命令在520端口启动了一个tcp 服务器,所有的标准输出和输入会输出到该端口。输出和输入都在此shell中展示

不管你在机器B上键入什么都会出现在机器A上

3、文件传输

大部分时间中,我们都在试图通过网络或者其他工具传输文件。有很多种方法,比如FTP,SCP,SMB等等,但是当你只是需要临时或者一次传输文件,真的值得浪费时间来安装配置一个软件到你的机器上嘛。假设,你想要传一个文件file.txt 从A 到B。A或者B都可以作为服务器或者客户端,以下,让A作为服务器,B为客户端。

发送方连接

nc -v 192.168.1.108 520  < sina.xml -q 1

sudo nc -lp 520 > sina.xml

这里我们创建了一个服务器在A上并且重定向nc的输入为文件sina.xml,那么当任何成功连接到该端口,netcat会发送sina.xml的文件内容。

在客户端我们重定向输出到sina.xml,当B连接到A,A发送文件内容,B保存文件内容到sina.xml

我们也可以相反的方法使用。像下面的我们发送文件从B到A,但是服务器创建在A上,这次我们仅需要重定向netcat的输出并且重定向B的输入文件。


4、传输目录

发送一个文件很简单,但是如果我们想要发送多个文件,或者整个目录,一样很简单,只需要使用压缩工具tar,压缩后发送压缩包。

如果你想要通过网络传输一个目录从A到B。

tar -cvf - 1/ | nc -lp 520 -q 1

nc 192.168.1.177 520 | tar -xvf -

这里在A服务器上,我们创建一个tar归档包并且通过-在控制台重定向它,然后使用管道,重定向给netcat,netcat可以通过网络发送它。

在客户端我们下载该压缩包通过netcat 管道然后打开文件。

如果想要节省带宽传输压缩包,我们可以使用bzip2或者其他工具压缩。

5、远程控制

我们已经用过远程shell-使用telnet和ssh,但是如果这两个命令没有安装并且我们没有权限安装他们,我们也可以使用netcat创建远程shell。

假设你的netcat支持 -c -e 参数(默认 netcat)

nc -lp 520 -c bash

nc -nv 192.168.1.177 520

如果是windows的系统,需要把bash改成cmd即可

windows下面连接

nc -nvv 192.168.1.102 444

C:\>nc.exe -Lde cmd.exe -p 444


你可能感兴趣的:(NC)