ZoyaPatel

渗透测试基础 常见的 扫描工具 的使用 | 网络安全 |渗透测试

SohaniSharma

##  扫描是通过一系列的工具、本章只关注其中最有名和最有效的几个工具,包括Nmap、Hping和Nessus。{alertInfo}
 

由人工编写审核,非AI生成内容,请放心观看!

{getToc} $title={文章目录}

扫描

目标

确定连接到组织目标网络中的计算机和其他设备的指定信息。在本阶段中,焦点是寻找可用的主机,确定节点种类(台式机、笔记本、服务器、网络设备或者移动计算平台)、操作系统、提供的公开服务( Web应用程序、SMTP、FTP 等),甚至还有可以发现的漏洞。在本阶段中找到的漏洞通常被称作挂得很低的水果(意指容易实现的目标)。扫描是通过一系列的工具来完成的,本章只关注其中最有名和最有效的几个工具,包括Nmap、Hping和Nessus。这一阶段的目的是为下一步的渗透准备好一张目标列表。

协议

Kali Linux扫描应用程序三种最常用的协议,TCP、UDP和ICMP。它们被广泛用于扫描、漏洞发现和渗透测试。

ICMP

ICMP在设计中是一个网络的健康检测及维护协议,这个协议用来确定一个设备在网络上是否正常运行和通信。在大多数情况下,最终用户不会用到直接依赖ICMP的应用程序。然而,任何规则总是有例外的。在本例中,traceroute 和Ping就是两个例外的例子。和TCP以及UDP的另外一个区别是,ICMP的通信方式在设计 中是不携带用户数据的,它只会将系统信息在网络设备、计算机和应用服务之间传递。 ICMP消息有一套指定的消息类型和编码,或数字集,包含在它的包头中。这个编码集是用来向网络中的节点提出问题或者提供信息的。这些类型和编码集可以帮助渗透测试人员确定目标系统上运行的是什么系统。

渗透测试基础扫描工具 的使用
ICMP 消息

ICMP(Internet Control Message Protocol,互联网控制消息协议)是一种网络协议,它用于在IP网络上传输控制消息和错误消息。ICMP是TCP/IP协议套件的一部分,它允许网络设备和主机之间进行通信,以提供诸如错误报告、网络诊断和网络管理等功能。以下是关于ICMP协议的一些重要信息:

错误报告: ICMP主要用于报告网络错误和问题。例如,当某个主机不可达时,或者某个路由器在传输数据时遇到问题,它可以发送ICMP错误消息通知源主机或路由器。

Ping工具: ICMP也用于执行网络诊断操作,最常见的是使用ping命令。通过发送ICMP回显请求消息(Echo Request)并等待目标主机的回复(Echo Reply),可以测试主机之间的可达性和延迟。

TTL字段: ICMP中的一个重要字段是TTL(Time to Live,生存时间)。每个经过的路由器都会将TTL减小1,并在TTL达到零时丢弃数据包。当TTL减小为零时,路由器可以发送ICMP时间超时消息,以通知源主机数据包被丢弃,同时也可用于确定数据包的路径。

Traceroute工具: ICMP还用于traceroute工具,它可以跟踪数据包在网络中的路径,通过在每个跃点发送具有不同TTL值的数据包,并记录路由器的响应,最终找到目标主机的路径。

ICMP消息类型: ICMP定义了多种消息类型,包括Echo Request和Echo Reply(用于ping操作),Destination Unreachable(目标不可达)、Time Exceeded(时间超时)等。每个消息类型都有其特定的目的和含义。

无连接协议: ICMP是一个无连接协议,这意味着它不建立持久的连接,而是根据需要发送和接收消息。这使得它在网络诊断和管理中非常灵活。

安全性考虑: 由于ICMP消息可以被滥用或用于进行某些形式的拒绝服务攻击(DDoS攻击),因此网络管理员通常需要采取措施来限制或过滤不必要的ICMP流量。

总之,ICMP是一个重要的网络协议,它在互联网中用于进行网络错误报告、网络诊断和管理,以及一些其他与网络连接和通信相关的任务。它提供了关于网络健康和状态的有用信息,同时也可以用于排查网络问题。

Ping 命令

Ping大概是被最终用户和管理员使用最多的基于ICMP的命令。

Ping 会发送一个类型为8,编码为0 的ICMP 包。表明这个包是Echo请求。收到后,会放返回对应的包编码为0,类型为0的的Echo 响应包。

在Windows平台发出的Ping请求默认会发四次,在Linux平台发出的Ping请求会持续发送直到用户取消,要在Linux平台上停止Ping请求,请按Ctrl+C键。

ping 工具是一种常用的网络诊断工具,它用于测试主机之间的可达性和测量网络延迟。通过发送 ICMP Echo 请求消息到目标主机,并等待目标主机的 ICMP Echo 回复消息,ping 可以帮助你检查是否能够与目标主机通信,以及确定网络延迟(往返时间)。

