网络工具netcat介绍及使用

netcat 简称 nc,安全界叫它瑞士军刀 。ncat 也会顺便介绍,弥补了 nc 的不足,被叫做 21 世纪的瑞士军刀 。nc 的基本功能如下:

  • 端口扫描
  • telnet / 获取系统 banner 信息
  • 传输文本信息
  • 传输文件和目录
  • 加密传输文件
  • 远程控制 / 木马
  • 流媒体服务器
  • 远程克隆硬盘
首先还是通过-h来查看使用说明:
网络工具netcat介绍及使用

文章插图
nc -h
其中有两个参数用得比较多,v 参数就是列出执行过程的详细信息,n 参数翻译过来就是仅接收 ip 地址,没有 DNS 。之所以使用 n 参数,是因为使用命令的过程中只去传入 ip,减少了 nc 把域名解析为 ip 的过程,这样可以节省时间提高效率 。
端口扫描nc 用来进行端口扫描的命令是 nc -nvz ip 地址 端口号,z参数从帮助说明里翻译过来差不多是“不进行 i/o,用来扫描”的意思,可以理解成仅仅是去 ping 去探测目标是否开启指定端口,不进行任何的交互 。
网络工具netcat介绍及使用

文章插图
被扫描端口处于打开状态

网络工具netcat介绍及使用

文章插图
被扫描端口处于关闭状态
z 参数默认扫描的是 tcp 类型,如果需要扫描 udp,则需要使用一个新参数 u 。
每一个扫描器的扫描结果都不一定准确,最好多使用几款扫描器对目标进行扫描,综合结果进行判断,会相对更准确一些 。
telnet / 获取系统 banner 信息telnet使用率大不如以前了,基本被ssh取代了,最大的弊端在于其明文传输 。nc 也是明文方式传输的数据,所以后续需要使用nmap下的ncat工具来结合一下,弥补其不足 。nc 在这里可以获取服务器banner信息 。用163邮箱服务器作为例子:
网络工具netcat介绍及使用

文章插图
nc -nv 123.126.97.79 110
后面还可以通过传递USER、PASSWARD进行登录,但是传递的账户名和密码都是需要加密过的,不能直接传明文,这里不再展开 。
根据返回的信息可以知道,其使用的是 coremail 邮件系统 。
传输文本信息nc 可以在两台机器之间相互传递信息,首先需要有一台机器进行监听一个端口,另一台以连接的方式去连接其指定的端口,这样两台机器之间建立了通信后,相互之间可以传输信息 。l(小写)参数是监听模式的意思,p参数是指定一个端口 。
网络工具netcat介绍及使用

文章插图
文本传输
这种相互传输信息和渗透之间的关系是,电子取证的时候可以用 。当机器被攻击后,为了不破坏现场,需要提出大量的信息和文件出来做分析,这时候可以用 nc 的这个机制,例如,需要一个命令的输出信息,首先自己机器上监听一个端口,随后在被攻击的机器上执行相关的命令,然后以管道给 nc,指定自己机器的地址和端口,这样输出结果就会到自己机器上,如下图:
网络工具netcat介绍及使用

文章插图
ll的执行结果传输给了目标机器
如果输出内容过多,则可以将内容定向输出到文件中:
网络工具netcat介绍及使用

文章插图
将接收结果存到ll.txt

网络工具netcat介绍及使用

文章插图
ll.txt存入的内容
这里再介绍一个参数q,作用是传输完以后等待指定时间自动断开 。
网络工具netcat介绍及使用

文章插图
-q的作用
传输文件和目录传输文件和目录的这些功能,其实和文本信息传输类似,只不过是把文本信息换成了文件和目录 。首先用一台机器监听一个端口,如果有人连接并传来信息时,则将信息使用 > 重定向到文件 。另一台机器连接目标指定端口然后通过 < 输出要传送的文件即可 。
传输文件:
B向A传输一个mp3文件A: nc -lp 333 > 1.mp3B: nc -nv 1.1.1.1 333 < 1.mp3A向B传输一个mp3文件A: nc -q 1 -lp 333 < a.mp3B: nc -nv 1.1.1.1 333 > a.pm3文件格式没什么限制,只要源文件和接收文件格式一致就行 。
传输目录:
tar是打包解包工具,不会使用的可以查一下使用说明A打包指定的文件夹,打包后的文件传给请求方,music前面的-是代表打包后的文件名的,但是这里直接传输了,有没有具体文件名都可以B请求目标地址端口,将返回的内容解包A: tar -cvf - music/ | nc -lp 333 -q 1B: nc -nv 1.1.1.1 333 | tar -xvf -


推荐阅读