对metasploit的介绍
当完成前期的情报侦察工作以后,通过隐蔽的探测扫描识别到了系统的脆弱点,作为渗透测试人员要进一步的利用漏洞突破目标,获取利益和成就感。
Metasploit框架主要用于攻击工具的开发,漏洞工具的利用和攻击过程的辅助支撑,这个框架最大的优点在于它以研究的理念进行攻击工具的开发。因此,它非常容易开发和使用自己的metasploit模块,攻击人员无需具备太的ruby知识,只需掌握基本的脚本利用技巧就可以轻松的使用整个平台。
对渗透测试人员的要求
Metasploit不是万能的,他没有收录的exploit代码不计其数。因为每个漏洞都对应着某个程序的特定版本信息,大多数情况下,渗透测试人员通常会借助抓取的旗标信息搜索漏洞,然后在其他地方找到这个漏洞的exploit程序。Exploit程序多数是python、C++、Ruby、Prel、bash或者其他类型的脚本语言程序(或代码)。
渗透测试人员应当熟悉编辑、修改、执行 exploit脚本的方法,并且要理解exploit的工作原理。在真正应用这些脚本之前,进行充分的测试。所以应当尽可能地使用自己的shellcode;如果真的要使用他人的payload脚本,至少也要对其进行仔细的审查。
只会使用现成的攻击工具、漏洞利用代码并非总能成功,只有理解攻击原理,找到漏洞存在的问题,才能掌握利用漏洞的方法。这样一来,即使工具失效,还可以自己修改exploit程序,解决问题。
配置metasploit进行远程攻击的基本步骤
- 选择要使用的攻击代码或者模块
- 设置该模块的参数
*Set命令可配置模块的输入变量
*设置目标主机的端口和ip
*设置本地主机的端口和ip
*如果有确凿的信息,可设置系统版本,用户账号及其他信息
*运行show options命令查看需要设置的其他选项
3. 配置有效负载(payload)
*负载(payload)是在利用漏洞之后运行的实施具体操作行为的程序
*有关负载的详细介绍,参见:
http://www.sffensive-security.com/metasploit-unleashed/Payload_Types
*运行show payloads命令可查看payload的全部类型
*使用set payloads命令可设置有效负载
4. 设置编码器
*编码器是metasploit隐匿攻击程序特征的一种基本方法。遗憾的是即使使用了编码技术,payload仍然经常被反病毒软件拦截。
*使用show encoders命令可以查看封装负载的各种编码器,使用set encoders命令可对payload进行实际的封装。
5. 设置其他选项
6. 用exploit命令可启动事先指定好也配置好的攻击程序
Metasploit基本扫描
扫描端口
返回上一步:quit 直接退出:exit
一:调用nmap进行扫描 nmap -v –sV ip
二:使用MSF的扫描模块进行扫描
search portscan 回车
然后在下面选一个,使用use利用,例如:
use auxiliary/scanner/portscan/syn
上述步骤分别为,设置网卡,设置端口,设置扫描的ip地址范围以及线程,最后run,启动运行
SMB扫描 获取系统信息
前提是被扫描IP已经开启了445端口,现在在虚拟机中的windows7中演示
use auxiliary/scanner/smb/smb_version
调用 smb模块
show options
显示需要设置的参数
根据要求设置好相关参数
可以看到,被检测系统的系统版本
上边这个例子是检测一个IP的时候,如果想检测同网段下多个IP的系统版本信息,可以这样操作
set RHOSTS 192.168.119.1-200
上边只显示192.168.119.129有结果,是因为同网段下,只用这个ip开启着445端口,没有开启445端口的不会扫描出系统的版本信息。
步骤:调用模块(例如:use auxiliary/scanner/smb/smb_version)à显示需要设定的参数(show options)à根据上一步显示的设定参数àrun运行
Msf服务识别(ssh,ftp)
ssh
use auxiliary/scanner/ssh/ssh_version
ftp
调用模块
use auxiliary/scanner/ftp/ftp_version
显示需要设置的参数:
show options
设置参数
可以看到,已经扫出ftp服务器的版本来了
技术有限,文章比较基础,希望可以帮到像我一样的技术小白一同进步。
本文仅用作学习交流,请勿进行非法操作。