Netcat 命令——网络工具中的瑞士军刀

 

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

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

网络上有很多netcat的源码,还有详细解释,我在这里不写喽

ps:一下参数解释是COPY过来的,如有雷同,纯属巧合,

nc

从nc –h我们可以看到各个参数的使用方法,nc的基本使用格式是:
nc [-options] hostname port展开 [ports] …
nc -l -p port [options] [hostname] [port]
下面我们来具体介绍每个参数的意义和用法:
-d 后台模式
-e prog 程序重定向,一旦连接,就执行 [危险!!] //我们可以通过shell            绑定将Windows下的cmd和Linux的/bin/sh绑定,这样非常危险,我们整个系统对别人来说是完全透明,从下面的例子中我们可以看到。这也 是Linux默认去掉-e参数的原因。
-g 网关源路由模式的跳数,最多为8
-G 源路由模式的节点个数,一般为4,8,12, …n-h 帮助信息
-i secs 延时的间隔
-l 监听模式,用于入站连接
-L 连接关闭后,仍然继续监听
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 随机本地及远程端口
-s addr 本地源地址
-t 使用TELNET交互方式
-u UDP模式
-v 详细输出–用两个-v可得到更详细的内容
-w secs 指定扫描所用的时间
-z 将输入输出关掉–用于扫描时

 

1、传输

目的主机监听
nc -l 监听端口<未使用端口>  > 要接收的文件名
nc -l 4444 > cache.tar.gz

源主机发起请求
nc  目的主机ip    目的端口 < 要发送的文件
nc  192.168.0.85  4444 < /root/cache.tar.gz

2、端口扫描

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

z 参数告诉netcat使用0 IO,指的是一旦连接关闭,不进行数据交换(译者注:这里翻译不准,如有其它更好的,请指出)

v 参数指使用冗余选项(译者注:即详细输出)

n 参数告诉netcat 不要使用DNS反向查询IP地址的域名

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

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

 

3、连接主机某个端口

# nc -vnn 220.181.111.148 80

4、扫描某机器的开启端口

# nc -nvv -w2 -z 220.181.111.148  22-80

nc

详情待续~~~~~