前言:
早些时候了解过nc,但是那时候还没有博客,今天来专门做个记录对于这把鼎鼎大名的网络瑞士军刀——netcat。
以下内容主要转载 编程随想
以下内容主要参考 编程随想
以下内容主要参考 编程随想
概念
NC(netcat)被称为网络工具中的瑞士军刀,体积小巧,但功能强大。
它诞生于1995年,在网络安全社区的名气很大(就如同 AK47 在军事领域的名气)。长期在安全圈内混的人,应该都知道它。想当年,insecure.org 网站在本世纪初搞过几次“年度投票”,评选优秀的安全工具。每次投票,netcat 都能排进前几名。
简而言之,nc 是一个【命令行】工具,能够让你很方便、很灵活地地操纵【传输层协议】(TCP & UDP)。
考虑到本文的读者中,有些是技术菜鸟,稍微普及一个小知识:
==================== 华丽的分割线========================
在谈到“网络协议分层”这个话题时,有一个大名鼎鼎的“OSI 7层模型”。这个模型相当牛逼,任何一种具体的网络协议实现,都可以套用其中。
在如今这个互联网时代,大伙儿经常听说的“TCP/IP 协议”以及周边的协议,也可以套用到“OSI 7层模型”之上。大致如下:
| 层次 | 名称 | 协议举例 |
|---|---|---|
| 7 | 应用层 | (注:位于这层的协议非常多。 比如:HTTP、DNS、FTP、SMTP、POP3、SSH …… 与用户直接打交道的,大都在这层) |
| 6 | 表示层 | (注:这层的协议很少见,此处省略) |
| 5 | 会话层 | SOCKS(代理) PPTP(常用于:VPN) 命名管道(常用于:进程间通讯) NetBIOS |
| 4 | 传输层 | TCP(传输控制协议) UDP(数据报协议) |
| 3 | 网络层 | IP(互联网协议) ICMP(互联网控制消息协议) IGMP(互联网组管理协议) IPSec(常用于:VPN) |
| 2 | 链路层 | MAC(常用于:以太网、移动通讯、等) ARP & RARP(MAC 地址的解析与反向解析) SLIP、PPP、PPPoE(常用于:拨号上网) L2TP(常用于:VPN) |
| 1 | 物理层 | USB 协议 蓝牙协议 RS-232(串口标准协议) |
===================== 华丽的分割线 ==============================
基于上述“小知识”,当你听到“IP 地址”这个词的时候,指的是“OSI 第3层”;相应的,“MAC 地址”指的是“OSI 第2层”。
变种
由于 nc 是如此牛逼,而它本身又很小(不但软件很小,源代码也很少)。很容易就衍生出一大堆【变种】。不同的变种,会在原有 nc 的基础上增加一些新功能。
由于变种之间存在差异。在本文的开头部分,有必要先声明一下:这篇教程的内容,主要基于 OpenBSD 社区的变种(也叫“OpenBSD netcat”或“netcat-openbsd”)
顾名思义,这是由 OpenBSD 社区重写的 netcat,主要增加了对“IPv6、proxy、Unix sockets”等功能的支持。另外,在细节上也有若干完善。
虽然它出自 OpenBSD 社区,但很多主流 Linux 发行版的官方软件仓库已包含这个变种(比如说:Debian 家族、Arch 家族、openSUSE 家族、Gentoo 家族……)。
“OpenBSD netcat”官网的帮助页面在“这里”,其官方代码仓库在“这里”。截止写本文时,其版本为 1.206,上个月刚更新(看 commit history,更新还挺勤快滴)
为了打字省力,本文后续部分提到的 nc,除非专门注明,否则都是指:netcat 的 OpenBSD 变种。如果要称呼原始的那个 netcat,会称之为“原版 nc”(洋文叫做“traditional netcat”)。
安装
Windows下可以使用我找的这个安装包
链接:https://pan.baidu.com/s/164vN_WkA6AaWnJqEoDCjmA
提取码:31zs
Linux下请使用命令安装
这里有个坑,参考文章。
很多朋友会发现自己的Linux主机自带这 nc 工具,其实这是两个工具,现在的nc,并不是netcat的nc:
nc与netcat是一个玩意儿,ncat是nmap下面的一个玩意儿,是一个组件
首先我们安装真正的nc,参考文章
1.下载
下载地址:

本文详细介绍了Netcat(NC)这一强大的网络工具,包括其基本概念、安装方法、以及多种实用技巧,如端口测试、防火墙配置验证、端口扫描等。

1万+

被折叠的 条评论
为什么被折叠?



