【网络安全实验】网络扫描

【网络安全实验】网络扫描

一、网络扫描相关概念1.1定义 网络扫描通过向目标网络中的设备发送特定的数据包,并分析其响应,来获取网络中设备的相关信息,如设备的 IP 地址、开放的端口、运行的服务等。其目的通常包括网络管理、安全评估以及漏洞发现等。

1.2扫描类型主机发现 定义:主机发现是指在一个网络中确定哪些主机是活动的,即正在运行并连接到网络上。实现方式:通常通过向网络中的 IP 地址范围发送特定的探测数据包,如 ICMP Echo 请求(Ping 命令)或 ARP 请求,然后根据收到的响应来判断目标主机是否在线。例如,当发送 ICMP Echo 请求后,如果收到目标主机的 ICMP Echo 应答,就可以确定该主机是活动的。作用:帮助网络管理员了解网络中设备的分布情况,确定哪些主机可能存在安全风险,为后续的安全评估和管理提供基础信息。端口扫描 定义:端口扫描是指尝试连接目标主机的各个端口,以确定哪些端口是开放的,以及开放端口上运行的服务类型。实现方式:利用各种扫描工具,如 Nmap 等,向目标主机的不同端口发送连接请求。根据目标主机对这些请求的响应,判断端口的状态(开放、关闭或过滤)。例如,TCP SYN 扫描通过发送 SYN 数据包来尝试建立 TCP 连接,如果收到目标主机返回的 SYN-ACK 数据包,说明该端口是开放的。作用:了解目标主机上运行的服务,发现可能存在的安全漏洞。因为不同的服务可能存在不同的安全风险,开放的端口可能成为攻击者入侵的入口。操作系统识别 定义:操作系统识别是指通过分析目标主机的网络行为、响应特征等信息,来确定其运行的操作系统类型和版本。实现方式:主要有两种方法,一种是基于指纹识别的方法,通过收集不同操作系统在网络通信中的各种特征信息,如 TCP/IP 协议栈的行为、数据包的格式等,建立指纹数据库。扫描时,将目标主机的响应与指纹数据库进行比对,从而识别出操作系统。另一种是基于服务探测的方法,通过分析目标主机开放端口上运行的服务来推测其操作系统。例如,某些服务通常只在特定的操作系统上运行,通过检测到这些服务,就可以推断出目标主机可能运行的操作系统。作用:帮助安全人员了解目标系统的特点,以便针对性地进行漏洞评估和攻击模拟。不同的操作系统版本可能存在不同的安全漏洞,了解操作系统类型可以更准确地判断系统可能面临的安全威胁。漏洞扫描 定义:漏洞扫描是指利用漏洞扫描工具,对目标主机或网络系统进行检测,发现其中存在的安全漏洞。实现方式:漏洞扫描工具通常会有一个漏洞特征库,包含了各种已知漏洞的信息。扫描时,工具会根据这些特征,通过向目标系统发送特定的测试数据包或执行特定的检测脚本,检查目标系统是否存在相应的漏洞。例如,通过检测目标系统是否存在特定的 SQL 注入漏洞,扫描工具会尝试向目标系统的输入字段中注入恶意的 SQL 语句,观察系统的响应,以确定是否存在该漏洞。作用:及时发现系统中存在的安全隐患,为安全修复提供依据。通过漏洞扫描,管理员可以了解系统的安全状况,采取相应的措施来修复漏洞,降低系统被攻击的风险。 主动扫描和被动扫描是网络安全领域中用于获取网络信息和检测安全漏洞的两种不同方式,下面是详细介绍:

1.3主动扫描1.3.1定义: 主动扫描就是用户主动发送一些数据包进行扫描,以找到网络中活动的主机。

其中,用于主动扫描的工具有很多,如Netdiscover、Nmap 和Ping等。例如,当用户使用Ping命令实施主动扫描时,将会发送一个ICMP Echo-Request报文给目标主机,如果目标主机收到该请求,并回应一个ICMP Echo-Reply报文,则说明该目标主机是活动的。

1.3.2特点: 基于主机之上的,对系统中不合适的设置、脆弱的口令及其他同安全规则相抵触的对象进行检查,被动式扫描不会对系统造成破坏。

Nmap: 一款流行的网络扫描和漏洞评估工具,它不仅可以进行主动扫描,发现网络中的主机和服务,还可以检测操作系统、开放端口、服务版本等信息。此外,Nmap还支持被动扫描技术,可以监控网络流量并报告与已知漏洞相关的攻击

