51CTO学院-现任明教教主网络中的瑞士军刀NetCat介绍
- 格式:docx
- 大小:21.40 KB
- 文档页数:2
Linux中Netcat命令整理netcat是⽹络⼯具中的瑞⼠军⼑,它能通过TCP和UDP在⽹络中读写数据。
通过与其他⼯具结合和重定向,你可以在脚本中以多种⽅式使⽤它。
使⽤netcat命令所能完成的事情令⼈惊讶。
netcat所做的就是在两台电脑之间建⽴链接并返回两个数据流,在这之后所能做的事就看你的想像⼒了。
你能建⽴⼀个服务器,传输⽂件,与朋友聊天,传输流媒体或者⽤它作为其它协议的独⽴客户端。
下⾯是⼀些使⽤netcat的例⼦.[A(172.31.100.7) B(172.31.100.23)]Linux netcat 命令实例:1,端⼝扫描端⼝扫描经常被系统管理员和⿊客⽤来发现在⼀些机器上开放的端⼝,帮助他们识别系统中的漏洞。
$nc -z -v -n 172.31.100.7 21-25可以运⾏在TCP或者UDP模式,默认是TCP,-u参数调整为udp.z 参数告诉netcat使⽤0 IO,连接成功后⽴即关闭连接,不进⾏数据交换(谢谢@jxing 指点)v 参数指使⽤冗余选项(译者注:即详细输出)n 参数告诉netcat 不要使⽤DNS反向查询IP地址的域名这个命令会打印21到25 所有开放的端⼝。
Banner是⼀个⽂本,Banner是⼀个你连接的服务发送给你的⽂本信息。
当你试图鉴别漏洞或者服务的类型和版本的时候,Banner信息是⾮常有⽤的。
但是,并不是所有的服务都会发送banner。
⼀旦你发现开放的端⼝,你可以容易的使⽤netcat 连接服务抓取他们的banner。
$ nc -v 172.31.100.7 21netcat 命令会连接开放端⼝21并且打印运⾏在这个端⼝上服务的banner信息。
Chat Server假如你想和你的朋友聊聊,有很多的软件和信息服务可以供你使⽤。
但是,如果你没有这么奢侈的配置,⽐如你在计算机实验室,所有的对外的连接都是被限制的,你怎样和整天坐在隔壁房间的朋友沟通那?不要郁闷了,netcat提供了这样⼀种⽅法,你只需要创建⼀个Chat服务器,⼀个预先确定好的端⼝,这样⼦他就可以联系到你了。
NetCat瑞士军刀一、端口扫描#nc -z -v -n 172.22.112.90 21-25可以运行在TCP或者UDP模式,默认是TCP,可使用-u参数调整为UDP协议。
-z 该参数表示netcat使用0 I/O,也就是连接成功后立即关闭连接,不进行数据交换。
-v 冗余选项,即详细输出,Linux的很多命令都有此参数,用以输出命令执行过程的详细信息。
-n 告诉netcat不使用DNS反向解析IP地址的域名。
上述命令会检测21到25范围内的所有端口,Banner是客户端连接服务器端时,服务器端返回的关于服务器端的一些信息,在检测服务器端漏洞、服务器类型和版本时有用。
不是所有的服务器端都会返回Banner信息,有时候为了安全,服务器端还会将Banner信息有意识的进行修改,以使客户端作出错误的判断。
二、Chat Server服务器端运行:#nc -l 8888客户端运行:#nc -n 172.22.112.90 8888在客户端键盘上输出的信息会在服务器端显示出来,以行为输入单位,输入回车键后,对端即显示出来,可以Ctrl+d结束。
三、传文件1、将服务端文件传到客户端服务器端先运行,再运行客户端,会将文件从服务器端传到客户端。
文件传完后,服务器端和客户端nc 退出。
假设服务器端IP地址为172.22.112.90,运行:#nc -l 8888 < filesfiles为服务器端文件的路径,若没有指定目录,则为当前路径。
上述命令表示服务器在TCP的8888端口监听,如果有客户端连接到该服务器IP及8888端口,则服务器将files作为输入,向客户端发送files 文件,文件传输完成后程序退出。
客户端运行:#nc -n 172.22.112.90 8888 > /home/stevehuang/newfiles服务器端传到客户端的文件被重定向到/home/stevehuang/newfiles,也就是说客户端接收到服务器端传来的files文件后,重新写入到/home/stevehuang/newfiles文件中,newfiles与files文件内容相同。
⼯具使⽤——netcat使⽤0X00⼯具简介:Nc功能强⼤的⽹络⼯具,有着⽹络界得“瑞⼠军⼑”美誉,因为它短⼩精悍、功能实⽤、被设计为⼀个简单、可靠的⽹络⼯具,可通过TCP或UDP协议传输读写数据,同时他还是⼀个⽹络应⽤Debug分析器,因为它可以根据需要创建各种不同类型的⽹络连接。
0X01⼯具作⽤:显⽰环境:kali-2019 :172.16.11.21windows 10 :172.16.11.2参数:nc –l –p 3333作⽤:实现任意TCP/UDP端⼝的侦听,nc可以作为server以TCP或UDP⽅式侦听指定端⼝。
例:如下图,侦听1234端⼝。
参数:nc –vzw 2 172.16.11.2作⽤:端⼝扫描,nc可以作为client发起TCP或UDP连接。
例:如下图,扫描⽬标主机1-1000端⼝。
参数:kali-linux:nc –l –p 1234 > 1.txtwindows:nc 172.16.11.2 1234 < 1.txt作⽤:正向⽂件传输例:windows启动接收⽂件监听。
Kali连接并通过端⼝发送⽂件。
查看是否接收到⽂件。
注:这是正向传⽂件(windows开启接收⽂件监听kali连接并把1.txt通过端⼝传送给windows)。
参数:windows:nc –l –p 1234 < 1.txtKali-linux:nc 172.16.11.2 1234 > 1.txt作⽤:反向传输⽂件例如:kali先通过1234端⼝发送⽂件。
Windows连接并获取⽂件。
注:这是反向传⽂件(kali先通过1234端⼝发送⽂件,windows连接并获取⽂件)。
参数:windows:nc –l –p 1234 –t –e cmd.exeKali-linux:nc –nvv 172.16.11.2 1234作⽤:正向连接shell例:windows先开启监听cmd.exe。
Nmap、Netcat、Hping3⼯具对⽐在⽹络安全领域,Nmap、Netcat、Hping3都是安全⼯程师必备的⼯具。
Nmap主要作为端⼝扫描器,侦查⽬标机的端⼝及服务状态;⽽Netcat则整合了⽹络中各种常⽤功能(如后门、⽂件传输、端⼝扫描、端⼝转发等等),能辅助完成丰富的操作;Hping3主要作为特定的TCPIP数据包产⽣与解析的⼯具,当然也可⽤于Ping操作。
1 Nmap核⼼应⽤:搜集基本信息1.1 Nmap简介 Nmap是⽬前业界最为知名、最为强⼤的端⼝扫描器。
它是由Fyodor创建的开源软件,在1997年⾸次发布。
⼗多年来,Nmap开发团队⼀直不停地对其维护、更新,并规划开发新的功能。
Nmap在安全领域内⾮常流⾏,像渗透⼯具Metasploit、漏洞扫描⼯具openVAS等⼯具都内置了Nmap,⽽漏洞扫描⼯具Nessus也⽀持导⼊Nmap扫描结果。
Nmap是主要⽤于基本的信息的搜集,包括主机活动状态、主机端⼝开放状况、应⽤服务及版本、操作系统与设备类型等等。
另外Nmap完全⽀持IPv6;⽽Nmap脚本引擎(NSE)结合内置的丰富的Lua脚本让其⽀持的功能更加全⾯、更加精细(如提供丰富的HTTP相关的扫描脚本)。
1.2 Nmap功能 Nmap功能⽤法⾮常简单,这⾥简要回顾⼀下:1.2.1 主机发现nmap -sn -T4 targetip1.2.2 端⼝扫描nmap -T4 -s[scan method] -p[portrange] targetip1.2.3 服务与版本侦测nmap -T4 -sV targetip1.2.4 操作系统扫描nmap -T4 -O targetip1.3 简单⽰例(扫描⽬标机的端⼝与OS类型):\详细使⽤⽅法参考:/Article/201210/158960.html2 Netcat核⼼应⽤:完成⽹络中各种辅助操作,被称作TCPIP的瑞⼠军⼑2.1 Netcat简介 Netcat⽤于从TCP/UDP连接中读取或发送⽹络数据。
netcat工具小巧玲珑,被誉为hacker界的瑞士军刀。
本文以netcat-0.7.1版本为例,分析其源代码。
我们主要分析的功能是:⑴监听、连接;⑵端口扫描。
(3)连接到远端后自动打开shell 执行命令;将netcat主要的模块分析一下。
水平所限,错误再所难免,请大家指正。
第一部分我们先分析其监听过程:以netcat –l –p 2008为例在执行参数分析-l的时候,将netcat_mode设置为NETCA T_LISTEN,作为监听模式。
if (netcat_mode != NETCA T_UNSPEC)ncprint(NCPRINT_ERROR | NCPRINT_EXIT,_("You can specify mode flags (`-l' and `-L') only once"));netcat_mode = NETCAT_LISTEN;在执行参数分析-p的时候,通过将-p参数的关联选项optarg(即:端口值)填入到local_port 结构中,如果失败,退出。
case 'p': /* local source port */if (!netcat_getport(&local_port, optarg, 0))ncprint(NCPRINT_ERROR | NCPRINT_EXIT, _("Invalid local port: %s"),optarg);break;Netcat_getport函数分析:/* Identifies a port and fills in the netcat_port structure pointed to by`dst’. If `port_string’ is not NULL, it is used to identify the port(either by port name, listed in /etc/services, or by a string number).*/原型:bool netcat_getport(nc_port_t *dst, const char *port_string, unsigned short port_num) memset(dst, 0, sizeof(*dst)); 填充nc_port结构if (!port_string) { //如果传入的port_string参数为null,则需要给定一个特定的port //numberif (port_num == 0)return FALSE;dst->num = port_num;dst->netnum = htons(port_num);//如果是常用的服务端口,则将name 付值//比如port 为22 ,则为sshservent = getservbyport((int)dst->netnum, get_proto); //通过端口号,得到服务名称if (servent) {assert(dst->netnum == servent->s_port);strncpy(dst->name, servent->s_name, sizeof(dst->name)); //将服务名称填入到nc_port//构中}goto end;}代码结构1我们的参数中给定了传入了port_string参数,所以进入到else程序分支:else {long port;char *endptr;/* empty string? refuse it */if (!port_string[0])return FALSE;/* try to convert the string into a valid port number. If an error occursbut it doesn't occur at the first char, throw an error *///将-p 2008 这个2008字符串转换为long数字,赋给//port,如果为>0&&<65536然后return netcat_getopt(dst,NULL,//(in_port_t)port)//If `port_string' is NULL then `port_num' is used to identify the portport = strtol(port_string, &endptr, 10);if (!endptr[0]) {/* pure numeric value, check it out */if ((port > 0) && (port < 65536))return netcat_getport(dst, NULL, (in_port_t)port); //将这个得到的long型端口值传入//函数,通过代码结构1进行处理elsereturn FALSE;}else if (endptr != port_string) /* mixed numeric and string value */return FALSE;//此时如果得到的是服务名称,那么通过getservbyname将nc_port结构进行填充。
Linux命令高级技巧使用netcat进行网络数据传输和端口扫描Linux命令高级技巧:使用netcat进行网络数据传输和端口扫描在Linux系统中,有许多命令可以帮助我们管理和操作网络。
其中一个非常有用且功能强大的命令是netcat(又称为nc)。
netcat是一个网络工具,可用于在不同系统之间进行数据传输,也可用于进行端口扫描。
本文将介绍netcat的高级技巧,以及如何在Linux中使用netcat 进行网络数据传输和端口扫描。
一、netcat简介与安装netcat是一个简单而强大的网络工具,它提供了诸多功能,包括创建基于TCP或UDP的网络连接、发送和接收数据等。
通过使用不同的参数,我们可以利用netcat进行网络数据传输和端口扫描。
在大部分Linux发行版中,netcat命令已经预装,无需额外安装。
但如果系统中没有安装netcat,可以通过以下命令进行安装:```sudo apt-get install netcat # Ubuntu/Debiansudo yum install nc # CentOS/RHEL```二、netcat的基本用法1. 创建基于TCP的网络连接要使用netcat创建一个基于TCP的连接,需要指定目标主机和端口号。
例如,要连接到主机192.168.0.100的80端口,可以使用以下命令:```nc 192.168.0.100 80```在成功建立连接后,我们可以在终端中直接输入内容,它将被发送到目标主机。
目标主机的响应将显示在终端中。
按Ctrl+C即可断开连接。
2. 创建基于UDP的网络连接要创建一个基于UDP的连接,只需添加`-u`参数即可。
例如,要向主机192.168.0.100的5000端口发送UDP数据包,可以使用以下命令:```nc -u 192.168.0.100 5000```3. 监听和接收数据除了主动连接到目标主机外,netcat还可以在本地主机上监听指定端口,并接收来自其他主机的连接和数据。
实验三: NC网络瑞士军刀的使用【实验目的】利用NC本地监听功能监听本地端口数据包发送情况, 保证本地网络安全。
【实验环境】工作平台: Windows XP操作系统一台。
辅助平台: Virtual PC Windows XP。
【相关知识】nc.exe全称是NetCat, 被誉为网络安全界的”瑞士军刀”。
NC是一个简单而有用的工具, 透过使用TCP或UDP协议的网络连接去读写数据。
它被设计成一个稳定的后门工具, 能够直接由其它程序和脚本轻松驱动。
同时, 它也是一个功能强大的网络调试和探测工具, 能够建立你需要的几乎所有类型的网络连接。
正因为它的强大功能使得它在入侵时被广泛应用, 成为黑客们的必备武器之一。
●NetCat的一些主要功能:●支持连出和连入(outbound and inbound connection), TCP和UDP, 任意源和目的端口。
●全部DNS正向/反向检查, 给出恰当的警告。
●使用任何源端口。
●使用任何本地设置的网络源地址。
●内建端口扫描功能, 带有随机数发生器。
●内建loose source-routing功能。
●可能标准输入读取命令行参数。
●慢发送模式, 可以每N秒发送一行。
●以16进制显示传送或接收的数据。
●允许其它程序服务建立连接, 可选。
对Telnet应答, 可选。
【步聚一瞥】●NC参数介绍●NC使用实例【操作步骤】一、NC参数介绍下载NC后, 打开“开始”->“运行”, 输入“CMD”(没有引号)后回车, 进入命令提示符, 假设我们把NC放到了C:\nc\中, 可以输入cd \(进行C盘根目录), cd nc 进行NC目录中, 这样就可以运行NC了。
输入nc –h 显示NC的帮助信息, 如图1-1所示:图1-1 NC的帮助信息下面对NC的各项参数进行详细的说明:-d: 与控制台分离, 以后台模式运行。
-e: 程序重定向, 后面跟程序名, 慎用。
-g:原路由跳跃点, 最多到8个。
netcat用法Netcat(nc)是一个功能强大的网络工具,可用于多种场景,包括端口扫描、传输文件和目录、加密传输文件、远程控制、流媒体服务器、远程克隆硬盘等。
以下是一些常用的用法:1. 端口扫描:当您获得一个网站的权限后,可以使用Netcat来扫描该网站的内网。
具体来说,您可以将Netcat上传到web服务器上,然后利用它来扫描内网主机。
2. 获取系统banner信息:通过在服务器端运行Netcat并监听某个端口,可以获取连接到该端口的客户端的系统banner信息。
3. 传输文本信息:在服务器端运行Netcat并指定一个端口,然后在客户端使用Netcat连接到该端口,即可在两台机器之间传输文本信息。
4. 传输文件和目录:使用Netcat可以方便地在两台机器之间传输文件和目录。
在服务器端,可以使用以下命令将文件发送到客户端:`nc -l -p [localport] < [filename]`;在客户端,可以使用以下命令将文件接收过来:`nc [remote_addr] [remoteport] > [filename]`。
5. 加密传输文件:为了确保传输的文件内容不被窃取或篡改,可以使用Netcat的加密功能来加密文件内容。
具体来说,可以使用以下命令将文件内容加密后发送到客户端:`nc -v -e openssl enc -e -aes-256-cbc -salt -in [filename] -out [encrypted_filename]`;在客户端,可以使用以下命令将加密后的文件内容解密并保存到本地:`nc -v [remote_addr] [remoteport] openssl enc -d -aes-256-cbc -in [encrypted_filename] -out [decrypted_filename]`。
6. 远程控制:使用Netcat可以实现远程控制功能。
#1 Nessus:最好的UNIX漏洞扫描工具Nessus 是最好的免费网络漏洞扫描器,它可以运行于几乎所有的UNIX平台之上。
它不止永久升级,还免费提供多达11000种插件(但需要注册并接受EULA- acceptance--终端用户授权协议)。
它的主要功能是远程或本地(已授权的)安全检查,客户端/服务器架构,GTK(Linux下的一种图形界面)图形界面,内置脚本语言编译器,可以用其编写自定义插件,或用来阅读别人写的插件。
Nessus 3 已经开发完成(now closed source),其现阶段仍然免费,除非您想获得最新的插件。
#2 Wireshark:网络嗅探工具Wireshark (2006年夏天之前叫做Ethereal)是一款非常棒的Unix和Windows 上的开源网络协议分析器。
它可以实时检测网络通讯数据,也可以检测其抓取的网络通讯数据快照文件。
可以通过图形界面浏览这些数据,可以查看网络通讯数据包中每一层的详细内容。
Wireshark拥有许多强大的特性:包含有强显示过滤器语言(rich display filter language)和查看TCP会话重构流的能力;它更支持上百种协议和媒体类型;拥有一个类似tcpdump(一个Linux下的网络协议分析工具)的名为tethereal的的命令行版本。
不得不说一句,Ethereal已经饱受许多可远程利用的漏洞折磨,所以请经常对其进行升级,并在不安全网络或敌方网络(例如安全会议的网络)中谨慎使用之。
#3 Snort:一款广受欢迎的开源IDS(Intrusion Detection System)(入侵检测系统)工具这款小型的入侵检测和预防系统擅长于通讯分析和IP数据包登录(packet logging)。
Snort除了能够进行协议分析、内容搜索和包含其它许多预处理程序,还可以检测上千种蠕虫病毒、漏洞、端口扫描以及其它可疑行为检测。
Snort使用一种简单的基于规则的语言来描述网络通讯,以及判断对于网络数据是放行还是拦截,其检测引擎是模块化的。
NetCat的使用秘籍【原理基础】NetCat,具有网络军刀之称,它小巧精悍且功能强大,说它小巧精悍,是因为他的软件大小现在已经压缩到只有十几KB,而且在功能上丝毫不减。
如果没有提供命令行参数,NetCat会提示你从标准输入来输入命令参数,然后NetCat会在内部解析输入。
用这种办法输入命令式参数,可以用来防止借助―ps‖来查看你的命令行参数。
主机参数可以是一个名字或一个IP地址。
如果-n出现,则它接受IP地址,而不再对计算机的名字或域名进行解析。
如果没有-n,但加上-v,则NetCat可进行正/反向域名解析,并警告the all-too-common problem of mismatched name in DNS。
这会耗费稍多一点时间,但在某些情况下会有用处。
如,你想知道某个IP的主机名,NetCat可省却你手工查找的时间。
要建立对外的连接,必须提供一个端口号,可以是个数字,也可以/etc/services列表中的端口服务名。
当-n出现时,则只有数字形式的端口可以接收。
【参数说明】-d 后台模式-e prog 程序重定向,一旦连接,就执行[危险!!]-g gateway source-routing hop point[s], up to 8-G num source-routing pointer: 4, 8, 12, ...-h 帮助信息-i secs 延时的间隔-l 监听模式,用于入站连接-L 连接关闭后,仍然继续监听-n 指定数字的IP地址,不能用hostname-o file 记录16进制的传输-p port 本地端口号-r 随机本地及远程端口-s addr 本地源地址-t 使用TELNET交互方式-u UDP模式-v 详细输出——用两个-v可得到更详细的内容-w secs timeout的时间-z 将输入输出关掉——用于扫描时-v参数,可以将一些关于连接建立信息输出到标准错误。
51cto学院-现任明教教主网络中的瑞士军刀NetCat介绍
适用人群
初级IT从业人员
课程简介
课程目标:
了解与使用网络工具NetCat
适合对象:
黑客与网络渗透测试爱好者
学习条件:
基本网络与系统知识
课程
1
现任明教教主网络中的瑞士军刀NetCat课程第一天第一部分
[免费观看]
1小时7分钟
现任明教教主网络中的瑞士军刀NetCat课程第一天第一部分
2
现任明教教主网络中的瑞士军刀NetCat课程第一天第二部分
36分钟
3
现任明教教主网络中的瑞士军刀NetCat课程第二天第一部分
1小时7分钟
现任明教教主网络中的瑞士军刀NetCat课程第二天第一部分
4
现任明教教主网络中的瑞士军刀NetCat课程第二天第二部分
1小时26分钟
现任明教教主网络中的瑞士军刀NetCat课程第二天第二部分
课程地址:
/course/course_id-1687.html。