traceroute

traceroute可以使用ICMP的Ping命令来找出在发起traceroute的机器和目标机器之间有多少设备。这个命令是通过操作数据包的存活时间(TTL)来实现的。TTL是这个数据包从网络中下一个主机或下一跳起,能被传递的最多节点数。这个命令会首先发起一个TTL为1的Ping命令,这个Ping只能在发起者和目标机器之间走一个设备。然后接收设备就会发回一个类型为11,编码为0的数据包(在传输中过期),这个数据包会被记录下来。接下来,发送者会逐一-增加 TTL,并发送数据包。数据包会沿着网络到达TTL值的下一跳,这样会引起接收路由器发回数据包过期的回复。这个过程一直持续到抵达目标,沿途的所有节点都会被记录,并且创建一个从发起的计算机到目标计算机间的设备列表。

这对于渗透测试来说是很有用的,因为可以确定网络中的设备类型。

在Windows平台上,默认的TTL是128。

在Linux平台上,默认的TTL是64。

在思科的网络设上,TTL高达255。

# windows 上的对应命令
tracert

Kali上的许多扫描工具都会用到TCP、UDP和ICMP协议来绘制目标网络的拓扑图。

扫描阶段的理想结果应该是一个列表,包括主机、IP 地址、操作系统和可用服务。有的扫描工具也可以发现漏洞和用户信息。这些信息在渗透阶段是非常有用的,因为这可以让攻击的目标主机、技术和漏洞更加精准。

扫描工具Nmap

Nmap不仅可以确定目标网络上计算机的存活状态,在许多情况下,还能确定==主机的操作系统、监听的端口、服务==,还有可能获得用户的证书。通过使用命令参数和选项的组合,Nmap可以成为渗透测试中扫描阶段的一个利器。

Nmap的命令结构

Nmap命令的参数具有非常独特的结构,允许命令选项和目标按照一种非常灵活的方式

渗透测试基础扫描工具 的使用
NAMP命令

Nmap(Network Mapper)是一个强大的开源网络扫描工具,用于探测和分析计算机网络上的主机和服务。Nmap 工具具有广泛的功能,包括网络发现、端口扫描、服务识别、操作系统检测和漏洞扫描等。以下是关于 Nmap 工具的简介和主要功能:

端口扫描: Nmap 可以扫描目标主机上的开放端口。这有助于确定主机上哪些服务正在运行,以及它们监听的端口号。你可以使用不同的扫描技术来检测常见端口、所有端口或自定义端口范围。默认扫描端1000端口,-p- 会扫描主机所有端口。

nmap  主机

服务识别: Nmap 能够识别目标主机上运行的服务类型和版本。它通过发送特定的探测请求来识别服务,并与 Nmap 的服务数据库进行比对,以确定目标主机上的服务。

nmap -sV 192.168.80.134

