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

dudu_ting Linux1 15,764字数 1297阅读4分19秒阅读模式

 

netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。使用netcat命令所能完成的事情令人惊讶。文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了。你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端。文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

网络上有很多netcat的源码,还有详细解释,我在这里不写喽文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

ps:一下参数解释是COPY过来的,如有雷同,纯属巧合,文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

nc文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

从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 将输入输出关掉--用于扫描时文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

 文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

1、传输文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

目的主机监听
nc -l 监听端口<未使用端口>  > 要接收的文件名
nc -l 4444 > cache.tar.gz文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

源主机发起请求
nc  目的主机ip    目的端口 < 要发送的文件
nc  192.168.0.85  4444 < /root/cache.tar.gz文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

2、端口扫描文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

端口扫描经常被系统管理员和黑客用来发现在一些机器上开放端口,帮助他们识别系统中的漏洞文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

#nc -z -v -n 192.168.6.63 21-80

z 参数告诉netcat使用0 IO,指的是一旦连接关闭,不进行数据交换(译者注:这里翻译不准,如有其它更好的,请指出)文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

v 参数指使用冗余选项(译者注:即详细输出)文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

n 参数告诉netcat 不要使用DNS反向查询IP地址的域名文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

这个命令会打印21到80所有开放的端口。Banner是一个文本,Banner是一个你连接的服务发送给你的文本信息。当你试图鉴别漏洞或者服务的类型和版本的时候,Banner信息是非常有用的。但是,并不是所有的服务都会发送banner。文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

一旦你发现开放的端口,你可以容易的使用netcat 连接服务抓取他们的banner。文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

 文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

3、连接主机某个端口文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

# nc -vnn 220.181.111.148 80文章源自运维生存时间-https://www.ttlsa.com/linux/netcat-command/

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

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

nc

详情待续~~~~~

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
dudu_ting
  • 本文由 发表于 20/12/2013 16:39:06
  • 转载请务必保留本文链接:https://www.ttlsa.com/linux/netcat-command/
  • nc
  • netcat
评论  1  访客  1
    • www.ff-bb.cn
      www.ff-bb.cn 9

      好东西,还不知道nc有这么多用法。

    评论已关闭!