Ping: 一种常用的网络工具,通过发送ICMP Echo-Request报文给目标主机,如果目标主机收到该请求并回应ICMP Echo-Reply报文,则说明该目标主机是活动的。

X-SCAN: 漏洞扫描软件,在对于被动的防御措施设置情况,对于主动漏洞查找目前根据测定,能够对本机及指定IP主机进行网络扫描,能够完成包括端口服务,脚本漏洞,系统服务漏洞等多种扫描情况。能够准确的查找到相关的服务漏洞与漏洞说明及解决方案的实施。

Hping:

Hping是一个命令行下使用的TCP/IP数据包组装/分析工具,其命令模式很像Unix下的ping命令,但是它不是只能发送ICMP回应请求,它还可以支持TCP、UDP、ICMP和RAW-IP协议,它有一个路由跟踪模式,能够在两个相互包含的通道之间传送文件。Hping常被用于检测网络和主机,其功能非常强大,可在多种操作系统下运行,如Linux,FreeBSD,NetBSD,OpenBSD,Solaris,MacOs X,Windows。

Metasploit: 是一款广泛使用的渗透测试工具,不仅包含了大量的漏洞利用模块,还具备端口扫描、服务探测等主动扫描功能。它可以帮助安全人员模拟攻击者的行为,对目标系统进行安全评估,验证漏洞的可利用性,同时也可用于安全培训和教育。

1.4 被动扫描1.4.1定义: 被动扫描是通过长期监听广播包(如监听网络流量、收集网络中已有的数据),来发现同一网络中的活动主机。

一般情况下发送广播包,主要有两个原因。一个原因是,应用程序希望在本地网络中找到一个资源,而应用程序对该资源的地址又没有预先储备。例如ARP广播包,用于获取局域网内某IP对应的MAC地址。另一个原因是由于一些重要的功能。例如,路由器要求把它们的信息发送给所有可以找到的邻机。

1.4.2特点: 基于主机之上的,对系统中不合适的设置、脆弱的口令及其他同安全规则相抵触的对象进行检查,被动式扫描不会对系统造成破坏。

Wireshark/Ethereal: 是一个网络协议分析器,早期称为Ethereal,它能够捕获网络数据包并对数据包进行详细的解析。Wireshark可用于捕获和分析几乎所有类型的网络流量,包括以太网、无线网络、蓝牙、USB等等。除了对网络数据包的捕获和解析,Wireshark还提供了包括过滤、统计、报告、分析等在内的一系列功能,它可以帮助网络管理员、安全专业人员和其他人员,识别网络问题、确定网络安全问题、进行协议分析等。

arp-scan: 是一个命令行工具,用于通过ARP(地址解析协议)扫描局域网中的设备。它发送ARP请求到指定的IP地址范围,然后监听响应,以此来识别网络上活动的设备。这个工具可以帮助网络管理员发现网络上的设备,包括那些可能没有在DHCP服务器上注册的设备,以及检测IP地址冲突。

二、实验环境 软件环境:

操作系统:Linux靶机(运行web服务器,IP:192.168.127.132)、Kali Linux、Windows 10

被动扫描工具:Wireshark、Arp-scan

主动扫描工具:Nmap、X-scan

硬件环境:

至少两台虚拟机(一台运行Linux靶机,一台运行Kali Linux)

一台物理机或另一台虚拟机运行Zenmap和Wireshark

三、实验步骤1.安装并配置扫描工具(1)在Windows下安装Zenmap(nmap的图形界面版,kali中默认安装了nmap)

下载链接:https://nmap.org

安装完成我们可以在桌面看到该启动快捷方式图标。。

(2)在Windows系统中安装Wireshark:

访问官网下载对应版本并安装。下载链接:https://www.wireshark.org

(3)安装X-scan(安装使用是需要关闭防火墙和实时防护),运行xscan_gui.exe

下载链接: https://pan.baidu.com/s/1VAT05apgM3KIwnFEoMEUeQ?pwd=8uf5 提取码: 8uf5

2.使用wireshark进行网络扫描分析 在win10上访问靶机网页,使用wireshark开始捕获

筛选与靶机进行通信的数据在过滤框输入过滤语句:

ip .addr==192.168.127.132

可以看到源地址或者目的地址为192.168.127.132的所有数据报

查看端口号在过滤框输入

tcp.port==80

随意点击一条TCP报文,调查看详细信息,比如下面是第三条数据,可以知道这些信息:源端口号为50336

目的端口号:80

序号:1

确认号:1

报头长度:20bytes

标志位:0x010