Starting Nmap 7.92 ( https://nmap.org ) at 2023-10-06 09:12 EDT
Nmap scan report for 192.168.80.134
Host is up (0.0000020s latency).
Not shown: 999 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.7p1 Debian 2 (protocol 2.0)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.46 seconds

操作系统检测: Nmap 可以尝试确定目标主机的操作系统类型和版本。它分析目标主机的响应模式和网络堆栈行为,以猜测操作系统。这对于了解网络中的主机配置和安全性非常有用。

nmap -O 主机
nmap -O 192.168.80.2
Starting Nmap 7.92 ( https://nmap.org ) at 2023-10-06 09:01 EDT
Nmap scan report for 192.168.80.2
Host is up (0.00061s latency).
Not shown: 999 closed tcp ports (reset)
PORT   STATE SERVICE
53/tcp open domain
MAC Address: 00:50:56:EC:0B:04 (VMware)
Aggressive OS guesses: VMware Player virtual NAT device (99%), Microsoft Windows XP SP3 or Windows 7 or Windows Server 2012 (93%), Microsoft Windows XP SP3 (93%), Linux 3.2 (91%), DVTel DVT-9540DW network camera (91%), DD-WRT v24-sp2 (Linux 2.4.37) (90%), Actiontec MI424WR-GEN3I WAP (90%), BlueArc Titan 2100 NAS device (89%), Linux 4.4 (89%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 3.82 seconds

漏洞扫描: Nmap 可以用于进行基本的漏洞扫描,尽管它通常不如专门的漏洞扫描工具强大。然而,结合漏洞数据库,Nmap 可以识别可能存在的已知漏洞。

Nmap 可以用于进行基本的漏洞扫描,尽管它的主要用途是进行网络发现和端口扫描。Nmap 的漏洞扫描功能主要通过 NSE(Nmap Scripting Engine,Nmap 脚本引擎)来实现,通过使用自定义的脚本来探测可能的漏洞。

脚本库: Nmap 自带了大量的预定义脚本,这些脚本可以直接使用,也可以根据需要进行自定义和修改。脚本库中包含了用于检测各种已知漏洞和安全问题的脚本,以及用于执行各种网络任务的脚本。

以下是一些使用 Nmap 进行基本漏洞扫描的方法:

使用 NSE 脚本: Nmap 的 NSE 脚本引擎包括许多针对不同服务和应用程序的脚本,用于检测已知的漏洞。你可以使用 -sV 选项来启用服务和版本检测,然后使用 --script 选项来运行特定的脚本。例如,要扫描目标主机上的 HTTP 服务以检测 Web 漏洞,可以执行以下命令:

nmap -sV --script=http-vuln-cve2017-5638 目标主机

这个命令将运行名为 http-vuln-cve2017-5638 的 NSE 脚本,该脚本用于检测与 Apache Struts 2 漏洞(CVE-2017-5638)相关的问题。

自定义脚本: 你还可以编写自定义的 NSE 脚本,以检测特定应用程序或服务的漏洞。自定义脚本可以通过 Lua 编程语言编写,并集成到 Nmap 中。

扫描工具集成: 除了 NSE 脚本,Nmap 还可以与其他漏洞扫描工具集成,例如 OpenVAS(Open Vulnerability Assessment System)或 Nessus。这些工具可以更深入地检测漏洞,并提供更详细的漏洞报告。

需要注意的是,Nmap 的漏洞扫描功能通常用于快速识别已知漏洞,但不能替代专门的漏洞扫描工具,尤其是在需要深度漏洞分析和验证时。对于严肃的漏洞管理和安全评估,通常需要使用专门的漏洞扫描工具和安全评估工具,以便更全面地检测和修复漏洞。

http-vuln-cve2017-5638 是一个 Nmap NSE(Nmap Scripting Engine)脚本,用于检测与 Apache Struts 2 漏洞(CVE-2017-5638)有关的问题。该漏洞是一个严重的远程代码执行漏洞,允许攻击者通过精心构造的HTTP请求远程执行恶意代码,可能导致系统被入侵。

脚本引擎: Nmap 具有强大的脚本引擎(Nmap Scripting Engine,NSE),允许用户执行自定义脚本以扩展 Nmap 的功能。这些脚本可以用于执行各种自动化任务,包括服务扫描、漏洞探测和网络信息收集。

网络发现: Nmap 可以用于发现与目标网络相关的主机。它可以通过不同的方式,如 ARP 扫描、ICMP 扫描、UDP 扫描等,来确定网络上的活动主机。

nmap -sn 192.168.0.0/24
Starting Nmap 7.92 ( https://nmap.org ) at 2023-10-06 08:46 EDT
Nmap scan report for 192.168.0.1
Host is up (0.0025s latency).
Nmap scan report for 192.168.0.255
Host is up (0.0013s latency).
Nmap done: 256 IP addresses (2 hosts up) scanned in 2.54 seconds

输出格式: Nmap 支持多种输出格式,包括文本、XML、JSON 等,这使得分析扫描结果和集成到其他工具中变得更加容易。

扫描主机端口

nmap 192.168.80.2
Starting Nmap 7.92 ( https://nmap.org ) at 2023-10-06 08:57 EDT
Nmap scan report for 192.168.80.2
Host is up (0.00052s latency).
Not shown: 999 closed tcp ports (conn-refused)
PORT   STATE SERVICE
53/tcp open domain
# nmap 192.168.80.134
Starting Nmap 7.92 ( https://nmap.org ) at 2023-10-06 08:56 EDT
Nmap scan report for 192.168.80.134
Host is up (0.00010s latency).
Not shown: 999 closed tcp ports (conn-refused)
PORT   STATE SERVICE
22/tcp open  ssh

domain域名服务器,打开53端口

ssh服务,端口22tcp

Hping3 工具

Hping是一个可以手动制作数据包并发送到网络上的应用程序。你可以手动制作类似于Nmap引擎自动生成的数据包。例如,Hping3 可以使用-S来创建一系列同步包:

Nessus 工具

install

Download Tenable Nessus | Tenable®

# For Debian/Ubuntu
sudo dpkg -i package_name.deb

# For CentOS/RHEL
sudo rpm -ivh package_name.rpm

Nessus 是全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件。

# 开启的nessus 或者关闭
sudo systemctl start nessusd

打开:https://localhost:8834/#/

渗透测试基础扫描工具 的使用
nessus

如何使用

https://docs.tenable.com/nessus/Content/GettingStarted.htm

https://zh-cn.tenable.com/products/nessus/nessus-professional?tns_redirect=true


Ahmedabad
Kolkata
Hyderabad
后一页 Bangalore 前一页

Random Manga

Ads

نموذج الاتصال