Metasploit基础和基本命令详解
彬彬有礼am_03 2021-01-03 16:02:26
228
收藏 2版权Metasploit基础2003年H.D Moore创建了Metasploit,从那之后Metasploit便快速发展起来,如今被公认为最为流行的渗透测试工具之一。Metasploit是一个完全的Ruby驱动项目,提供了大量的漏洞渗透、攻击载荷(payload)、编码技术以及后渗透模块。Metasploit提供了以下多版本:Metasploit Pro版这是Metasploit的一个商业化版本,提供了大量的功能,例如Web应用程序扫描工具、渗透模块、自动化渗透工具,十分适合专业渗透测试工程师和IT安全团队使用。Pro版主要用来实现专业的、高级的、大型渗透测试和企业安全项目Metasploit Express版这是一个为初级渗透测试工程师设计的版本。这个版本的Metasploit包含了智能化渗透、密码的自动化暴力破解等功能,十分适合小型企业的IT安全团队使用Metasploit Community版这是Metasploit Express精简后的免费版本。对于小企业和学生来说,这是一个不错的选择Metasploit Framework版这是一个完全在命令行下运行的版本。这个版本的所有任务都在命令行下完成 ,比如说手动渗透、第三方模块导入等。该版本适合开发人员和安全研究人员Metasploit提供了以下几类用户界面:GUI(图形用户界面)在图形化工作模式下,往往轻点一下鼠标就能完成所有的任务。此工作方式提供了友好的操作模式和简单快捷的漏洞管理方式控制台界面最为普遍也最为流行的工作方式。此界面提供了统一的工作方式来管理Metasploit的所有功能。此管理方法通常也被认为是最稳定的控制方法之一。此管理方法是最常用的命令行界面命令行界面是功能最为强大的界面,它支持对渗透模块的所有操作(例如,攻击载荷的生成)。然而在采用命令行界面时,记住每一条命令是十分困难的ArmitageArmITage是Raphael Mudge 编写的一个充满了黑客风格的GUI。ArmITage提供轻松的漏洞管理、内置的Nmap扫描、渗透攻击推荐,并通过用Cortana脚本实现自动化功能有关Metasploit Community版的更多信息,请访问:https://community.rapid7.com/community/Metasploit/blog/2011/12/21/Metasploit-tutorial-an-introduction-to-Metasploit-communityMetasploit基础知识渗透模块(exploit)这是一段程序,运行时会利用目标的安全漏洞进行攻击。攻击载荷模块(payload)在成功对目标完成一次渗透之后,这段程序开始在目标计算机上运行。它能帮助我们在目标系统上获得需要的访问和行动权限辅助模块(auxiliary)包含了一系列的辅助支持模块,包括扫描模块、fuzz测试漏洞发掘模块、网络协议欺骗以及其他一些模块编码器模块(encoder)编码器模块通常用来对攻击模块进行代码混淆,来逃过目标安全保护机制的检测。目标安全保护机制包括杀毒软件和防火墙等MeterpreterMeterpreter是一类使用内存技术的攻击载荷,可以注入到进程里。它提供了各类可以在目标上执行的功能,从而成为了最受欢迎的的攻击载荷Metasploit的基本命令:命令用途示例use [Auxiliary/Exploit/Payload/Encoder]选择一个指定的模块并启动工作msf>use exploit/unix/ftp/vsftpd_234_backdoorshow [exploits/payloads/encoder/auxiliary/options]显示可用的特定功能的模块msf> show payloadsset [options/payload]给某个特定对象赋值msf>set LHOST 192.168.126.129setg [options/payload]给某个对象赋值的同时设定作用域为全局,在模块进行切换的时候,该对象的值不改变msf>setg RHOST 192.168.126.129run在设置一个辅助模块需要的所有选项之后,启动该辅助模块msf>runexploit启动一个渗透模块msf>exploitback取消当前选择的模块并且退回到上一级命令窗口msf>backInfo列出相关模块的信息msf>InfoSearch搜索符合条件的特定模块msf> search hfscheck检查某个特定目标是否易受攻击msf>checkSessions列出当前可用的会话msf>Sessions [session number]Meterpreter的基本命令:Meterpreter命令用途示例sysinfo列出被渗透主机的系统信息Meterpreter>sysinfoifconfig列出被渗透主机的网络接口Meterpreter>iifconfigarp列出目标主机ARP缓存地址的IP地址和MAC地址Meterpreter>arpbackground将一个处于激活状态的会话发送到后台Meterpreter>backgroundshell获取目标主机的一个cmdshellMeterpreter>shellgetuid获取当前用户细节Meterpreter>getuidgetsystem提升权限,获取系统级权限Meterpreter>getsystemps列出目标主机上运行的所有进程Meterpreter>ps若第一次接触Metasploit,可访问:http://www.offensive-security.com/metasploit-unleashed/Msfconsole_Commands获取关于基本命令的更多信息。在Metasploit使用数据库命令用途db_connect用来与默认数据库之外的数据交互db_export用来将数据库里保存的数据导出,用来生成测试报告或者用来导入到其他安全工具内db_nmap用来使用Nmap软件对目标进行扫描,并将结果保存到Metasploit数据里内db_status用来检查是否建立了与数据库的连接db_discocnnect用来从指定的数据库断开db_import用来向数据内导入其他扫描工具(例如Nessus,Nmap等)的扫描结果db_rebuild_cache用来重新建立缓存,主要目的是使用新的配置替代之前缓存文件里错误或者过时的配置