校验和:0x8073

随意点击一条HTTP报文,调查看详细信息从上到下依次显示的是TCP/IP五层体系结构:物理层、数据链路层、网络层、传输层、应用层

网络层显示了源地址:192.168.127.131(win10虚拟机的IP地址),目的地址:192.168.127.132(靶机的IP地址)

TCP三次握手分析

1.第一次握手:客户端向服务器发送一个带有SYN标志位的TCP报文段,请求建立连接。此时,报文的标志位被设置为0x002(即SYN),表示这是一个请求建立连接的报文。同时,客户端还会选择一个初始序列号(Seq=0)并发送出去。

2.第二次握手:服务器接收到客户端的SYN报文后,会返回一个带有SYN和ACK(Acknowledgment)标志位的TCP报文段,作为对客户端SYN报文段的应答。此时,报文的标志位被设置为0x012(即SYN和ACK),表示服务器同意建立连接,并确认收到了客户端的SYN报文。同时,服务器也会选择一个初始序列号(Seq=0)并发送出去,同时还会将确认号(Ack)设置为客户端SYN报文段的序列号Seq加1,即Ack=Seq+1=1。

3.第三次握手:客户端接收到服务器的SYN/ACK报文后,会发送一个带有ACK标志位的TCP报文段作为应答。此时,报文的标志位被设置为0x010(即ACK),表示客户端已经收到了服务器的SYN/ACK报文,并同意建立连接。同时,客户端还会将确认号(Ack)设置为服务器SYN/ACK报文段的序列号加1,即Ack=Seq+1=0+1=1。

3.使用arp-scan扫描靶机在kali终端确认已经安装arp-scan,输入arp-scan --version,可以看到arp-scan的版本为arp-scan 1.9.7显示帮助信息代码语言:javascript复制arp-scan -h扫描扫描整个子网(192.168.127.0/24),发现靶机的IP:192.168.127.132代码语言:javascript复制sudo arp-scan -I eth0 192.168.127.0/24进行ARP指纹识别代码语言:javascript复制sudo arp-fingerprint 192.168.127.132 扫描结果中的01010100000可能是一串十六进制数,代表了从设备的ARP响应中提取的特定字段或特征。

这串十六进制数被该工具用来与已知的操作系统指纹进行匹配,从而给出了可能的操作系统列表:Linux的多个版本(2.2, 2.4, 2.6, 3.2, 3.8, 4.0, 4.6)以及Windows的多个版本(Vista, 2008, Windows7, Windows8, Windows10)。

验证靶机操作系统版本和内核版本:代码语言:javascript复制lsb_release -a //查看Linux系统版本 ubuntu 12.04.1

cat /proc/version //查看内核版本 3.2.0-294.在kali中使用nmap扫描靶机在kali终端确认已经安装nmap,输入nmap -v查看kali的IP地址:192.168.127.130,与靶机在同一网段通过ping命令确定kali和靶机能相互ping通对靶机进行ping扫描,以确定该主机是否在线代码语言:javascript复制 nmap -sP 这种扫描方式会发送ICMP Echo请求到目标主机,并等待响应。如果目标主机在线且未过滤ICMP请求,它将返回一个响应。

对靶机进行ping扫描,扫描整个子网内的所有IP地址。代码语言:javascript复制sudo nmap -sP 192.168.127.132/24 可以看到扫描出了该网络号下的5台主机,其中包括1为物理机的虚拟网卡IP,2为网关,132为靶机IP(因为扫描端和服务器端在同一网段下),130为扫描主机IP,254为广播地址。

对靶机进行服务版本检测,可以看到靶机为Ubuntu Linux代码语言:javascript复制sudo nmap -sV 192.168.127.132命令进行端口扫描代码语言:javascript复制sudo nmap 192.168.127.132 显示了靶机中端口号为22,80,8080的三个端口,服务名称分别为ssh,http,http-proxy

进行TCP SYN扫描代码语言:javascript复制sudo nmap -sS 192.168.127.132 我们可以看到SYN方式探测到3个端口开放,而有997个端口被过滤

进行TCP Connect()扫描,以确定哪些端口是开放的代码语言:javascript复制sudo nmap -sT 192.168.127.132进行UDP扫描,但是UDP扫描效率较低,较长时间没有出现扫描结果代码语言:javascript复制sudo nmap -sU 192.168.127.132进行FIN扫描 利用FIN扫描方式探测防火墙状态。FIN扫描方式用于识别端口是否关闭,收到RST回复说明该端口关闭,否则说明是open或filtered状态。

