Metasploit初探杨高明2013.10.23主要内容一、渗透测试基础二、Metasploit介绍三、Metasploit基础四、常用命令五、MeterpreterBasics六、攻击演示一、渗透测试基础渗透测试(PenetrationTesting):是指渗透测试人员通过模拟成攻击者,挫败目标系统的安全措施并取得访问控制权的安全测试方法。主要涉及内容包括:扫描自动化渗透安全报告1.国际上惯用“渗透测试标准”(PenetrationTestingExecutionStandard,简称:PTES)2.标准中规定渗透测试步骤:前期交互阶段情报收集威胁建模阶段漏洞分析阶段渗透测试阶段后渗透攻击阶段报告阶段一、渗透测试基础目前已有多个成熟框架来帮助实施该阶段。二、Metasploit介绍开源(ruby编制框架)漏洞检测漏洞测试恶意代码集成Shellcode编写漏洞研究(社区)Palyload贡献encoder无操作生成器(nops)漏洞module相关术语渗透攻击(Exploit)由攻击者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为攻击载荷(Payload)期望目标系统呗渗透攻击之后去执行的代码Shellcode渗透攻击时作为攻击载荷运行的一组机器指令模块(Module)指Metasploit框架中所使用的一段软件代码组件。如渗透攻击模块(exploitmodule),辅助模块(auxiliarymodule)监听器(Listener)Metasploit中用来等待连入网络连接的组件二、Metasploit介绍Metasploit整体框架二、Metasploit介绍Metasploit框架TOOLS集成了各种实用工具,多数为收集的其它软件PLUGINS各种插件,多数为收集的其它软件。直接调用其API,但只能在console模式下工作。MODULES目前的MetasploitFramework的各个模块MSFcore表示MetasploitFrameworkcore提供基本的API,并且定义了MSF的框架。并将各个子系统集成在一起。组织比较散乱,不建议更改。MSFBase提供了一些扩展的、易用的API以供调用,允许更改RexLIBRARIESMetasploitFramework中所包含的各种库,是类、方法和模块的集合Metasploit框架CLI表示命令行界面Console控制台用户界面GUI图形用户界面(Pro&communityEditions)Web网页界面(Pro&communityEditions)Exploits定义实现了一些溢出模块,不含payload的话是一个AuxiliaryPayload由一些可动态运行在远程主机上的代码组成Nops用以产生缓冲区填充的非操作性指令Auxiliary一些辅助模块,用以实现辅助攻击,如端口扫描工具Encoders重新进行编码,用以实现反检测功能等Metasploit基础Metasploit用户接口MSF终端MSF终端(msfconsole)是目前Metasploit框架最为流行的用户接口,是Metasploit框架中最灵活、功能最丰富以及支持最好的工具之一。MSF命令行考虑脚本处理与其他命令行工具的互操作性,msfcli可以直接从命令行shell执行,并允许你将其他工具的输出重定向到msfcli中,以及将msfcli的输出重定向给其他命令行工具。Armitage完全交互式的图形化用户接口,具有丰富的功能Metasploit基础用户接口运行截图Metasploit基础Metasploit功能程序MSF攻击载荷生成器生成shellcode、可执行代码和其他更多东西,也可以让它们在框架软件之外的渗透代码中进行使用。Shellcode可以生成包括C、JavaSrcipt、甚至Web应用程序中VisualBasic脚本在内的多种格式,每种输出格式可以在不同的场景中使用。运行msfpayload帮助MSF编码器\x00和\xff字符会破坏攻击载荷网络上明文传输的shellcode会被入侵检测系统和杀毒软件所识别msfencode–l查看可用的编码器X86/shikata_ga_nai编码器,是唯一一个拥有excellent等级的编码器,而这种等级是基于一个模块的可靠性和稳定性来进行评价的Metasploit基础常用命令msfconsole下的常用命令showexploits显示所有可用的渗透测试攻击模块showauxiliary显示所有的辅助模块以及它们的用途showoptions列出模块所需的各种参数showpayloads显示与当前模块兼容的攻击载荷showtargets列出受到漏洞影响目标系统的类型常用命令search搜索用户search+关键字infoinfo+模块名称,显示此模块的详细信息set和unset对某个参数进行设置;禁用相关参数setg和unsetg对全局参数进行设置和清除save在使用setg命令对全局参数进行设置后,可以使用save命令将当前的设置值保存下来,在下次启动MSF终端时可以继续使用MeterpreterBasics黑客瑞士军刀——MeterpreterMeterpreter通常作为漏洞溢出后的攻击载荷所使用,攻击载荷在触发漏洞后能够返回给我们一个控制通道。Meterpreter是Metasploit框架的一个扩展模块,可以调用Metasploit的一些功能,对目标系统进行更深入的渗透,这些功能包括反追踪、纯内存工作模式、密码哈希值获取、特权提升、跳板攻击等。MeterpreterBasics1help2background3cat4cd&pwd5clearev6download7edit8execute9getuid10hashdump11idletime12ipconfig13lpwd&lcd14ls15migrate16ps17resource18search19shell20upload21webcam_list22webcam_snap详细参考:常用命令列表MeterpreterBasicshelp查看帮助background将当前meterpreter会话放入后台文件操作命令:catcd&pwdclearevdownloaduploadeditexecutels……screenshot截屏ps获取目标系统正在运行的进程sysinfo获取系统运行平台hashdump提取系统的用户名和密码的哈希值webcam_list&webcam_snap摄像头相关命令演示通过攻击一台WindowXP机器,利用Meterpreter作为攻击载荷,展示它在进入目标系统后的一些其他攻击方法与技术利用的漏洞模块:MS08_067Meterpreter的密码记录功能、获取hash密码等