代码语言:javascript复制sudo nmap -sF 192.168.127.132下图可以知道显示的三个端口均处于开放状态,997个端口被过滤

进行ACK扫描 利用ACK扫描判断端口是否被过滤。针对ACK探测包,未被过滤的端口(无论打开、关闭)会回复RST包。

代码语言:javascript复制sudo nmap -sA 192.168.127.132下图看到1000个端口是被忽略状态,所有端口均被过滤。

执行高级探测,包括操作系统检测、版本检测、脚本扫描和traceroute代码语言:javascript复制sudo nmap -A 192.168.127.132 下图可以看到靶机的操作系统为Ubuntu,内核版本为Linux 2.6.32 - 3.10版本范围,还扫描到靶机三个端口正在进行的服务和具体信息。

以详细模式扫描指定的 IP 地址,并显示更多关于扫描过程和结果的信息代码语言:javascript复制sudo nmap -v 192.168.127.132 下图可以看到首先使用 ARP Ping 扫描来确认目标主机是否在线。接着进行 SYN Stealth Scan(隐蔽的 SYN 扫描),这种TCP 扫描方式不会留下扫描痕迹 ,因为它不会完成 TCP 三次握手过程。

开放端口:

22/tcp:SSH(安全外壳协议)服务开放,通常用于远程登录和管理。

80/tcp:HTTP(超文本传输协议)服务开放,通常用于网页服务。

8080/tcp:HTTP-PROXY(HTTP 代理服务)开放,可能用于绕过网络限制或作为代理服务器。

MAC 地址:00:0C:29:E2:4A:D7,制造商为 VMware,表明目标主机可能是一个虚拟机

5.在Windows上使用Zenmap扫描靶机Intense scan强烈扫描的结果:输出信息:

端口信息:

操作系统信息:

Quick scan快速扫描的结果:6.在Windows上使用使用X -scan扫描靶机 扫描出的部分漏洞,如SSH弱口令,root/[口令和用户名相同]

7.使用hping扫描靶机指定端口发送TCP文件代码语言:javascript复制hping3 -S 192.168.127.132 -p 80 -c 4 //向目标主机80端口发送TCP连接,发送四个端口连续性ping代码语言:javascript复制hping3 -S 192.168.127.132 -p ++130 -c 10 //从130端口开始一路ping到140下面是一些能通过hping实现的简单的DOS攻击

1. SYN洪水攻击代码语言:javascript复制hping3 -S -U --flood -V --rand-source IP SYN洪水攻击属于DoS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送SYN包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN 请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。

2 .ICMP洪水攻击代码语言:javascript复制hping3 -1 -U --flood -V --rand-source IP 短时间内向特定目标不断请求ICMP回应,致使目标系统负担过重而不能处理合法的传输任务,就发生了ICMp Flood

3 .UDP洪水攻击代码语言:javascript复制hping3 -2 -U --flood -V --rand-source IP UDP Flood是日渐猖厥的流量型DoS攻击,原理也很简单。常见的情况是利用大量UDP小包冲击DNS服务器或Radius服务器、流媒体视频服务器。 造成整个网段的瘫痪。由于UDP协议是一种无连接的服务,在UDP FLOOD攻击中,攻击者可发送大量伪造源IP地址的小UDP包。但是,由于UDP协议是无连接性的,所以只要开了一个UDP的端口提供相关服务的话,那么就可针对相关的服务进行攻击。

4 .IP Flood代码语言:javascript复制hping3 -U --flood -V --rand-source IP 通过伪造大量的IP实现对目标主机的攻击

相关内容

成都电信渠道合作
国内365bet登录网址

成都电信渠道合作

⌛ 10-28 👁️ 8985
染唇液怎么用?染唇液使用方法 09月13日更新
国内365bet登录网址

染唇液怎么用?染唇液使用方法 09月13日更新

⌛ 09-13 👁️ 1706
高速公路最低时速是多少
365提现一般多久到账

高速公路最低时速是多少

⌛ 08-25 👁️ 9097
全网都在推的揭膜祛斑吧,到底是不是智商税?
365bet.com官方网站

全网都在推的揭膜祛斑吧,到底是不是智商税?

⌛ 11-30 👁️ 9541
空调不通电什么原因,空调不通电什么原因造成的
国内365bet登录网址

空调不通电什么原因,空调不通电什么原因造成的

⌛ 08-19 👁️ 3800
喝了水垢对人体有害吗
国内365bet登录网址

喝了水垢对人体有害吗

⌛ 08-21 👁️ 6046